diff options
Diffstat (limited to 'source/k/patches-i686/31e97d7c9ae3de072d7b424b2cf706a03ec10720.patch')
-rw-r--r-- | source/k/patches-i686/31e97d7c9ae3de072d7b424b2cf706a03ec10720.patch | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/source/k/patches-i686/31e97d7c9ae3de072d7b424b2cf706a03ec10720.patch b/source/k/patches-i686/31e97d7c9ae3de072d7b424b2cf706a03ec10720.patch new file mode 100644 index 000000000..bfc7cd804 --- /dev/null +++ b/source/k/patches-i686/31e97d7c9ae3de072d7b424b2cf706a03ec10720.patch @@ -0,0 +1,60 @@ +From 31e97d7c9ae3de072d7b424b2cf706a03ec10720 Mon Sep 17 00:00:00 2001 +From: Aurelien Jarno <aurelien@aurel32.net> +Date: Sat, 13 Jan 2024 19:33:31 +0100 +Subject: media: solo6x10: replace max(a, min(b, c)) by clamp(b, a, c) + +This patch replaces max(a, min(b, c)) by clamp(b, a, c) in the solo6x10 +driver. This improves the readability and more importantly, for the +solo6x10-p2m.c file, this reduces on my system (x86-64, gcc 13): + + - the preprocessed size from 121 MiB to 4.5 MiB; + + - the build CPU time from 46.8 s to 1.6 s; + + - the build memory from 2786 MiB to 98MiB. + +In fine, this allows this relatively simple C file to be built on a +32-bit system. + +Reported-by: Jiri Slaby <jirislaby@gmail.com> +Closes: https://lore.kernel.org/lkml/18c6df0d-45ed-450c-9eda-95160a2bbb8e@gmail.com/ +Cc: <stable@vger.kernel.org> # v6.7+ +Suggested-by: David Laight <David.Laight@ACULAB.COM> +Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> +Reviewed-by: David Laight <David.Laight@ACULAB.COM> +Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> +Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> +--- + drivers/media/pci/solo6x10/solo6x10-offsets.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +(limited to 'drivers/media/pci/solo6x10/solo6x10-offsets.h') + +diff --git a/drivers/media/pci/solo6x10/solo6x10-offsets.h b/drivers/media/pci/solo6x10/solo6x10-offsets.h +index f414ee1316f29c..fdbb817e63601c 100644 +--- a/drivers/media/pci/solo6x10/solo6x10-offsets.h ++++ b/drivers/media/pci/solo6x10/solo6x10-offsets.h +@@ -57,16 +57,16 @@ + #define SOLO_MP4E_EXT_ADDR(__solo) \ + (SOLO_EREF_EXT_ADDR(__solo) + SOLO_EREF_EXT_AREA(__solo)) + #define SOLO_MP4E_EXT_SIZE(__solo) \ +- max((__solo->nr_chans * 0x00080000), \ +- min(((__solo->sdram_size - SOLO_MP4E_EXT_ADDR(__solo)) - \ +- __SOLO_JPEG_MIN_SIZE(__solo)), 0x00ff0000)) ++ clamp(__solo->sdram_size - SOLO_MP4E_EXT_ADDR(__solo) - \ ++ __SOLO_JPEG_MIN_SIZE(__solo), \ ++ __solo->nr_chans * 0x00080000, 0x00ff0000) + + #define __SOLO_JPEG_MIN_SIZE(__solo) (__solo->nr_chans * 0x00080000) + #define SOLO_JPEG_EXT_ADDR(__solo) \ + (SOLO_MP4E_EXT_ADDR(__solo) + SOLO_MP4E_EXT_SIZE(__solo)) + #define SOLO_JPEG_EXT_SIZE(__solo) \ +- max(__SOLO_JPEG_MIN_SIZE(__solo), \ +- min((__solo->sdram_size - SOLO_JPEG_EXT_ADDR(__solo)), 0x00ff0000)) ++ clamp(__solo->sdram_size - SOLO_JPEG_EXT_ADDR(__solo), \ ++ __SOLO_JPEG_MIN_SIZE(__solo), 0x00ff0000) + + #define SOLO_SDRAM_END(__solo) \ + (SOLO_JPEG_EXT_ADDR(__solo) + SOLO_JPEG_EXT_SIZE(__solo)) +-- +cgit 1.2.3-korg |