Commit dacb408c authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

media: gspca: properly check for errors in po1030_probe()

If m5602_write_sensor() or m5602_write_bridge() fail, do not continue to
initialize the device but return the error to the calling funtion.

Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Link: https://lore.kernel.org/r/20210503115736.2104747-64-gregkh@linuxfoundation.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8e23e83c
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -155,6 +155,7 @@ static const struct v4l2_ctrl_config po1030_greenbal_cfg = {
int po1030_probe(struct sd *sd)
{
	u8 dev_id_h = 0, i;
	int err;
	struct gspca_dev *gspca_dev = (struct gspca_dev *)sd;

	if (force_sensor) {
@@ -173,10 +174,13 @@ int po1030_probe(struct sd *sd)
	for (i = 0; i < ARRAY_SIZE(preinit_po1030); i++) {
		u8 data = preinit_po1030[i][2];
		if (preinit_po1030[i][0] == SENSOR)
			m5602_write_sensor(sd,
				preinit_po1030[i][1], &data, 1);
			err = m5602_write_sensor(sd, preinit_po1030[i][1],
						 &data, 1);
		else
			m5602_write_bridge(sd, preinit_po1030[i][1], data);
			err = m5602_write_bridge(sd, preinit_po1030[i][1],
						 data);
		if (err < 0)
			return err;
	}

	if (m5602_read_sensor(sd, PO1030_DEVID_H, &dev_id_h, 1))