[media] af9035: issue an error message when i2c stuff fails

Message ID 20190707205933.23059-1-uwe@kleine-koenig.org (mailing list archive)
State Obsoleted, archived
Delegated to: Sean Young
Headers
Series [media] af9035: issue an error message when i2c stuff fails |

Commit Message

Uwe Kleine-König July 7, 2019, 8:59 p.m. UTC
  Instead of failing silent give a hint what went wrong.

Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org>
---
 drivers/media/usb/dvb-usb-v2/af9035.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
  

Comments

Sean Young Dec. 31, 2019, 9:37 a.m. UTC | #1
Hello Uwe,

First apologies for taking so long to get to your patch.

On Sun, Jul 07, 2019 at 10:59:33PM +0200, Uwe Kleine-König wrote:
> Instead of failing silent give a hint what went wrong.
> 
> Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org>
> ---
>  drivers/media/usb/dvb-usb-v2/af9035.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
> index de52309eaaab..f5701fab192c 100644
> --- a/drivers/media/usb/dvb-usb-v2/af9035.c
> +++ b/drivers/media/usb/dvb-usb-v2/af9035.c
> @@ -211,13 +211,19 @@ static int af9035_add_i2c_dev(struct dvb_usb_device *d, const char *type,
>  
>  	/* register I2C device */
>  	client = i2c_new_device(adapter, &board_info);
> -	if (client == NULL || client->dev.driver == NULL) {
> +	if (client == NULL) {
> +		dev_err(&intf->dev, "failed to register i2c device\n");
> +		ret = -ENODEV;
> +		goto err;
> +	} else if (client->dev.driver == NULL) {
> +		dev_err(&intf->dev, "no driver for i2c device (type=%s)\n", type);
>  		ret = -ENODEV;
>  		goto err;
>  	}

i2c_new_device() calls i2c_new_client_device(), which in every error path
does a dev_err(). I suspect that this patch has become obsolete because
of fixes in i2c.

Thanks,

Sean

>  
>  	/* increase I2C driver usage count */
>  	if (!try_module_get(client->dev.driver->owner)) {
> +		dev_err(&intf->dev, "failed to get module for i2c driver\n");
>  		i2c_unregister_device(client);
>  		ret = -ENODEV;
>  		goto err;
> -- 
> 2.20.1
  

Patch

diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c b/drivers/media/usb/dvb-usb-v2/af9035.c
index de52309eaaab..f5701fab192c 100644
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
+++ b/drivers/media/usb/dvb-usb-v2/af9035.c
@@ -211,13 +211,19 @@  static int af9035_add_i2c_dev(struct dvb_usb_device *d, const char *type,
 
 	/* register I2C device */
 	client = i2c_new_device(adapter, &board_info);
-	if (client == NULL || client->dev.driver == NULL) {
+	if (client == NULL) {
+		dev_err(&intf->dev, "failed to register i2c device\n");
+		ret = -ENODEV;
+		goto err;
+	} else if (client->dev.driver == NULL) {
+		dev_err(&intf->dev, "no driver for i2c device (type=%s)\n", type);
 		ret = -ENODEV;
 		goto err;
 	}
 
 	/* increase I2C driver usage count */
 	if (!try_module_get(client->dev.driver->owner)) {
+		dev_err(&intf->dev, "failed to get module for i2c driver\n");
 		i2c_unregister_device(client);
 		ret = -ENODEV;
 		goto err;