Skip to contentSkip to conversation

drivers/video: compile fixes for fsl-diu-fb.c

PATCH Applied Michael Neuling 4 participants 9 messages Jan 16, 2012 – Feb 5, 2012 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drivers/video: compile fixes for fsl-diu-fb.c

Fix a bunch of compiler errors and warnings introduced in:
commit ddd3d905436b572ebadc09dcf2d12ca5b37020a0
Author: Timur Tabi <[email protected]>
drivers/video: fsl-diu-fb: merge all allocated data into one block

---
Timur: you do compile test your patches, right? :-P

This is effecting mpc85xx_defconfig on mainline (and has been in linux-next for while already).

drivers/video/fsl-diu-fb.c +12 -12
index acf292b..78cac52 100644
@@ -366,7 +366,7 @@ struct mfb_info {
  */
 struct fsl_diu_data {
 	dma_addr_t dma_addr;
-	struct fb_info fsl_diu_info[NUM_AOIS];
+	struct fb_info *fsl_diu_info[NUM_AOIS];
 	struct mfb_info mfb[NUM_AOIS];
 	struct device_attribute dev_attr;
 	unsigned int irq;
@@ -608,8 +608,8 @@ static void adjust_aoi_size_position(struct fb_var_screeninfo *var,
 	int lower_aoi_is_open, upper_aoi_is_open;
 	__u32 base_plane_width, base_plane_height, upper_aoi_height;
 
-	base_plane_width = data->fsl_diu_info[0].var.xres;
-	base_plane_height = data->fsl_diu_info[0].var.yres;
+	base_plane_width = data->fsl_diu_info[0]->var.xres;
+	base_plane_height = data->fsl_diu_info[0]->var.yres;
 
 	if (mfbi->x_aoi_d < 0)
 		mfbi->x_aoi_d = 0;
@@ -624,7 +624,7 @@ static void adjust_aoi_size_position(struct fb_var_screeninfo *var,
 		break;
 	case PLANE1_AOI0:
 	case PLANE2_AOI0:
-		lower_aoi_mfbi = data->fsl_diu_info[index+1].par;
+		lower_aoi_mfbi = data->fsl_diu_info[index+1]->par;
 		lower_aoi_is_open = lower_aoi_mfbi->count > 0 ? 1 : 0;
 		if (var->xres > base_plane_width)
 			var->xres = base_plane_width;
@@ -642,8 +642,8 @@ static void adjust_aoi_size_position(struct fb_var_screeninfo *var,
 		break;
 	case PLANE1_AOI1:
 	case PLANE2_AOI1:
-		upper_aoi_mfbi = data->fsl_diu_info[index-1].par;
-		upper_aoi_height = data->fsl_diu_info[index-1].var.yres;
+		upper_aoi_mfbi = data->fsl_diu_info[index-1]->par;
+		upper_aoi_height = data->fsl_diu_info[index-1]->var.yres;
 		upper_aoi_bottom = upper_aoi_mfbi->y_aoi_d + upper_aoi_height;
 		upper_aoi_is_open = upper_aoi_mfbi->count > 0 ? 1 : 0;
 		if (var->xres > base_plane_width)
@@ -1469,7 +1469,7 @@ static ssize_t store_monitor(struct device *device,
 		unsigned int i;
 
 		for (i=0; i < NUM_AOIS; i++)
-			fsl_diu_set_par(&data->fsl_diu_info[i]);
+			fsl_diu_set_par(data->fsl_diu_info[i]);
 	}
 	return count;
 }
@@ -1524,7 +1524,7 @@ static int __devinit fsl_diu_probe(struct platform_device *pdev)
 	spin_lock_init(&data->reg_lock);
 
 	for (i = 0; i < NUM_AOIS; i++) {
-		struct fb_info *info = &data->fsl_diu_info[i];
+		struct fb_info *info = data->fsl_diu_info[i];
 
 		info->device = &pdev->dev;
 		info->par = &data->mfb[i];
@@ -1597,7 +1597,7 @@ static int __devinit fsl_diu_probe(struct platform_device *pdev)
 	out_be32(&data->diu_reg->desc[2], data->dummy_ad.paddr);
 
 	for (i = 0; i < NUM_AOIS; i++) {
-		ret = install_fb(&data->fsl_diu_info[i]);
+		ret = install_fb(data->fsl_diu_info[i]);
 		if (ret) {
 			dev_err(&pdev->dev, "could not register fb %d\n", i);
 			goto error;
@@ -1625,7 +1625,7 @@ static int __devinit fsl_diu_probe(struct platform_device *pdev)
 
 error:
 	for (i = 0; i < NUM_AOIS; i++)
-		uninstall_fb(&data->fsl_diu_info[i]);
+		uninstall_fb(data->fsl_diu_info[i]);
 
 	iounmap(data->diu_reg);
 
@@ -1641,11 +1641,11 @@ static int fsl_diu_remove(struct platform_device *pdev)
 	int i;
 
 	data = dev_get_drvdata(&pdev->dev);
-	disable_lcdc(&data->fsl_diu_info[0]);
+	disable_lcdc(data->fsl_diu_info[0]);
 	free_irq_local(data);
 
 	for (i = 0; i < NUM_AOIS; i++)
-		uninstall_fb(&data->fsl_diu_info[i]);
+		uninstall_fb(data->fsl_diu_info[i]);
 
 	iounmap(data->diu_reg);
 
#1 lore raw
Quoted 8 lines · Michael Neuling

Fix a bunch of compiler errors and warnings introduced in:
commit ddd3d905436b572ebadc09dcf2d12ca5b37020a0
Author: Timur Tabi<[email protected]>
drivers/video: fsl-diu-fb: merge all allocated data into one block

---
Timur: you do compile test your patches, right? :-P

I have a script that tests each commit in a set to make sure it compiles, so that git-bisect isn't broken.

drivers/video/fsl-diu-fb.c struct mfb_info { · line 369

Quoted 13 lines

This is effecting mpc85xx_defconfig on mainline (and has been in linux-next for while already).

drivers/video/fsl-diu-fb.c +1 -1
index acf292b..78cac52 100644
@@ -366,7 +366,7 @@ struct mfb_info {
   */
  struct fsl_diu_data {
  	dma_addr_t dma_addr;
-	struct fb_info fsl_diu_info[NUM_AOIS];
+	struct fb_info *fsl_diu_info[NUM_AOIS];

This doesn't make any sense. If you change fsl_diu_info into a pointer, then where is the object being allocated?

Signature · 2 lines
Timur Tabi
Linux kernel developer at Freescale
#2 lore raw
Quoted 6 lines · In message <[email protected]> you wrote:
Quoted 5 lines · Michael Neuling

Fix a bunch of compiler errors and warnings introduced in:
commit ddd3d905436b572ebadc09dcf2d12ca5b37020a0
Author: Timur Tabi<[email protected]>
drivers/video: fsl-diu-fb: merge all allocated data into one block

Quoted 6 lines
Quoted 3 lines

---
Timur: you do compile test your patches, right? :-P

I have a script that tests each commit in a set to make sure it compiles, so that git-bisect isn't broken.

May I suggest you actually run the script next time :-P

Quoted 16 lines

drivers/video/fsl-diu-fb.c struct mfb_info { · line 369

Quoted 13 lines

This is effecting mpc85xx_defconfig on mainline (and has been in linux-next for while already).

drivers/video/fsl-diu-fb.c +1 -1
index acf292b..78cac52 100644
@@ -366,7 +366,7 @@ struct mfb_info {
   */
  struct fsl_diu_data {
  	dma_addr_t dma_addr;
-	struct fb_info fsl_diu_info[NUM_AOIS];
+	struct fb_info *fsl_diu_info[NUM_AOIS];

This doesn't make any sense. If you change fsl_diu_info into a pointer, then where is the object being allocated?

OK, how about this?

From: Michael Neuling <[email protected]>

[PATCH] drivers/video: compile fixes for fsl-diu-fb.c

Fix a compiler errors introduced in:
commit ddd3d905436b572ebadc09dcf2d12ca5b37020a0
Author: Timur Tabi <[email protected]>
drivers/video: fsl-diu-fb: merge all allocated data into one block

drivers/video/fsl-diu-fb.c +2 -2
index acf292b..3006b2b 100644
@@ -1432,7 +1432,7 @@ static int fsl_diu_suspend(struct platform_device *ofdev, pm_message_t state)
 	struct fsl_diu_data *data;
 
 	data = dev_get_drvdata(&ofdev->dev);
-	disable_lcdc(data->fsl_diu_info[0]);
+	disable_lcdc(&(data->fsl_diu_info[0]));
 
 	return 0;
 }
@@ -1442,7 +1442,7 @@ static int fsl_diu_resume(struct platform_device *ofdev)
 	struct fsl_diu_data *data;
 
 	data = dev_get_drvdata(&ofdev->dev);
-	enable_lcdc(data->fsl_diu_info[0]);
+	enable_lcdc(&(data->fsl_diu_info[0]));
 
 	return 0;
 }
#3 lore raw
Quoted 7 lines · Michael Neuling
Quoted 6 lines · In message<[email protected]> you wrote:
Quoted 5 lines · Michael Neuling

Fix a bunch of compiler errors and warnings introduced in:
commit ddd3d905436b572ebadc09dcf2d12ca5b37020a0
Author: Timur Tabi<[email protected]>
drivers/video: fsl-diu-fb: merge all allocated data into one block

Quoted 8 lines
Quoted 6 lines
Quoted 3 lines

---
Timur: you do compile test your patches, right? :-P

I have a script that tests each commit in a set to make sure it compiles, so that git-bisect isn't broken.

May I suggest you actually run the script next time :-P

Tomorrow, when I get into the office, I'll take a look. But my code has always compiled. Can you give me the output of your compiler?

Quoted 14 lines
drivers/video/fsl-diu-fb.c +1 -1
index acf292b..3006b2b 100644
@@ -1432,7 +1432,7 @@ static int fsl_diu_suspend(struct platform_device *ofdev, pm_message_t state)
  	struct fsl_diu_data *data;
 
  	data = dev_get_drvdata(&ofdev->dev);
-	disable_lcdc(data->fsl_diu_info[0]);
+	disable_lcdc(&(data->fsl_diu_info[0]));
 
  	return 0;
  }

drivers/video/fsl-diu-fb.c static int fsl_diu_resume(struct platform_device *ofdev) · line 1445

Quoted 5 lines
drivers/video/fsl-diu-fb.c +1 -1
@@ -1442,7 +1442,7 @@ static int fsl_diu_resume(struct platform_device *ofdev)
  	struct fsl_diu_data *data;
 
  	data = dev_get_drvdata(&ofdev->dev);
-	enable_lcdc(data->fsl_diu_info[0]);
+	enable_lcdc(&(data->fsl_diu_info[0]));

I prefer this:

	disable_lcdc(data->fsl_diu_info);

Your change makes sense. I don't understand why it compiles on my system.
Something strange is going on.

Signature · 2 lines
Timur Tabi
Linux kernel developer at Freescale
#4 lore raw
Quoted 12 lines · In message <[email protected]> you wrote:
Quoted 11 lines · Michael Neuling
Quoted 10 lines · In message<[email protected]> you wrote:
Quoted 8 lines · Michael Neuling

Fix a bunch of compiler errors and warnings introduced in:
commit ddd3d905436b572ebadc09dcf2d12ca5b37020a0
Author: Timur Tabi<[email protected]>
drivers/video: fsl-diu-fb: merge all allocated data into one block

---
Timur: you do compile test your patches, right? :-P

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines

I have a script that tests each commit in a set to make sure it compiles> , so that git-bisect isn't broken.

May I suggest you actually run the script next time :-P

Tomorrow, when I get into the office, I'll take a look. But my code has always compiled. Can you give me the output of your compiler?

drivers/video/fsl-diu-fb.c: In function 'fsl_diu_suspend':
drivers/video/fsl-diu-fb.c:1435: error: incompatible type for argument 1 of 'disable_lcdc' drivers/video/fsl-diu-fb.c:592: note: expected 'struct fb_info *' but argument is of type 'struct fb_info' drivers/video/fsl-diu-fb.c: In function 'fsl_diu_resume':
drivers/video/fsl-diu-fb.c:1445: error: incompatible type for argument 1 of 'enable_lcdc' drivers/video/fsl-diu-fb.c:583: note: expected 'struct fb_info *' but argument is of type 'struct fb_info'

Quoted 23 lines
Quoted 15 lines
drivers/video/fsl-diu-fb.c +1 -1
index acf292b..3006b2b 100644
@@ -1432,7 +1432,7 @@ static int fsl_diu_suspend(struct platform_device *> ofdev, pm_message_t state)
  	struct fsl_diu_data *data;
 
  	data = dev_get_drvdata(&ofdev->dev);
-	disable_lcdc(data->fsl_diu_info[0]);
+	disable_lcdc(&(data->fsl_diu_info[0]));
 
  	return 0;
  }

drivers/video/fsl-diu-fb.c static int fsl_diu_resume(struct platform_device *o> fdev) · line 1445

Quoted 5 lines
drivers/video/fsl-diu-fb.c +1 -1
@@ -1442,7 +1442,7 @@ static int fsl_diu_resume(struct platform_device *o> fdev)
  	struct fsl_diu_data *data;
 
  	data = dev_get_drvdata(&ofdev->dev);
-	enable_lcdc(data->fsl_diu_info[0]);
+	enable_lcdc(&(data->fsl_diu_info[0]));

I prefer this:

Quoted 4 lines
	disable_lcdc(data->fsl_diu_info);

Your change makes sense. I don't understand why it compiles on my system.
Something strange is going on.

Sure.

Mikey

From: Michael Neuling <[email protected]>

[PATCH] drivers/video: compile fixes for fsl-diu-fb.c

Fix a compiler errors introduced in:
commit ddd3d905436b572ebadc09dcf2d12ca5b37020a0
Author: Timur Tabi <[email protected]>
drivers/video: fsl-diu-fb: merge all allocated data into one block

drivers/video/fsl-diu-fb.c +2 -2
index acf292b..6af3f16 100644
@@ -1432,7 +1432,7 @@ static int fsl_diu_suspend(struct platform_device *ofdev, pm_message_t state)
 	struct fsl_diu_data *data;
 
 	data = dev_get_drvdata(&ofdev->dev);
-	disable_lcdc(data->fsl_diu_info[0]);
+	disable_lcdc(data->fsl_diu_info);
 
 	return 0;
 }
@@ -1442,7 +1442,7 @@ static int fsl_diu_resume(struct platform_device *ofdev)
 	struct fsl_diu_data *data;
 
 	data = dev_get_drvdata(&ofdev->dev);
-	enable_lcdc(data->fsl_diu_info[0]);
+	enable_lcdc(data->fsl_diu_info);
 
 	return 0;
 }
#5 lore raw
Quoted 6 lines · Michael Neuling

drivers/video/fsl-diu-fb.c: In function 'fsl_diu_suspend':
drivers/video/fsl-diu-fb.c:1435: error: incompatible type for argument 1 of 'disable_lcdc' drivers/video/fsl-diu-fb.c:592: note: expected 'struct fb_info *' but argument is of type 'struct fb_info' drivers/video/fsl-diu-fb.c: In function 'fsl_diu_resume':
drivers/video/fsl-diu-fb.c:1445: error: incompatible type for argument 1 of 'enable_lcdc' drivers/video/fsl-diu-fb.c:583: note: expected 'struct fb_info *' but argument is of type 'struct fb_info'

I figured out what the problem is. I never compiled a configuration with CONFIG_PM enabled. For some reason, CONFIG_PM is disabled when SMP is enabled, and I only tested with mpc85xx_smp_defconfig.

Signature · 2 lines
Timur Tabi
Linux kernel developer at Freescale
Acked-by
#6 lore raw
In reply to Michael Neuling
Quoted 10 lines · Michael Neuling

From: Michael Neuling <[email protected]>

[PATCH] drivers/video: compile fixes for fsl-diu-fb.c

Fix a compiler errors introduced in:
commit ddd3d905436b572ebadc09dcf2d12ca5b37020a0
Author: Timur Tabi <[email protected]>
drivers/video: fsl-diu-fb: merge all allocated data into one block

Signature · 2 lines
Timur Tabi
Linux kernel developer at Freescale
#7 lore raw
In reply to Michael Neuling

On 01/16/2012 03:08 AM, Michael Neuling wrote:
[...]

Quoted 10 lines

From: Michael Neuling <[email protected]>

[PATCH] drivers/video: compile fixes for fsl-diu-fb.c

Fix a compiler errors introduced in:
commit ddd3d905436b572ebadc09dcf2d12ca5b37020a0
Author: Timur Tabi <[email protected]>
drivers/video: fsl-diu-fb: merge all allocated data into one block

Applied.

Thanks,

Florian Tobias Schandinat

Quoted 24 lines
drivers/video/fsl-diu-fb.c +2 -2
index acf292b..6af3f16 100644
@@ -1432,7 +1432,7 @@ static int fsl_diu_suspend(struct platform_device *ofdev, pm_message_t state)
 	struct fsl_diu_data *data;
 
 	data = dev_get_drvdata(&ofdev->dev);
-	disable_lcdc(data->fsl_diu_info[0]);
+	disable_lcdc(data->fsl_diu_info);
 
 	return 0;
 }
@@ -1442,7 +1442,7 @@ static int fsl_diu_resume(struct platform_device *ofdev)
 	struct fsl_diu_data *data;
 
 	data = dev_get_drvdata(&ofdev->dev);
-	enable_lcdc(data->fsl_diu_info[0]);
+	enable_lcdc(data->fsl_diu_info);
 
 	return 0;
 }
#8 lore raw
Quoted 6 lines · In message <[email protected]> you wrote:

On 01/16/2012 03:08 AM, Michael Neuling wrote:
[...]

Quoted 4 lines

From: Michael Neuling <[email protected]>

[PATCH] drivers/video: compile fixes for fsl-diu-fb.c

Quoted 8 lines
Quoted 6 lines

Fix a compiler errors introduced in:
commit ddd3d905436b572ebadc09dcf2d12ca5b37020a0
Author: Timur Tabi <[email protected]>
drivers/video: fsl-diu-fb: merge all allocated data into one block

Applied.

Florian,

I've not seen this appear in mainline as yet.

When do you expect to send a pull request?

Mikey