The "sil,i2s-data-lanes" binding and in-tree DTS files use normal uint32 cells. Reading the array as u8 only works because the values are small, but it does not match the documented DT element size.
Use the u32 array helper so the driver follows the binding. Signed-off-by: Rob Herring (Arm) <[email protected]> --- drivers/gpu/drm/bridge/sii902x.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c index 12497f5ce4ff..c27e41573b19 100644 --- a/drivers/gpu/drm/bridge/sii902x.c +++ b/drivers/gpu/drm/bridge/sii902x.c @@ -862,7 +862,7 @@ static int sii902x_audio_codec_init(struct sii902x *sii902x, .max_i2s_channels = 0, .no_capture_mute = 1, }; - u8 lanes[4]; + u32 lanes[4]; int num_lanes, i; if (!of_property_present(dev->of_node, "#sound-dai-cells")) { @@ -871,10 +871,10 @@ static int sii902x_audio_codec_init(struct sii902x *sii902x, return 0; } - num_lanes = of_property_read_variable_u8_array(dev->of_node, - "sil,i2s-data-lanes", - lanes, 1, - ARRAY_SIZE(lanes)); + num_lanes = of_property_read_variable_u32_array(dev->of_node, + "sil,i2s-data-lanes", + lanes, 1, + ARRAY_SIZE(lanes)); if (num_lanes == -EINVAL) { dev_dbg(dev, -- 2.53.0
