From 5110de1bf77af2a3d620f255c7136ca8367adef4 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Fri, 21 Oct 2022 10:21:15 -0500 Subject: kernel-5.19.16-101 * Fri Oct 21 2022 Justin M. Forbes [5.19.16-1] - Bump for build (Justin M. Forbes) - drm/vc4: hdmi: Fix HSM clock too low on Pi4 (maxime@cerno.tech) Resolves: Signed-off-by: Justin M. Forbes --- Makefile.rhelver | 2 +- Patchlist.changelog | 3 ++ kernel.spec | 8 ++++-- patch-5.19-redhat.patch | 75 +++++++++++++++++++++++++++++++++++++++++-------- sources | 4 +-- 5 files changed, 76 insertions(+), 16 deletions(-) diff --git a/Makefile.rhelver b/Makefile.rhelver index bedf1e208..aa2689307 100644 --- a/Makefile.rhelver +++ b/Makefile.rhelver @@ -12,7 +12,7 @@ RHEL_MINOR = 99 # # Use this spot to avoid future merge conflicts. # Do not trim this comment. -RHEL_RELEASE = 0 +RHEL_RELEASE = 1 # # ZSTREAM diff --git a/Patchlist.changelog b/Patchlist.changelog index f135fb331..b02c60146 100644 --- a/Patchlist.changelog +++ b/Patchlist.changelog @@ -1,3 +1,6 @@ +"https://gitlab.com/cki-project/kernel-ark/-/commit"/382edc42e3e53cfc18b9a47f4d2f8ed8355804a3 + 382edc42e3e53cfc18b9a47f4d2f8ed8355804a3 drm/vc4: hdmi: Fix HSM clock too low on Pi4 + "https://gitlab.com/cki-project/kernel-ark/-/commit"/b7ac3893a05dddcf85e47e0f9fc3868bb80cba8e b7ac3893a05dddcf85e47e0f9fc3868bb80cba8e mctp: prevent double key removal and unref diff --git a/kernel.spec b/kernel.spec index 18a41fa23..94a1af51e 100755 --- a/kernel.spec +++ b/kernel.spec @@ -124,13 +124,13 @@ Summary: The Linux kernel # define buildid .local %define specversion 5.19.16 %define patchversion 5.19 -%define pkgrelease 100 +%define pkgrelease 101 %define kversion 5 %define tarfile_release 5.19.16 # This is needed to do merge window version magic %define patchlevel 19 # This allows pkg_release to have configurable %%{?dist} tag -%define specrelease 100%{?buildid}%{?dist} +%define specrelease 101%{?buildid}%{?dist} # This defines the kabi tarball version %define kabiversion 5.19.16 @@ -3138,6 +3138,10 @@ fi # # %changelog +* Fri Oct 21 2022 Justin M. Forbes [5.19.16-1] +- Bump for build (Justin M. Forbes) +- drm/vc4: hdmi: Fix HSM clock too low on Pi4 (maxime@cerno.tech) + * Sat Oct 15 2022 Justin M. Forbes [5.19.16-0] - Reset build for version bump (Justin M. Forbes) - Linux v5.19.16 diff --git a/patch-5.19-redhat.patch b/patch-5.19-redhat.patch index 3a8675f90..86d7979c4 100644 --- a/patch-5.19-redhat.patch +++ b/patch-5.19-redhat.patch @@ -33,7 +33,8 @@ drivers/gpu/drm/v3d/v3d_debugfs.c | 18 +- drivers/gpu/drm/v3d/v3d_drv.c | 12 +- drivers/gpu/drm/v3d/v3d_gem.c | 12 +- - drivers/gpu/drm/vc4/vc4_hdmi.c | 29 + + drivers/gpu/drm/vc4/vc4_hdmi.c | 46 +- + drivers/gpu/drm/vc4/vc4_hdmi.h | 1 + drivers/hid/hid-rmi.c | 64 -- drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 + drivers/input/rmi4/rmi_driver.c | 124 +-- @@ -65,7 +66,7 @@ security/lockdown/lockdown.c | 1 + security/security.c | 6 + tools/testing/selftests/net/fib_nexthops.sh | 5 + - 67 files changed, 1823 insertions(+), 356 deletions(-) + 68 files changed, 1839 insertions(+), 358 deletions(-) diff --git a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml index e6485f7b046f..217c42874f41 100644 @@ -1301,29 +1302,69 @@ index 2352e9640922..725a252e837b 100644 kfree(*container); *container = NULL; diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 199bc398817f..eb3aaaca2b80 100644 +index 199bc398817f..3519b0c23d3b 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2889,12 +2889,37 @@ static int vc4_hdmi_runtime_resume(struct device *dev) +@@ -2732,9 +2732,16 @@ static int vc4_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) + DRM_ERROR("Failed to get HDMI state machine clock\n"); + return PTR_ERR(vc4_hdmi->hsm_clock); + } ++ + vc4_hdmi->audio_clock = vc4_hdmi->hsm_clock; + vc4_hdmi->cec_clock = vc4_hdmi->hsm_clock; + ++ vc4_hdmi->hsm_rpm_clock = devm_clk_get(dev, "hdmi"); ++ if (IS_ERR(vc4_hdmi->hsm_rpm_clock)) { ++ DRM_ERROR("Failed to get HDMI state machine clock\n"); ++ return PTR_ERR(vc4_hdmi->hsm_rpm_clock); ++ } ++ + return 0; + } + +@@ -2816,6 +2823,12 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) + return PTR_ERR(vc4_hdmi->hsm_clock); + } + ++ vc4_hdmi->hsm_rpm_clock = devm_clk_get(dev, "hdmi"); ++ if (IS_ERR(vc4_hdmi->hsm_rpm_clock)) { ++ DRM_ERROR("Failed to get HDMI state machine clock\n"); ++ return PTR_ERR(vc4_hdmi->hsm_rpm_clock); ++ } ++ + vc4_hdmi->pixel_bvb_clock = devm_clk_get(dev, "bvb"); + if (IS_ERR(vc4_hdmi->pixel_bvb_clock)) { + DRM_ERROR("Failed to get pixel bvb clock\n"); +@@ -2879,7 +2892,7 @@ static int vc4_hdmi_runtime_suspend(struct device *dev) + { + struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); + +- clk_disable_unprepare(vc4_hdmi->hsm_clock); ++ clk_disable_unprepare(vc4_hdmi->hsm_rpm_clock); + + return 0; + } +@@ -2889,12 +2902,37 @@ static int vc4_hdmi_runtime_resume(struct device *dev) struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); unsigned long __maybe_unused flags; u32 __maybe_unused value; + unsigned long rate; int ret; +- ret = clk_prepare_enable(vc4_hdmi->hsm_clock); + /* + * The HSM clock is in the HDMI power domain, so we need to set + * its frequency while the power domain is active so that it + * keeps its rate. + */ -+ ret = clk_set_min_rate(vc4_hdmi->hsm_clock, HSM_MIN_CLOCK_FREQ); -+ if (ret) -+ return ret; -+ - ret = clk_prepare_enable(vc4_hdmi->hsm_clock); ++ ret = clk_set_min_rate(vc4_hdmi->hsm_rpm_clock, HSM_MIN_CLOCK_FREQ); if (ret) return ret; ++ ret = clk_prepare_enable(vc4_hdmi->hsm_rpm_clock); ++ if (ret) ++ return ret; ++ + /* + * Whenever the RaspberryPi boots without an HDMI monitor + * plugged in, the firmware won't have initialized the HSM clock @@ -1333,7 +1374,7 @@ index 199bc398817f..eb3aaaca2b80 100644 + * case, it will lead to a silent CPU stall. Let's make sure we + * prevent such a case. + */ -+ rate = clk_get_rate(vc4_hdmi->hsm_clock); ++ rate = clk_get_rate(vc4_hdmi->hsm_rpm_clock); + if (!rate) { + ret = -EINVAL; + goto err_disable_clk; @@ -1342,7 +1383,7 @@ index 199bc398817f..eb3aaaca2b80 100644 if (vc4_hdmi->variant->reset) vc4_hdmi->variant->reset(vc4_hdmi); -@@ -2916,6 +2941,10 @@ static int vc4_hdmi_runtime_resume(struct device *dev) +@@ -2916,6 +2954,10 @@ static int vc4_hdmi_runtime_resume(struct device *dev) #endif return 0; @@ -1353,6 +1394,18 @@ index 199bc398817f..eb3aaaca2b80 100644 } static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) +diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h +index 1520387b317f..fbc0a55f18e1 100644 +--- a/drivers/gpu/drm/vc4/vc4_hdmi.h ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.h +@@ -171,6 +171,7 @@ struct vc4_hdmi { + struct clk *cec_clock; + struct clk *pixel_clock; + struct clk *hsm_clock; ++ struct clk *hsm_rpm_clock; + struct clk *audio_clock; + struct clk *pixel_bvb_clock; + diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c index 311eee599ce9..2460c6bd46f8 100644 --- a/drivers/hid/hid-rmi.c diff --git a/sources b/sources index 5ed6bd926..d4a8bb4d6 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (linux-5.19.16.tar.xz) = 47163cd1429a09077134de1bc7f9e6fa3462a030a127a9d8f5268e9ecd1c26894e3edfeb002fff01fdc008a3c61d333d272d6a0d73df5528bc15079e3f93a993 -SHA512 (kernel-abi-stablelists-5.19.16.tar.bz2) = 2053036956bb39cb72f60e4aae9575a948ce0dac0585973bed78f20d59ffb97bda0f90db7b12ac950d7521cdc42fcfc2cd54fa5d734ff6863e9f28e1c725db11 -SHA512 (kernel-kabi-dw-5.19.16.tar.bz2) = 497dbd372c3c0a66f12c9a506b0e6e66f40ed7822891f20c554f345a7538f4cb44f8d0911e69c06d918707b99c4aae0c110d485b16ce36adc0e2535fc0b9167e +SHA512 (kernel-abi-stablelists-5.19.16.tar.bz2) = a8b1d3439b781f72257c65b7812aff563e08949efdecf987aae461fa5e3983d97584c14a96b3ac493c6b2cde38822755b829a99cf49338cf7a8cf89076ff73cf +SHA512 (kernel-kabi-dw-5.19.16.tar.bz2) = e649054eca21dd03263304df8b17c30a7f86bd546e516d8371569905cb36648cf35cb24d05d36c20f6806580892200bf5f0254dd8d3bae9dee9b3ad57f2fd462 -- cgit