diff --git a/sound/soc/tegra-alt/tegra186_arad_alt.c b/sound/soc/tegra-alt/tegra186_arad_alt.c index 397aa21e..fec3137b 100644 --- a/sound/soc/tegra-alt/tegra186_arad_alt.c +++ b/sound/soc/tegra-alt/tegra186_arad_alt.c @@ -111,7 +111,8 @@ static int tegra186_arad_suspend(struct device *dev) { struct tegra186_arad *arad = dev_get_drvdata(dev); - regcache_mark_dirty(arad->regmap); + if (arad) + regcache_mark_dirty(arad->regmap); return 0; } @@ -799,7 +800,6 @@ static int tegra186_arad_platform_probe(struct platform_device *pdev) ret = -ENOMEM; goto err; } - dev_set_drvdata(&pdev->dev, arad); arad->soc_data = soc_data; @@ -862,6 +862,8 @@ static int tegra186_arad_platform_probe(struct platform_device *pdev) TEGRA186_AHC_ARAD1_CB, &pdev->dev); #endif #endif + dev_set_drvdata(&pdev->dev, arad); + return 0; err_suspend: diff --git a/sound/soc/tegra-alt/tegra186_asrc_alt.c b/sound/soc/tegra-alt/tegra186_asrc_alt.c index 3a5a45ab..21b79979 100644 --- a/sound/soc/tegra-alt/tegra186_asrc_alt.c +++ b/sound/soc/tegra-alt/tegra186_asrc_alt.c @@ -223,7 +223,9 @@ static int tegra186_asrc_suspend(struct device *dev) { struct tegra186_asrc *asrc = dev_get_drvdata(dev); - regcache_mark_dirty(asrc->regmap); + if (asrc) + regcache_mark_dirty(asrc->regmap); + return 0; } #endif @@ -896,7 +898,6 @@ static int tegra186_asrc_platform_probe(struct platform_device *pdev) ret = -ENOMEM; goto err; } - dev_set_drvdata(&pdev->dev, asrc); asrc->soc_data = soc_data; @@ -972,6 +973,8 @@ static int tegra186_asrc_platform_probe(struct platform_device *pdev) goto err_suspend; } + dev_set_drvdata(&pdev->dev, asrc); + return 0; err_suspend: