Rebased RPi foundation patches on linux 5.10.59, removed applied and reverted patches, wireless patches and defconfig patches. bcm2708: boot tested on RPi B+ v1.2 bcm2709: boot tested on RPi 4B v1.1 4G bcm2711: boot tested on RPi 4B v1.1 4G Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 4e0e8f87b81ed1dfa9876e0ce4492cc8f64c935a Mon Sep 17 00:00:00 2001
 | 
						|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
 | 
						|
Date: Fri, 26 Jun 2020 18:11:49 +0100
 | 
						|
Subject: [PATCH] media: i2c: imx290: Switch set_hmax to use
 | 
						|
 imx290_write_buffered_reg
 | 
						|
 | 
						|
imx290_set_hmax was using two independent writes to set up hmax,
 | 
						|
when all other multi-register writes were using imx290_write_buffered_reg
 | 
						|
which claims the group hold first.
 | 
						|
 | 
						|
Switch imx290_set_hmax to using imx290_write_buffered_reg too.
 | 
						|
 | 
						|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 | 
						|
---
 | 
						|
 drivers/media/i2c/imx290.c | 15 ++++-----------
 | 
						|
 1 file changed, 4 insertions(+), 11 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/media/i2c/imx290.c
 | 
						|
+++ b/drivers/media/i2c/imx290.c
 | 
						|
@@ -568,19 +568,12 @@ static int imx290_set_hmax(struct imx290
 | 
						|
 	u32 hmax = val + imx290->current_mode->width;
 | 
						|
 	int ret;
 | 
						|
 
 | 
						|
-	ret = imx290_write_reg(imx290, IMX290_HMAX_LOW, (hmax & 0xff));
 | 
						|
-	if (ret) {
 | 
						|
+	ret = imx290_write_buffered_reg(imx290, IMX290_HMAX_LOW, 2,
 | 
						|
+					hmax);
 | 
						|
+	if (ret)
 | 
						|
 		dev_err(imx290->dev, "Error setting HMAX register\n");
 | 
						|
-		return ret;
 | 
						|
-	}
 | 
						|
 
 | 
						|
-	ret = imx290_write_reg(imx290, IMX290_HMAX_HIGH, ((hmax >> 8) & 0xff));
 | 
						|
-	if (ret) {
 | 
						|
-		dev_err(imx290->dev, "Error setting HMAX register\n");
 | 
						|
-		return ret;
 | 
						|
-	}
 | 
						|
-
 | 
						|
-	return 0;
 | 
						|
+	return ret;
 | 
						|
 }
 | 
						|
 
 | 
						|
 static int imx290_set_vmax(struct imx290 *imx290, u32 val)
 |