Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8adc9ab5 authored by Aurelien Jarno's avatar Aurelien Jarno Committed by Greg Kroah-Hartman
Browse files

media: solo6x10: replace max(a, min(b, c)) by clamp(b, a, c)



commit 31e97d7c9ae3de072d7b424b2cf706a03ec10720 upstream.

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: default avatarJiri 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: default avatarDavid Laight <David.Laight@ACULAB.COM>
Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
Reviewed-by: default avatarDavid Laight <David.Laight@ACULAB.COM>
Reviewed-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 58f5626d
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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))