[PATCH] ASoC: SDCA: fix __leXX types in find_sdca_control_range

From: Ben Dooks

Date: Mon Jun 22 2026 - 09:47:24 EST


The find_sdca_control_range passes u16 and u32 values to the
leXX_to_cpu() functions. Change this type and for the data
loop use the le32_to_cpup() to convert the value using a
pointer.

Fixes the following sparse warnings:
sound/soc/sdca/sdca_functions.c:868:23: warning: cast to restricted __le16
sound/soc/sdca/sdca_functions.c:869:23: warning: cast to restricted __le16
sound/soc/sdca/sdca_functions.c:877:34: warning: cast to restricted __le32

Signed-off-by: Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx>
---
sound/soc/sdca/sdca_functions.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sound/soc/sdca/sdca_functions.c b/sound/soc/sdca/sdca_functions.c
index 77940bd6b33c..2e0b0ac4fa13 100644
--- a/sound/soc/sdca/sdca_functions.c
+++ b/sound/soc/sdca/sdca_functions.c
@@ -847,7 +847,7 @@ static int find_sdca_control_range(struct device *dev,
{
u8 *range_list;
int num_range;
- u16 *limits;
+ __le16 *limits;
int i;

num_range = fwnode_property_count_u8(control_node, "mipi-sdca-control-range");
@@ -863,7 +863,7 @@ static int find_sdca_control_range(struct device *dev,
fwnode_property_read_u8_array(control_node, "mipi-sdca-control-range",
range_list, num_range);

- limits = (u16 *)range_list;
+ limits = (__le16 *)range_list;

range->cols = le16_to_cpu(limits[0]);
range->rows = le16_to_cpu(limits[1]);
@@ -874,7 +874,7 @@ static int find_sdca_control_range(struct device *dev,
return -EINVAL;

for (i = 0; i < num_range; i++)
- range->data[i] = le32_to_cpu(range->data[i]);
+ le32_to_cpup((__le32 *)&range->data[i]);

return 0;
}
--
2.37.2.352.g3c44437643