On Mon, Feb 12, 2018 at 06:11:57PM +0000, Kieran Bingham wrote:
> +     adv7511->i2c_packet = i2c_new_secondary_device(i2c, "packet",
> +                                     ADV7511_PACKET_I2C_ADDR_DEFAULT);
> +     if (!adv7511->i2c_packet) {
> +             ret = -EINVAL;
> +             goto err_unregister_cec;
> +     }
> +
> +     regmap_write(adv7511->regmap, ADV7511_REG_PACKET_I2C_ADDR,
> +                  adv7511->i2c_packet->addr << 1);
> +
>       INIT_WORK(&adv7511->hpd_work, adv7511_hpd_work);
>  
>       if (i2c->irq) {
> @@ -1181,7 +1190,7 @@ static int adv7511_probe(struct i2c_client *i2c, const 
> struct i2c_device_id *id)
>                                               IRQF_ONESHOT, dev_name(dev),
>                                               adv7511);
>               if (ret)
> -                     goto err_unregister_cec;
> +                     goto err_unregister_packet;
>       }
>  
>       adv7511_power_off(adv7511);

There is another goto which needs to be updated if adv7511_cec_init()
fails.

> @@ -1203,6 +1212,8 @@ static int adv7511_probe(struct i2c_client *i2c, const 
> struct i2c_device_id *id)
>       adv7511_audio_init(dev, adv7511);
>       return 0;
>  
> +err_unregister_packet:
> +     i2c_unregister_device(adv7511->i2c_packet);
>  err_unregister_cec:
>       i2c_unregister_device(adv7511->i2c_cec);
>       if (adv7511->cec_clk)


regards,
dan carpenter

Reply via email to