media: ir-kbd-i2c: convert to i2c_new_dummy_device()
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Thu, 8 Aug 2019 15:53:28 +0000 (12:53 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 14 Aug 2019 08:05:10 +0000 (05:05 -0300)
Convert this driver to use the new i2c_new_dummy_device() call and bail
out if the dummy device cannot be registered to make failure more
visible to the user.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/i2c/ir-kbd-i2c.c

index 96932779ca3725c08e0a55b2e946ec5aa1f93b80..e8119ad0bc71dc38de4c719a121034e357e2c3d9 100644 (file)
@@ -885,9 +885,11 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
        INIT_DELAYED_WORK(&ir->work, ir_work);
 
        if (probe_tx) {
-               ir->tx_c = i2c_new_dummy(client->adapter, 0x70);
-               if (!ir->tx_c) {
+               ir->tx_c = i2c_new_dummy_device(client->adapter, 0x70);
+               if (IS_ERR(ir->tx_c)) {
                        dev_err(&client->dev, "failed to setup tx i2c address");
+                       err = PTR_ERR(ir->tx_c);
+                       goto err_out_free;
                } else if (!zilog_init(ir)) {
                        ir->carrier = 38000;
                        ir->duty_cycle = 40;
@@ -904,7 +906,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
        return 0;
 
  err_out_free:
-       if (ir->tx_c)
+       if (!IS_ERR(ir->tx_c))
                i2c_unregister_device(ir->tx_c);
 
        /* Only frees rc if it were allocated internally */
@@ -918,8 +920,7 @@ static int ir_remove(struct i2c_client *client)
 
        cancel_delayed_work_sync(&ir->work);
 
-       if (ir->tx_c)
-               i2c_unregister_device(ir->tx_c);
+       i2c_unregister_device(ir->tx_c);
 
        rc_unregister_device(ir->rc);