[PATCH v2 26/28] drm/i2c: tda998x: code optimization

Subsystems: drm drivers, drm drivers and misc gpu patches, the rest

STALE4642d

6 messages, 2 authors, 2014-01-12 · open the first message on its own page

[PATCH v2 26/28] drm/i2c: tda998x: code optimization

From: Jean-Francois Moine <hidden>
Date: 2014-01-09 11:13:29

This patch reduces the number of I2C exchanges by setting many bits in
one write and removing a useless write.

Signed-off-by: Jean-Francois Moine <redacted>
---
 drivers/gpu/drm/i2c/tda998x_drv.c   | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index 6b4f6d2..d3b3f3a 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -751,10 +751,10 @@ tda998x_configure_audio(struct tda998x_priv *priv,
 	}
 
 	reg_write(priv, REG_AIP_CLKSEL, clksel_aip);
-	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT);
+	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT |
 
 	/* Enable automatic CTS generation */
-	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_ACR_MAN);
+					AIP_CNTRL_0_ACR_MAN);
 	reg_write(priv, REG_CTS_N, cts_n);
 
 	/*
@@ -1001,10 +1001,10 @@ tda998x_encoder_mode_set(struct drm_encoder *encoder,
 	reg_write(priv, REG_VIP_CNTRL_5, VIP_CNTRL_5_SP_CNT(0));
 	reg_write(priv, REG_VIP_CNTRL_4, VIP_CNTRL_4_BLANKIT(0) |
 			VIP_CNTRL_4_BLC(0));
-	reg_clear(priv, REG_PLL_SERIAL_3, PLL_SERIAL_3_SRL_CCIR);
 
 	reg_clear(priv, REG_PLL_SERIAL_1, PLL_SERIAL_1_SRL_MAN_IZ);
-	reg_clear(priv, REG_PLL_SERIAL_3, PLL_SERIAL_3_SRL_DE);
+	reg_clear(priv, REG_PLL_SERIAL_3, PLL_SERIAL_3_SRL_CCIR |
+					  PLL_SERIAL_3_SRL_DE);
 	reg_write(priv, REG_SERIALIZER, 0);
 
 	/* video quantization range = 0: full, 1: RGB/YUV, 2: YUV */
@@ -1026,8 +1026,6 @@ tda998x_encoder_mode_set(struct drm_encoder *encoder,
 	/* set BIAS tmds value: */
 	reg_write(priv, REG_ANA_GENERAL, 0x09);
 
-	reg_write(priv, REG_TBG_CNTRL_0, 0);
-
 	/*
 	 * Sync on rising HSYNC/VSYNC
 	 */
-- 
Ken ar c'henta?	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/

Re: [PATCH v2 26/28] drm/i2c: tda998x: code optimization

From: Russell King - ARM Linux <hidden>
Date: 2014-01-11 18:55:19

On Thu, Jan 09, 2014 at 12:07:25PM +0100, Jean-Francois Moine wrote:
quoted hunk
This patch reduces the number of I2C exchanges by setting many bits in
one write and removing a useless write.

Signed-off-by: Jean-Francois Moine <redacted>
---
 drivers/gpu/drm/i2c/tda998x_drv.c   | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index 6b4f6d2..d3b3f3a 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -751,10 +751,10 @@ tda998x_configure_audio(struct tda998x_priv *priv,
 	}
 
 	reg_write(priv, REG_AIP_CLKSEL, clksel_aip);
-	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT);
+	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT |
This patch clearly hasn't even been build tested, so I doubt there's
much point reviewing this or the following patches.  From a quick scan
of the following patches, this never got fixed so the following patches
can't have been build tested either.

Thanks.

-- 
FTTC broadband for 0.8mile line: 5.8Mbps down 500kbps up.  Estimation
in database were 13.1 to 19Mbit for a good line, about 7.5+ for a bad.
Estimate before purchase was "up to 13.2Mbit".

Re: [PATCH v2 26/28] drm/i2c: tda998x: code optimization

From: Jean-Francois Moine <hidden>
Date: 2014-01-12 08:22:38

On Sat, 11 Jan 2014 18:55:09 +0000
Russell King - ARM Linux [off-list ref] wrote:
On Thu, Jan 09, 2014 at 12:07:25PM +0100, Jean-Francois Moine wrote:
quoted
This patch reduces the number of I2C exchanges by setting many bits in
one write and removing a useless write.

Signed-off-by: Jean-Francois Moine <redacted>
---
 drivers/gpu/drm/i2c/tda998x_drv.c   | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index 6b4f6d2..d3b3f3a 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -751,10 +751,10 @@ tda998x_configure_audio(struct tda998x_priv *priv,
 	}
 
 	reg_write(priv, REG_AIP_CLKSEL, clksel_aip);
-	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT);
+	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT |
This patch clearly hasn't even been build tested, so I doubt there's
much point reviewing this or the following patches.  From a quick scan
of the following patches, this never got fixed so the following patches
can't have been build tested either.
I don't see what can be the problem with this patch. It does not change
anything in the logic. About testing, it is applied to my Cubox kernel
for more than 4 months and everything works correctly.

I will move the following comment a bit upwards. Maybe the code will be
clearer.

-- 
Ken ar c'henta?	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/

Re: [PATCH v2 26/28] drm/i2c: tda998x: code optimization

From: Russell King - ARM Linux <hidden>
Date: 2014-01-12 09:45:46

On Sun, Jan 12, 2014 at 09:22:01AM +0100, Jean-Francois Moine wrote:
On Sat, 11 Jan 2014 18:55:09 +0000
Russell King - ARM Linux [off-list ref] wrote:
quoted
On Thu, Jan 09, 2014 at 12:07:25PM +0100, Jean-Francois Moine wrote:
quoted
This patch reduces the number of I2C exchanges by setting many bits in
one write and removing a useless write.

Signed-off-by: Jean-Francois Moine <redacted>
---
 drivers/gpu/drm/i2c/tda998x_drv.c   | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index 6b4f6d2..d3b3f3a 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -751,10 +751,10 @@ tda998x_configure_audio(struct tda998x_priv *priv,
 	}
 
 	reg_write(priv, REG_AIP_CLKSEL, clksel_aip);
-	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT);
+	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT |
This patch clearly hasn't even been build tested, so I doubt there's
much point reviewing this or the following patches.  From a quick scan
of the following patches, this never got fixed so the following patches
can't have been build tested either.
I don't see what can be the problem with this patch. It does not change
anything in the logic. About testing, it is applied to my Cubox kernel
for more than 4 months and everything works correctly.

I will move the following comment a bit upwards. Maybe the code will be
clearer.
You're replacing ");" with "|" here, which is not legal C.  Parenthesis
must be balanced and statements must be terminated.

-- 
FTTC broadband for 0.8mile line: 5.8Mbps down 500kbps up.  Estimation
in database were 13.1 to 19Mbit for a good line, about 7.5+ for a bad.
Estimate before purchase was "up to 13.2Mbit".

Re: [PATCH v2 26/28] drm/i2c: tda998x: code optimization

From: Jean-Francois Moine <hidden>
Date: 2014-01-12 10:15:20

On Sun, 12 Jan 2014 09:45:33 +0000
Russell King - ARM Linux [off-list ref] wrote:
On Sun, Jan 12, 2014 at 09:22:01AM +0100, Jean-Francois Moine wrote:
quoted
On Sat, 11 Jan 2014 18:55:09 +0000
Russell King - ARM Linux [off-list ref] wrote:
quoted
On Thu, Jan 09, 2014 at 12:07:25PM +0100, Jean-Francois Moine wrote:
quoted
This patch reduces the number of I2C exchanges by setting many bits in
one write and removing a useless write.

Signed-off-by: Jean-Francois Moine <redacted>
---
 drivers/gpu/drm/i2c/tda998x_drv.c   | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index 6b4f6d2..d3b3f3a 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -751,10 +751,10 @@ tda998x_configure_audio(struct tda998x_priv *priv,
 	}
 
 	reg_write(priv, REG_AIP_CLKSEL, clksel_aip);
-	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT);
+	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT |
This patch clearly hasn't even been build tested, so I doubt there's
much point reviewing this or the following patches.  From a quick scan
of the following patches, this never got fixed so the following patches
can't have been build tested either.
I don't see what can be the problem with this patch. It does not change
anything in the logic. About testing, it is applied to my Cubox kernel
for more than 4 months and everything works correctly.

I will move the following comment a bit upwards. Maybe the code will be
clearer.
You're replacing ");" with "|" here, which is not legal C.  Parenthesis
must be balanced and statements must be terminated.
!? they are:

-	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT);
+	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT |
 
 	/* Enable automatic CTS generation */
-	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_ACR_MAN);
+					AIP_CNTRL_0_ACR_MAN);

gives:

	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT |

	/* Enable automatic CTS generation */
					AIP_CNTRL_0_ACR_MAN);


-- 
Ken ar c'henta?	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/

Re: [PATCH v2 26/28] drm/i2c: tda998x: code optimization

From: Russell King - ARM Linux <hidden>
Date: 2014-01-12 10:38:10

On Sun, Jan 12, 2014 at 11:14:20AM +0100, Jean-Francois Moine wrote:
On Sun, 12 Jan 2014 09:45:33 +0000
Russell King - ARM Linux [off-list ref] wrote:
quoted
On Sun, Jan 12, 2014 at 09:22:01AM +0100, Jean-Francois Moine wrote:
quoted
On Sat, 11 Jan 2014 18:55:09 +0000
Russell King - ARM Linux [off-list ref] wrote:
quoted
On Thu, Jan 09, 2014 at 12:07:25PM +0100, Jean-Francois Moine wrote:
quoted
This patch reduces the number of I2C exchanges by setting many bits in
one write and removing a useless write.

Signed-off-by: Jean-Francois Moine <redacted>
---
 drivers/gpu/drm/i2c/tda998x_drv.c   | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
index 6b4f6d2..d3b3f3a 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -751,10 +751,10 @@ tda998x_configure_audio(struct tda998x_priv *priv,
 	}
 
 	reg_write(priv, REG_AIP_CLKSEL, clksel_aip);
-	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT);
+	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT |
This patch clearly hasn't even been build tested, so I doubt there's
much point reviewing this or the following patches.  From a quick scan
of the following patches, this never got fixed so the following patches
can't have been build tested either.
I don't see what can be the problem with this patch. It does not change
anything in the logic. About testing, it is applied to my Cubox kernel
for more than 4 months and everything works correctly.

I will move the following comment a bit upwards. Maybe the code will be
clearer.
You're replacing ");" with "|" here, which is not legal C.  Parenthesis
must be balanced and statements must be terminated.
!? they are:

-	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT);
+	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT |
 
 	/* Enable automatic CTS generation */
-	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_ACR_MAN);
+					AIP_CNTRL_0_ACR_MAN);

gives:

	reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT |

	/* Enable automatic CTS generation */
					AIP_CNTRL_0_ACR_MAN);
Yuck, that's absolutely horrid.  No wonder I mis-read it.  NAK for bad
and confusing style.

-- 
FTTC broadband for 0.8mile line: 5.8Mbps down 500kbps up.  Estimation
in database were 13.1 to 19Mbit for a good line, about 7.5+ for a bad.
Estimate before purchase was "up to 13.2Mbit".
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help