Linux Framebuffer Layer development
 help / color / mirror / Atom feed
* Re: [PATCH v2] backlight: Convert from Legacy pm ops to dev_pm_ops
From: Jingoo Han @ 2014-02-05  0:17 UTC (permalink / raw)
  To: 'Shuah Khan', 'Rafael J. Wysocki'
  Cc: 'Richard Purdie', 'Florian Tobias Schandinat',
	'Jean-Christophe PLAGNIOL-VILLARD',
	'Tomi Valkeinen', 'Rafael J. Wysocki',
	linux-fbdev, linux-kernel, 'Shuah Khan',
	'Jingoo Han'
In-Reply-To: <52F1298F.1040903@samsung.com>

On Wednesday, February 05, 2014 2:55 AM, Shuah Khan wrote:
> On 01/20/2014 08:27 AM, Shuah Khan wrote:
> > On 01/19/2014 06:34 PM, Jingoo Han wrote:
> >> On Monday, January 20, 2014 12:37 AM, Rafael J. Wysocki wrote:
> 
> > Rafael/Jingoo Han,
> >
> > I did send the v3 patch with the typo fixed. Here is the link:
> >
> > http://lkml.indiana.edu/hypermail/linux/kernel/1306.0/00219.html
> >
> > This is a while back. I will rebase and res-test and send it.
> >
> 
> Checked 3.14-rc1 and patch v3 is in there.
> 
> commit 3601792e7b68150420ea8dc129e26e167c0484d8

OK, I see. I checked that it was already merged to
mainline kernel. Thank you.

Best regards,
Jingoo Han


^ permalink raw reply

* [PATCH] backlight: replace kfree with put_device
From: Levente Kurusa @ 2014-02-07  8:43 UTC (permalink / raw)
  To: LKML, Jingoo Han, Jean-Christophe Plagniol-Villard,
	Tomi Valkeinen, FBDEV list
  Cc: Levente Kurusa

As per the comments on device_register, we shouldn't call kfree()
right after a device_register() failure. Instead call put_device(),
which in turn will call bl_device_release resulting in a kfree to the
full structure.

Signed-off-by: Levente Kurusa <levex@linux.com>
---
 drivers/video/backlight/backlight.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
index 5d05555..20b276e 100644
--- a/drivers/video/backlight/backlight.c
+++ b/drivers/video/backlight/backlight.c
@@ -333,7 +333,7 @@ struct backlight_device *backlight_device_register(const char *name,
 
 	rc = device_register(&new_bd->dev);
 	if (rc) {
-		kfree(new_bd);
+		put_device(&new_bd->dev);
 		return ERR_PTR(rc);
 	}
 
-- 
1.8.3.1


^ permalink raw reply related

* [PATCH] hyperv_fb: Add support for Gen2 VM
From: Haiyang Zhang @ 2014-02-08 16:35 UTC (permalink / raw)
  To: FlorianSchandinat, akpm, linux-fbdev
  Cc: olaf, gregkh, jasowang, driverdev-devel, linux-kernel, haiyangz

This patch enables Hyper-V FB driver to run on Gen2 VM.

The Gen2 VM provides MMIO area for synthetic video from ACPI module,
which is exported by vmbus. The generic video is provided by UEFI. PCI
video in Gen1 is no longer available.

To support synthetic video on Hyper-V Gen2 VM, this patch updated
code related to the changes above.

Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
---
 drivers/video/hyperv_fb.c |   60 ++++++++++++++++++++++++++++++--------------
 1 files changed, 41 insertions(+), 19 deletions(-)

diff --git a/drivers/video/hyperv_fb.c b/drivers/video/hyperv_fb.c
index bbcc8c0..5db1f20 100644
--- a/drivers/video/hyperv_fb.c
+++ b/drivers/video/hyperv_fb.c
@@ -42,6 +42,7 @@
 #include <linux/completion.h>
 #include <linux/fb.h>
 #include <linux/pci.h>
+#include <linux/efi.h>
 
 #include <linux/hyperv.h>
 
@@ -461,13 +462,13 @@ static int synthvid_connect_vsp(struct hv_device *hdev)
 		goto error;
 	}
 
-	if (par->synthvid_version = SYNTHVID_VERSION_WIN7) {
+	if (par->synthvid_version = SYNTHVID_VERSION_WIN7)
 		screen_depth = SYNTHVID_DEPTH_WIN7;
-		screen_fb_size = SYNTHVID_FB_SIZE_WIN7;
-	} else {
+	else
 		screen_depth = SYNTHVID_DEPTH_WIN8;
-		screen_fb_size = SYNTHVID_FB_SIZE_WIN8;
-	}
+
+	screen_fb_size = hdev->channel->offermsg.offer.
+				mmio_megabytes * 1024 * 1024;
 
 	return 0;
 
@@ -635,22 +636,33 @@ static void hvfb_get_option(struct fb_info *info)
 /* Get framebuffer memory from Hyper-V video pci space */
 static int hvfb_getmem(struct fb_info *info)
 {
-	struct pci_dev *pdev;
+	struct pci_dev *pdev  = NULL;
 	ulong fb_phys;
 	void __iomem *fb_virt;
+	bool gen2vm = efi_enabled(EFI_BOOT);
 
-	pdev = pci_get_device(PCI_VENDOR_ID_MICROSOFT,
+	if (gen2vm) {
+		if (!hyperv_mmio_start || hyperv_mmio_size < screen_fb_size) {
+			pr_err("Unable to find ACPI MMIO area\n");
+			return -ENODEV;
+		}
+
+		fb_phys = hyperv_mmio_start;
+	} else {
+		pdev = pci_get_device(PCI_VENDOR_ID_MICROSOFT,
 			      PCI_DEVICE_ID_HYPERV_VIDEO, NULL);
-	if (!pdev) {
-		pr_err("Unable to find PCI Hyper-V video\n");
-		return -ENODEV;
-	}
+		if (!pdev) {
+			pr_err("Unable to find PCI Hyper-V video\n");
+			return -ENODEV;
+		}
 
-	if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM) ||
-	    pci_resource_len(pdev, 0) < screen_fb_size)
-		goto err1;
+		if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM) ||
+		    pci_resource_len(pdev, 0) < screen_fb_size)
+			goto err1;
+
+		fb_phys = pci_resource_end(pdev, 0) - screen_fb_size + 1;
+	}
 
-	fb_phys = pci_resource_end(pdev, 0) - screen_fb_size + 1;
 	if (!request_mem_region(fb_phys, screen_fb_size, KBUILD_MODNAME))
 		goto err1;
 
@@ -662,14 +674,22 @@ static int hvfb_getmem(struct fb_info *info)
 	if (!info->apertures)
 		goto err3;
 
-	info->apertures->ranges[0].base = pci_resource_start(pdev, 0);
-	info->apertures->ranges[0].size = pci_resource_len(pdev, 0);
+	if (gen2vm) {
+		info->apertures->ranges[0].base = screen_info.lfb_base;
+		info->apertures->ranges[0].size = screen_info.lfb_size;
+	} else {
+		info->apertures->ranges[0].base = pci_resource_start(pdev, 0);
+		info->apertures->ranges[0].size = pci_resource_len(pdev, 0);
+	}
+
 	info->fix.smem_start = fb_phys;
 	info->fix.smem_len = screen_fb_size;
 	info->screen_base = fb_virt;
 	info->screen_size = screen_fb_size;
 
-	pci_dev_put(pdev);
+	if (!gen2vm)
+		pci_dev_put(pdev);
+
 	return 0;
 
 err3:
@@ -677,7 +697,9 @@ err3:
 err2:
 	release_mem_region(fb_phys, screen_fb_size);
 err1:
-	pci_dev_put(pdev);
+	if (!gen2vm)
+		pci_dev_put(pdev);
+
 	return -ENOMEM;
 }
 
-- 
1.7.4.1


^ permalink raw reply related

* [PATCH 01/28] Remove CPU_MMP3
From: Richard Weinberger @ 2014-02-09 18:47 UTC (permalink / raw)
  To: Felipe Balbi, Greg Kroah-Hartman,
	Jean-Christophe Plagniol-Villard, Tomi Valkeinen,
	open list:USB PHY LAYER, open list, open list:FRAMEBUFFER LAYER
  Cc: Richard Weinberger
In-Reply-To: <1391971686-9517-1-git-send-email-richard@nod.at>

The symbol is an orphan, get rid of it.

Signed-off-by: Richard Weinberger <richard@nod.at>
---
 drivers/usb/phy/Kconfig      | 1 -
 drivers/video/mmp/Kconfig    | 2 +-
 drivers/video/mmp/hw/Kconfig | 2 +-
 3 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig
index 7d1451d..b9b1c52 100644
--- a/drivers/usb/phy/Kconfig
+++ b/drivers/usb/phy/Kconfig
@@ -61,7 +61,6 @@ config KEYSTONE_USB_PHY
 
 config MV_U3D_PHY
 	bool "Marvell USB 3.0 PHY controller Driver"
-	depends on CPU_MMP3
 	select USB_PHY
 	help
 	  Enable this to support Marvell USB 3.0 phy controller for Marvell
diff --git a/drivers/video/mmp/Kconfig b/drivers/video/mmp/Kconfig
index e9ea39e..969925d 100644
--- a/drivers/video/mmp/Kconfig
+++ b/drivers/video/mmp/Kconfig
@@ -1,6 +1,6 @@
 menuconfig MMP_DISP
         tristate "Marvell MMP Display Subsystem support"
-        depends on CPU_PXA910 || CPU_MMP2 || CPU_MMP3 || CPU_PXA988
+        depends on CPU_PXA910 || CPU_MMP2 || CPU_PXA988
         help
 	  Marvell Display Subsystem support.
 
diff --git a/drivers/video/mmp/hw/Kconfig b/drivers/video/mmp/hw/Kconfig
index 02f109a..57b03e2 100644
--- a/drivers/video/mmp/hw/Kconfig
+++ b/drivers/video/mmp/hw/Kconfig
@@ -2,7 +2,7 @@ if MMP_DISP
 
 config MMP_DISP_CONTROLLER
 	bool "mmp display controller hw support"
-	depends on CPU_PXA910 || CPU_MMP2 || CPU_MMP3 || CPU_PXA988
+	depends on CPU_PXA910 || CPU_MMP2 || CPU_PXA988
 	default n
 	help
 		Marvell MMP display hw controller support
-- 
1.8.4.2


^ permalink raw reply related

* [PATCH 07/28] Remove CPU_PXA988
From: Richard Weinberger @ 2014-02-09 18:47 UTC (permalink / raw)
  To: Jean-Christophe Plagniol-Villard, Tomi Valkeinen,
	open list:FRAMEBUFFER LAYER, open list
  Cc: Richard Weinberger
In-Reply-To: <1391971686-9517-1-git-send-email-richard@nod.at>

The symbol is an orphan, get rid of it.

Signed-off-by: Richard Weinberger <richard@nod.at>
---
 drivers/video/mmp/Kconfig       |  2 +-
 drivers/video/mmp/hw/Kconfig    |  2 +-
 drivers/video/mmp/hw/mmp_ctrl.h | 32 --------------------------------
 3 files changed, 2 insertions(+), 34 deletions(-)

diff --git a/drivers/video/mmp/Kconfig b/drivers/video/mmp/Kconfig
index 969925d..f37bd6c 100644
--- a/drivers/video/mmp/Kconfig
+++ b/drivers/video/mmp/Kconfig
@@ -1,6 +1,6 @@
 menuconfig MMP_DISP
         tristate "Marvell MMP Display Subsystem support"
-        depends on CPU_PXA910 || CPU_MMP2 || CPU_PXA988
+        depends on CPU_PXA910 || CPU_MMP2
         help
 	  Marvell Display Subsystem support.
 
diff --git a/drivers/video/mmp/hw/Kconfig b/drivers/video/mmp/hw/Kconfig
index 57b03e2..95e8ec2 100644
--- a/drivers/video/mmp/hw/Kconfig
+++ b/drivers/video/mmp/hw/Kconfig
@@ -2,7 +2,7 @@ if MMP_DISP
 
 config MMP_DISP_CONTROLLER
 	bool "mmp display controller hw support"
-	depends on CPU_PXA910 || CPU_MMP2 || CPU_PXA988
+	depends on CPU_PXA910 || CPU_MMP2
 	default n
 	help
 		Marvell MMP display hw controller support
diff --git a/drivers/video/mmp/hw/mmp_ctrl.h b/drivers/video/mmp/hw/mmp_ctrl.h
index 53301cf..56fdeab 100644
--- a/drivers/video/mmp/hw/mmp_ctrl.h
+++ b/drivers/video/mmp/hw/mmp_ctrl.h
@@ -167,11 +167,7 @@ struct lcd_regs {
 				PN2_IOPAD_CONTROL) : LCD_TOP_CTRL)
 
 /* dither configure */
-#ifdef CONFIG_CPU_PXA988
-#define LCD_DITHER_CTRL				(0x01EC)
-#else
 #define LCD_DITHER_CTRL				(0x00A0)
-#endif
 
 #define DITHER_TBL_INDEX_SEL(s)		((s) << 16)
 #define DITHER_MODE2(m)				((m) << 12)
@@ -186,15 +182,6 @@ struct lcd_regs {
 #define DITHER_EN1					(1)
 
 /* dither table data was fixed by video bpp of input and output*/
-#ifdef CONFIG_CPU_PXA988
-#define DITHER_TB_4X4_INDEX0		(0x6e4ca280)
-#define DITHER_TB_4X4_INDEX1		(0x5d7f91b3)
-#define DITHER_TB_4X8_INDEX0		(0xb391a280)
-#define DITHER_TB_4X8_INDEX1		(0x7f5d6e4c)
-#define DITHER_TB_4X8_INDEX2		(0x80a291b3)
-#define DITHER_TB_4X8_INDEX3		(0x4c6e5d7f)
-#define LCD_DITHER_TBL_DATA		(0x01F0)
-#else
 #define DITHER_TB_4X4_INDEX0		(0x3b19f7d5)
 #define DITHER_TB_4X4_INDEX1		(0x082ac4e6)
 #define DITHER_TB_4X8_INDEX0		(0xf7d508e6)
@@ -202,7 +189,6 @@ struct lcd_regs {
 #define DITHER_TB_4X8_INDEX2		(0xc4e6d5f7)
 #define DITHER_TB_4X8_INDEX3		(0x082a193b)
 #define LCD_DITHER_TBL_DATA		(0x00A4)
-#endif
 
 /* Video Frame 0&1 start address registers */
 #define	LCD_SPU_DMA_START_ADDR_Y0	0x00C0
@@ -933,16 +919,9 @@ struct lcd_regs {
 #define LCD_PN2_SQULN2_CTRL			(0x02F0)
 #define ALL_LAYER_ALPHA_SEL			(0x02F4)
 
-/* pxa988 has different MASTER_CTRL from MMP3/MMP2 */
-#ifdef CONFIG_CPU_PXA988
-#define TIMING_MASTER_CONTROL			(0x01F4)
-#define MASTER_ENH(id)				(1 << ((id) + 5))
-#define MASTER_ENV(id)				(1 << ((id) + 6))
-#else
 #define TIMING_MASTER_CONTROL			(0x02F8)
 #define MASTER_ENH(id)				(1 << (id))
 #define MASTER_ENV(id)				(1 << ((id) + 4))
-#endif
 
 #define DSI_START_SEL_SHIFT(id)		(((id) << 1) + 8)
 #define timing_master_config(path, dsi_id, lcd_id) \
@@ -1312,19 +1291,8 @@ struct dsi_regs {
 #define	DSI_PHY_TIME_3_CFG_CSR_TIME_REQRDY_MASK		(0xff)
 #define	DSI_PHY_TIME_3_CFG_CSR_TIME_REQRDY_SHIFT	0
 
-/*
- * DSI timings
- * PXA988 has diffrent ESC CLK with MMP2/MMP3
- * it will be used in dsi_set_dphy() in pxa688_phy.c
- * as low power mode clock.
- */
-#ifdef CONFIG_CPU_PXA988
-#define DSI_ESC_CLK				52  /* Unit: Mhz */
-#define DSI_ESC_CLK_T				19  /* Unit: ns */
-#else
 #define DSI_ESC_CLK				66  /* Unit: Mhz */
 #define DSI_ESC_CLK_T				15  /* Unit: ns */
-#endif
 
 /* LVDS */
 /* LVDS_PHY_CTRL */
-- 
1.8.4.2


^ permalink raw reply related

* Re: [PATCH 01/28] Remove CPU_MMP3
From: Paul Bolle @ 2014-02-09 22:07 UTC (permalink / raw)
  To: Richard Weinberger
  Cc: Felipe Balbi, Greg Kroah-Hartman,
	Jean-Christophe Plagniol-Villard, Tomi Valkeinen,
	open list:USB PHY LAYER, open list, open list:FRAMEBUFFER LAYER
In-Reply-To: <1391971686-9517-2-git-send-email-richard@nod.at>

On Sun, 2014-02-09 at 19:47 +0100, Richard Weinberger wrote:
> The symbol is an orphan, get rid of it.
> 
> Signed-off-by: Richard Weinberger <richard@nod.at>

This symbol first popped up as a dependency in v3.6, through commit
3d4eb9dfa3e8 ("usb: gadget: mv: Add USB 3.0 device driver for Marvell
PXA2128 chip."). The Kconfig symbol itself was never added.

> diff --git a/drivers/video/mmp/hw/Kconfig b/drivers/video/mmp/hw/Kconfig
> index 02f109a..57b03e2 100644
> --- a/drivers/video/mmp/hw/Kconfig
> +++ b/drivers/video/mmp/hw/Kconfig
> @@ -2,7 +2,7 @@ if MMP_DISP
>  
>  config MMP_DISP_CONTROLLER
>  	bool "mmp display controller hw support"
> -	depends on CPU_PXA910 || CPU_MMP2 || CPU_MMP3 || CPU_PXA988
> +	depends on CPU_PXA910 || CPU_MMP2 || CPU_PXA988
>  	default n
>  	help
>  		Marvell MMP display hw controller support

You should remove the reference to MMP3 in the help text (not displayed
here) too, I'd guess. Aside from that:
    Acked-by: Paul Bolle <pebolle@tiscali.nl>


Paul Bolle


^ permalink raw reply

* Re: [PATCH 07/28] Remove CPU_PXA988
From: Paul Bolle @ 2014-02-09 22:24 UTC (permalink / raw)
  To: Richard Weinberger
  Cc: Jean-Christophe Plagniol-Villard, Tomi Valkeinen,
	open list:FRAMEBUFFER LAYER, open list
In-Reply-To: <1391971686-9517-8-git-send-email-richard@nod.at>

On Sun, 2014-02-09 at 19:47 +0100, Richard Weinberger wrote:
> The symbol is an orphan, get rid of it.
> 
> Signed-off-by: Richard Weinberger <richard@nod.at>

This one first entered the tree in v3.9, with commit 59393bb94c10
("video: mmp display subsystem"). The Kconfig symbol has not yet been
added.

>  drivers/video/mmp/Kconfig       |  2 +-
>  drivers/video/mmp/hw/Kconfig    |  2 +-
>  drivers/video/mmp/hw/mmp_ctrl.h | 32 --------------------------------
>  3 files changed, 2 insertions(+), 34 deletions(-)
> 
> [..] 
>
> diff --git a/drivers/video/mmp/hw/Kconfig b/drivers/video/mmp/hw/Kconfig
> index 57b03e2..95e8ec2 100644
> --- a/drivers/video/mmp/hw/Kconfig
> +++ b/drivers/video/mmp/hw/Kconfig
> @@ -2,7 +2,7 @@ if MMP_DISP
>  
>  config MMP_DISP_CONTROLLER
>  	bool "mmp display controller hw support"
> -	depends on CPU_PXA910 || CPU_MMP2 || CPU_PXA988
> +	depends on CPU_PXA910 || CPU_MMP2
>  	default n
>  	help
>  		Marvell MMP display hw controller support

Please also remove the reference to PXA988 in the help text. Aside from
that:
    Acked-by: Paul Bolle <pebolle@tiscali.nl>


Paul Bolle


^ permalink raw reply

* Re: [PATCH] backlight: replace kfree with put_device
From: Jingoo Han @ 2014-02-10  0:22 UTC (permalink / raw)
  To: 'Andrew Morton'
  Cc: 'Levente Kurusa', 'LKML',
	'Jean-Christophe Plagniol-Villard',
	'Tomi Valkeinen', 'FBDEV list',
	'Bryan Wu', 'Lee Jones', 'Jingoo Han'
In-Reply-To: <1391762601-4560-1-git-send-email-levex@linux.com>

On Friday, February 07, 2014 5:43 PM, Levente Kurusa wrote:
> 
> As per the comments on device_register, we shouldn't call kfree()
> right after a device_register() failure. Instead call put_device(),
> which in turn will call bl_device_release resulting in a kfree to the
> full structure.
> 
> Signed-off-by: Levente Kurusa <levex@linux.com>

(+cc Bryan Wu, Lee Jones)

Acked-by: Jingoo Han <jg1.han@samsung.com>

Best regards,
Jingoo Han

> ---
>  drivers/video/backlight/backlight.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
> index 5d05555..20b276e 100644
> --- a/drivers/video/backlight/backlight.c
> +++ b/drivers/video/backlight/backlight.c
> @@ -333,7 +333,7 @@ struct backlight_device *backlight_device_register(const char *name,
> 
>  	rc = device_register(&new_bd->dev);
>  	if (rc) {
> -		kfree(new_bd);
> +		put_device(&new_bd->dev);
>  		return ERR_PTR(rc);
>  	}
> 
> --
> 1.8.3.1


^ permalink raw reply

* Re: [PATCH] backlight: replace kfree with put_device
From: Lee Jones @ 2014-02-10 11:13 UTC (permalink / raw)
  To: Jingoo Han
  Cc: 'Andrew Morton', 'Levente Kurusa', 'LKML',
	'Jean-Christophe Plagniol-Villard',
	'Tomi Valkeinen', 'FBDEV list',
	'Bryan Wu'
In-Reply-To: <003701cf25f6$3807c6d0$a8175470$%han@samsung.com>

> > As per the comments on device_register, we shouldn't call kfree()
> > right after a device_register() failure. Instead call put_device(),
> > which in turn will call bl_device_release resulting in a kfree to the
> > full structure.
> > 
> > Signed-off-by: Levente Kurusa <levex@linux.com>
> 
> (+cc Bryan Wu, Lee Jones)
> 
> Acked-by: Jingoo Han <jg1.han@samsung.com>

Applied to temporary Backlight repo [1], thanks.

[1] git://git.linaro.org/people/lee.jones/backlight.git

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply

* Re: [PATCH] fbdev: suppress warning when assigning vga-save/restore base
From: Tomi Valkeinen @ 2014-02-10 11:23 UTC (permalink / raw)
  To: David Herrmann, linux-fbdev
  Cc: linux-kernel, H. Peter Anvin, Jean-Christophe Plagniol-Villard,
	Ondrej Zajicek, David Miller
In-Reply-To: <1375637141-2878-1-git-send-email-dh.herrmann@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1692 bytes --]

Hi David,

On 04/08/13 20:25, David Herrmann wrote:
> If drivers use "struct resource" objects to retrieve the vga-base, they
> must correctly cast the integer to pointer. With x86+PAE we have 32bit
> pointers but 64bit resource_size_t. Hence, cast it to "unsigned long"
> before casting to "void*" to suppress warnings due to size differences.
> 
> As IO addresses are always low addresses, we can safely drop the higher
> part of the address. This is what these drivers did before, anyway.
> 
> Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
> Reported-by: H. Peter Anvin <hpa@zytor.com>
> ---
> Hi
> 
> hpa reported build-warnings on i386+PAE:
> /home/hpa/kernel/distwork/drivers/video/arkfb.c:1019:23: warning: cast to
>     pointer from integer of different size [-Wint-to-pointer-cast]
>     par->state.vgabase = (void __iomem *) vga_res.start;
>                          ^
> /home/hpa/kernel/distwork/drivers/video/s3fb.c: In function ‘s3_pci_probe’:
> /home/hpa/kernel/distwork/drivers/video/s3fb.c:1186:23: warning: cast to pointer
>     from integer of different size [-Wint-to-pointer-cast]
>     par->state.vgabase = (void __iomem *) vga_res.start;
>                          ^
> 
> This is due to resource_size_t being 64bit but "void*" 32bit. This patch tries
> to suppress these warnings but I am not really comfortable fixing this. I have
> no idea whether my assumption (IO address are 32bit) is right. Please verify.
> 
>  @David: The following 3 commits of yours presumably introduced the warnings. I
> would be glad if you could review this:

What was the conclusion on this patch? Should I apply for 3.14 fixes?

 Tomi



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

^ permalink raw reply

* Re: [PATCH] fbdev: suppress warning when assigning vga-save/restore base
From: David Herrmann @ 2014-02-10 11:32 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: linux-fbdev@vger.kernel.org, linux-kernel, H. Peter Anvin,
	Jean-Christophe Plagniol-Villard, Ondrej Zajicek, David Miller
In-Reply-To: <52F8B6B3.5080602@ti.com>

Hi Tomi

On Mon, Feb 10, 2014 at 12:23 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> Hi David,
>
> On 04/08/13 20:25, David Herrmann wrote:
>> If drivers use "struct resource" objects to retrieve the vga-base, they
>> must correctly cast the integer to pointer. With x86+PAE we have 32bit
>> pointers but 64bit resource_size_t. Hence, cast it to "unsigned long"
>> before casting to "void*" to suppress warnings due to size differences.
>>
>> As IO addresses are always low addresses, we can safely drop the higher
>> part of the address. This is what these drivers did before, anyway.
>>
>> Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
>> Reported-by: H. Peter Anvin <hpa@zytor.com>
>> ---
>> Hi
>>
>> hpa reported build-warnings on i386+PAE:
>> /home/hpa/kernel/distwork/drivers/video/arkfb.c:1019:23: warning: cast to
>>     pointer from integer of different size [-Wint-to-pointer-cast]
>>     par->state.vgabase = (void __iomem *) vga_res.start;
>>                          ^
>> /home/hpa/kernel/distwork/drivers/video/s3fb.c: In function 's3_pci_probe':
>> /home/hpa/kernel/distwork/drivers/video/s3fb.c:1186:23: warning: cast to pointer
>>     from integer of different size [-Wint-to-pointer-cast]
>>     par->state.vgabase = (void __iomem *) vga_res.start;
>>                          ^
>>
>> This is due to resource_size_t being 64bit but "void*" 32bit. This patch tries
>> to suppress these warnings but I am not really comfortable fixing this. I have
>> no idea whether my assumption (IO address are 32bit) is right. Please verify.
>>
>>  @David: The following 3 commits of yours presumably introduced the warnings. I
>> would be glad if you could review this:
>
> What was the conclusion on this patch? Should I apply for 3.14 fixes?

No, please drop it. If I understand David correctly, we should just
revert the patches in question. But someone who actually understands
what it is doing should propose that (which is not me..).

Thanks
David

^ permalink raw reply

* Re: [PATCH] video: imxfb: Use regulator API with LCD class for powering
From: Tomi Valkeinen @ 2014-02-10 12:05 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1387624080-15312-1-git-send-email-shc_work@mail.ru>

[-- Attachment #1: Type: text/plain, Size: 3556 bytes --]

On 21/12/13 13:08, Alexander Shiyan wrote:
> This patch replaces custom lcd_power() callback with
> regulator API over LCD class.
> 
> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
> ---
>  .../devicetree/bindings/video/fsl,imx-fb.txt       |  1 +
>  arch/arm/mach-imx/mach-mx27ads.c                   | 55 +++++++++++++++--
>  drivers/video/imxfb.c                              | 71 +++++++++++++++++++---
>  include/linux/platform_data/video-imxfb.h          |  1 -
>  4 files changed, 114 insertions(+), 14 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/video/fsl,imx-fb.txt b/Documentation/devicetree/bindings/video/fsl,imx-fb.txt
> index 46da08d..e6b1ee9 100644
> --- a/Documentation/devicetree/bindings/video/fsl,imx-fb.txt
> +++ b/Documentation/devicetree/bindings/video/fsl,imx-fb.txt
> @@ -15,6 +15,7 @@ Required nodes:
>  	- fsl,pcr: LCDC PCR value
>  
>  Optional properties:
> +- lcd-supply: Regulator for LCD supply voltage.
>  - fsl,dmacr: DMA Control Register value. This is optional. By default, the
>  	register is not modified as recommended by the datasheet.
>  - fsl,lscr1: LCDC Sharp Configuration Register value.
> diff --git a/arch/arm/mach-imx/mach-mx27ads.c b/arch/arm/mach-imx/mach-mx27ads.c
> index 9821b824..a7a4a9c 100644
> --- a/arch/arm/mach-imx/mach-mx27ads.c
> +++ b/arch/arm/mach-imx/mach-mx27ads.c
> @@ -21,6 +21,10 @@
>  #include <linux/mtd/physmap.h>
>  #include <linux/i2c.h>
>  #include <linux/irq.h>
> +
> +#include <linux/regulator/fixed.h>
> +#include <linux/regulator/machine.h>
> +
>  #include <asm/mach-types.h>
>  #include <asm/mach/arch.h>
>  #include <asm/mach/time.h>
> @@ -195,14 +199,58 @@ static const struct imxi2c_platform_data mx27ads_i2c1_data __initconst = {
>  static struct i2c_board_info mx27ads_i2c_devices[] = {
>  };
>  
> -void lcd_power(int on)
> +static void vgpio_set(struct gpio_chip *chip, unsigned offset, int value)
>  {
> -	if (on)
> +	if (value)
>  		__raw_writew(PBC_BCTRL1_LCDON, PBC_BCTRL1_SET_REG);
>  	else
>  		__raw_writew(PBC_BCTRL1_LCDON, PBC_BCTRL1_CLEAR_REG);
>  }
>  
> +static int vgpio_dir_out(struct gpio_chip *chip, unsigned offset, int value)
> +{
> +	return 0;
> +}
> +
> +#define MX27ADS_LCD_GPIO	(6 * 32)
> +
> +static struct regulator_consumer_supply mx27ads_lcd_regulator_consumer =
> +	REGULATOR_SUPPLY("lcd", "imx-fb.0");
> +
> +static struct regulator_init_data mx27ads_lcd_regulator_init_data = {
> +	.constraints	= {
> +		.valid_ops_mask	= REGULATOR_CHANGE_STATUS,
> +},
> +	.consumer_supplies	= &mx27ads_lcd_regulator_consumer,
> +	.num_consumer_supplies	= 1,
> +};
> +
> +static struct fixed_voltage_config mx27ads_lcd_regulator_pdata = {
> +	.supply_name	= "LCD",
> +	.microvolts	= 3300000,
> +	.gpio		= MX27ADS_LCD_GPIO,
> +	.init_data	= &mx27ads_lcd_regulator_init_data,
> +};
> +
> +static void __init mx27ads_regulator_init(void)
> +{
> +	struct gpio_chip *vchip;
> +
> +	vchip = kzalloc(sizeof(*vchip), GFP_KERNEL);
> +	vchip->owner		= THIS_MODULE;
> +	vchip->label		= "LCD";
> +	vchip->base		= MX27ADS_LCD_GPIO;
> +	vchip->ngpio		= 1;
> +	vchip->direction_output	= vgpio_dir_out;
> +	vchip->set		= vgpio_set;
> +	gpiochip_add(vchip);
> +
> +	platform_device_register_data(&platform_bus, "reg-fixed-voltage",
> +				      PLATFORM_DEVID_AUTO,
> +				      &mx27ads_lcd_regulator_pdata,
> +				      sizeof(mx27ads_lcd_regulator_pdata));
> +}
> +

Hmm, isn't all this something that should be in the board's .dts?

 Tomi



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

^ permalink raw reply

* Re: [PATCH v2] video: exynos: Fix S6E8AX0 LCD driver build error
From: Tomi Valkeinen @ 2014-02-10 12:14 UTC (permalink / raw)
  To: linux-fbdev

[-- Attachment #1: Type: text/plain, Size: 1164 bytes --]

On 17/01/14 13:00, Sachin Kamat wrote:
> Enable S6E8AX0 LCD driver only if LCD_CLASS_DEVICE is a built-in driver.
> Else we get the following errors due to missing symbols:
> drivers/built-in.o: In function `s6e8ax0_probe':
> :(.text+0x51aec): undefined reference to `lcd_device_register'
> :(.text+0x51c44): undefined reference to `lcd_device_unregister'
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> ---
>  drivers/video/exynos/Kconfig |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/video/exynos/Kconfig b/drivers/video/exynos/Kconfig
> index 976594d578a9..eb6f2b059821 100644
> --- a/drivers/video/exynos/Kconfig
> +++ b/drivers/video/exynos/Kconfig
> @@ -22,7 +22,8 @@ config EXYNOS_MIPI_DSI
>  
>  config EXYNOS_LCD_S6E8AX0
>  	bool "S6E8AX0 MIPI AMOLED LCD Driver"
> -	depends on (EXYNOS_MIPI_DSI && BACKLIGHT_CLASS_DEVICE && LCD_CLASS_DEVICE)
> +	depends on EXYNOS_MIPI_DSI && BACKLIGHT_CLASS_DEVICE
> +	depends on (LCD_CLASS_DEVICE = y)
>  	default n
>  	help
>  	  If you have an S6E8AX0 MIPI AMOLED LCD Panel, say Y to enable its
> 

Applied to 3.14-fixes.

 Tomi



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

^ permalink raw reply

* Re: [PATCH] video: imxfb: Use regulator API w =?UTF-8?B?aXRoIExDRCBjbGFzc
From: Alexander Shiyan @ 2014-02-10 12:16 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <52F8C091.50704@ti.com>

0J/QvtC90LXQtNC10LvRjNC90LjQuiwgMTAg0YTQtdCy0YDQsNC70Y8gMjAxNCwgMTQ6MDUgKzAy
OjAwINC+0YIgVG9taSBWYWxrZWluZW4gPHRvbWkudmFsa2VpbmVuQHRpLmNvbT46Cj4gT24gMjEv
MTIvMTMgMTM6MDgsIEFsZXhhbmRlciBTaGl5YW4gd3JvdGU6Cj4gPiBUaGlzIHBhdGNoIHJlcGxh
Y2VzIGN1c3RvbSBsY2RfcG93ZXIoKSBjYWxsYmFjayB3aXRoCj4gPiByZWd1bGF0b3IgQVBJIG92
ZXIgTENEIGNsYXNzLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgU2hpeWFuIDxz
aGNfd29ya0BtYWlsLnJ1Pgo+ID4gLS0tCj4gPiAgLi4uL2RldmljZXRyZWUvYmluZGluZ3Mvdmlk
ZW8vZnNsLGlteC1mYi50eHQgICAgICAgfCAgMSArCj4gPiAgYXJjaC9hcm0vbWFjaC1pbXgvbWFj
aC1teDI3YWRzLmMgICAgICAgICAgICAgICAgICAgfCA1NSArKysrKysrKysrKysrKystLQo+ID4g
IGRyaXZlcnMvdmlkZW8vaW14ZmIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNzEK
PiArKysrKysrKysrKysrKysrKysrLS0tCj4gPiAgaW5jbHVkZS9saW51eC9wbGF0Zm9ybV9kYXRh
L3ZpZGVvLWlteGZiLmggICAgICAgICAgfCAgMSAtCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMTQg
aW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9Eb2N1
bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdmlkZW8vZnNsLGlteC1mYi50eHQKPiBiL0Rv
Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy92aWRlby9mc2wsaW14LWZiLnR4dAo+ID4g
aW5kZXggNDZkYTA4ZC4uZTZiMWVlOSAxMDA2NDQKPiA+IC0tLSBhL0RvY3VtZW50YXRpb24vZGV2
aWNldHJlZS9iaW5kaW5ncy92aWRlby9mc2wsaW14LWZiLnR4dAo+ID4gKysrIGIvRG9jdW1lbnRh
dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3ZpZGVvL2ZzbCxpbXgtZmIudHh0Cj4gPiBAQCAtMTUs
NiArMTUsNyBAQCBSZXF1aXJlZCBub2RlczoKPiA+ICAJLSBmc2wscGNyOiBMQ0RDIFBDUiB2YWx1
ZQo+ID4gIAo+ID4gIE9wdGlvbmFsIHByb3BlcnRpZXM6Cj4gPiArLSBsY2Qtc3VwcGx5OiBSZWd1
bGF0b3IgZm9yIExDRCBzdXBwbHkgdm9sdGFnZS4KPiA+ICAtIGZzbCxkbWFjcjogRE1BIENvbnRy
b2wgUmVnaXN0ZXIgdmFsdWUuIFRoaXMgaXMgb3B0aW9uYWwuIEJ5IGRlZmF1bHQsIHRoZQo+ID4g
IAlyZWdpc3RlciBpcyBub3QgbW9kaWZpZWQgYXMgcmVjb21tZW5kZWQgYnkgdGhlIGRhdGFzaGVl
dC4KPiA+ICAtIGZzbCxsc2NyMTogTENEQyBTaGFycCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIHZh
bHVlLgo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L21hY2gtbXgyN2Fkcy5jCi4u
Lgo+ID4gK3N0YXRpYyB2b2lkIF9faW5pdCBteDI3YWRzX3JlZ3VsYXRvcl9pbml0KHZvaWQpCj4g
PiArewo+ID4gKwlzdHJ1Y3QgZ3Bpb19jaGlwICp2Y2hpcDsKPiA+ICsKPiA+ICsJdmNoaXAgPSBr
emFsbG9jKHNpemVvZigqdmNoaXApLCBHRlBfS0VSTkVMKTsKPiA+ICsJdmNoaXAtPm93bmVyCQk9
IFRISVNfTU9EVUxFOwo+ID4gKwl2Y2hpcC0+bGFiZWwJCT0gIkxDRCI7Cj4gPiArCXZjaGlwLT5i
YXNlCQk9IE1YMjdBRFNfTENEX0dQSU87Cj4gPiArCXZjaGlwLT5uZ3BpbwkJPSAxOwo+ID4gKwl2
Y2hpcC0+ZGlyZWN0aW9uX291dHB1dAk9IHZncGlvX2Rpcl9vdXQ7Cj4gPiArCXZjaGlwLT5zZXQJ
CT0gdmdwaW9fc2V0Owo+ID4gKwlncGlvY2hpcF9hZGQodmNoaXApOwo+ID4gKwo+ID4gKwlwbGF0
Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZGF0YSgmcGxhdGZvcm1fYnVzLCAicmVnLWZpeGVkLXZvbHRh
Z2UiLAo+ID4gKwkJCQkgICAgICBQTEFURk9STV9ERVZJRF9BVVRPLAo+ID4gKwkJCQkgICAgICAm
bXgyN2Fkc19sY2RfcmVndWxhdG9yX3BkYXRhLAo+ID4gKwkJCQkgICAgICBzaXplb2YobXgyN2Fk
c19sY2RfcmVndWxhdG9yX3BkYXRhKSk7Cj4gPiArfQo+ID4gKwo+IAo+IEhtbSwgaXNuJ3QgYWxs
IHRoaXMgc29tZXRoaW5nIHRoYXQgc2hvdWxkIGJlIGluIHRoZSBib2FyZCdzIC5kdHM/CgpUaGVy
ZSBhcmUgbm8gRFQgc3VwcG9ydCBmb3IgdGhpcyBib2FyZCB5ZXQuCgotLS0K

^ permalink raw reply

* Re: [PATCH 1/2] video: exynos: Remove OF dependency for Exynos DP
From: Tomi Valkeinen @ 2014-02-10 12:18 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <1389933172-22991-1-git-send-email-sachin.kamat@linaro.org>

[-- Attachment #1: Type: text/plain, Size: 313 bytes --]

On 17/01/14 06:32, Sachin Kamat wrote:
> Exynos is now a DT only platform. Hence there is no need
> for an explicit OF dependency. Remove it.

But the driver still depends on OF, doesn't it? I don't think it's very
good for the driver Kconfig to make presumptions about what ARCH_*
depend on.

 Tomi



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

^ permalink raw reply

* Re: [PATCH] video: imxfb: Use regulator API with LCD class for powering
From: Tomi Valkeinen @ 2014-02-10 12:21 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1392034587.333931582@f419.i.mail.ru>

[-- Attachment #1: Type: text/plain, Size: 2500 bytes --]

On 10/02/14 14:16, Alexander Shiyan wrote:
> Понедельник, 10 февраля 2014, 14:05 +02:00 от Tomi Valkeinen <tomi.valkeinen@ti.com>:
>> On 21/12/13 13:08, Alexander Shiyan wrote:
>>> This patch replaces custom lcd_power() callback with
>>> regulator API over LCD class.
>>>
>>> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
>>> ---
>>>  .../devicetree/bindings/video/fsl,imx-fb.txt       |  1 +
>>>  arch/arm/mach-imx/mach-mx27ads.c                   | 55 +++++++++++++++--
>>>  drivers/video/imxfb.c                              | 71
>> +++++++++++++++++++---
>>>  include/linux/platform_data/video-imxfb.h          |  1 -
>>>  4 files changed, 114 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/video/fsl,imx-fb.txt
>> b/Documentation/devicetree/bindings/video/fsl,imx-fb.txt
>>> index 46da08d..e6b1ee9 100644
>>> --- a/Documentation/devicetree/bindings/video/fsl,imx-fb.txt
>>> +++ b/Documentation/devicetree/bindings/video/fsl,imx-fb.txt
>>> @@ -15,6 +15,7 @@ Required nodes:
>>>  	- fsl,pcr: LCDC PCR value
>>>  
>>>  Optional properties:
>>> +- lcd-supply: Regulator for LCD supply voltage.
>>>  - fsl,dmacr: DMA Control Register value. This is optional. By default, the
>>>  	register is not modified as recommended by the datasheet.
>>>  - fsl,lscr1: LCDC Sharp Configuration Register value.
>>> diff --git a/arch/arm/mach-imx/mach-mx27ads.c
> ...
>>> +static void __init mx27ads_regulator_init(void)
>>> +{
>>> +	struct gpio_chip *vchip;
>>> +
>>> +	vchip = kzalloc(sizeof(*vchip), GFP_KERNEL);
>>> +	vchip->owner		= THIS_MODULE;
>>> +	vchip->label		= "LCD";
>>> +	vchip->base		= MX27ADS_LCD_GPIO;
>>> +	vchip->ngpio		= 1;
>>> +	vchip->direction_output	= vgpio_dir_out;
>>> +	vchip->set		= vgpio_set;
>>> +	gpiochip_add(vchip);
>>> +
>>> +	platform_device_register_data(&platform_bus, "reg-fixed-voltage",
>>> +				      PLATFORM_DEVID_AUTO,
>>> +				      &mx27ads_lcd_regulator_pdata,
>>> +				      sizeof(mx27ads_lcd_regulator_pdata));
>>> +}
>>> +
>>
>> Hmm, isn't all this something that should be in the board's .dts?
> 
> There are no DT support for this board yet.

Oh, ok. You added 'lcd-supply' to devtree binding documentation, so I
presumed DT is being used.

The drivers/video side looks fine. I can either merge this via fbdev
tree if I get an ack from arch/arm/mach-imx/mach-mx27ads.c's maintainer,
or this can go via imx tree with my ack.

 Tomi



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

^ permalink raw reply

* Re: [PATCH v2 3/4] video: mmp: add devm_mmp_get_path_by_phandle for DT
From: Tomi Valkeinen @ 2014-02-10 12:32 UTC (permalink / raw)
  To: Zhou Zhu, linux-fbdev-u79uwXL29TY76Z2rM5mHXA,
	Jean-Christophe Plagniol-Villard, Haojian Zhuang, Sascha Hauer,
	Jingoo Han, devicetree-u79uwXL29TY76Z2rM5mHXA
  Cc: Chao Xie, Guoqing Li
In-Reply-To: <1389698184-28761-4-git-send-email-zzhu3-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 1967 bytes --]

On 14/01/14 13:16, Zhou Zhu wrote:
> add devm_mmp_get_path_by_phandle to replace mmp_get_path
> for DT usage
> 
> Signed-off-by: Zhou Zhu <zzhu3@marvell.com>
> ---
>  drivers/video/mmp/core.c |   35 +++++++++++++++++++++++++++++++++++
>  include/video/mmp_disp.h |    2 ++
>  2 files changed, 37 insertions(+)
> 
> diff --git a/drivers/video/mmp/core.c b/drivers/video/mmp/core.c
> index b563b92..0538458 100644
> --- a/drivers/video/mmp/core.c
> +++ b/drivers/video/mmp/core.c
> @@ -23,6 +23,7 @@
>  #include <linux/slab.h>
>  #include <linux/dma-mapping.h>
>  #include <linux/export.h>
> +#include <linux/of.h>
>  #include <video/mmp_disp.h>
>  
>  static struct mmp_overlay *path_get_overlay(struct mmp_path *path,
> @@ -156,6 +157,40 @@ struct mmp_path *mmp_get_path(const char *name)
>  EXPORT_SYMBOL_GPL(mmp_get_path);
>  
>  /*
> + * devm_mmp_get_path_by_phandle - get path by phandle
> + * @dev: device that want to get path
> + * @phandle: name of phandle in device node that want to get path
> + *
> + * this function gets path according to node pointed by phandle
> + * return NULL if no matching path
> + */
> +struct mmp_path *devm_mmp_get_path_by_phandle(struct device *dev,
> +	const char *phandle)
> +{
> +	struct mmp_path *path;
> +	struct device_node *node;
> +
> +	if (!dev->of_node) {
> +		dev_err(dev, "device does not have a device node entry\n");
> +		return NULL;
> +	}
> +
> +	node = of_parse_phandle(dev->of_node, phandle, 0);
> +	if (!node) {
> +		dev_err(dev, "failed to get %s phandle in %s node\n", phandle,
> +			dev->of_node->name);
> +		return NULL;
> +	}
> +
> +	path = mmp_get_path(node->name);
> +
> +	of_node_put(node);
> +
> +	return path;
> +}
> +EXPORT_SYMBOL_GPL(devm_mmp_get_path_by_phandle);

Why is this function "devm_"? devm_ functions are supposed to
automatically free resources when the device is removed, I don't see
anything like that here.

 Tomi



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

^ permalink raw reply

* Re: [PATCH v2 4/4] video: mmp: add device tree support
From: Tomi Valkeinen @ 2014-02-10 12:43 UTC (permalink / raw)
  To: Zhou Zhu, linux-fbdev-u79uwXL29TY76Z2rM5mHXA,
	Jean-Christophe Plagniol-Villard, Haojian Zhuang, Sascha Hauer,
	Jingoo Han, devicetree-u79uwXL29TY76Z2rM5mHXA
  Cc: Chao Xie, Guoqing Li
In-Reply-To: <1389698184-28761-5-git-send-email-zzhu3-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 3629 bytes --]

On 14/01/14 13:16, Zhou Zhu wrote:
> add device tree support for mmp fb/controller
> the description of DT config is at
> Documentation/devicetree/bindings/fb/mmp-disp.txt
> 
> Signed-off-by: Zhou Zhu <zzhu3@marvell.com>
> ---
>  Documentation/devicetree/bindings/fb/mmp-disp.txt |   60 ++++++++
>  drivers/video/mmp/fb/mmpfb.c                      |   73 ++++++----
>  drivers/video/mmp/hw/mmp_ctrl.c                   |  160 ++++++++++++++++-----
>  3 files changed, 235 insertions(+), 58 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/fb/mmp-disp.txt
> 
> diff --git a/Documentation/devicetree/bindings/fb/mmp-disp.txt b/Documentation/devicetree/bindings/fb/mmp-disp.txt
> new file mode 100644
> index 0000000..80702f5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/fb/mmp-disp.txt
> @@ -0,0 +1,60 @@
> +* Marvell MMP Display (MMP_DISP)
> +
> +To config mmp display, 3 parts are required to be set in dts:
> +1. mmp fb
> +Required properties:
> +- compatible: Should be "marvell,<soc>-fb".
> +- marvell,path: Should be the path this fb connecting to.
> +- marvell,overlay-id: Should be the id of overlay this fb is on.
> +- marvell,dmafetch-id: Should be the dma fetch id this fb using.
> +- marvell,default-pixfmt: Should be the default pixel format when this fb is
> +turned on.
> +
> +2. mmp controller
> +Required properties:
> +- compatible: Should be "marvell,<soc>-disp".
> +- reg: Should be address and length of the register set for this controller.
> +- interrupts: Should be interrupt of this controller.
> +
> +Required sub-node:
> +- path:
> +Required properties in this sub-node:
> +-- marvell,overlay_num: Should be number of overlay this path has.

If that one tells how many overlays there are, maybe "num_overlays"
would be better.

> +-- marvell,output-type: Should be output-type settings
> +-- marvell,path-config: Should be path-config settings
> +-- marvell,link-config: Should be link-config settings
> +-- marvell,rbswap: Should be rbswap settings

If these terms (output-type, path-config, ...) are straight from the HW
manual, then fine. But if they are not clear, or are driver specific,
the values these can have should be documented here.

> +
> +3. panel
> +Required properties:
> +- marvell,path: Should be path that this panel connected to.
> +- other properties each panel has.
> +
> +Examples:
> +
> +fb: mmp-fb {
> +	compatible = "marvell,pxa988-fb";
> +	marvell,path = <&path1>;
> +	marvell,overlay-id = <0>;
> +	marvell,dmafetch-id = <1>;
> +	marvell,default-pixfmt = <0x108>;
> +};
> +
> +disp: mmp-disp@d420b000 {
> +	compatible = "marvell,pxa988-disp";
> +	reg = <0xd420b000 0x1fc>;
> +	interrupts = <0 41 0x4>;
> +	path1: mmp-pnpath {
> +		marvell,overlay-num = <2>;
> +		marvell,output-type = <0>;
> +		marvell,path-config = <0x20000000>;
> +		marvell,link-config = <0x60000001>;
> +		marvell,rbswap = <0>;
> +	};
> +};
> +
> +panel: <panel-name> {

How is the panel linked to all this? The nodes above do not refer to the
panel.

> +	...
> +	marvell,path = <&path1>;
> +	...
> +};

It's a bit difficult to say much about this, as I have no knowledge
about mmp.

But I don't quite understand what the pxa988-fb is. Is that some kind of
virtual device, only used to set up fbdev side? And pxa988-disp is the
actual hardware device?

If so, I don't really think pxa988-fb should exist in the DT data at
all, as it's not a hardware device.

Why isn't there just one node for pxa988-disp, which would contain all
the above information?

 Tomi



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

^ permalink raw reply

* Re: [PATCH] backlight: replace kfree with put_device
From: Bryan Wu @ 2014-02-10 17:37 UTC (permalink / raw)
  To: Lee Jones
  Cc: Jingoo Han, Andrew Morton, Levente Kurusa, LKML,
	Jean-Christophe Plagniol-Villard, Tomi Valkeinen, FBDEV list
In-Reply-To: <20140210111349.GA21522@lee--X1>

On Mon, Feb 10, 2014 at 3:13 AM, Lee Jones <lee.jones@linaro.org> wrote:
>> > As per the comments on device_register, we shouldn't call kfree()
>> > right after a device_register() failure. Instead call put_device(),
>> > which in turn will call bl_device_release resulting in a kfree to the
>> > full structure.
>> >
>> > Signed-off-by: Levente Kurusa <levex@linux.com>
>>
>> (+cc Bryan Wu, Lee Jones)
>>
>> Acked-by: Jingoo Han <jg1.han@samsung.com>
>
> Applied to temporary Backlight repo [1], thanks.
>
> [1] git://git.linaro.org/people/lee.jones/backlight.git
>

Great, I think we can put the Git URL into the MAINTAINS file for
Backlight subsystem after your finalize the git repo.

Thanks,
-Bryan


> --
> Lee Jones
> Linaro STMicroelectronics Landing Team Lead
> Linaro.org │ Open source software for ARM SoCs
> Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply

* Re: [PATCH] backlight: replace kfree with put_device
From: Lee Jones @ 2014-02-10 17:47 UTC (permalink / raw)
  To: Bryan Wu
  Cc: Jingoo Han, Andrew Morton, Levente Kurusa, LKML,
	Jean-Christophe Plagniol-Villard, Tomi Valkeinen, FBDEV list
In-Reply-To: <CAK5ve-L54nmDX_HLPpfWQrTe=n11RFr5hyUFFcc-1otWPQde7Q@mail.gmail.com>

> >> > As per the comments on device_register, we shouldn't call kfree()
> >> > right after a device_register() failure. Instead call put_device(),
> >> > which in turn will call bl_device_release resulting in a kfree to the
> >> > full structure.
> >> >
> >> > Signed-off-by: Levente Kurusa <levex@linux.com>
> >>
> >> (+cc Bryan Wu, Lee Jones)
> >>
> >> Acked-by: Jingoo Han <jg1.han@samsung.com>
> >
> > Applied to temporary Backlight repo [1], thanks.
> >
> > [1] git://git.linaro.org/people/lee.jones/backlight.git
> >
> 
> Great, I think we can put the Git URL into the MAINTAINS file for
> Backlight subsystem after your finalize the git repo.

Right, I plan do to this for MFD too. Before doing so I need to load
my GPG Key with lots of signatures, at Linus' request. I'm aiming for
the end of the month(ish).

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply

* RE: [PATCH] hyperv_fb: Add screen refresh after pause/resume operation
From: Haiyang Zhang @ 2014-02-10 20:23 UTC (permalink / raw)
  To: Haiyang Zhang, FlorianSchandinat@gmx.de,
	akpm@linux-foundation.org, linux-fbdev@vger.kernel.org
  Cc: driverdev-devel@linuxdriverproject.org, olaf@aepfle.de,
	jasowang@redhat.com, linux-kernel@vger.kernel.org
In-Reply-To: <1389658838-15765-1-git-send-email-haiyangz@microsoft.com>



> -----Original Message-----
> From: Haiyang Zhang [mailto:haiyangz@microsoft.com]
> Sent: Monday, January 13, 2014 7:21 PM
> To: FlorianSchandinat@gmx.de; akpm@linux-foundation.org; linux-
> fbdev@vger.kernel.org
> Cc: Haiyang Zhang; KY Srinivasan; olaf@aepfle.de; jasowang@redhat.com;
> linux-kernel@vger.kernel.org; driverdev-devel@linuxdriverproject.org
> Subject: [PATCH] hyperv_fb: Add screen refresh after pause/resume operation
> 
> This is necessary because after VM is pause/resumed, some portion of the
> screen may need refresh.
> 
> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
> Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
> ---
This was submitted before the tree re-opened. Is it still being considered?

Thanks,
- Haiyang


^ permalink raw reply

* Re: [PATCH v2 3/4] video: mmp: add devm_mmp_get_path_by_phandle for DT
From: Zhou Zhu @ 2014-02-11  1:03 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: linux-fbdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Jean-Christophe Plagniol-Villard, Haojian Zhuang, Sascha Hauer,
	Jingoo Han, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Chao Xie, Guoqing Li
In-Reply-To: <52F8C6F6.5000200-l0cyMroinI0@public.gmane.org>

On 02/10/2014 08:32 PM, Tomi Valkeinen wrote:
> On 14/01/14 13:16, Zhou Zhu wrote:
>> add devm_mmp_get_path_by_phandle to replace mmp_get_path
>> for DT usage
>>
>> Signed-off-by: Zhou Zhu <zzhu3@marvell.com>
>> ---
>>   drivers/video/mmp/core.c |   35 +++++++++++++++++++++++++++++++++++
>>   include/video/mmp_disp.h |    2 ++
>>   2 files changed, 37 insertions(+)
>>
>> diff --git a/drivers/video/mmp/core.c b/drivers/video/mmp/core.c
>> index b563b92..0538458 100644
>> --- a/drivers/video/mmp/core.c
>> +++ b/drivers/video/mmp/core.c
>> @@ -23,6 +23,7 @@
>>   #include <linux/slab.h>
>>   #include <linux/dma-mapping.h>
>>   #include <linux/export.h>
>> +#include <linux/of.h>
>>   #include <video/mmp_disp.h>
>>
>>   static struct mmp_overlay *path_get_overlay(struct mmp_path *path,
>> @@ -156,6 +157,40 @@ struct mmp_path *mmp_get_path(const char *name)
>>   EXPORT_SYMBOL_GPL(mmp_get_path);
>>
>>   /*
>> + * devm_mmp_get_path_by_phandle - get path by phandle
>> + * @dev: device that want to get path
>> + * @phandle: name of phandle in device node that want to get path
>> + *
>> + * this function gets path according to node pointed by phandle
>> + * return NULL if no matching path
>> + */
>> +struct mmp_path *devm_mmp_get_path_by_phandle(struct device *dev,
>> +	const char *phandle)
>> +{
>> +	struct mmp_path *path;
>> +	struct device_node *node;
>> +
>> +	if (!dev->of_node) {
>> +		dev_err(dev, "device does not have a device node entry\n");
>> +		return NULL;
>> +	}
>> +
>> +	node = of_parse_phandle(dev->of_node, phandle, 0);
>> +	if (!node) {
>> +		dev_err(dev, "failed to get %s phandle in %s node\n", phandle,
>> +			dev->of_node->name);
>> +		return NULL;
>> +	}
>> +
>> +	path = mmp_get_path(node->name);
>> +
>> +	of_node_put(node);
>> +
>> +	return path;
>> +}
>> +EXPORT_SYMBOL_GPL(devm_mmp_get_path_by_phandle);
>
> Why is this function "devm_"? devm_ functions are supposed to
> automatically free resources when the device is removed, I don't see
> anything like that here.

Thank you for your review, I will remove "devm_" in next version.

>
>   Tomi
>
>


-- 
Thanks, -Zhou

^ permalink raw reply

* Re: [PATCH] video: imxfb: Use regulator API with LCD class for powering
From: Shawn Guo @ 2014-02-11  2:43 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <52F8C449.2080502@ti.com>

On Mon, Feb 10, 2014 at 02:21:29PM +0200, Tomi Valkeinen wrote:
> The drivers/video side looks fine. I can either merge this via fbdev
> tree if I get an ack from arch/arm/mach-imx/mach-mx27ads.c's maintainer,

Acked-by: Shawn Guo <shawn.guo@linaro.org>


^ permalink raw reply

* Re: [PATCH v2 4/4] video: mmp: add device tree support
From: Zhou Zhu @ 2014-02-11  3:27 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: linux-fbdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Jean-Christophe Plagniol-Villard, Haojian Zhuang, Sascha Hauer,
	Jingoo Han, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Chao Xie, Guoqing Li
In-Reply-To: <52F8C96F.7050107-l0cyMroinI0@public.gmane.org>

On 02/10/2014 08:43 PM, Tomi Valkeinen wrote:
> On 14/01/14 13:16, Zhou Zhu wrote:
>> add device tree support for mmp fb/controller
>> the description of DT config is at
>> Documentation/devicetree/bindings/fb/mmp-disp.txt
>>
>> Signed-off-by: Zhou Zhu <zzhu3@marvell.com>
>> ---
>>   Documentation/devicetree/bindings/fb/mmp-disp.txt |   60 ++++++++
>>   drivers/video/mmp/fb/mmpfb.c                      |   73 ++++++----
>>   drivers/video/mmp/hw/mmp_ctrl.c                   |  160 ++++++++++++++++-----
>>   3 files changed, 235 insertions(+), 58 deletions(-)
>>   create mode 100644 Documentation/devicetree/bindings/fb/mmp-disp.txt
>>
>> diff --git a/Documentation/devicetree/bindings/fb/mmp-disp.txt b/Documentation/devicetree/bindings/fb/mmp-disp.txt
>> new file mode 100644
>> index 0000000..80702f5
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/fb/mmp-disp.txt
>> @@ -0,0 +1,60 @@
>> +* Marvell MMP Display (MMP_DISP)
>> +
>> +To config mmp display, 3 parts are required to be set in dts:
>> +1. mmp fb
>> +Required properties:
>> +- compatible: Should be "marvell,<soc>-fb".
>> +- marvell,path: Should be the path this fb connecting to.
>> +- marvell,overlay-id: Should be the id of overlay this fb is on.
>> +- marvell,dmafetch-id: Should be the dma fetch id this fb using.
>> +- marvell,default-pixfmt: Should be the default pixel format when this fb is
>> +turned on.
>> +
>> +2. mmp controller
>> +Required properties:
>> +- compatible: Should be "marvell,<soc>-disp".
>> +- reg: Should be address and length of the register set for this controller.
>> +- interrupts: Should be interrupt of this controller.
>> +
>> +Required sub-node:
>> +- path:
>> +Required properties in this sub-node:
>> +-- marvell,overlay_num: Should be number of overlay this path has.
>
> If that one tells how many overlays there are, maybe "num_overlays"
> would be better.
I will update it in next version.
>
>> +-- marvell,output-type: Should be output-type settings
>> +-- marvell,path-config: Should be path-config settings
>> +-- marvell,link-config: Should be link-config settings
>> +-- marvell,rbswap: Should be rbswap settings
>
> If these terms (output-type, path-config, ...) are straight from the HW
> manual, then fine. But if they are not clear, or are driver specific,
> the values these can have should be documented here.
Yes, it's straight from HW manual.
>
>> +
>> +3. panel
>> +Required properties:
>> +- marvell,path: Should be path that this panel connected to.
>> +- other properties each panel has.
>> +
>> +Examples:
>> +
>> +fb: mmp-fb {
>> +	compatible = "marvell,pxa988-fb";
>> +	marvell,path = <&path1>;
>> +	marvell,overlay-id = <0>;
>> +	marvell,dmafetch-id = <1>;
>> +	marvell,default-pixfmt = <0x108>;
>> +};
>> +
>> +disp: mmp-disp@d420b000 {
>> +	compatible = "marvell,pxa988-disp";
>> +	reg = <0xd420b000 0x1fc>;
>> +	interrupts = <0 41 0x4>;
>> +	path1: mmp-pnpath {
>> +		marvell,overlay-num = <2>;
>> +		marvell,output-type = <0>;
>> +		marvell,path-config = <0x20000000>;
>> +		marvell,link-config = <0x60000001>;
>> +		marvell,rbswap = <0>;
>> +	};
>> +};
>> +
>> +panel: <panel-name> {
>
> How is the panel linked to all this? The nodes above do not refer to the
> panel.
We are making panel refer to path, so when panel dev probe, it could 
register to related path.
The reason we not link from path to panel is our customer sometimes 
asked us to use same image pack (include dts) for different panel types 
in product. We could only add all these panels in dts and detect panel 
dynamically when boot. So moving panel out and making path not link to 
panel but panel link to path would be more straight forward.
>
>> +	...
>> +	marvell,path = <&path1>;
>> +	...
>> +};
>
> It's a bit difficult to say much about this, as I have no knowledge
> about mmp.
>
> But I don't quite understand what the pxa988-fb is. Is that some kind of
> virtual device, only used to set up fbdev side? And pxa988-disp is the
> actual hardware device?
>
> If so, I don't really think pxa988-fb should exist in the DT data at
> all, as it's not a hardware device.
Yes, fb is a virtual device for fbdev side.
In our platforms we may use more than one fb for different paths/output 
panel or multi overlays on same path for composition. So we need to 
configure fb settings like which path/overlay/dmafetch it connected to 
for one or more fbdev.
Besides, some more configures like yres_virtual size or fixed fb mem 
reserved rather than allocated which depends on platforms are also 
needed although these features are not upstreamed yet.
So we put fb as a dt node here for these configures.
>
> Why isn't there just one node for pxa988-disp, which would contain all
> the above information?
We have moved out fb/panel from path due to several reasons:
1. To simplify the node. If moved these nodes in, it might be:
disp {
	...
	path1 {
		...
		panel-xxx {
		}
		panel-yyy {
		}
		...
		fb0 {
		}
		fb1 {
		}
	}
	path2 {
		...
		panel-zzz {
		}
		fb3 {
		}
	}
}
Also due to child node type might be different, we could even not 
directly check child of node. The code would be complex.
2. the path of node would be too long and not so common.
e.g. the panel node in dts would be /soc/axi/disp/path1/panel-xxx, and 
in sysfs, node would be /sys/devices/platform/soc/axi/path1/panel-xxx. 
It would be complex and not compatible for platforms when our 
bootloader/user app doing some operations to these nodes.
If we moved them out, we could move fb/panel out of soc directory so the 
node would be /panel-xxx or /fb1 and simpler and compatible.
>
>   Tomi
>
>


-- 
Thanks, -Zhou

^ permalink raw reply

* [PATCH] video: xilinxfb: Move xilinxfb_platform_data directly to the driver
From: Michal Simek @ 2014-02-11  6:48 UTC (permalink / raw)
  To: linux-arm-kernel

[-- Attachment #1: Type: text/plain, Size: 2777 bytes --]

No reason to have separate file in header in include/linux folder
if this is purely driver specific structure.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

I have this patch in my devel tree for a while and would like
to hear your opinion. I can't see any reason to have
xilinxfb_platform_data in header if this is purely OF driver
used on OF archs.
---
 drivers/video/xilinxfb.c | 15 ++++++++++++++-
 include/linux/xilinxfb.h | 30 ------------------------------
 2 files changed, 14 insertions(+), 31 deletions(-)
 delete mode 100644 include/linux/xilinxfb.h

diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c
index 6ff1a91..553cff2 100644
--- a/drivers/video/xilinxfb.c
+++ b/drivers/video/xilinxfb.c
@@ -33,7 +33,6 @@
 #include <linux/of_platform.h>
 #include <linux/of_address.h>
 #include <linux/io.h>
-#include <linux/xilinxfb.h>
 #include <linux/slab.h>

 #ifdef CONFIG_PPC_DCR
@@ -84,6 +83,20 @@

 #define PALETTE_ENTRIES_NO	16	/* passed to fb_alloc_cmap() */

+/* ML300/403 reference design framebuffer driver platform data struct */
+struct xilinxfb_platform_data {
+	u32 rotate_screen;      /* Flag to rotate display 180 degrees */
+	u32 screen_height_mm;   /* Physical dimensions of screen in mm */
+	u32 screen_width_mm;
+	u32 xres, yres;         /* resolution of screen in pixels */
+	u32 xvirt, yvirt;       /* resolution of memory buffer */
+
+	/* Physical address of framebuffer memory; If non-zero, driver
+	* will use provided memory address instead of allocating one from
+	* the consistent pool. */
+	u32 fb_phys;
+};
+
 /*
  * Default xilinxfb configuration
  */
diff --git a/include/linux/xilinxfb.h b/include/linux/xilinxfb.h
deleted file mode 100644
index 5a155a9..0000000
--- a/include/linux/xilinxfb.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Platform device data for Xilinx Framebuffer device
- *
- * Copyright 2007 Secret Lab Technologies Ltd.
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2.  This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- */
-
-#ifndef __XILINXFB_H__
-#define __XILINXFB_H__
-
-#include <linux/types.h>
-
-/* ML300/403 reference design framebuffer driver platform data struct */
-struct xilinxfb_platform_data {
-	u32 rotate_screen;	/* Flag to rotate display 180 degrees */
-	u32 screen_height_mm;	/* Physical dimensions of screen in mm */
-	u32 screen_width_mm;
-	u32 xres, yres;		/* resolution of screen in pixels */
-	u32 xvirt, yvirt;	/* resolution of memory buffer */
-
-	/* Physical address of framebuffer memory; If non-zero, driver
-	 * will use provided memory address instead of allocating one from
-	 * the consistent pool. */
-	u32 fb_phys;
-};
-
-#endif  /* __XILINXFB_H__ */
--
1.8.2.3


[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox