You need to sign in or sign up before continuing.
提交 461af077 编写于 作者: M Mauro Carvalho Chehab

[media] cx231xx: can't proceed if I2C bus register fails

The driver should not ignore errors while registering the I2C
bus, as this device can't even minimally work without the buses,
as it uses those buses internally to talk with the several IP
blocks inside the chip.

Cc: stable@vger.kernel.org
Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
上级 4001dfb4
...@@ -1324,15 +1324,29 @@ int cx231xx_dev_init(struct cx231xx *dev) ...@@ -1324,15 +1324,29 @@ int cx231xx_dev_init(struct cx231xx *dev)
dev->i2c_bus[2].i2c_reserve = 0; dev->i2c_bus[2].i2c_reserve = 0;
/* register I2C buses */ /* register I2C buses */
cx231xx_i2c_register(&dev->i2c_bus[0]); errCode = cx231xx_i2c_register(&dev->i2c_bus[0]);
cx231xx_i2c_register(&dev->i2c_bus[1]); if (errCode < 0)
cx231xx_i2c_register(&dev->i2c_bus[2]); return errCode;
errCode = cx231xx_i2c_register(&dev->i2c_bus[1]);
if (errCode < 0)
return errCode;
errCode = cx231xx_i2c_register(&dev->i2c_bus[2]);
if (errCode < 0)
return errCode;
errCode = cx231xx_i2c_mux_create(dev); errCode = cx231xx_i2c_mux_create(dev);
if (errCode < 0) {
dev_err(dev->dev,
"%s: Failed to create I2C mux\n", __func__);
return errCode;
}
errCode = cx231xx_i2c_mux_register(dev, 0);
if (errCode < 0)
return errCode;
errCode = cx231xx_i2c_mux_register(dev, 1);
if (errCode < 0) if (errCode < 0)
return errCode; return errCode;
cx231xx_i2c_mux_register(dev, 0);
cx231xx_i2c_mux_register(dev, 1);
/* scan the real bus segments in the order of physical port numbers */ /* scan the real bus segments in the order of physical port numbers */
cx231xx_do_i2c_scan(dev, I2C_0); cx231xx_do_i2c_scan(dev, I2C_0);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册