i2c-mux-gpio: use deferred probing with the device tree
PATCH 1/1 i2c-mux-gpio: use deferred probing with the device tree
If the i2c-parent bus driver is not loaded, returning -EINVAL will force people to unload and then reload the module again to get it working.
Also of_get_named_gpio could return -E_PROBE_DEFER or another error code. This error should be passed further instead of being ignored.
--- drivers/i2c/muxes/i2c-mux-gpio.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-)
drivers/i2c/muxes/i2c-mux-gpio.c +8 -4
@@ -66,7 +66,7 @@ static int i2c_mux_gpio_probe_dt(struct gpiomux *mux,struct device_node *adapter_np, *child;struct i2c_adapter *adapter;unsigned *values, *gpios; -int i =0 ; +int i =0 , ret;if (!np)return -ENODEV ;
@@ -79,7 +79,7 @@ static int i2c_mux_gpio_probe_dt(struct gpiomux *mux, adapter =of_find_i2c_adapter_by_node (adapter_np);if (!adapter) {dev_err (&pdev->dev,"Cannot find parent bus\n" ); -return -ENODEV ; +return -EPROBE_DEFER ; } mux->data.parent =i2c_adapter_id (adapter);put_device (&adapter->dev);
@@ -116,8 +116,12 @@ static int i2c_mux_gpio_probe_dt(struct gpiomux *mux,return -ENOMEM ; } -for (i =0 ; i < mux->data.n_gpios; i++) - gpios[i] =of_get_named_gpio (np,"mux-gpios" , i); +for (i =0 ; i < mux->data.n_gpios; i++) { + ret =of_get_named_gpio (np,"mux-gpios" , i); +if (ret <0 ) +return ret; + gpios[i] = ret; + } mux->data.gpios = gpios;
Signature · 1 line
1.7.1
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"IN" == Ionut Nicu <[email protected]> writes:
IN> If the i2c-parent bus driver is not loaded, returning IN> -EINVAL will force people to unload and then reload the IN> module again to get it working.
IN> Also of_get_named_gpio could return -E_PROBE_DEFER or IN> another error code. This error should be passed further IN> instead of being ignored.
Two different fixes, so should be 2 separate patches. Other that that, it looks good.
--
Sorry about disclaimer - It's out of my control.
Bye, Peter Korsgaard
This message is subject to the following terms and conditions: MAIL DISCLAIMER<http://www.barco.com/en/maildisclaimer>
Quoted 6 lines · ext Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"IN" == Ionut Nicu <[email protected]> writes:
IN> If the i2c-parent bus driver is not loaded, returning IN>
-EINVALwill force people to unload and then reload the IN> module again to get it working.
Quoted 9 lines
IN> Also
of_get_named_gpiocould return -E_PROBE_DEFER or IN> another error code. This error should be passed further IN> instead of being ignored.Two different fixes, so should be 2 separate patches. Other that that, it looks good.
Right, I will split it into two patches and re-submit.
Thanks!