i2c: meson: Fix wrong speed use from probe
Subsystems (2)
PATCH 1/1 i2c: meson: Fix wrong speed use from probe
Having meson_i2c_set_clk_div after i2c_add_adapter causes issues for client drivers that try to use the bus before the requested speed is applied.
The bus can be used just after i2c_add_adapter, so move i2c_add_adapter to the final step as meson_i2c_set_clk_div needs to be called before the bus is used.
--- drivers/i2c/busses/i2c-meson.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
drivers/i2c/busses/i2c-meson.c +6 -6
@@ -465,18 +465,18 @@ static int meson_i2c_probe(struct platform_device *pdev)*/ meson_i2c_set_mask (i2c,REG_CTRL ,REG_CTRL_START ,0 ); - ret =i2c_add_adapter (&i2c->adap); -if (ret <0 ) { -clk_disable_unprepare (i2c->clk); -return ret; - } -/* Disable filtering */ meson_i2c_set_mask (i2c,REG_SLAVE_ADDR ,REG_SLV_SDA_FILTER |REG_SLV_SCL_FILTER ,0 );meson_i2c_set_clk_div (i2c, timings.bus_freq_hz); + ret =i2c_add_adapter (&i2c->adap); +if (ret <0 ) { +clk_disable_unprepare (i2c->clk); +return ret; + } +return 0 ; }
Signature · 1 line
2.35.1
Quoted 33 lines · Lucas Tanure
Having
meson_i2c_set_clk_divafteri2c_add_adaptercauses issues for client drivers that try to use the bus before the requested speed is applied.The bus can be used just after
i2c_add_adapter, so movei2c_add_adapterto the final step asmeson_i2c_set_clk_divneeds to be called before the bus is used.Signed-off-by Lucas Tanure <[email protected]>--- drivers/i2c/busses/i2c-meson.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)drivers/i2c/busses/i2c-meson.c +0
-6@@ -465,18 +465,18 @@ static int meson_i2c_probe(struct platform_device *pdev)*/ meson_i2c_set_mask (i2c,REG_CTRL ,REG_CTRL_START ,0 ); - ret =i2c_add_adapter (&i2c->adap); -if (ret <0 ) { -clk_disable_unprepare (i2c->clk); -return ret; - } -/* Disable filtering */ meson_i2c_set_mask (i2c,REG_SLAVE_ADDR ,REG_SLV_SDA_FILTER |REG_SLV_SCL_FILTER ,0 );meson_i2c_set_clk_div (i2c, timings.bus_freq_hz);
drivers/i2c/busses/i2c-meson.c static int meson_i2c_probe(struct platform_device *pdev) · line 482
Quoted 10 lines
drivers/i2c/busses/i2c-meson.c +6
-0+ ret =i2c_add_adapter (&i2c->adap); +if (ret <0 ) { +clk_disable_unprepare (i2c->clk); +return ret; + } +return 0 ; }
Wolfram Sang
AppliedQuoted 10 lines · Lucas Tanure
Having
meson_i2c_set_clk_divafteri2c_add_adaptercauses issues for client drivers that try to use the bus before the requested speed is applied.The bus can be used just after
i2c_add_adapter, so movei2c_add_adapterto the final step asmeson_i2c_set_clk_divneeds to be called before the bus is used.Signed-off-by Lucas Tanure <[email protected]>
Applied to for-next with a Fixes tag added, thanks!