Commit b6959ca0 authored by Tomi Valkeinen's avatar Tomi Valkeinen Committed by Mauro Carvalho Chehab
Browse files

media: ti-vpe: cal: use runtime_resume for errata handling



We need to do errata handling every time CAL is being enabled. The code
is currently in cal_runtime_get(), which is not the correct place for
it.

Move the code to cal_runtime_resume, which is called every time CAL is
enabled.

Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: default avatarBenoit Parrot <bparrot@ti.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 29decd21
Loading
Loading
Loading
Loading
+22 −14
Original line number Diff line number Diff line
@@ -653,20 +653,7 @@ static void i913_errata(struct cal_dev *dev, unsigned int port)

static int cal_runtime_get(struct cal_dev *dev)
{
	int r;

	r = pm_runtime_get_sync(&dev->pdev->dev);

	if (dev->flags & DRA72_CAL_PRE_ES2_LDO_DISABLE) {
		/*
		 * Apply errata on both port eveytime we (re-)enable
		 * the clock
		 */
		i913_errata(dev, 0);
		i913_errata(dev, 1);
	}

	return r;
	return pm_runtime_get_sync(&dev->pdev->dev);
}

static inline void cal_runtime_put(struct cal_dev *dev)
@@ -2409,11 +2396,32 @@ static const struct of_device_id cal_of_match[] = {
MODULE_DEVICE_TABLE(of, cal_of_match);
#endif

static int cal_runtime_resume(struct device *dev)
{
	struct cal_dev *caldev = dev_get_drvdata(dev);

	if (caldev->flags & DRA72_CAL_PRE_ES2_LDO_DISABLE) {
		/*
		 * Apply errata on both port everytime we (re-)enable
		 * the clock
		 */
		i913_errata(caldev, 0);
		i913_errata(caldev, 1);
	}

	return 0;
}

static const struct dev_pm_ops cal_pm_ops = {
	.runtime_resume = cal_runtime_resume,
};

static struct platform_driver cal_pdrv = {
	.probe		= cal_probe,
	.remove		= cal_remove,
	.driver		= {
		.name	= CAL_MODULE_NAME,
		.pm	= &cal_pm_ops,
		.of_match_table = of_match_ptr(cal_of_match),
	},
};