From d18352228f0eb8af9b7d1a6424449a8026952503 Mon Sep 17 00:00:00 2001 From: Rutherther Date: Thu, 29 May 2025 18:56:11 +0200 Subject: [PATCH] feat: add zynqmp DP reset support --- modules/zynqmp/packages/bootloader.scm | 3 +- ...1-video-zynqmp-add-support-for-reset.patch | 42 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 modules/zynqmp/packages/patches/uboot/0001-video-zynqmp-add-support-for-reset.patch diff --git a/modules/zynqmp/packages/bootloader.scm b/modules/zynqmp/packages/bootloader.scm index 40979361e1a24e2f7832c05f73db2b96964d2fb2..e47a5352a9071f97dbf0d297d1dbd69d32991fe2 100644 --- a/modules/zynqmp/packages/bootloader.scm +++ b/modules/zynqmp/packages/bootloader.scm @@ -48,7 +48,8 @@ (base32 "1gqcriiy9zglff0f88j6pin230yc10jfysylpga0v0pgj1pazv59")) (patches (append - (search-patches + (my-search-patches + "uboot/0001-video-zynqmp-add-support-for-reset.patch" "uboot/0001-kbuild-cherry-pick-kbuild-fdtoverlay-changes-from-linux.patch" "uboot/0002-arm64-zynqmp-remove-overlays-and-add-new-dtb-entries-for-zynqmp.patch" "uboot/0003-binman-add-option-for-pointing-to-separate-description.patch" diff --git a/modules/zynqmp/packages/patches/uboot/0001-video-zynqmp-add-support-for-reset.patch b/modules/zynqmp/packages/patches/uboot/0001-video-zynqmp-add-support-for-reset.patch new file mode 100644 index 0000000000000000000000000000000000000000..ded030b3b2b6300d604745241678b802313bd10e --- /dev/null +++ b/modules/zynqmp/packages/patches/uboot/0001-video-zynqmp-add-support-for-reset.patch @@ -0,0 +1,42 @@ +From: Michal Simek +Date: Mon, 9 Dec 2024 12:11:50 +0100 +Subject: [PATCH] video: zynqmp: Add support for reset + +In Kria SOM configuration DP is under reset and access to DP is causing +hang that's why call reset at probe to avoid this situation. + +Signed-off-by: Michal Simek +Link: https://lore.kernel.org/r/0504474a91a9839828aecd37f8855fd154cdf2e1.1733742708.git.michal.simek@amd.com +Upstream: https://github.com/u-boot/u-boot/commit/8b81010a2fe385524b58bea9116f1b6954c3d2bd +--- + drivers/video/zynqmp/zynqmp_dpsub.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/drivers/video/zynqmp/zynqmp_dpsub.c b/drivers/video/zynqmp/zynqmp_dpsub.c +index 76abfeac4433..52af23c3c835 100644 +--- a/drivers/video/zynqmp/zynqmp_dpsub.c ++++ b/drivers/video/zynqmp/zynqmp_dpsub.c +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -2093,10 +2094,15 @@ static int zynqmp_dpsub_probe(struct udevice *dev) + { + struct video_priv *uc_priv = dev_get_uclass_priv(dev); + struct zynqmp_dpsub_priv *priv = dev_get_priv(dev); ++ struct reset_ctl_bulk resets; + struct clk clk; + int ret; + int mode = RGBA8888; + ++ ret = reset_get_bulk(dev, &resets); ++ if (!ret) ++ reset_deassert_bulk(&resets); ++ + ret = clk_get_by_name(dev, "dp_apb_clk", &clk); + if (ret < 0) { + dev_err(dev, "failed to get clock\n");