| From foo@baz Sun Aug 26 09:13:00 CEST 2018 |
| From: Lucas Stach <l.stach@pengutronix.de> |
| Date: Wed, 11 Apr 2018 17:31:35 +0200 |
| Subject: drm/imx: imx-ldb: disable LDB on driver bind |
| |
| From: Lucas Stach <l.stach@pengutronix.de> |
| |
| [ Upstream commit b58262396fabd43dc869b576e3defdd23b32fe94 ] |
| |
| The LVDS signal integrity is only guaranteed when the correct enable |
| sequence (first IPU DI, then LDB) is used. If the LDB display output was |
| active before the imx-drm driver is loaded (like when a bootsplash was |
| active) the DI will be disabled by the full IPU reset we do when loading |
| the driver. The LDB control registers are not part of the IPU range and |
| thus will remain unchanged. |
| |
| This leads to the LDB still being active when the DI is getting enabled, |
| effectively reversing the required enable sequence. Fix this by also |
| disabling the LDB on driver bind. |
| |
| Signed-off-by: Lucas Stach <l.stach@pengutronix.de> |
| Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/gpu/drm/imx/imx-ldb.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/drivers/gpu/drm/imx/imx-ldb.c |
| +++ b/drivers/gpu/drm/imx/imx-ldb.c |
| @@ -612,6 +612,9 @@ static int imx_ldb_bind(struct device *d |
| return PTR_ERR(imx_ldb->regmap); |
| } |
| |
| + /* disable LDB by resetting the control register to POR default */ |
| + regmap_write(imx_ldb->regmap, IOMUXC_GPR2, 0); |
| + |
| imx_ldb->dev = dev; |
| |
| if (of_id) |