REG_AUDIO_INPUT_FREQ reads back 0 when no audio clock has been
latched, and it6505_read() returns a negative errno on i2c failure.
The debug print divides by the readback, and its arguments are
evaluated even with debug output disabled. Only print when the value
is usable as a divisor.

Fixes: b5c84a9edcd4 ("drm/bridge: add it6505 driver")
Signed-off-by: Daniel Golle <[email protected]>
---
v6: no changes

v5: new patch

 drivers/gpu/drm/bridge/ite-it6505.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/bridge/ite-it6505.c 
b/drivers/gpu/drm/bridge/ite-it6505.c
index b7eb746c8f8e..04711c8f4a04 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -1623,8 +1623,11 @@ static void it6505_enable_audio(struct it6505 *it6505)
        it6505_set_bits(it6505, REG_AUDIO_SRC_CTRL, AUDIO_FIFO_RESET, 0x00);
        it6505_set_bits(it6505, REG_RESET_CTRL, AUDIO_RESET, 0x00);
        regbe = it6505_read(it6505, REG_AUDIO_INPUT_FREQ);
-       DRM_DEV_DEBUG_DRIVER(dev, "regbe:0x%02x audio input fs: %d.%d kHz",
-                            regbe, 6750 / regbe, (6750 % regbe) * 10 / regbe);
+       if (regbe > 0)
+               DRM_DEV_DEBUG_DRIVER(dev,
+                                    "regbe:0x%02x audio input fs: %d.%d kHz",
+                                    regbe, 6750 / regbe,
+                                    (6750 % regbe) * 10 / regbe);
        it6505_set_bits(it6505, REG_DATA_MUTE_CTRL, EN_AUD_MUTE, 0x00);
 }
 
-- 
2.55.0

Reply via email to