summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAndrew Morton <akpm@linux-foundation.org>2026-05-26 15:14:09 -0700
committerAndrew Morton <akpm@linux-foundation.org>2026-08-20 18:25:11 -0700
commitb753f869819883fedc3eeae29b15f3baf1599af0 (patch)
tree75dfe1a98b68b8ca44e345813ed9013f6f5dbfb4 /drivers
parent93c24a28eab0c3f358ded0d422f9081c030daa85 (diff)
downloadlinux-next-b753f869819883fedc3eeae29b15f3baf1599af0.tar.gz
linux-next-b753f869819883fedc3eeae29b15f3baf1599af0.zip
drivers/media/v4l2-core/v4l2-vp9.c: reduce inlining
csky allmodconfig, gcc-15.2.0: drivers/media/v4l2-core/v4l2-vp9.c: In function 'v4l2_vp9_adapt_noncoef_probs': drivers/media/v4l2-core/v4l2-vp9.c:1834:1: error: the frame size of 1436 bytes is larger than 1280 bytes [-Werror=frame-larger-than=] The amount of inlining in there is simply nuts. This patch semi-randomly uninlines various things and fixes the above. Ad the .text size reduction is tremendous: ts:/usr/src/25> size drivers/media/v4l2-core/v4l2-vp9.o text data bss dec hex filename 22450 36 0 22486 57d6 drivers/media/v4l2-core/v4l2-vp9.o-before 16144 36 0 16180 3f34 drivers/media/v4l2-core/v4l2-vp9.o-after Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/v4l2-core/v4l2-vp9.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/drivers/media/v4l2-core/v4l2-vp9.c b/drivers/media/v4l2-core/v4l2-vp9.c
index 859589f1fd35..e965ffbd9b8a 100644
--- a/drivers/media/v4l2-core/v4l2-vp9.c
+++ b/drivers/media/v4l2-core/v4l2-vp9.c
@@ -1582,25 +1582,25 @@ static inline u8 noncoef_merge_prob(u8 pre_prob, u32 ct0, u32 ct1)
* merge_prob(p[9], c[9], [10])
*/
-static inline void merge_probs_variant_a(u8 *p, const u32 *c, u16 count_sat, u32 update_factor)
+static noinline_for_stack void merge_probs_variant_a(u8 *p, const u32 *c, u16 count_sat, u32 update_factor)
{
p[1] = merge_prob(p[1], c[0], c[1] + c[2], count_sat, update_factor);
p[2] = merge_prob(p[2], c[1], c[2], count_sat, update_factor);
}
-static inline void merge_probs_variant_b(u8 *p, const u32 *c, u16 count_sat, u32 update_factor)
+static noinline_for_stack void merge_probs_variant_b(u8 *p, const u32 *c, u16 count_sat, u32 update_factor)
{
p[0] = merge_prob(p[0], c[0], c[1], count_sat, update_factor);
}
-static inline void merge_probs_variant_c(u8 *p, const u32 *c)
+static noinline_for_stack void merge_probs_variant_c(u8 *p, const u32 *c)
{
p[0] = noncoef_merge_prob(p[0], c[2], c[1] + c[0] + c[3]);
p[1] = noncoef_merge_prob(p[1], c[0], c[1] + c[3]);
p[2] = noncoef_merge_prob(p[2], c[1], c[3]);
}
-static void merge_probs_variant_d(u8 *p, const u32 *c)
+static noinline_for_stack void merge_probs_variant_d(u8 *p, const u32 *c)
{
u32 sum = 0, s2;
@@ -1624,20 +1624,20 @@ static void merge_probs_variant_d(u8 *p, const u32 *c)
p[8] = noncoef_merge_prob(p[8], c[6], c[7]);
}
-static inline void merge_probs_variant_e(u8 *p, const u32 *c)
+static noinline_for_stack void merge_probs_variant_e(u8 *p, const u32 *c)
{
p[0] = noncoef_merge_prob(p[0], c[0], c[1] + c[2] + c[3]);
p[1] = noncoef_merge_prob(p[1], c[1], c[2] + c[3]);
p[2] = noncoef_merge_prob(p[2], c[2], c[3]);
}
-static inline void merge_probs_variant_f(u8 *p, const u32 *c)
+static noinline_for_stack void merge_probs_variant_f(u8 *p, const u32 *c)
{
p[0] = noncoef_merge_prob(p[0], c[0], c[1] + c[2]);
p[1] = noncoef_merge_prob(p[1], c[1], c[2]);
}
-static void merge_probs_variant_g(u8 *p, const u32 *c)
+static noinline_for_stack void merge_probs_variant_g(u8 *p, const u32 *c)
{
u32 sum;
@@ -1659,12 +1659,12 @@ static void merge_probs_variant_g(u8 *p, const u32 *c)
}
/* 8.4.3 Coefficient probability adaptation process */
-static inline void adapt_probs_variant_a_coef(u8 *p, const u32 *c, u32 update_factor)
+static noinline_for_stack void adapt_probs_variant_a_coef(u8 *p, const u32 *c, u32 update_factor)
{
merge_probs_variant_a(p, c, 24, update_factor);
}
-static inline void adapt_probs_variant_b_coef(u8 *p, const u32 *c, u32 update_factor)
+static noinline_for_stack void adapt_probs_variant_b_coef(u8 *p, const u32 *c, u32 update_factor)
{
merge_probs_variant_b(p, c, 24, update_factor);
}
@@ -1724,33 +1724,33 @@ static inline void adapt_probs_variant_b(u8 *p, const u32 *c)
merge_probs_variant_b(p, c, 20, 128);
}
-static inline void adapt_probs_variant_c(u8 *p, const u32 *c)
+static noinline_for_stack void adapt_probs_variant_c(u8 *p, const u32 *c)
{
merge_probs_variant_c(p, c);
}
-static inline void adapt_probs_variant_d(u8 *p, const u32 *c)
+static noinline_for_stack void adapt_probs_variant_d(u8 *p, const u32 *c)
{
merge_probs_variant_d(p, c);
}
-static inline void adapt_probs_variant_e(u8 *p, const u32 *c)
+static noinline_for_stack void adapt_probs_variant_e(u8 *p, const u32 *c)
{
merge_probs_variant_e(p, c);
}
-static inline void adapt_probs_variant_f(u8 *p, const u32 *c)
+static noinline_for_stack void adapt_probs_variant_f(u8 *p, const u32 *c)
{
merge_probs_variant_f(p, c);
}
-static inline void adapt_probs_variant_g(u8 *p, const u32 *c)
+static noinline_for_stack void adapt_probs_variant_g(u8 *p, const u32 *c)
{
merge_probs_variant_g(p, c);
}
/* 8.4.4 Non coefficient probability adaptation process, adapt_prob() */
-static inline u8 adapt_prob(u8 prob, const u32 counts[2])
+static noinline_for_stack u8 adapt_prob(u8 prob, const u32 counts[2])
{
return noncoef_merge_prob(prob, counts[0], counts[1]);
}