Skip to contentSkip to conversation

backlight: s6e63m0: report ->gamma_table_count correctly

PATCH In review Dan Carpenter 3 participants 3 messages Jan 24, 2013 – Jan 30, 2013

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 backlight: s6e63m0: report ->gamma_table_count correctly

gamma_table has 3 arrays which each hold MAX_GAMMA_LEVEL pointers to int.

The current code sets ->gamma_table_count to 6 on 64bit arches and to 3 on 32 bit arches. It should be 3 on everything.

---
This is from reading the code. We use ->gamma_table_count in sysfs file but other than that I'm not sure what it's for. I am not very familiar with this code.

drivers/video/backlight/s6e63m0.c +1 -0
index 2126b96..9c2677f 100644
@@ -766,7 +766,7 @@ static int s6e63m0_probe(struct spi_device *spi)
 	 * know that.
 	 */
 	lcd->gamma_table_count -	    sizeof(gamma_table) / (MAX_GAMMA_LEVEL * sizeof(int));
+	    sizeof(gamma_table) / (MAX_GAMMA_LEVEL * sizeof(int *));
 
 	ret = device_create_file(&(spi->dev), &dev_attr_gamma_mode);
 	if (ret < 0)
#1 lore raw

On Thursday, January 24, 2013 10:45 PM, Dan Carpenter wrote

CC'ed Andrew Morton, Inki Dae.

Quoted 6 lines

gamma_table has 3 arrays which each hold MAX_GAMMA_LEVEL pointers to int.

The current code sets ->gamma_table_count to 6 on 64bit arches and to 3 on 32 bit arches. It should be 3 on everything.

Actually, I don't know it is right.
However, it is certain that this panel is currently used on 32 bit arches such as ARM SoCs.

Quoted 23 lines

---
This is from reading the code. We use ->gamma_table_count in sysfs file but other than that I'm not sure what it's for. I am not very familiar with this code.

drivers/video/backlight/s6e63m0.c +1 -1
index 2126b96..9c2677f 100644
@@ -766,7 +766,7 @@ static int s6e63m0_probe(struct spi_device *spi)
 	 * know that.
 	 */
 	lcd->gamma_table_count > -	    sizeof(gamma_table) / (MAX_GAMMA_LEVEL * sizeof(int));
+	    sizeof(gamma_table) / (MAX_GAMMA_LEVEL * sizeof(int *));
 
 	ret = device_create_file(&(spi->dev), &dev_attr_gamma_mode);
 	if (ret < 0)
--

To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#2 lore raw
Quoted 8 lines · On Fri, 25 Jan 2013 11:22:06 +0900 Jingoo Han <[email protected]> wrote:

On Thursday, January 24, 2013 10:45 PM, Dan Carpenter wrote

CC'ed Andrew Morton, Inki Dae.

Quoted 4 lines

gamma_table has 3 arrays which each hold MAX_GAMMA_LEVEL pointers to int.

Quoted 6 lines
Quoted 2 lines

The current code sets ->gamma_table_count to 6 on 64bit arches and to 3 on 32 bit arches. It should be 3 on everything.

Actually, I don't know it is right.
However, it is certain that this panel is currently used on 32 bit arches such as ARM SoCs.

I don't know what gamma_table_count is supposed to do. The only place it is used is in s6e63m0_sysfs_show_gamma_table(). That function doesn't actually show the table - it just prints out gamme_table_count. Why is that useful?

Ho hum, the patch is clearly correct - the array stores int*'s and the sysfs file should display "3" for all architectures. However I suspect we could just remove the whole sysfs file and nobody would care...