Openwrt/target/linux/layerscape/patches-5.4/805-display-0013-drm-bridge-cadence-Add-power_on-to-__cdns_dp_probe.patch
Yangbo Lu cddd459140 layerscape: add patches-5.4
Add patches for linux-5.4. The patches are from NXP LSDK-20.04 release
which was tagged LSDK-20.04-V5.4.
https://source.codeaurora.org/external/qoriq/qoriq-components/linux/

For boards LS1021A-IOT, and Traverse-LS1043 which are not involved in
LSDK, port the dts patches from 4.14.

The patches are sorted into the following categories:
  301-arch-xxxx
  302-dts-xxxx
  303-core-xxxx
  701-net-xxxx
  801-audio-xxxx
  802-can-xxxx
  803-clock-xxxx
  804-crypto-xxxx
  805-display-xxxx
  806-dma-xxxx
  807-gpio-xxxx
  808-i2c-xxxx
  809-jailhouse-xxxx
  810-keys-xxxx
  811-kvm-xxxx
  812-pcie-xxxx
  813-pm-xxxx
  814-qe-xxxx
  815-sata-xxxx
  816-sdhc-xxxx
  817-spi-xxxx
  818-thermal-xxxx
  819-uart-xxxx
  820-usb-xxxx
  821-vfio-xxxx

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
2020-05-07 12:53:06 +02:00

95 lines
3.3 KiB
Diff

From 9737dd813b872f5671d40685d2174a928da809a3 Mon Sep 17 00:00:00 2001
From: Wen He <wen.he_1@nxp.com>
Date: Tue, 17 Sep 2019 15:23:51 +0800
Subject: [PATCH] drm: bridge: cadence: Add power_on to __cdns_dp_probe
Add power_on of the cnds_plat_data to __cdns_dp_probe as to update
Board related configuration initalization.
Signed-off-by: Wen He <wen.he_1@nxp.com>
---
drivers/gpu/drm/bridge/cadence/cdns-dp-core.c | 2 ++
drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c | 2 ++
drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c | 6 +++---
drivers/gpu/drm/imx/cdn-mhdp-imxdrv.c | 2 ++
drivers/gpu/drm/imx/cdns-mhdp-imx.h | 1 +
5 files changed, 10 insertions(+), 3 deletions(-)
--- a/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c
+++ b/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c
@@ -457,6 +457,8 @@ static int __cdns_dp_probe(struct platfo
cdns_dp_parse_dt(mhdp);
+ cdns_mhdp_plat_call(mhdp, power_on);
+
// mhdp->dual_mode = false;
cdns_mhdp_plat_call(mhdp, firmware_init);
--- a/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c
+++ b/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c
@@ -449,6 +449,8 @@ static int __cdns_hdmi_probe(struct plat
/* Initialize dual_mode to false */
// hdmi->dual_mode = false;
+ cdns_mhdp_plat_call(mhdp, power_on);
+
/* Initialize FW */
cdns_mhdp_plat_call(mhdp, firmware_init);
--- a/drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c
+++ b/drivers/gpu/drm/imx/cdn-mhdp-imx8qm.c
@@ -440,7 +440,7 @@ fail:
return ret;
}
-static void imx8qm_mhdp_power_on(struct cdns_mhdp_device *mhdp)
+int cdns_mhdp_power_on_imx8qm(struct cdns_mhdp_device *mhdp)
{
struct imx_mhdp_device *imx_mhdp =
container_of(mhdp, struct imx_mhdp_device, mhdp);
@@ -463,6 +463,8 @@ static void imx8qm_mhdp_power_on(struct
imx8qm_pixel_clk_enable(imx_mhdp);
imx8qm_phy_reset(1);
+
+ return 0;
}
void cdns_mhdp_plat_init_imx8qm(struct cdns_mhdp_device *mhdp)
@@ -506,8 +508,6 @@ int cdns_mhdp_firmware_init_imx8qm(struc
u32 rate;
int ret;
- imx8qm_mhdp_power_on(mhdp);
-
/* configure HDMI/DP core clock */
rate = clk_get_rate(imx_mhdp->clks.clk_core);
cdns_mhdp_set_fw_clk(&imx_mhdp->mhdp, rate);
--- a/drivers/gpu/drm/imx/cdn-mhdp-imxdrv.c
+++ b/drivers/gpu/drm/imx/cdn-mhdp-imxdrv.c
@@ -71,6 +71,7 @@ static struct cdns_plat_data imx8qm_hdmi
.bind = cdns_hdmi_bind,
.unbind = cdns_hdmi_unbind,
.phy_set = cdns_hdmi_phy_set_imx8qm,
+ .power_on = cdns_mhdp_power_on_imx8qm,
.firmware_init = cdns_mhdp_firmware_init_imx8qm,
.pclk_rate = cdns_mhdp_pclk_rate_imx8qm,
.plat_init = cdns_mhdp_plat_init_imx8qm,
@@ -83,6 +84,7 @@ static struct cdns_plat_data imx8qm_dp_d
.bind = cdns_dp_bind,
.unbind = cdns_dp_unbind,
.phy_set = cdns_dp_phy_set_imx8qm,
+ .power_on = cdns_mhdp_power_on_imx8qm,
.firmware_init = cdns_mhdp_firmware_init_imx8qm,
.pclk_rate = cdns_mhdp_pclk_rate_imx8qm,
.plat_init = cdns_mhdp_plat_init_imx8qm,
--- a/drivers/gpu/drm/imx/cdns-mhdp-imx.h
+++ b/drivers/gpu/drm/imx/cdns-mhdp-imx.h
@@ -77,4 +77,5 @@ void cdns_mhdp_plat_init_imx8qm(struct c
void cdns_mhdp_plat_deinit_imx8qm(struct cdns_mhdp_device *mhdp);
void cdns_mhdp_pclk_rate_imx8qm(struct cdns_mhdp_device *mhdp);
int cdns_mhdp_firmware_init_imx8qm(struct cdns_mhdp_device *mhdp);
+int cdns_mhdp_power_on_imx8qm(struct cdns_mhdp_device *mhdp);
#endif /* CDNS_MHDP_IMX_H_ */