nvidia: Clean up t210 MBIST WAR handling

On k4.4 and earlier, t210 MBIST workaround was handled with notifier
callbacks within the drivers. Remove all such calls to the functions
slcg_register_notifier and slcg_unregister_notifier.

Also remove the functions nvhost_pd_slcg_install_workaround and
nvhost_pd_slcg_remove_workaround which ultimately call the
slcg_register_notifier and slcg_unregister_notifier functions
respectively.

Bug 2485656

Change-Id: I6445e07e5d2a4aa6360fff0bbd32ceebbc0e62e4
Signed-off-by: Ketan Patil <ketanp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2003556
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Ketan Patil
2019-01-25 09:56:46 +05:30
committed by Sameer Pujar
parent 5936a0e40d
commit ddbf36f10e

View File

@@ -744,35 +744,6 @@ static int tegra210_i2s_codec_probe(struct snd_soc_codec *codec)
return 0; return 0;
} }
static int _tegra210_i2s_slcg_notifier(struct notifier_block *nb,
unsigned long unused0, void *unused1)
{
struct tegra210_i2s *i2s = container_of(nb, struct tegra210_i2s,
slgc_notifier);
unsigned int mask, val, i2s_ctrl;
/* Save the I2S CTRL before implement MBIST WAR */
regmap_read(i2s->regmap, TEGRA210_I2S_CTRL, &i2s_ctrl);
mask = TEGRA210_I2S_CTRL_MASTER_EN_MASK;
val = TEGRA210_I2S_CTRL_MASTER_EN;
/* Set I2S controller in master mode */
regmap_update_bits(i2s->regmap, TEGRA210_I2S_CTRL, mask, val);
/* Disable slcg, wait a while and re-enable it */
regmap_write(i2s->regmap, TEGRA210_I2S_CG, 0);
regmap_read(i2s->regmap, TEGRA210_I2S_CG, &val);
udelay(1);
regmap_write(i2s->regmap, TEGRA210_I2S_CG, 1);
/* Restore the I2S CTRL */
regmap_write(i2s->regmap, TEGRA210_I2S_CTRL, i2s_ctrl);
return NOTIFY_OK;
}
static struct snd_soc_dai_ops tegra210_i2s_dai_ops = { static struct snd_soc_dai_ops tegra210_i2s_dai_ops = {
.set_fmt = tegra210_i2s_set_fmt, .set_fmt = tegra210_i2s_set_fmt,
.hw_params = tegra210_i2s_hw_params, .hw_params = tegra210_i2s_hw_params,
@@ -1135,7 +1106,6 @@ static int tegra210_i2s_platform_probe(struct platform_device *pdev)
void __iomem *regs; void __iomem *regs;
int ret = 0, count = 0, num_supplies; int ret = 0, count = 0, num_supplies;
const char *supply; const char *supply;
int partition_id = 0;
match = of_match_device(tegra210_i2s_of_match, &pdev->dev); match = of_match_device(tegra210_i2s_of_match, &pdev->dev);
if (!match) { if (!match) {
@@ -1220,11 +1190,6 @@ static int tegra210_i2s_platform_probe(struct platform_device *pdev)
goto err; goto err;
} }
i2s->slgc_notifier.notifier_call = _tegra210_i2s_slcg_notifier;
if (i2s->soc_data->is_soc_t210)
slcg_register_notifier(partition_id, &i2s->slgc_notifier);
regcache_cache_only(i2s->regmap, true); regcache_cache_only(i2s->regmap, true);
if (of_property_read_u32(np, "nvidia,ahub-i2s-id", if (of_property_read_u32(np, "nvidia,ahub-i2s-id",