[PATCH v8 07/14] media: ov02c10: CCI usage fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Several fixes to ov02c10's usage of the CCI helpers:
- Fix indentation of some cci_*() calls
- Make sure logged register writing errors end with '\n'
- CCI functions already log errors themselves, drop error
  logging for them
- CCI functions being passed &ret as last argument can be chained
  without need to check ret in between, if ret != 0 then the next
  CCI call(s) will be a no-op
- err/&ret argument passed to cci_*() functions should be signed
- Move devm_cci_regmap_init_i2c() to ov02c10_probe() and add error check

Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
---
 drivers/media/i2c/ov02c10.c | 30 ++++++++++--------------------
 1 file changed, 10 insertions(+), 20 deletions(-)

diff --git a/drivers/media/i2c/ov02c10.c b/drivers/media/i2c/ov02c10.c
index a6ea747243e6..b9f28368e29f 100644
--- a/drivers/media/i2c/ov02c10.c
+++ b/drivers/media/i2c/ov02c10.c
@@ -423,16 +423,12 @@ static int ov02c10_test_pattern(struct ov02c10 *ov02c10, int pattern)
 
 	if (!pattern)
 		return cci_update_bits(ov02c10->regmap, OV02C10_REG_TEST_PATTERN,
-			BIT(7), 0, NULL);
+				       BIT(7), 0, NULL);
 
 	cci_update_bits(ov02c10->regmap, OV02C10_REG_TEST_PATTERN,
 			0x03, pattern - 1, &ret);
-	if (ret)
-		return ret;
-
 	cci_update_bits(ov02c10->regmap, OV02C10_REG_TEST_PATTERN,
 			BIT(7), OV02C10_TEST_PATTERN_ENABLE, &ret);
-
 	return ret;
 }
 
@@ -590,7 +586,7 @@ static int ov02c10_start_streaming(struct ov02c10 *ov02c10)
 	ret = regmap_multi_reg_write(ov02c10->regmap,
 				     reg_sequence, sequence_length);
 	if (ret) {
-		dev_err(&client->dev, "failed to set mode");
+		dev_err(&client->dev, "failed to set mode\n");
 		return ret;
 	}
 
@@ -607,21 +603,12 @@ static int ov02c10_start_streaming(struct ov02c10 *ov02c10)
 	if (ret)
 		return ret;
 
-	ret = cci_write(ov02c10->regmap, OV02C10_REG_STREAM_CONTROL, 1, NULL);
-	if (ret)
-		dev_err(&client->dev, "failed to start streaming");
-
-	return ret;
+	return cci_write(ov02c10->regmap, OV02C10_REG_STREAM_CONTROL, 1, NULL);
 }
 
 static void ov02c10_stop_streaming(struct ov02c10 *ov02c10)
 {
-	struct i2c_client *client = v4l2_get_subdevdata(&ov02c10->sd);
-	int ret = 0;
-
-	ret = cci_write(ov02c10->regmap, OV02C10_REG_STREAM_CONTROL, 0, NULL);
-	if (ret)
-		dev_err(&client->dev, "failed to stop streaming");
+	cci_write(ov02c10->regmap, OV02C10_REG_STREAM_CONTROL, 0, NULL);
 }
 
 static int ov02c10_set_stream(struct v4l2_subdev *sd, int enable)
@@ -900,10 +887,9 @@ static int ov02c10_identify_module(struct ov02c10 *ov02c10)
 {
 	struct i2c_client *client = v4l2_get_subdevdata(&ov02c10->sd);
 	u64 chip_id;
-	u32 ret = 0;
+	int ret;
 
-	ov02c10->regmap = devm_cci_regmap_init_i2c(client, 16);
-	cci_read(ov02c10->regmap, OV02C10_REG_CHIP_ID, &chip_id, &ret);
+	ret = cci_read(ov02c10->regmap, OV02C10_REG_CHIP_ID, &chip_id, NULL);
 	if (ret)
 		return ret;
 
@@ -1009,6 +995,10 @@ static int ov02c10_probe(struct i2c_client *client)
 	v4l2_i2c_subdev_init(&ov02c10->sd, client, &ov02c10_subdev_ops);
 	ov02c10_get_pm_resources(&client->dev);
 
+	ov02c10->regmap = devm_cci_regmap_init_i2c(client, 16);
+	if (IS_ERR(ov02c10->regmap))
+		return PTR_ERR(ov02c10->regmap);
+
 	ret = ov02c10_power_on(&client->dev);
 	if (ret) {
 		dev_err_probe(&client->dev, ret, "failed to power on\n");
-- 
2.48.1





[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux