]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Sep 2024 12:43:45 +0000 (14:43 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Sep 2024 12:43:45 +0000 (14:43 +0200)
added patches:
arm64-dts-rockchip-override-bios_disable-signal-via-gpio-hog-on-rk3399-puma.patch
minmax-reduce-min-max-macro-expansion-in-atomisp-driver.patch

queue-5.10/arm64-dts-rockchip-override-bios_disable-signal-via-gpio-hog-on-rk3399-puma.patch [new file with mode: 0644]
queue-5.10/minmax-reduce-min-max-macro-expansion-in-atomisp-driver.patch [new file with mode: 0644]
queue-5.10/series

diff --git a/queue-5.10/arm64-dts-rockchip-override-bios_disable-signal-via-gpio-hog-on-rk3399-puma.patch b/queue-5.10/arm64-dts-rockchip-override-bios_disable-signal-via-gpio-hog-on-rk3399-puma.patch
new file mode 100644 (file)
index 0000000..130a94d
--- /dev/null
@@ -0,0 +1,70 @@
+From 741f5ba7ccba5d7ae796dd11c320e28045524771 Mon Sep 17 00:00:00 2001
+From: Quentin Schulz <quentin.schulz@cherry.de>
+Date: Wed, 31 Jul 2024 13:05:29 +0200
+Subject: arm64: dts: rockchip: override BIOS_DISABLE signal via GPIO hog on RK3399 Puma
+
+From: Quentin Schulz <quentin.schulz@cherry.de>
+
+commit 741f5ba7ccba5d7ae796dd11c320e28045524771 upstream.
+
+The Qseven BIOS_DISABLE signal on the RK3399-Q7 keeps the on-module eMMC
+and SPI flash powered-down initially (in fact it keeps the reset signal
+asserted). BIOS_DISABLE_OVERRIDE pin allows to override that signal so
+that eMMC and SPI can be used regardless of the state of the signal.
+
+Let's make this GPIO a hog so that it's reserved and locked in the
+proper state.
+
+At the same time, make sure the pin is reserved for the hog and cannot
+be requested by another node.
+
+Cc: stable@vger.kernel.org
+Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
+Link: https://lore.kernel.org/r/20240731-puma-emmc-6-v1-2-4e28eadf32d0@cherry.de
+Signed-off-by: Heiko Stuebner <heiko@sntech.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi |   23 ++++++++++++++++++++++-
+ 1 file changed, 22 insertions(+), 1 deletion(-)
+
+--- a/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
++++ b/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
+@@ -148,6 +148,22 @@
+       drive-impedance-ohm = <33>;
+ };
++&gpio3 {
++      /*
++       * The Qseven BIOS_DISABLE signal on the RK3399-Q7 keeps the on-module
++       * eMMC and SPI flash powered-down initially (in fact it keeps the
++       * reset signal asserted). BIOS_DISABLE_OVERRIDE pin allows to override
++       * that signal so that eMMC and SPI can be used regardless of the state
++       * of the signal.
++       */
++      bios-disable-override-hog {
++              gpios = <RK_PD5 GPIO_ACTIVE_LOW>;
++              gpio-hog;
++              line-name = "bios_disable_override";
++              output-high;
++      };
++};
++
+ &gmac {
+       assigned-clocks = <&cru SCLK_RMII_SRC>;
+       assigned-clock-parents = <&clkin_gmac>;
+@@ -437,9 +453,14 @@
+ &pinctrl {
+       pinctrl-names = "default";
+-      pinctrl-0 = <&q7_thermal_pin>;
++      pinctrl-0 = <&q7_thermal_pin &bios_disable_override_hog_pin>;
+       gpios {
++              bios_disable_override_hog_pin: bios-disable-override-hog-pin {
++                      rockchip,pins =
++                              <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>;
++              };
++
+               q7_thermal_pin: q7-thermal-pin {
+                       rockchip,pins =
+                               <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
diff --git a/queue-5.10/minmax-reduce-min-max-macro-expansion-in-atomisp-driver.patch b/queue-5.10/minmax-reduce-min-max-macro-expansion-in-atomisp-driver.patch
new file mode 100644 (file)
index 0000000..ea2aa6d
--- /dev/null
@@ -0,0 +1,68 @@
+From 7c6a3a65ace70f12b27b1a27c9a69cb791dc6e91 Mon Sep 17 00:00:00 2001
+From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
+Date: Wed, 11 Sep 2024 18:51:11 +0100
+Subject: minmax: reduce min/max macro expansion in atomisp driver
+
+From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
+
+commit 7c6a3a65ace70f12b27b1a27c9a69cb791dc6e91 upstream.
+
+Avoid unnecessary nested min()/max() which results in egregious macro
+expansion.
+
+Use clamp_t() as this introduces the least possible expansion, and turn
+the {s,u}DIGIT_FITTING() macros into inline functions to avoid the
+nested expansion.
+
+This resolves an issue with slackware 15.0 32-bit compilation as
+reported by Richard Narron.
+
+Presumably the min/max fixups would be difficult to backport, this patch
+should be easier and fix's Richard's problem in 5.15.
+
+Reported-by: Richard Narron <richard@aaazen.com>
+Reviewed-by: Hans de Goede <hdegoede@redhat.com>
+Closes: https://lore.kernel.org/all/4a5321bd-b1f-1832-f0c-cea8694dc5aa@aaazen.com/
+Fixes: 867046cc7027 ("minmax: relax check to allow comparison between unsigned arguments and signed constants")
+Cc: stable@vger.kernel.org
+Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/staging/media/atomisp/pci/sh_css_frac.h |   26 +++++++++++++++++-------
+ 1 file changed, 19 insertions(+), 7 deletions(-)
+
+--- a/drivers/staging/media/atomisp/pci/sh_css_frac.h
++++ b/drivers/staging/media/atomisp/pci/sh_css_frac.h
+@@ -30,12 +30,24 @@
+ #define uISP_VAL_MAX                ((unsigned int)((1 << uISP_REG_BIT) - 1))
+ /* a:fraction bits for 16bit precision, b:fraction bits for ISP precision */
+-#define sDIGIT_FITTING(v, a, b) \
+-      min_t(int, max_t(int, (((v) >> sSHIFT) >> max(sFRACTION_BITS_FITTING(a) - (b), 0)), \
+-        sISP_VAL_MIN), sISP_VAL_MAX)
+-#define uDIGIT_FITTING(v, a, b) \
+-      min((unsigned int)max((unsigned)(((v) >> uSHIFT) \
+-      >> max((int)(uFRACTION_BITS_FITTING(a) - (b)), 0)), \
+-        uISP_VAL_MIN), uISP_VAL_MAX)
++static inline int sDIGIT_FITTING(int v, int a, int b)
++{
++      int fit_shift = sFRACTION_BITS_FITTING(a) - b;
++
++      v >>= sSHIFT;
++      v >>= fit_shift > 0 ? fit_shift : 0;
++
++      return clamp_t(int, v, sISP_VAL_MIN, sISP_VAL_MAX);
++}
++
++static inline unsigned int uDIGIT_FITTING(unsigned int v, int a, int b)
++{
++      int fit_shift = uFRACTION_BITS_FITTING(a) - b;
++
++      v >>= uSHIFT;
++      v >>= fit_shift > 0 ? fit_shift : 0;
++
++      return clamp_t(unsigned int, v, uISP_VAL_MIN, uISP_VAL_MAX);
++}
+ #endif /* __SH_CSS_FRAC_H */
index ee7eeb00f6d27781e2e51cb49d967ca73ca4c60d..482a04c8819b5d23ceef68bc9596ec2e1a8d0ef9 100644 (file)
@@ -12,3 +12,5 @@ scripts-kconfig-merge_config-config-files-add-a-trai.patch
 drm-msm-adreno-fix-error-return-if-missing-firmware-.patch
 input-i8042-add-fujitsu-lifebook-e756-to-i8042-quirk.patch
 nfs-avoid-unnecessary-rescanning-of-the-per-server-d.patch
+arm64-dts-rockchip-override-bios_disable-signal-via-gpio-hog-on-rk3399-puma.patch
+minmax-reduce-min-max-macro-expansion-in-atomisp-driver.patch