Linux Framebuffer Layer development
 help / color / mirror / Atom feed
* [PATCHv2 00/11] improve PWM lookup support without device tree
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

A patch set as suggested by Thierry to make lookup with the lookup table
instead of device tree behave more like when using device tree.

The first patch adds a period and a polarity member to the lookup table and use
those to set period and polarity.

Patch 2, 4 and 5 are making use of those new members from the board files.
Patch 3 removes useless code since setting the polarity is now handled by the
PWM core.

I couldn't decide on a good name for the extended PWM_LOOKUP macro and I believe
we won't have to add members to that structure soon so:
Patch 6 modifies the PWM_LOOKUP macro to also initialize period and polarity
and
Patch 7-9 are making use of the new PWM_LOOKUP macro in the board files

Patch 10 and 11 are making the leds-pwm and pwm_bl drivers get the period from
the PWM before using pwm_period_ns if it is not already set.

Patch 10 will obviously conflict with the series of Russell reworking the
leds-pwm probing. I can rebase if necessary

The final goal would be to get rid of .pwm_period_ns in leds-pwm and pwm_bl
after moving all the remaining users (still around 25) to pwm_lookup.

Changes in v2:
 - correctly unlock the pwm_lookup_lock mutex before returning.
 - don't change PWM_LOOKUP atomically
 - remove tpu_pwm_platform_data and the associated header file
 - make the leds-pwm and pwm_bl drivers get the period from the PWM

Alexandre Belloni (11):
  pwm: add period and polarity to struct pwm_lookup
  ARM: shmobile: Armadillo 800 EVA: initialize all struct pwm_lookup
    members
  pwm: renesas-tpu: remove useless struct tpu_pwm_platform_data
  ARM: OMAP3: Beagle: initialize all the struct pwm_lookup members
  ARM: pxa: hx4700: initialize all the struct pwm_lookup members
  pwm: modify PWM_LOOKUP to initialize all struct pwm_lookup members
  ARM: OMAP3: Beagle: use PWM_LOOKUP to initialize struct pwm_lookup
  ARM: shmobile: Armadillo 800 EVA: use PWM_LOOKUP to initialize struct
    pwm_lookup
  ARM: pxa: hx4700: use PWM_LOOKUP to initialize struct pwm_lookup
  leds: leds-pwm: retrieve configured pwm period
  backlight: pwm_bl: retrieve configured pwm period

 Documentation/pwm.txt                          |  3 ++-
 arch/arm/mach-omap2/board-omap3beagle.c        |  3 ++-
 arch/arm/mach-pxa/hx4700.c                     |  3 ++-
 arch/arm/mach-shmobile/board-armadillo800eva.c | 14 +++-----------
 drivers/leds/leds-pwm.c                        |  5 ++++-
 drivers/pwm/core.c                             |  8 +++++++-
 drivers/pwm/pwm-renesas-tpu.c                  | 19 +++----------------
 drivers/video/backlight/pwm_bl.c               |  8 +++++---
 include/linux/platform_data/pwm-renesas-tpu.h  | 16 ----------------
 include/linux/pwm.h                            |  6 +++++-
 10 files changed, 33 insertions(+), 52 deletions(-)
 delete mode 100644 include/linux/platform_data/pwm-renesas-tpu.h

-- 
1.8.3.2


^ permalink raw reply

* Re: [PATCH] video: Check EDID for HDMI connection
From: Tomi Valkeinen @ 2014-04-14 12:53 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <1395873337-41305-1-git-send-email-cfreeman@nvidia.com>

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

On 09/04/14 00:43, Christopher Freeman wrote:
> 
> 
> On 4/8/14 2:19 AM, "Tomi Valkeinen" <tomi.valkeinen@ti.com> wrote:
> 
>> * PGP Signed by an unknown key
>>
>> Hi,
>>
>> On 27/03/14 00:35, cfreeman@nvidia.com wrote:
>>> From: David Ung <davidu@nvidia.com>
>>>
>>> Check EDID Vendor Specific Data Block bytes to see if the connection
>>> is HDMI and set FB_MISC_HDMI.
>>>
>>> Signed-off-by: David Ung <davidu@nvidia.com>
>>> Signed-off-by: Christopher Freeman<cfreeman@nvidia.com>
>>> ---
>>
>> Patch looks fine, but how do you use the flag? Shouldn't things like
>> detecting if the monitor supports audio be done with some more detailed
>> bits in the EDID data (not that I remember much from the HDMI spec).
> The Tegra HDMI driver uses FB_MISC_HDMI to select the type of connection
> it has hdmi/dvi and setup the avi info frames.
> agree that we could use the EDID data to determine the audio format
> support and sampling rates, but currently that's not being used.
> I think determining the audio format and sample rate support could be
> added in a separate and future patch.

Yep. I don't see any harm with the patch, even if it's not perfect =).
So I'm queuing it for 3.16.

 Tomi



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

^ permalink raw reply

* Re: [PATCH] video: bf54x-lq043fb: fix build error
From: Tomi Valkeinen @ 2014-04-14 12:44 UTC (permalink / raw)
  To: Steven Miao
  Cc: Jean-Christophe Plagniol-Villard, adi-buildroot-devel,
	linux-kernel, linux-fbdev, Steven Miao
In-Reply-To: <1397266245-3144-1-git-send-email-realmz6@kernel.org>

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

On 12/04/14 04:30, Steven Miao wrote:
> From: Steven Miao <realmz6@gmail.com>
> 
> should include linux/gpio.h
> 
> Signed-off-by: Steven Miao <realmz6@gmail.com>
> ---
>  drivers/video/bf54x-lq043fb.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
> index 42b8f9d..d2b54f1 100644
> --- a/drivers/video/bf54x-lq043fb.c
> +++ b/drivers/video/bf54x-lq043fb.c
> @@ -49,6 +49,7 @@
>  #include <linux/spinlock.h>
>  #include <linux/dma-mapping.h>
>  #include <linux/platform_device.h>
> +#include <linux/gpio.h>

The driver includes <asm/gpio.h>. I think that should be removed, and
<linux/gpio.h> should be used.

Can you also remove the asm/gpio.h in your patch, and see if it compiles
fine?

 Tomi



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

^ permalink raw reply

* [PATCH] OMAPDSS: fix shared irq handlers
From: Tomi Valkeinen @ 2014-04-14 11:48 UTC (permalink / raw)
  To: linux-fbdev

DSS uses shared irq handlers for DISPC and DSI, because on OMAP3, the
DISPC and DSI share the same irq line.

However, the irq handlers presume that the hardware is enabled, which,
in theory, may not be the case with shared irq handlers. So if an
interrupt happens while the DISPC/DSI is off, the kernel will halt as
the irq handler tries to access the DISPC/DSI registers.

In practice that should never happen, as both DSI and DISPC are in the
same power domain. So if there's an IRQ for one of them, the other is
also enabled. However, if CONFIG_DEBUG_SHIRQ is enabled, the kernel will
generate a spurious IRQ, which then causes the problem.

This patch adds an is_enabled field for both DISPC and DSI, which is
used to track if the HW is enabled. For DISPC the code is slightly more
complex, as the users of DISPC can register the interrupt handler, and
we want to hide the is_enabled handling from the users of DISPC.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/video/omap2/dss/dispc.c | 55 +++++++++++++++++++++++++++++++++++------
 drivers/video/omap2/dss/dsi.c   | 20 +++++++++++++++
 2 files changed, 68 insertions(+), 7 deletions(-)

diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 2bbdb7ff7daf..b37e3fbf60cc 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -101,6 +101,8 @@ static struct {
 	void __iomem    *base;
 
 	int irq;
+	irq_handler_t user_handler;
+	void *user_data;
 
 	unsigned long core_clk_rate;
 	unsigned long tv_pclk_rate;
@@ -113,6 +115,8 @@ static struct {
 	u32		ctx[DISPC_SZ_REGS / sizeof(u32)];
 
 	const struct dispc_features *feat;
+
+	bool is_enabled;
 } dispc;
 
 enum omap_color_component {
@@ -3669,16 +3673,44 @@ static int __init dispc_init_features(struct platform_device *pdev)
 	return 0;
 }
 
+static irqreturn_t dispc_irq_handler(int irq, void *arg)
+{
+	if (!dispc.is_enabled)
+		return IRQ_NONE;
+
+	return dispc.user_handler(irq, dispc.user_data);
+}
+
 int dispc_request_irq(irq_handler_t handler, void *dev_id)
 {
-	return devm_request_irq(&dispc.pdev->dev, dispc.irq, handler,
-			     IRQF_SHARED, "OMAP DISPC", dev_id);
+	int r;
+
+	if (dispc.user_handler != NULL)
+		return -EBUSY;
+
+	dispc.user_handler = handler;
+	dispc.user_data = dev_id;
+
+	/* ensure the dispc_irq_handler sees the values above */
+	smp_wmb();
+
+	r = devm_request_irq(&dispc.pdev->dev, dispc.irq, dispc_irq_handler,
+			     IRQF_SHARED, "OMAP DISPC", &dispc);
+	if (r) {
+		dispc.user_handler = NULL;
+		dispc.user_data = NULL;
+	}
+
+	return r;
 }
 EXPORT_SYMBOL(dispc_request_irq);
 
 void dispc_free_irq(void *dev_id)
 {
-	devm_free_irq(&dispc.pdev->dev, dispc.irq, dev_id);
+	devm_free_irq(&dispc.pdev->dev, dispc.irq, &dispc);
+
+	dispc.user_handler = NULL;
+	dispc.user_data = NULL;
 }
 EXPORT_SYMBOL(dispc_free_irq);
 
@@ -3750,6 +3782,12 @@ static int __exit omap_dispchw_remove(struct platform_device *pdev)
 
 static int dispc_runtime_suspend(struct device *dev)
 {
+	dispc.is_enabled = false;
+	/* ensure the dispc_irq_handler sees the is_enabled value */
+	smp_wmb();
+	/* wait for current handler to finish before turning the DISPC off */
+	synchronize_irq(dispc.irq);
+
 	dispc_save_context();
 
 	return 0;
@@ -3763,12 +3801,15 @@ static int dispc_runtime_resume(struct device *dev)
 	 * _omap_dispc_initial_config(). We can thus use it to detect if
 	 * we have lost register context.
 	 */
-	if (REG_GET(DISPC_CONFIG, 2, 1) = OMAP_DSS_LOAD_FRAME_ONLY)
-		return 0;
+	if (REG_GET(DISPC_CONFIG, 2, 1) != OMAP_DSS_LOAD_FRAME_ONLY) {
+		_omap_dispc_initial_config();
 
-	_omap_dispc_initial_config();
+		dispc_restore_context();
+	}
 
-	dispc_restore_context();
+	dispc.is_enabled = true;
+	/* ensure the dispc_irq_handler sees the is_enabled value */
+	smp_wmb();
 
 	return 0;
 }
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
index 121d1049d0bc..8be9b04d8849 100644
--- a/drivers/video/omap2/dss/dsi.c
+++ b/drivers/video/omap2/dss/dsi.c
@@ -297,6 +297,8 @@ struct dsi_data {
 
 	int irq;
 
+	bool is_enabled;
+
 	struct clk *dss_clk;
 	struct clk *sys_clk;
 
@@ -795,6 +797,9 @@ static irqreturn_t omap_dsi_irq_handler(int irq, void *arg)
 	dsidev = (struct platform_device *) arg;
 	dsi = dsi_get_dsidrv_data(dsidev);
 
+	if (!dsi->is_enabled)
+		return IRQ_NONE;
+
 	spin_lock(&dsi->irq_lock);
 
 	irqstatus = dsi_read_reg(dsidev, DSI_IRQSTATUS);
@@ -5671,6 +5676,15 @@ static int __exit omap_dsihw_remove(struct platform_device *dsidev)
 
 static int dsi_runtime_suspend(struct device *dev)
 {
+	struct platform_device *pdev = to_platform_device(dev);
+	struct dsi_data *dsi = dsi_get_dsidrv_data(pdev);
+
+	dsi->is_enabled = false;
+	/* ensure the irq handler sees the is_enabled value */
+	smp_wmb();
+	/* wait for current handler to finish before turning the DSI off */
+	synchronize_irq(dsi->irq);
+
 	dispc_runtime_put();
 
 	return 0;
@@ -5678,12 +5692,18 @@ static int dsi_runtime_suspend(struct device *dev)
 
 static int dsi_runtime_resume(struct device *dev)
 {
+	struct platform_device *pdev = to_platform_device(dev);
+	struct dsi_data *dsi = dsi_get_dsidrv_data(pdev);
 	int r;
 
 	r = dispc_runtime_get();
 	if (r)
 		return r;
 
+	dsi->is_enabled = true;
+	/* ensure the irq handler sees the is_enabled value */
+	smp_wmb();
+
 	return 0;
 }
 
-- 
1.8.3.2


^ permalink raw reply related

* Re: [patch] video: mmpfb: cleanup some static checker warnings in probe()
From: Jingoo Han @ 2014-04-14  8:49 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <20140414080929.GB13372@mwanda>

On Monday, April 14, 2014 5:09 PM, Dan Carpenter wrote:
> 
> Sparse complains about using zero instead of NULL for pointers.
> Probably, if we enabled the warning, then GCC would complain about the
> unused initializers.  I've just removed them.
> 
> Smatch complains that we first check if "fbi" is NULL and then
> dereference it in the error handling.  It turns out that "fbi" can't be
> NULL so I've removed the check.

Yes, right.
'fbi' cannot be NULL, because 'info->par' is set as below.

./drivers/video/fbsysfs.c
struct fb_info *framebuffer_alloc(size_t size, struct device *dev)
{
.....
        info = (struct fb_info *) p;

        if (size)
                info->par = p + fb_info_size;

> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

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

Best regards,
Jingoo Han

> 
> diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c
> index 7ab31eb..910fcc6 100644
> --- a/drivers/video/fbdev/mmp/fb/mmpfb.c
> +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c
> @@ -554,8 +554,8 @@ static void fb_info_clear(struct fb_info *info)
>  static int mmpfb_probe(struct platform_device *pdev)
>  {
>  	struct mmp_buffer_driver_mach_info *mi;
> -	struct fb_info *info = 0;
> -	struct mmpfb_info *fbi = 0;
> +	struct fb_info *info;
> +	struct mmpfb_info *fbi;
>  	int ret, modes_num;
> 
>  	mi = pdev->dev.platform_data;
> @@ -569,10 +569,6 @@ static int mmpfb_probe(struct platform_device *pdev)
>  	if (info = NULL)
>  		return -ENOMEM;
>  	fbi = info->par;
> -	if (!fbi) {
> -		ret = -EINVAL;
> -		goto failed;
> -	}
> 
>  	/* init fb */
>  	fbi->fb_info = info;
> @@ -667,7 +663,6 @@ failed_free_buff:
>  		fbi->fb_start_dma);
>  failed_destroy_mutex:
>  	mutex_destroy(&fbi->access_ok);
> -failed:
>  	dev_err(fbi->dev, "mmp-fb: frame buffer device init failed\n");
> 
>  	framebuffer_release(info);


^ permalink raw reply

* [patch] video: mmpfb: cleanup some static checker warnings in probe()
From: Dan Carpenter @ 2014-04-14  8:09 UTC (permalink / raw)
  To: linux-fbdev

Sparse complains about using zero instead of NULL for pointers.
Probably, if we enabled the warning, then GCC would complain about the
unused initializers.  I've just removed them.

Smatch complains that we first check if "fbi" is NULL and then
dereference it in the error handling.  It turns out that "fbi" can't be
NULL so I've removed the check.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c
index 7ab31eb..910fcc6 100644
--- a/drivers/video/fbdev/mmp/fb/mmpfb.c
+++ b/drivers/video/fbdev/mmp/fb/mmpfb.c
@@ -554,8 +554,8 @@ static void fb_info_clear(struct fb_info *info)
 static int mmpfb_probe(struct platform_device *pdev)
 {
 	struct mmp_buffer_driver_mach_info *mi;
-	struct fb_info *info = 0;
-	struct mmpfb_info *fbi = 0;
+	struct fb_info *info;
+	struct mmpfb_info *fbi;
 	int ret, modes_num;
 
 	mi = pdev->dev.platform_data;
@@ -569,10 +569,6 @@ static int mmpfb_probe(struct platform_device *pdev)
 	if (info = NULL)
 		return -ENOMEM;
 	fbi = info->par;
-	if (!fbi) {
-		ret = -EINVAL;
-		goto failed;
-	}
 
 	/* init fb */
 	fbi->fb_info = info;
@@ -667,7 +663,6 @@ failed_free_buff:
 		fbi->fb_start_dma);
 failed_destroy_mutex:
 	mutex_destroy(&fbi->access_ok);
-failed:
 	dev_err(fbi->dev, "mmp-fb: frame buffer device init failed\n");
 
 	framebuffer_release(info);

^ permalink raw reply related

* [PATCH v2 3/3] video: clps711x: Add bindings documentation for CLPS711X framebuffer
From: Alexander Shiyan @ 2014-04-12  6:55 UTC (permalink / raw)
  To: linux-fbdev-u79uwXL29TY76Z2rM5mHXA
  Cc: Jean-Christophe Plagniol-Villard, Tomi Valkeinen, Olof Johansson,
	Arnd Bergmann, devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring,
	Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Grant Likely,
	Alexander Shiyan

Add OF document for Cirrus Logic CLPS711X framebuffer driver.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
 .../bindings/video/cirrus,clps711x-fb.txt          | 47 ++++++++++++++++++++++
 1 file changed, 47 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/video/cirrus,clps711x-fb.txt

diff --git a/Documentation/devicetree/bindings/video/cirrus,clps711x-fb.txt b/Documentation/devicetree/bindings/video/cirrus,clps711x-fb.txt
new file mode 100644
index 0000000..6fc3c6a
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/cirrus,clps711x-fb.txt
@@ -0,0 +1,47 @@
+* Currus Logic CLPS711X Framebuffer
+
+Required properties:
+- compatible: Shall contain "cirrus,clps711x-fb".
+- reg       : Physical base address and length of the controller's registers +
+              location and size of the framebuffer memory.
+- clocks    : phandle + clock specifier pair of the FB reference clock.
+- display   : phandle to a display node as described in
+              Documentation/devicetree/bindings/video/display-timing.txt.
+              Additionally, the display node has to define properties:
+  - bits-per-pixel: Bits per pixel.
+  - ac-prescale   : LCD AC bias frequency. This frequency is the required
+                    AC bias frequency for a given manufacturer's LCD plate.
+  - cmap-invert   : Invert the color levels (Optional).
+
+Optional properties:
+- lcd-supply: Regulator for LCD supply voltage.
+
+Example:
+	fb: fb@800002c0 {
+		compatible = "cirrus,ep7312-fb", "cirrus,clps711x-fb";
+		reg = <0x800002c0 0xd44>, <0x60000000 0xc000>;
+		clocks = <&clks 2>;
+		lcd-supply = <&reg5v0>;
+		display = <&display>;
+	};
+
+	display: display {
+		model = "320x240x4";
+		native-mode = <&timing0>;
+		bits-per-pixel = <4>;
+		ac-prescale = <17>;
+
+		display-timings {
+			timing0: 320x240 {
+				hactive = <320>;
+				hback-porch = <0>;
+				hfront-porch = <0>;
+				hsync-len = <0>;
+				vactive = <240>;
+				vback-porch = <0>;
+				vfront-porch = <0>;
+				vsync-len = <0>;
+				clock-frequency = <6500000>;
+			};
+		};
+	};
-- 
1.8.3.2


^ permalink raw reply related

* [PATCH v2 2/3] video: clps711x: Switch CLPS711X boards to use new FB driver
From: Alexander Shiyan @ 2014-04-12  6:53 UTC (permalink / raw)
  To: linux-fbdev

This patch removes old implementation of Cirrus Logic CLPS711X FB
driver and switch current users to use new one.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
 arch/arm/mach-clps711x/board-autcpu12.c |   2 +-
 arch/arm/mach-clps711x/board-edb7211.c  |   2 +-
 arch/arm/mach-clps711x/board-p720t.c    |   2 +-
 arch/arm/mach-clps711x/devices.c        |  22 +++
 arch/arm/mach-clps711x/devices.h        |   1 +
 drivers/video/fbdev/Kconfig             |  18 +-
 drivers/video/fbdev/Makefile            |   2 +-
 drivers/video/fbdev/clps711xfb.c        | 315 --------------------------------
 8 files changed, 38 insertions(+), 326 deletions(-)
 delete mode 100644 drivers/video/fbdev/clps711xfb.c

diff --git a/arch/arm/mach-clps711x/board-autcpu12.c b/arch/arm/mach-clps711x/board-autcpu12.c
index d62ca16..ed8369d 100644
--- a/arch/arm/mach-clps711x/board-autcpu12.c
+++ b/arch/arm/mach-clps711x/board-autcpu12.c
@@ -249,7 +249,7 @@ static void __init autcpu12_init(void)
 {
 	clps711x_devices_init();
 	platform_device_register(&autcpu12_flash_pdev);
-	platform_device_register_simple("video-clps711x", 0, NULL, 0);
+	clps711x_add_fb(CLPS711X_SRAM_BASE, CLPS711X_SRAM_SIZE, false);
 	platform_device_register_simple("cs89x0", 0, autcpu12_cs8900_resource,
 					ARRAY_SIZE(autcpu12_cs8900_resource));
 	platform_device_register(&autcpu12_mmgpio_pdev);
diff --git a/arch/arm/mach-clps711x/board-edb7211.c b/arch/arm/mach-clps711x/board-edb7211.c
index 0776098..973900c 100644
--- a/arch/arm/mach-clps711x/board-edb7211.c
+++ b/arch/arm/mach-clps711x/board-edb7211.c
@@ -166,7 +166,7 @@ static void __init edb7211_init_late(void)
 	platform_device_register_data(&platform_bus, "generic-bl", 0,
 				      &edb7211_lcd_backlight_pdata,
 				      sizeof(edb7211_lcd_backlight_pdata));
-	platform_device_register_simple("video-clps711x", 0, NULL, 0);
+	clps711x_add_fb(CLPS711X_SDRAM0_BASE, VIDEORAM_SIZE, true);
 	platform_device_register_simple("cs89x0", 0, edb7211_cs8900_resource,
 					ARRAY_SIZE(edb7211_cs8900_resource));
 	platform_device_register_data(&platform_bus, "i2c-gpio", 0,
diff --git a/arch/arm/mach-clps711x/board-p720t.c b/arch/arm/mach-clps711x/board-p720t.c
index 67b7337..af35aa8 100644
--- a/arch/arm/mach-clps711x/board-p720t.c
+++ b/arch/arm/mach-clps711x/board-p720t.c
@@ -354,7 +354,7 @@ static void __init p720t_init_late(void)
 	platform_device_register_data(&platform_bus, "generic-bl", 0,
 				      &p720t_lcd_backlight_pdata,
 				      sizeof(p720t_lcd_backlight_pdata));
-	platform_device_register_simple("video-clps711x", 0, NULL, 0);
+	clps711x_add_fb(CLPS711X_SRAM_BASE, CLPS711X_SRAM_SIZE, false);
 	platform_device_register_data(&platform_bus, "leds-gpio", 0,
 				      &p720t_gpio_led_pdata,
 				      sizeof(p720t_gpio_led_pdata));
diff --git a/arch/arm/mach-clps711x/devices.c b/arch/arm/mach-clps711x/devices.c
index 2001488..d32c73f 100644
--- a/arch/arm/mach-clps711x/devices.c
+++ b/arch/arm/mach-clps711x/devices.c
@@ -14,6 +14,28 @@
 
 #include <mach/hardware.h>
 
+static bool fb_invert __initdata;
+
+void __init clps711x_add_fb(phys_addr_t base, resource_size_t size, bool invert)
+{
+	struct resource res[2];
+
+	memset(res, 0, sizeof(res));
+
+	res[0].flags = IORESOURCE_MEM;
+	res[0].start = CLPS711X_PHYS_BASE + LCDCON;
+	res[0].end = CLPS711X_PHYS_BASE + FBADDR + 3;
+	res[1].flags = IORESOURCE_MEM;
+	res[1].start = base;
+	res[1].end = base + size - 1;
+	fb_invert = invert;
+
+	platform_device_register_resndata(NULL, "clps711x-fb",
+					  PLATFORM_DEVID_NONE,
+					  res, ARRAY_SIZE(res),
+					  &fb_invert, sizeof(fb_invert));
+}
+
 static const phys_addr_t clps711x_gpios[][2] __initconst = {
 	{ PADR, PADDR },
 	{ PBDR, PBDDR },
diff --git a/arch/arm/mach-clps711x/devices.h b/arch/arm/mach-clps711x/devices.h
index a5efc17..3a44153 100644
--- a/arch/arm/mach-clps711x/devices.h
+++ b/arch/arm/mach-clps711x/devices.h
@@ -9,4 +9,5 @@
  * (at your option) any later version.
  */
 
+void clps711x_add_fb(phys_addr_t, resource_size_t, bool);
 void clps711x_devices_init(void);
diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
index 45fd7f3..d1f6dca 100644
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -302,14 +302,18 @@ config FB_ACORN
 	  unsure, say N.
 
 config FB_CLPS711X
-	bool "CLPS711X LCD support"
-	depends on (FB = y) && ARM && ARCH_CLPS711X
-	select FB_CFB_FILLRECT
-	select FB_CFB_COPYAREA
-	select FB_CFB_IMAGEBLIT
+	tristate "CLPS711X LCD support"
+	depends on FB && (ARCH_CLPS711X || COMPILE_TEST)
+	select BACKLIGHT_LCD_SUPPORT
+	select FB_MODE_HELPERS
+	select FB_SYS_FILLRECT
+	select FB_SYS_COPYAREA
+	select FB_SYS_IMAGEBLIT
+	select LCD_CLASS_DEVICE
+	select VIDEOMODE_HELPERS
 	help
-	  Say Y to enable the Framebuffer driver for the CLPS7111 and
-	  EP7212 processors.
+	  Say Y to enable the Framebuffer driver for the Cirrus Logic
+	  CLPS711X CPUs.
 
 config FB_SA1100
 	bool "SA-1100 LCD support"
diff --git a/drivers/video/fbdev/Makefile b/drivers/video/fbdev/Makefile
index 0284f2a..0164bb1 100644
--- a/drivers/video/fbdev/Makefile
+++ b/drivers/video/fbdev/Makefile
@@ -14,7 +14,7 @@ obj-$(CONFIG_FB_WMT_GE_ROPS)   += wmt_ge_rops.o
 # Hardware specific drivers go first
 obj-$(CONFIG_FB_AMIGA)            += amifb.o c2p_planar.o
 obj-$(CONFIG_FB_ARC)              += arcfb.o
-obj-$(CONFIG_FB_CLPS711X)         += clps711xfb.o
+obj-$(CONFIG_FB_CLPS711X)	  += clps711x-fb.o
 obj-$(CONFIG_FB_CYBER2000)        += cyber2000fb.o
 obj-$(CONFIG_FB_GRVGA)            += grvga.o
 obj-$(CONFIG_FB_PM2)              += pm2fb.o
diff --git a/drivers/video/fbdev/clps711xfb.c b/drivers/video/fbdev/clps711xfb.c
deleted file mode 100644
index f009806..0000000
--- a/drivers/video/fbdev/clps711xfb.c
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- *  linux/drivers/video/clps711xfb.c
- *
- *  Copyright (C) 2000-2001 Deep Blue Solutions Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- *  Framebuffer driver for the CLPS7111 and EP7212 processors.
- */
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/slab.h>
-#include <linux/fb.h>
-#include <linux/init.h>
-#include <linux/delay.h>
-#include <linux/platform_device.h>
-
-#include <mach/hardware.h>
-#include <asm/mach-types.h>
-#include <linux/uaccess.h>
-
-struct fb_info	*cfb;
-
-#define CMAP_MAX_SIZE	16
-
-/*
- * LCD AC Prescale.  This comes from the LCD panel manufacturers specifications.
- * This determines how many clocks + 1 of CL1 before the M signal toggles.
- * The number of lines on the display must not be divisible by this number.
- */
-static unsigned int lcd_ac_prescale = 13;
-
-/*
- *    Set a single color register. Return != 0 for invalid regno.
- */
-static int
-clps7111fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
-		     u_int transp, struct fb_info *info)
-{
-	unsigned int level, mask, shift, pal;
-
-	if (regno >= (1 << info->var.bits_per_pixel))
-		return 1;
-
-	/* gray = 0.30*R + 0.58*G + 0.11*B */
-	level = (red * 77 + green * 151 + blue * 28) >> 20;
-
-	/*
-	 * On an LCD, a high value is dark, while a low value is light. 
-	 * So we invert the level.
-	 *
-	 * This isn't true on all machines, so we only do it on EDB7211.
-	 *  --rmk
-	 */
-	if (machine_is_edb7211()) {
-		level = 15 - level;
-	}
-
-	shift = 4 * (regno & 7);
-	level <<= shift;
-	mask  = 15 << shift;
-	level &= mask;
-
-	regno = regno < 8 ? PALLSW : PALMSW;
-
-	pal = clps_readl(regno);
-	pal = (pal & ~mask) | level;
-	clps_writel(pal, regno);
-
-	return 0;
-}
-
-/*
- * Validate the purposed mode.
- */	
-static int
-clps7111fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
-{
-	var->transp.msb_right	= 0;
-	var->transp.offset	= 0;
-	var->transp.length	= 0;
-	var->red.msb_right	= 0;
-	var->red.offset		= 0;
-	var->red.length		= var->bits_per_pixel;
-	var->green		= var->red;
-	var->blue		= var->red;
-
-	if (var->bits_per_pixel > 4) 
-		return -EINVAL;
-
-	return 0;
-}
-
-/*
- * Set the hardware state.
- */ 
-static int 
-clps7111fb_set_par(struct fb_info *info)
-{
-	unsigned int lcdcon, syscon, pixclock;
-
-	switch (info->var.bits_per_pixel) {
-	case 1:
-		info->fix.visual = FB_VISUAL_MONO01;
-		break;
-	case 2:
-		info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
-		break;
-	case 4:
-		info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
-		break;
-	}
-
-	info->fix.line_length = info->var.xres_virtual * info->var.bits_per_pixel / 8;
-
-	lcdcon = (info->var.xres_virtual * info->var.yres_virtual * info->var.bits_per_pixel) / 128 - 1;
-	lcdcon |= ((info->var.xres_virtual / 16) - 1) << 13;
-	lcdcon |= lcd_ac_prescale << 25;
-
-	/*
-	 * Calculate pixel prescale value from the pixclock.  This is:
-	 *  36.864MHz / pixclock_mhz - 1.
-	 * However, pixclock is in picoseconds, so this ends up being:
-	 *  36864000 * pixclock_ps / 10^12 - 1
-	 * and this will overflow the 32-bit math.  We perform this as
-	 * (9 * 4096000 = 36864000):
-	 *  pixclock_ps * 9 * (4096000 / 10^12) - 1
-	 */
-	pixclock = 9 * info->var.pixclock / 244140 - 1;
-	lcdcon |= pixclock << 19;
-
-	if (info->var.bits_per_pixel = 4)
-		lcdcon |= LCDCON_GSMD;
-	if (info->var.bits_per_pixel >= 2)
-		lcdcon |= LCDCON_GSEN;
-
-	/*
-	 * LCDCON must only be changed while the LCD is disabled
-	 */
-	syscon = clps_readl(SYSCON1);
-	clps_writel(syscon & ~SYSCON1_LCDEN, SYSCON1);
-	clps_writel(lcdcon, LCDCON);
-	clps_writel(syscon | SYSCON1_LCDEN, SYSCON1);
-	return 0;
-}
-
-static int clps7111fb_blank(int blank, struct fb_info *info)
-{
-	/* Enable/Disable LCD controller. */
-	if (blank)
-		clps_writel(clps_readl(SYSCON1) & ~SYSCON1_LCDEN, SYSCON1);
-	else
-		clps_writel(clps_readl(SYSCON1) | SYSCON1_LCDEN, SYSCON1);
-
-	return 0;
-}
-
-static struct fb_ops clps7111fb_ops = {
-	.owner		= THIS_MODULE,
-	.fb_check_var	= clps7111fb_check_var,
-	.fb_set_par	= clps7111fb_set_par,
-	.fb_setcolreg	= clps7111fb_setcolreg,
-	.fb_blank	= clps7111fb_blank,
-	.fb_fillrect	= cfb_fillrect,
-	.fb_copyarea	= cfb_copyarea,
-	.fb_imageblit	= cfb_imageblit,
-};
-
-static void clps711x_guess_lcd_params(struct fb_info *info)
-{
-	unsigned int lcdcon, syscon, size;
-	unsigned long phys_base = PAGE_OFFSET;
-	void *virt_base = (void *)PAGE_OFFSET;
-
-	info->var.xres_virtual	 = 640;
-	info->var.yres_virtual	 = 240;
-	info->var.bits_per_pixel = 4;
-	info->var.activate	 = FB_ACTIVATE_NOW;
-	info->var.height	 = -1;
-	info->var.width		 = -1;
-	info->var.pixclock	 = 93006; /* 10.752MHz pixel clock */
-
-	/*
-	 * If the LCD controller is already running, decode the values
-	 * in LCDCON to xres/yres/bpp/pixclock/acprescale
-	 */
-	syscon = clps_readl(SYSCON1);
-	if (syscon & SYSCON1_LCDEN) {
-		lcdcon = clps_readl(LCDCON);
-
-		/*
-		 * Decode GSMD and GSEN bits to bits per pixel
-		 */
-		switch (lcdcon & (LCDCON_GSMD | LCDCON_GSEN)) {
-		case LCDCON_GSMD | LCDCON_GSEN:
-			info->var.bits_per_pixel = 4;
-			break;
-
-		case LCDCON_GSEN:
-			info->var.bits_per_pixel = 2;
-			break;
-
-		default:
-			info->var.bits_per_pixel = 1;
-			break;
-		}
-
-		/*
-		 * Decode xres/yres
-		 */
-		info->var.xres_virtual = (((lcdcon >> 13) & 0x3f) + 1) * 16;
-		info->var.yres_virtual = (((lcdcon & 0x1fff) + 1) * 128) /
-					  (info->var.xres_virtual *
-					   info->var.bits_per_pixel);
-
-		/*
-		 * Calculate pixclock
-		 */
-		info->var.pixclock = (((lcdcon >> 19) & 0x3f) + 1) * 244140 / 9;
-
-		/*
-		 * Grab AC prescale
-		 */
-		lcd_ac_prescale = (lcdcon >> 25) & 0x1f;
-	}
-
-	info->var.xres = info->var.xres_virtual;
-	info->var.yres = info->var.yres_virtual;
-	info->var.grayscale = info->var.bits_per_pixel > 1;
-
-	size = info->var.xres * info->var.yres * info->var.bits_per_pixel / 8;
-
-	/*
-	 * Might be worth checking to see if we can use the on-board
-	 * RAM if size here...
-	 * CLPS7110 - no on-board SRAM
-	 * EP7212   - 38400 bytes
-	 */
-	if (size <= 38400) {
-		printk(KERN_INFO "CLPS711xFB: could use on-board SRAM?\n");
-	}
-
-	if ((syscon & SYSCON1_LCDEN) = 0) {
-		/*
-		 * The display isn't running.  Ensure that
-		 * the display memory is empty.
-		 */
-		memset(virt_base, 0, size);
-	}
-
-	info->screen_base    = virt_base;
-	info->fix.smem_start = phys_base;
-	info->fix.smem_len   = PAGE_ALIGN(size);
-	info->fix.type       = FB_TYPE_PACKED_PIXELS;
-}
-
-static int clps711x_fb_probe(struct platform_device *pdev)
-{
-	int err = -ENOMEM;
-
-	if (fb_get_options("clps711xfb", NULL))
-		return -ENODEV;
-
-	cfb = kzalloc(sizeof(*cfb), GFP_KERNEL);
-	if (!cfb)
-		goto out;
-
-	strcpy(cfb->fix.id, "clps711x");
-
-	cfb->fbops		= &clps7111fb_ops;
-	cfb->flags		= FBINFO_DEFAULT;
-
-	clps711x_guess_lcd_params(cfb);
-
-	fb_alloc_cmap(&cfb->cmap, CMAP_MAX_SIZE, 0);
-
-	err = register_framebuffer(cfb);
-
-out:	return err;
-}
-
-static int clps711x_fb_remove(struct platform_device *pdev)
-{
-	unregister_framebuffer(cfb);
-	kfree(cfb);
-
-	return 0;
-}
-
-static struct platform_driver clps711x_fb_driver = {
-	.driver	= {
-		.name	= "video-clps711x",
-		.owner	= THIS_MODULE,
-	},
-	.probe	= clps711x_fb_probe,
-	.remove	= clps711x_fb_remove,
-};
-module_platform_driver(clps711x_fb_driver);
-
-MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>");
-MODULE_DESCRIPTION("CLPS711X framebuffer driver");
-MODULE_LICENSE("GPL");
-- 
1.8.3.2


^ permalink raw reply related

* [PATCH v2 1/3] video: clps711x: Add new Cirrus Logic CLPS711X framebuffer driver
From: Alexander Shiyan @ 2014-04-12  6:53 UTC (permalink / raw)
  To: linux-fbdev

This adds support for the framebuffer available in the Cirrus
Logic CLPS711X CPUs.
FB features:
- 1-2-4 bits per pixel.
- Programmable panel size to a maximum of 1024x256 at 4 bps.
- Relocatible Frame Buffer (SRAM or SDRAM).
- Programmable refresh rates.
- 16 gray scale values.
This new driver supports usage with devicetree and as a general
change it removes last user of <mach/hardware.h> for CLPS711X targets,
so this subarch will fully prepared to switch to multiplatform.
The driver have been tested with custom board equipped Cirrus Logic
EP7312 in DT and non-DT mode.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
 drivers/video/fbdev/clps711x-fb.c | 456 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 456 insertions(+)
 create mode 100644 drivers/video/fbdev/clps711x-fb.c

diff --git a/drivers/video/fbdev/clps711x-fb.c b/drivers/video/fbdev/clps711x-fb.c
new file mode 100644
index 0000000..87fd42d
--- /dev/null
+++ b/drivers/video/fbdev/clps711x-fb.c
@@ -0,0 +1,456 @@
+/*
+ * Cirrus Logic CLPS711X FB driver
+ *
+ * Copyright (C) 2014 Alexander Shiyan <shc_work@mail.ru>
+ * Based on driver by Russell King <rmk@arm.linux.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <linux/clk.h>
+#include <linux/fb.h>
+#include <linux/io.h>
+#include <linux/lcd.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+#include <linux/regmap.h>
+#include <linux/mfd/syscon.h>
+#include <linux/mfd/syscon/clps711x.h>
+#include <linux/regulator/consumer.h>
+#include <video/of_display_timing.h>
+
+#define CLPS711X_FB_NAME	"clps711x-fb"
+#define CLPS711X_FB_BPP_MAX	(4)
+
+/* Registers relative to LCDCON */
+#define CLPS711X_LCDCON		(0x0000)
+# define LCDCON_GSEN		BIT(30)
+# define LCDCON_GSMD		BIT(31)
+#define CLPS711X_PALLSW		(0x0280)
+#define CLPS711X_PALMSW		(0x02c0)
+#define CLPS711X_FBADDR		(0x0d40)
+
+struct clps711x_fb_info {
+	struct clk		*clk;
+	void __iomem		*base;
+	struct regmap		*syscon;
+	resource_size_t		buffsize;
+	struct fb_videomode	mode;
+	struct regulator	*lcd_pwr;
+	u32			ac_prescale;
+	bool			cmap_invert;
+};
+
+static int clps711x_fb_setcolreg(u_int regno, u_int red, u_int green,
+				 u_int blue, u_int transp, struct fb_info *info)
+{
+	struct clps711x_fb_info *cfb = info->par;
+	u32 level, mask, shift;
+
+	if (regno >= BIT(info->var.bits_per_pixel))
+		return -EINVAL;
+
+	shift = 4 * (regno & 7);
+	mask  = 0xf << shift;
+	/* gray = 0.30*R + 0.58*G + 0.11*B */
+	level = (((red * 77 + green * 151 + blue * 28) >> 20) << shift) & mask;
+	if (cfb->cmap_invert)
+		level = 0xf - level;
+
+	regno = (regno < 8) ? CLPS711X_PALLSW : CLPS711X_PALMSW;
+
+	writel((readl(cfb->base + regno) & ~mask) | level, cfb->base + regno);
+
+	return 0;
+}
+
+static int clps711x_fb_check_var(struct fb_var_screeninfo *var,
+				 struct fb_info *info)
+{
+	u32 val;
+
+	if (var->bits_per_pixel < 1 ||
+	    var->bits_per_pixel > CLPS711X_FB_BPP_MAX)
+		return -EINVAL;
+
+	if (!var->pixclock)
+		return -EINVAL;
+
+	val = DIV_ROUND_UP(var->xres, 16) - 1;
+	if (val < 0x01 || val > 0x3f)
+		return -EINVAL;
+
+	val = DIV_ROUND_UP(var->yres * var->xres * var->bits_per_pixel, 128);
+	val--;
+	if (val < 0x001 || val > 0x1fff)
+		return -EINVAL;
+
+	var->transp.msb_right	= 0;
+	var->transp.offset	= 0;
+	var->transp.length	= 0;
+	var->red.msb_right	= 0;
+	var->red.offset		= 0;
+	var->red.length		= var->bits_per_pixel;
+	var->green		= var->red;
+	var->blue		= var->red;
+	var->grayscale		= var->bits_per_pixel > 1;
+
+	return 0;
+}
+
+static int clps711x_fb_set_par(struct fb_info *info)
+{
+	struct clps711x_fb_info *cfb = info->par;
+	resource_size_t size;
+	u32 lcdcon, pps;
+
+	size = (info->var.xres * info->var.yres * info->var.bits_per_pixel) / 8;
+	if (size > cfb->buffsize)
+		return -EINVAL;
+
+	switch (info->var.bits_per_pixel) {
+	case 1:
+		info->fix.visual = FB_VISUAL_MONO01;
+		break;
+	case 2:
+	case 4:
+		info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	info->fix.line_length = info->var.xres * info->var.bits_per_pixel / 8;
+	info->fix.smem_len = size;
+
+	lcdcon = (info->var.xres * info->var.yres *
+		  info->var.bits_per_pixel) / 128 - 1;
+	lcdcon |= ((info->var.xres / 16) - 1) << 13;
+	lcdcon |= (cfb->ac_prescale & 0x1f) << 25;
+
+	pps = clk_get_rate(cfb->clk) / (PICOS2KHZ(info->var.pixclock) * 1000);
+	if (pps)
+		pps--;
+	lcdcon |= (pps & 0x3f) << 19;
+
+	if (info->var.bits_per_pixel = 4)
+		lcdcon |= LCDCON_GSMD;
+	if (info->var.bits_per_pixel >= 2)
+		lcdcon |= LCDCON_GSEN;
+
+	/* LCDCON must only be changed while the LCD is disabled */
+	regmap_update_bits(cfb->syscon, SYSCON_OFFSET, SYSCON1_LCDEN, 0);
+	writel(lcdcon, cfb->base + CLPS711X_LCDCON);
+	regmap_update_bits(cfb->syscon, SYSCON_OFFSET,
+			   SYSCON1_LCDEN, SYSCON1_LCDEN);
+
+	return 0;
+}
+
+static int clps711x_fb_blank(int blank, struct fb_info *info)
+{
+	/* Return happy */
+	return 0;
+}
+
+static struct fb_ops clps711x_fb_ops = {
+	.owner		= THIS_MODULE,
+	.fb_setcolreg	= clps711x_fb_setcolreg,
+	.fb_check_var	= clps711x_fb_check_var,
+	.fb_set_par	= clps711x_fb_set_par,
+	.fb_blank	= clps711x_fb_blank,
+	.fb_fillrect	= sys_fillrect,
+	.fb_copyarea	= sys_copyarea,
+	.fb_imageblit	= sys_imageblit,
+};
+
+static int clps711x_lcd_check_fb(struct lcd_device *lcddev, struct fb_info *fi)
+{
+	struct clps711x_fb_info *cfb = dev_get_drvdata(&lcddev->dev);
+
+	return (!fi || fi->par = cfb) ? 1 : 0;
+}
+
+static int clps711x_lcd_get_power(struct lcd_device *lcddev)
+{
+	struct clps711x_fb_info *cfb = dev_get_drvdata(&lcddev->dev);
+
+	if (!IS_ERR_OR_NULL(cfb->lcd_pwr))
+		return regulator_is_enabled(cfb->lcd_pwr);
+
+	return 1;
+}
+
+static int clps711x_lcd_set_power(struct lcd_device *lcddev, int power)
+{
+	struct clps711x_fb_info *cfb = dev_get_drvdata(&lcddev->dev);
+
+	if (!IS_ERR_OR_NULL(cfb->lcd_pwr)) {
+		if (power)
+			return regulator_enable(cfb->lcd_pwr);
+		else
+			return regulator_disable(cfb->lcd_pwr);
+	}
+
+	return 0;
+}
+
+static struct lcd_ops clps711x_lcd_ops = {
+	.check_fb	= clps711x_lcd_check_fb,
+	.get_power	= clps711x_lcd_get_power,
+	.set_power	= clps711x_lcd_set_power,
+};
+
+static int clps711x_fb_get_mode(struct platform_device *pdev)
+{
+	struct fb_info *info = platform_get_drvdata(pdev);
+	bool *pinvert = dev_get_platdata(&pdev->dev);
+	struct clps711x_fb_info *cfb = info->par;
+	unsigned long pixclk;
+	unsigned int val;
+	int ret;
+
+	cfb->syscon = syscon_regmap_lookup_by_pdevname("syscon.1");
+	if (IS_ERR(cfb->syscon))
+		return PTR_ERR(cfb->syscon);
+
+	ret = regmap_read(cfb->syscon, SYSCON_OFFSET, &val);
+	if (ret)
+		return ret;
+
+	if (pinvert)
+		cfb->cmap_invert = *pinvert;
+
+	/* Get mode from LCD if active */
+	if (val & SYSCON1_LCDEN) {
+		val = readl(cfb->base + CLPS711X_LCDCON);
+
+		switch (val & (LCDCON_GSMD | LCDCON_GSEN)) {
+		case LCDCON_GSMD | LCDCON_GSEN:
+			info->var.bits_per_pixel = 4;
+			break;
+		case LCDCON_GSEN:
+			info->var.bits_per_pixel = 2;
+			break;
+		default:
+			info->var.bits_per_pixel = 1;
+			break;
+		}
+
+		cfb->mode.xres = (((val >> 13) & 0x3f) + 1) * 16;
+		cfb->mode.yres = (((val & 0x1fff) + 1) * 128) /
+				 (cfb->mode.xres * info->var.bits_per_pixel);
+		cfb->ac_prescale = (val >> 25) & 0x1f;
+		pixclk = clk_get_rate(cfb->clk) / (((val >> 19) & 0x3f) + 1);
+	} else {
+		/* Fixed setup for existing users */
+		info->var.bits_per_pixel = 4;
+		cfb->mode.xres = 640;
+		cfb->mode.yres = 240;
+		cfb->ac_prescale = 13;
+		pixclk = 10000000;
+	}
+
+	cfb->mode.refresh = pixclk / (cfb->mode.xres * cfb->mode.yres);
+	cfb->mode.pixclock = KHZ2PICOS(pixclk / 1000);
+
+	return 0;
+}
+
+static int clps711x_fb_get_mode_dt(struct platform_device *pdev)
+{
+	struct device_node *disp, *np = pdev->dev.of_node;
+	struct fb_info *info = platform_get_drvdata(pdev);
+	struct clps711x_fb_info *cfb = info->par;
+	int ret;
+
+	cfb->syscon +		syscon_regmap_lookup_by_compatible("cirrus,clps711x-syscon1");
+	if (IS_ERR(cfb->syscon))
+		return PTR_ERR(cfb->syscon);
+
+	disp = of_parse_phandle(np, "display", 0);
+	if (!disp) {
+		dev_err(&pdev->dev, "No display defined\n");
+		return -ENODATA;
+	}
+
+	ret = of_get_fb_videomode(disp, &cfb->mode, OF_USE_NATIVE_MODE);
+	if (ret)
+		return ret;
+
+	of_property_read_u32(disp, "ac-prescale", &cfb->ac_prescale);
+	cfb->cmap_invert = of_property_read_bool(disp, "cmap-invert");
+
+	return of_property_read_u32(disp, "bits-per-pixel",
+				    &info->var.bits_per_pixel);
+}
+
+static int clps711x_fb_probe(struct platform_device *pdev)
+{
+	struct device *dev = &pdev->dev;
+	struct device_node *np = dev->of_node;
+	struct clps711x_fb_info *cfb;
+	struct lcd_device *lcd;
+	struct fb_info *info;
+	struct resource *res;
+	int ret = -ENOENT;
+	u32 val;
+
+	if (fb_get_options(CLPS711X_FB_NAME, NULL))
+		return -ENODEV;
+
+	info = framebuffer_alloc(sizeof(*cfb), dev);
+	if (!info)
+		return -ENOMEM;
+
+	cfb = info->par;
+	platform_set_drvdata(pdev, info);
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res)
+		goto out_fb_release;
+	cfb->base = devm_ioremap(dev, res->start, resource_size(res));
+	if (!cfb->base) {
+		ret = -ENOMEM;
+		goto out_fb_release;
+	}
+
+	info->fix.mmio_start = res->start;
+	info->fix.mmio_len = resource_size(res);
+
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
+	info->screen_base = devm_ioremap_resource(dev, res);
+	if (IS_ERR(info->screen_base)) {
+		ret = PTR_ERR(info->screen_base);
+		goto out_fb_release;
+	}
+
+	/* Physical address should be aligned to 256 MiB */
+	if (res->start & 0x0fffffff) {
+		ret = -EINVAL;
+		goto out_fb_release;
+	}
+
+	info->apertures = alloc_apertures(1);
+	if (!info->apertures) {
+		ret = -ENOMEM;
+		goto out_fb_release;
+	}
+
+	cfb->buffsize = resource_size(res);
+	info->fix.smem_start = res->start;
+	info->apertures->ranges[0].base = info->fix.smem_start;
+	info->apertures->ranges[0].size = cfb->buffsize;
+
+	cfb->clk = devm_clk_get(dev, NULL);
+	if (IS_ERR(cfb->clk)) {
+		ret = PTR_ERR(cfb->clk);
+		goto out_fb_release;
+	}
+
+	ret = np ? clps711x_fb_get_mode_dt(pdev) : clps711x_fb_get_mode(pdev);
+	if (ret)
+		goto out_fb_release;
+
+	/* Force disable LCD on any mismatch */
+	if (info->fix.smem_start != (readb(cfb->base + CLPS711X_FBADDR) << 28))
+		regmap_update_bits(cfb->syscon, SYSCON_OFFSET,
+				   SYSCON1_LCDEN, 0);
+
+	ret = regmap_read(cfb->syscon, SYSCON_OFFSET, &val);
+	if (ret)
+		goto out_fb_release;
+
+	if (!(val & SYSCON1_LCDEN)) {
+		/* Setup start FB address */
+		writeb(info->fix.smem_start >> 28, cfb->base + CLPS711X_FBADDR);
+		/* Clean FB memory */
+		memset(info->screen_base, 0, cfb->buffsize);
+	}
+
+	cfb->lcd_pwr = devm_regulator_get(dev, "lcd");
+	if (PTR_ERR(cfb->lcd_pwr) = -EPROBE_DEFER) {
+		ret = -EPROBE_DEFER;
+		goto out_fb_release;
+	}
+
+	info->fbops = &clps711x_fb_ops;
+	info->flags = FBINFO_DEFAULT;
+	info->var.activate = FB_ACTIVATE_FORCE | FB_ACTIVATE_NOW;
+	info->var.height = -1;
+	info->var.width = -1;
+	info->var.vmode = FB_VMODE_NONINTERLACED;
+	info->fix.type = FB_TYPE_PACKED_PIXELS;
+	info->fix.accel = FB_ACCEL_NONE;
+	strlcpy(info->fix.id, CLPS711X_FB_NAME, sizeof(info->fix.id));
+	fb_videomode_to_var(&info->var, &cfb->mode);
+
+	ret = fb_alloc_cmap(&info->cmap, BIT(CLPS711X_FB_BPP_MAX), 0);
+	if (ret)
+		goto out_fb_release;
+
+	ret = fb_set_var(info, &info->var);
+	if (ret)
+		goto out_fb_dealloc_cmap;
+
+	ret = register_framebuffer(info);
+	if (ret)
+		goto out_fb_dealloc_cmap;
+
+	lcd = devm_lcd_device_register(dev, "clps711x-lcd", dev, cfb,
+				       &clps711x_lcd_ops);
+	if (!IS_ERR(lcd))
+		return 0;
+	
+	ret = PTR_ERR(lcd);
+	unregister_framebuffer(info);
+
+out_fb_dealloc_cmap:
+	regmap_update_bits(cfb->syscon, SYSCON_OFFSET, SYSCON1_LCDEN, 0);
+	fb_dealloc_cmap(&info->cmap);
+
+out_fb_release:
+	framebuffer_release(info);
+
+	return ret;
+}
+
+static int clps711x_fb_remove(struct platform_device *pdev)
+{
+	struct fb_info *info = platform_get_drvdata(pdev);
+	struct clps711x_fb_info *cfb = info->par;
+
+	regmap_update_bits(cfb->syscon, SYSCON_OFFSET, SYSCON1_LCDEN, 0);
+
+	unregister_framebuffer(info);
+	fb_dealloc_cmap(&info->cmap);
+	framebuffer_release(info);
+
+	return 0;
+}
+
+static const struct of_device_id __maybe_unused clps711x_fb_dt_ids[] = {
+	{ .compatible = "cirrus,clps711x-fb", },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, clps711x_fb_dt_ids);
+
+static struct platform_driver clps711x_fb_driver = {
+	.driver	= {
+		.name		= CLPS711X_FB_NAME,
+		.owner		= THIS_MODULE,
+		.of_match_table	= of_match_ptr(clps711x_fb_dt_ids),
+	},
+	.probe	= clps711x_fb_probe,
+	.remove	= clps711x_fb_remove,
+};
+module_platform_driver(clps711x_fb_driver);
+
+MODULE_AUTHOR("Alexander Shiyan <shc_work@mail.ru>");
+MODULE_DESCRIPTION("Cirrus Logic CLPS711X FB driver");
+MODULE_LICENSE("GPL");
-- 
1.8.3.2


^ permalink raw reply related

* [PATCH] video: bf54x-lq043fb: fix build error
From: Steven Miao @ 2014-04-12  1:30 UTC (permalink / raw)
  To: Jean-Christophe Plagniol-Villard, Tomi Valkeinen
  Cc: adi-buildroot-devel, linux-kernel, linux-fbdev, Steven Miao

From: Steven Miao <realmz6@gmail.com>

should include linux/gpio.h

Signed-off-by: Steven Miao <realmz6@gmail.com>
---
 drivers/video/bf54x-lq043fb.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
index 42b8f9d..d2b54f1 100644
--- a/drivers/video/bf54x-lq043fb.c
+++ b/drivers/video/bf54x-lq043fb.c
@@ -49,6 +49,7 @@
 #include <linux/spinlock.h>
 #include <linux/dma-mapping.h>
 #include <linux/platform_device.h>
+#include <linux/gpio.h>
 
 #include <asm/blackfin.h>
 #include <asm/irq.h>
-- 
1.7.9.5


^ permalink raw reply related

* Re: [GIT PULL] fbdev reorder for 3.15
From: Tomi Valkeinen @ 2014-04-10  5:50 UTC (permalink / raw)
  To: Linus Torvalds, Stephen Rothwell
  Cc: linux-kernel, linux-fbdev, Jean-Christophe PLAGNIOL-VILLARD
In-Reply-To: <CA+55aFytXaTBE6Uf2H=C-XX01Pk1-QArF6u7+yhditk-cJLVQw@mail.gmail.com>

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

On 09/04/14 22:23, Linus Torvalds wrote:

> Are there other things pending in this area? Because if there are, I
> think I'll take you up on your "or we can rebase on top of -rc1" offer
> instead.

Nothing from me, and as Stephen said, linux-next doesn't contain
anything either. So I think we're pretty safe here, but maybe you can
wait until you're ready to tag the -rc1, and merge this only then. If
something conflicting has popped up, I can then do a rebase on top of
-rc1 instead.

 Tomi



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

^ permalink raw reply

* Re: [GIT PULL] fbdev reorder for 3.15
From: Stephen Rothwell @ 2014-04-09 23:04 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Tomi Valkeinen, linux-kernel, linux-fbdev,
	Jean-Christophe PLAGNIOL-VILLARD
In-Reply-To: <CA+55aFytXaTBE6Uf2H=C-XX01Pk1-QArF6u7+yhditk-cJLVQw@mail.gmail.com>

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

Hi Linus,

On Wed, 9 Apr 2014 12:23:47 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> Are there other things pending in this area? Because if there are, I
> think I'll take you up on your "or we can rebase on top of -rc1" offer
> instead.

I have only 2 other commits that touch drivers/video in linux-next and
they are both from Tomi and both only touch a couple of files in
drivers/video/omap2/dss (and drivers/video/fbdev/omap2/dss/ since one of
them is based after the move).

I also have the following merge fix patch in linux-next (maybe you
already have this in the test merge branches):

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Tue, 4 Mar 2014 16:11:12 +1100
Subject: [PATCH] video: fbdev: fix up for removal of SGI Visual Workstation

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/video/fbdev/Kconfig  | 11 +----------
 drivers/video/fbdev/Makefile |  1 -
 2 files changed, 1 insertion(+), 11 deletions(-)

diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
index 31c3f3ddfd38..6b1984c7f4e7 100644
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -765,18 +765,9 @@ config FB_HGA
 	  As this card technology is at least 25 years old,
 	  most people will answer N here.
 
-config FB_SGIVW
-	tristate "SGI Visual Workstation framebuffer support"
-	depends on FB && X86_VISWS
-	select FB_CFB_FILLRECT
-	select FB_CFB_COPYAREA
-	select FB_CFB_IMAGEBLIT
-	help
-	  SGI Visual Workstation support for framebuffer graphics.
-
 config FB_GBE
 	bool "SGI Graphics Backend frame buffer support"
-	depends on (FB = y) && (SGI_IP32 || X86_VISWS)
+	depends on (FB = y) && SGI_IP32
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
diff --git a/drivers/video/fbdev/Makefile b/drivers/video/fbdev/Makefile
index 6ef2c66110e3..0284f2a12538 100644
--- a/drivers/video/fbdev/Makefile
+++ b/drivers/video/fbdev/Makefile
@@ -55,7 +55,6 @@ obj-$(CONFIG_FB_CG14)             += cg14.o sbuslib.o
 obj-$(CONFIG_FB_P9100)            += p9100.o sbuslib.o
 obj-$(CONFIG_FB_TCX)              += tcx.o sbuslib.o
 obj-$(CONFIG_FB_LEO)              += leo.o sbuslib.o
-obj-$(CONFIG_FB_SGIVW)            += sgivwfb.o
 obj-$(CONFIG_FB_ACORN)            += acornfb.o
 obj-$(CONFIG_FB_ATARI)            += atafb.o c2p_iplan2.o atafb_mfb.o \
                                      atafb_iplan2p2.o atafb_iplan2p4.o atafb_iplan2p8.o
-- 
1.9.0

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

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

^ permalink raw reply related

* Re: [GIT PULL] fbdev reorder for 3.15
From: Linus Torvalds @ 2014-04-09 19:23 UTC (permalink / raw)
  To: Tomi Valkeinen, Stephen Rothwell
  Cc: linux-kernel, linux-fbdev, Jean-Christophe PLAGNIOL-VILLARD
In-Reply-To: <5345258C.1070308@ti.com>

On Wed, Apr 9, 2014 at 3:48 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>
> The patches are based on 3.14-rc4, and cause big conflicts, although the
> conflicts are not complex as such. They are resolved in linux-next, and also in
> my two branches below. The first one contains a resolved merge for your master
> branch, the second one contains rebased patches on top of your master.

Ok, I did the merge, and it wasn't horrid, although it was good that
you had pre-merged and I could double-check because I did miss some
things (that would likely have shown up in my test builds, but maybe
not).

But looking at the reaulting history, I think I will undo the merge
after all, and end up using your rebased branch instead. Simply
because the mixed file movement and other changes during this merge
window just make the end result unnecessarily hard to follow wrt how
the changes happened.

Let me ruminate on this a while. I don't generally like rebasing, but
for something fairly "mindless" like the file rename, it seems a
better option.

Are there other things pending in this area? Because if there are, I
think I'll take you up on your "or we can rebase on top of -rc1" offer
instead.

          Linus

^ permalink raw reply

* [GIT PULL] fbdev reorder for 3.15
From: Tomi Valkeinen @ 2014-04-09 10:48 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-kernel, linux-fbdev, Jean-Christophe PLAGNIOL-VILLARD

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

Hi Linus,

Please pull the final fbdev changes for 3.15. This one reorders the
drivers/video directory structure.

The patches are based on 3.14-rc4, and cause big conflicts, although the
conflicts are not complex as such. They are resolved in linux-next, and also in
my two branches below. The first one contains a resolved merge for your master
branch, the second one contains rebased patches on top of your master. 

git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git 3.15/fb-reorder-merged
git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git 3.15/fb-reorder-rebased

I could also do a rebased version on top of 3.15-rc1 when it's released, if
that's more sensible. Or, if this kind of big move-files-around is a bad thing
(nobody has so far complained, on the contrary), we could also drop the whole
series.

 Tomi

The following changes since commit cfbf8d4857c26a8a307fb7cd258074c9dcd8c691:

  Linux 3.14-rc4 (2014-02-23 17:40:03 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git tags/fbdev-reorder-3.15

for you to fetch changes up to a1fd56fc812e29931f68acd05893f095a5ce5473:

  video: Kconfig: move drm and fb into separate menus (2014-03-05 08:28:52 +0200)

----------------------------------------------------------------
Reorder drivers/video/ directory so that all fbdev drivers are now located in
drivers/video/fbdev/ and the fbdev framework core files are located in
drivers/video/fbdev/core/

The drivers/video/Kconfig is modified so that the DRM and the fbdev menu
options are in separate submenus, instead of both being mixed in the same
'Graphics support' menu level.

----------------------------------------------------------------
Tomi Valkeinen (3):
      video: move fbdev to drivers/video/fbdev
      fbdev: move fbdev core files to separate directory
      video: Kconfig: move drm and fb into separate menus

 Documentation/DocBook/device-drivers.tmpl          |   10 +-
 drivers/Makefile                                   |    4 +-
 drivers/staging/xgifb/vb_def.h                     |    2 +-
 drivers/staging/xgifb/vb_struct.h                  |    2 +-
 drivers/staging/xgifb/vgatypes.h                   |    4 +-
 drivers/video/Kconfig                              | 2487 +-------------------
 drivers/video/Makefile                             |  168 +-
 drivers/video/console/sticon.c                     |    2 +-
 drivers/video/console/sticore.c                    |    2 +-
 drivers/video/{ => fbdev}/68328fb.c                |    0
 drivers/video/fbdev/Kconfig                        | 2481 +++++++++++++++++++
 drivers/video/fbdev/Makefile                       |  153 ++
 drivers/video/{ => fbdev}/acornfb.c                |    0
 drivers/video/{ => fbdev}/acornfb.h                |    0
 drivers/video/{ => fbdev}/amba-clcd.c              |    0
 drivers/video/{ => fbdev}/amifb.c                  |    0
 drivers/video/{ => fbdev}/arcfb.c                  |    0
 drivers/video/{ => fbdev}/arkfb.c                  |    0
 drivers/video/{ => fbdev}/asiliantfb.c             |    0
 drivers/video/{ => fbdev}/atafb.c                  |    0
 drivers/video/{ => fbdev}/atafb.h                  |    0
 drivers/video/{ => fbdev}/atafb_iplan2p2.c         |    0
 drivers/video/{ => fbdev}/atafb_iplan2p4.c         |    0
 drivers/video/{ => fbdev}/atafb_iplan2p8.c         |    0
 drivers/video/{ => fbdev}/atafb_mfb.c              |    0
 drivers/video/{ => fbdev}/atafb_utils.h            |    0
 drivers/video/{ => fbdev}/atmel_lcdfb.c            |    0
 drivers/video/{ => fbdev}/aty/Makefile             |    0
 drivers/video/{ => fbdev}/aty/ati_ids.h            |    0
 drivers/video/{ => fbdev}/aty/aty128fb.c           |    0
 drivers/video/{ => fbdev}/aty/atyfb.h              |    0
 drivers/video/{ => fbdev}/aty/atyfb_base.c         |    0
 drivers/video/{ => fbdev}/aty/mach64_accel.c       |    0
 drivers/video/{ => fbdev}/aty/mach64_ct.c          |    0
 drivers/video/{ => fbdev}/aty/mach64_cursor.c      |    0
 drivers/video/{ => fbdev}/aty/mach64_gx.c          |    0
 drivers/video/{ => fbdev}/aty/radeon_accel.c       |    0
 drivers/video/{ => fbdev}/aty/radeon_backlight.c   |    0
 drivers/video/{ => fbdev}/aty/radeon_base.c        |    0
 drivers/video/{ => fbdev}/aty/radeon_i2c.c         |    0
 drivers/video/{ => fbdev}/aty/radeon_monitor.c     |    0
 drivers/video/{ => fbdev}/aty/radeon_pm.c          |    0
 drivers/video/{ => fbdev}/aty/radeonfb.h           |    0
 drivers/video/{ => fbdev}/au1100fb.c               |    0
 drivers/video/{ => fbdev}/au1100fb.h               |    0
 drivers/video/{ => fbdev}/au1200fb.c               |    0
 drivers/video/{ => fbdev}/au1200fb.h               |    0
 drivers/video/{ => fbdev}/auo_k1900fb.c            |    0
 drivers/video/{ => fbdev}/auo_k1901fb.c            |    0
 drivers/video/{ => fbdev}/auo_k190x.c              |    0
 drivers/video/{ => fbdev}/auo_k190x.h              |    0
 drivers/video/{ => fbdev}/bf537-lq035.c            |    0
 drivers/video/{ => fbdev}/bf54x-lq043fb.c          |    0
 drivers/video/{ => fbdev}/bfin-lq035q1-fb.c        |    0
 drivers/video/{ => fbdev}/bfin-t350mcqb-fb.c       |    0
 drivers/video/{ => fbdev}/bfin_adv7393fb.c         |    0
 drivers/video/{ => fbdev}/bfin_adv7393fb.h         |    0
 drivers/video/{ => fbdev}/broadsheetfb.c           |    0
 drivers/video/{ => fbdev}/bt431.h                  |    0
 drivers/video/{ => fbdev}/bt455.h                  |    0
 drivers/video/{ => fbdev}/bw2.c                    |    0
 drivers/video/{ => fbdev}/c2p.h                    |    0
 drivers/video/{ => fbdev}/c2p_core.h               |    0
 drivers/video/{ => fbdev}/c2p_iplan2.c             |    0
 drivers/video/{ => fbdev}/c2p_planar.c             |    0
 drivers/video/{ => fbdev}/carminefb.c              |    0
 drivers/video/{ => fbdev}/carminefb.h              |    0
 drivers/video/{ => fbdev}/carminefb_regs.h         |    0
 drivers/video/{ => fbdev}/cg14.c                   |    0
 drivers/video/{ => fbdev}/cg3.c                    |    0
 drivers/video/{ => fbdev}/cg6.c                    |    0
 drivers/video/{ => fbdev}/chipsfb.c                |    0
 drivers/video/{ => fbdev}/cirrusfb.c               |    0
 drivers/video/{ => fbdev}/clps711xfb.c             |    0
 drivers/video/{ => fbdev}/cobalt_lcdfb.c           |    0
 drivers/video/{ => fbdev}/controlfb.c              |    0
 drivers/video/{ => fbdev}/controlfb.h              |    0
 drivers/video/fbdev/core/Makefile                  |   16 +
 drivers/video/{ => fbdev/core}/cfbcopyarea.c       |    0
 drivers/video/{ => fbdev/core}/cfbfillrect.c       |    0
 drivers/video/{ => fbdev/core}/cfbimgblt.c         |    0
 drivers/video/{ => fbdev/core}/fb_ddc.c            |    2 +-
 drivers/video/{ => fbdev/core}/fb_defio.c          |    0
 drivers/video/{ => fbdev/core}/fb_draw.h           |    0
 drivers/video/{ => fbdev/core}/fb_notify.c         |    0
 drivers/video/{ => fbdev/core}/fb_sys_fops.c       |    0
 drivers/video/{ => fbdev/core}/fbcmap.c            |    0
 drivers/video/{ => fbdev/core}/fbcvt.c             |    0
 drivers/video/{ => fbdev/core}/fbmem.c             |    0
 drivers/video/{ => fbdev/core}/fbmon.c             |    2 +-
 drivers/video/{ => fbdev/core}/fbsysfs.c           |    0
 drivers/video/{ => fbdev/core}/modedb.c            |    0
 drivers/video/{ => fbdev/core}/svgalib.c           |    0
 drivers/video/{ => fbdev/core}/syscopyarea.c       |    0
 drivers/video/{ => fbdev/core}/sysfillrect.c       |    0
 drivers/video/{ => fbdev/core}/sysimgblt.c         |    0
 drivers/video/{ => fbdev}/cyber2000fb.c            |    0
 drivers/video/{ => fbdev}/cyber2000fb.h            |    0
 drivers/video/{ => fbdev}/da8xx-fb.c               |    0
 drivers/video/{ => fbdev}/dnfb.c                   |    0
 drivers/video/{ => fbdev}/edid.h                   |    0
 drivers/video/{ => fbdev}/efifb.c                  |    0
 drivers/video/{ => fbdev}/ep93xx-fb.c              |    0
 drivers/video/{ => fbdev}/exynos/Kconfig           |    0
 drivers/video/{ => fbdev}/exynos/Makefile          |    0
 drivers/video/{ => fbdev}/exynos/exynos_dp_core.c  |    0
 drivers/video/{ => fbdev}/exynos/exynos_dp_core.h  |    0
 drivers/video/{ => fbdev}/exynos/exynos_dp_reg.c   |    0
 drivers/video/{ => fbdev}/exynos/exynos_dp_reg.h   |    0
 drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi.c |    0
 .../{ => fbdev}/exynos/exynos_mipi_dsi_common.c    |    0
 .../{ => fbdev}/exynos/exynos_mipi_dsi_common.h    |    0
 .../{ => fbdev}/exynos/exynos_mipi_dsi_lowlevel.c  |    0
 .../{ => fbdev}/exynos/exynos_mipi_dsi_lowlevel.h  |    0
 .../{ => fbdev}/exynos/exynos_mipi_dsi_regs.h      |    0
 drivers/video/{ => fbdev}/exynos/s6e8ax0.c         |    0
 drivers/video/{ => fbdev}/fb-puv3.c                |    0
 drivers/video/{ => fbdev}/ffb.c                    |    0
 drivers/video/{ => fbdev}/fm2fb.c                  |    0
 drivers/video/{ => fbdev}/fsl-diu-fb.c             |    0
 drivers/video/{ => fbdev}/g364fb.c                 |    0
 drivers/video/{ => fbdev}/gbefb.c                  |    0
 drivers/video/{ => fbdev}/geode/Kconfig            |    0
 drivers/video/{ => fbdev}/geode/Makefile           |    0
 drivers/video/{ => fbdev}/geode/display_gx.c       |    0
 drivers/video/{ => fbdev}/geode/display_gx1.c      |    0
 drivers/video/{ => fbdev}/geode/display_gx1.h      |    0
 drivers/video/{ => fbdev}/geode/geodefb.h          |    0
 drivers/video/{ => fbdev}/geode/gx1fb_core.c       |    0
 drivers/video/{ => fbdev}/geode/gxfb.h             |    0
 drivers/video/{ => fbdev}/geode/gxfb_core.c        |    0
 drivers/video/{ => fbdev}/geode/lxfb.h             |    0
 drivers/video/{ => fbdev}/geode/lxfb_core.c        |    0
 drivers/video/{ => fbdev}/geode/lxfb_ops.c         |    0
 drivers/video/{ => fbdev}/geode/suspend_gx.c       |    0
 drivers/video/{ => fbdev}/geode/video_cs5530.c     |    0
 drivers/video/{ => fbdev}/geode/video_cs5530.h     |    0
 drivers/video/{ => fbdev}/geode/video_gx.c         |    0
 drivers/video/{ => fbdev}/goldfishfb.c             |    0
 drivers/video/{ => fbdev}/grvga.c                  |    0
 drivers/video/{ => fbdev}/gxt4500.c                |    0
 drivers/video/{ => fbdev}/hecubafb.c               |    0
 drivers/video/{ => fbdev}/hgafb.c                  |    0
 drivers/video/{ => fbdev}/hitfb.c                  |    0
 drivers/video/{ => fbdev}/hpfb.c                   |    0
 drivers/video/{ => fbdev}/hyperv_fb.c              |    0
 drivers/video/{ => fbdev}/i740_reg.h               |    0
 drivers/video/{ => fbdev}/i740fb.c                 |    0
 drivers/video/{ => fbdev}/i810/Makefile            |    0
 drivers/video/{ => fbdev}/i810/i810-i2c.c          |    0
 drivers/video/{ => fbdev}/i810/i810.h              |    0
 drivers/video/{ => fbdev}/i810/i810_accel.c        |    0
 drivers/video/{ => fbdev}/i810/i810_dvt.c          |    0
 drivers/video/{ => fbdev}/i810/i810_gtf.c          |    0
 drivers/video/{ => fbdev}/i810/i810_main.c         |    0
 drivers/video/{ => fbdev}/i810/i810_main.h         |    0
 drivers/video/{ => fbdev}/i810/i810_regs.h         |    0
 drivers/video/{ => fbdev}/igafb.c                  |    0
 drivers/video/{ => fbdev}/imsttfb.c                |    0
 drivers/video/{ => fbdev}/imxfb.c                  |    0
 drivers/video/{ => fbdev}/intelfb/Makefile         |    0
 drivers/video/{ => fbdev}/intelfb/intelfb.h        |    0
 drivers/video/{ => fbdev}/intelfb/intelfb_i2c.c    |    0
 drivers/video/{ => fbdev}/intelfb/intelfbdrv.c     |    0
 drivers/video/{ => fbdev}/intelfb/intelfbhw.c      |    0
 drivers/video/{ => fbdev}/intelfb/intelfbhw.h      |    0
 drivers/video/{ => fbdev}/jz4740_fb.c              |    0
 drivers/video/{ => fbdev}/kyro/Makefile            |    0
 drivers/video/{ => fbdev}/kyro/STG4000InitDevice.c |    0
 drivers/video/{ => fbdev}/kyro/STG4000Interface.h  |    0
 .../video/{ => fbdev}/kyro/STG4000OverlayDevice.c  |    0
 drivers/video/{ => fbdev}/kyro/STG4000Ramdac.c     |    0
 drivers/video/{ => fbdev}/kyro/STG4000Reg.h        |    0
 drivers/video/{ => fbdev}/kyro/STG4000VTG.c        |    0
 drivers/video/{ => fbdev}/kyro/fbdev.c             |    0
 drivers/video/{ => fbdev}/leo.c                    |    0
 drivers/video/{ => fbdev}/macfb.c                  |    0
 drivers/video/{ => fbdev}/macmodes.c               |    0
 drivers/video/{ => fbdev}/macmodes.h               |    0
 drivers/video/{ => fbdev}/matrox/Makefile          |    0
 drivers/video/{ => fbdev}/matrox/g450_pll.c        |    0
 drivers/video/{ => fbdev}/matrox/g450_pll.h        |    0
 drivers/video/{ => fbdev}/matrox/i2c-matroxfb.c    |    0
 .../video/{ => fbdev}/matrox/matroxfb_DAC1064.c    |    0
 .../video/{ => fbdev}/matrox/matroxfb_DAC1064.h    |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_Ti3026.c |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_Ti3026.h |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_accel.c  |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_accel.h  |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_base.c   |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_base.h   |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_crtc2.c  |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_crtc2.h  |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_g450.c   |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_g450.h   |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_maven.c  |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_maven.h  |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_misc.c   |    0
 drivers/video/{ => fbdev}/matrox/matroxfb_misc.h   |    0
 drivers/video/{ => fbdev}/maxinefb.c               |    0
 drivers/video/{ => fbdev}/mb862xx/Makefile         |    0
 drivers/video/{ => fbdev}/mb862xx/mb862xx-i2c.c    |    0
 drivers/video/{ => fbdev}/mb862xx/mb862xx_reg.h    |    0
 drivers/video/{ => fbdev}/mb862xx/mb862xxfb.h      |    0
 .../video/{ => fbdev}/mb862xx/mb862xxfb_accel.c    |    0
 .../video/{ => fbdev}/mb862xx/mb862xxfb_accel.h    |    0
 drivers/video/{ => fbdev}/mb862xx/mb862xxfbdrv.c   |    0
 drivers/video/{ => fbdev}/mbx/Makefile             |    0
 drivers/video/{ => fbdev}/mbx/mbxdebugfs.c         |    0
 drivers/video/{ => fbdev}/mbx/mbxfb.c              |    0
 drivers/video/{ => fbdev}/mbx/reg_bits.h           |    0
 drivers/video/{ => fbdev}/mbx/regs.h               |    0
 drivers/video/{ => fbdev}/metronomefb.c            |    0
 drivers/video/{ => fbdev}/mmp/Kconfig              |    6 +-
 drivers/video/{ => fbdev}/mmp/Makefile             |    0
 drivers/video/{ => fbdev}/mmp/core.c               |    0
 drivers/video/{ => fbdev}/mmp/fb/Kconfig           |    0
 drivers/video/{ => fbdev}/mmp/fb/Makefile          |    0
 drivers/video/{ => fbdev}/mmp/fb/mmpfb.c           |    0
 drivers/video/{ => fbdev}/mmp/fb/mmpfb.h           |    0
 drivers/video/{ => fbdev}/mmp/hw/Kconfig           |    0
 drivers/video/{ => fbdev}/mmp/hw/Makefile          |    0
 drivers/video/{ => fbdev}/mmp/hw/mmp_ctrl.c        |    0
 drivers/video/{ => fbdev}/mmp/hw/mmp_ctrl.h        |    0
 drivers/video/{ => fbdev}/mmp/hw/mmp_spi.c         |    0
 drivers/video/{ => fbdev}/mmp/panel/Kconfig        |    0
 drivers/video/{ => fbdev}/mmp/panel/Makefile       |    0
 .../video/{ => fbdev}/mmp/panel/tpo_tj032md01bw.c  |    0
 drivers/video/{ => fbdev}/msm/Makefile             |    0
 drivers/video/{ => fbdev}/msm/mddi.c               |    0
 drivers/video/{ => fbdev}/msm/mddi_client_dummy.c  |    0
 .../video/{ => fbdev}/msm/mddi_client_nt35399.c    |    0
 .../video/{ => fbdev}/msm/mddi_client_toshiba.c    |    0
 drivers/video/{ => fbdev}/msm/mddi_hw.h            |    0
 drivers/video/{ => fbdev}/msm/mdp.c                |    0
 drivers/video/{ => fbdev}/msm/mdp_csc_table.h      |    0
 drivers/video/{ => fbdev}/msm/mdp_hw.h             |    0
 drivers/video/{ => fbdev}/msm/mdp_ppp.c            |    0
 drivers/video/{ => fbdev}/msm/mdp_scale_tables.c   |    0
 drivers/video/{ => fbdev}/msm/mdp_scale_tables.h   |    0
 drivers/video/{ => fbdev}/msm/msm_fb.c             |    0
 drivers/video/{ => fbdev}/mx3fb.c                  |    0
 drivers/video/{ => fbdev}/mxsfb.c                  |    0
 drivers/video/{ => fbdev}/n411.c                   |    0
 drivers/video/{ => fbdev}/neofb.c                  |    0
 drivers/video/{ => fbdev}/nuc900fb.c               |    0
 drivers/video/{ => fbdev}/nuc900fb.h               |    0
 drivers/video/{ => fbdev}/nvidia/Makefile          |    0
 drivers/video/{ => fbdev}/nvidia/nv_accel.c        |    0
 drivers/video/{ => fbdev}/nvidia/nv_backlight.c    |    0
 drivers/video/{ => fbdev}/nvidia/nv_dma.h          |    0
 drivers/video/{ => fbdev}/nvidia/nv_hw.c           |    0
 drivers/video/{ => fbdev}/nvidia/nv_i2c.c          |    0
 drivers/video/{ => fbdev}/nvidia/nv_local.h        |    0
 drivers/video/{ => fbdev}/nvidia/nv_of.c           |    0
 drivers/video/{ => fbdev}/nvidia/nv_proto.h        |    0
 drivers/video/{ => fbdev}/nvidia/nv_setup.c        |    0
 drivers/video/{ => fbdev}/nvidia/nv_type.h         |    0
 drivers/video/{ => fbdev}/nvidia/nvidia.c          |    0
 drivers/video/{ => fbdev}/ocfb.c                   |    0
 drivers/video/{ => fbdev}/offb.c                   |    0
 drivers/video/{ => fbdev}/omap/Kconfig             |    0
 drivers/video/{ => fbdev}/omap/Makefile            |    0
 drivers/video/{ => fbdev}/omap/hwa742.c            |    0
 drivers/video/{ => fbdev}/omap/lcd_ams_delta.c     |    0
 drivers/video/{ => fbdev}/omap/lcd_h3.c            |    0
 drivers/video/{ => fbdev}/omap/lcd_htcherald.c     |    0
 drivers/video/{ => fbdev}/omap/lcd_inn1510.c       |    0
 drivers/video/{ => fbdev}/omap/lcd_inn1610.c       |    0
 drivers/video/{ => fbdev}/omap/lcd_mipid.c         |    0
 drivers/video/{ => fbdev}/omap/lcd_osk.c           |    0
 drivers/video/{ => fbdev}/omap/lcd_palmte.c        |    0
 drivers/video/{ => fbdev}/omap/lcd_palmtt.c        |    0
 drivers/video/{ => fbdev}/omap/lcd_palmz71.c       |    0
 drivers/video/{ => fbdev}/omap/lcdc.c              |    0
 drivers/video/{ => fbdev}/omap/lcdc.h              |    0
 drivers/video/{ => fbdev}/omap/omapfb.h            |    0
 drivers/video/{ => fbdev}/omap/omapfb_main.c       |    0
 drivers/video/{ => fbdev}/omap/sossi.c             |    0
 drivers/video/fbdev/omap2/Kconfig                  |   10 +
 drivers/video/{ => fbdev}/omap2/Makefile           |    0
 .../video/{ => fbdev}/omap2/displays-new/Kconfig   |    0
 .../video/{ => fbdev}/omap2/displays-new/Makefile  |    0
 .../omap2/displays-new/connector-analog-tv.c       |    0
 .../{ => fbdev}/omap2/displays-new/connector-dvi.c |    0
 .../omap2/displays-new/connector-hdmi.c            |    0
 .../omap2/displays-new/encoder-tfp410.c            |    0
 .../omap2/displays-new/encoder-tpd12s015.c         |    0
 .../{ => fbdev}/omap2/displays-new/panel-dpi.c     |    0
 .../{ => fbdev}/omap2/displays-new/panel-dsi-cm.c  |    0
 .../omap2/displays-new/panel-lgphilips-lb035q02.c  |    0
 .../omap2/displays-new/panel-nec-nl8048hl11.c      |    0
 .../omap2/displays-new/panel-sharp-ls037v7dw01.c   |    0
 .../omap2/displays-new/panel-sony-acx565akm.c      |    0
 .../omap2/displays-new/panel-tpo-td028ttec1.c      |    0
 .../omap2/displays-new/panel-tpo-td043mtea1.c      |    0
 drivers/video/{ => fbdev}/omap2/dss/Kconfig        |    0
 drivers/video/{ => fbdev}/omap2/dss/Makefile       |    0
 drivers/video/{ => fbdev}/omap2/dss/apply.c        |    0
 drivers/video/{ => fbdev}/omap2/dss/core.c         |    0
 drivers/video/{ => fbdev}/omap2/dss/dispc-compat.c |    0
 drivers/video/{ => fbdev}/omap2/dss/dispc-compat.h |    0
 drivers/video/{ => fbdev}/omap2/dss/dispc.c        |    0
 drivers/video/{ => fbdev}/omap2/dss/dispc.h        |    0
 drivers/video/{ => fbdev}/omap2/dss/dispc_coefs.c  |    0
 .../video/{ => fbdev}/omap2/dss/display-sysfs.c    |    0
 drivers/video/{ => fbdev}/omap2/dss/display.c      |    0
 drivers/video/{ => fbdev}/omap2/dss/dpi.c          |    0
 drivers/video/{ => fbdev}/omap2/dss/dsi.c          |    0
 drivers/video/{ => fbdev}/omap2/dss/dss.c          |    0
 drivers/video/{ => fbdev}/omap2/dss/dss.h          |    0
 drivers/video/{ => fbdev}/omap2/dss/dss_features.c |    0
 drivers/video/{ => fbdev}/omap2/dss/dss_features.h |    0
 drivers/video/{ => fbdev}/omap2/dss/hdmi.h         |    0
 drivers/video/{ => fbdev}/omap2/dss/hdmi4.c        |    0
 drivers/video/{ => fbdev}/omap2/dss/hdmi4_core.c   |    0
 drivers/video/{ => fbdev}/omap2/dss/hdmi4_core.h   |    0
 drivers/video/{ => fbdev}/omap2/dss/hdmi_common.c  |    0
 drivers/video/{ => fbdev}/omap2/dss/hdmi_phy.c     |    0
 drivers/video/{ => fbdev}/omap2/dss/hdmi_pll.c     |    0
 drivers/video/{ => fbdev}/omap2/dss/hdmi_wp.c      |    0
 .../video/{ => fbdev}/omap2/dss/manager-sysfs.c    |    0
 drivers/video/{ => fbdev}/omap2/dss/manager.c      |    0
 drivers/video/{ => fbdev}/omap2/dss/output.c       |    0
 .../video/{ => fbdev}/omap2/dss/overlay-sysfs.c    |    0
 drivers/video/{ => fbdev}/omap2/dss/overlay.c      |    0
 drivers/video/{ => fbdev}/omap2/dss/rfbi.c         |    0
 drivers/video/{ => fbdev}/omap2/dss/sdi.c          |    0
 drivers/video/{ => fbdev}/omap2/dss/venc.c         |    0
 drivers/video/{ => fbdev}/omap2/dss/venc_panel.c   |    0
 drivers/video/{ => fbdev}/omap2/omapfb/Kconfig     |    0
 drivers/video/{ => fbdev}/omap2/omapfb/Makefile    |    0
 .../video/{ => fbdev}/omap2/omapfb/omapfb-ioctl.c  |    0
 .../video/{ => fbdev}/omap2/omapfb/omapfb-main.c   |    0
 .../video/{ => fbdev}/omap2/omapfb/omapfb-sysfs.c  |    0
 drivers/video/{ => fbdev}/omap2/omapfb/omapfb.h    |    0
 drivers/video/{ => fbdev}/omap2/vrfb.c             |    0
 drivers/video/{ => fbdev}/p9100.c                  |    0
 drivers/video/{ => fbdev}/platinumfb.c             |    0
 drivers/video/{ => fbdev}/platinumfb.h             |    0
 drivers/video/{ => fbdev}/pm2fb.c                  |    0
 drivers/video/{ => fbdev}/pm3fb.c                  |    0
 drivers/video/{ => fbdev}/pmag-aa-fb.c             |    0
 drivers/video/{ => fbdev}/pmag-ba-fb.c             |    0
 drivers/video/{ => fbdev}/pmagb-b-fb.c             |    0
 drivers/video/{ => fbdev}/ps3fb.c                  |    0
 drivers/video/{ => fbdev}/pvr2fb.c                 |    0
 drivers/video/{ => fbdev}/pxa168fb.c               |    0
 drivers/video/{ => fbdev}/pxa168fb.h               |    0
 drivers/video/{ => fbdev}/pxa3xx-gcu.c             |    0
 drivers/video/{ => fbdev}/pxa3xx-gcu.h             |    0
 drivers/video/{ => fbdev}/pxafb.c                  |    0
 drivers/video/{ => fbdev}/pxafb.h                  |    0
 drivers/video/{ => fbdev}/q40fb.c                  |    0
 drivers/video/{ => fbdev}/riva/Makefile            |    0
 drivers/video/{ => fbdev}/riva/fbdev.c             |    0
 drivers/video/{ => fbdev}/riva/nv_driver.c         |    0
 drivers/video/{ => fbdev}/riva/nv_type.h           |    0
 drivers/video/{ => fbdev}/riva/nvreg.h             |    0
 drivers/video/{ => fbdev}/riva/riva_hw.c           |    0
 drivers/video/{ => fbdev}/riva/riva_hw.h           |    0
 drivers/video/{ => fbdev}/riva/riva_tbl.h          |    0
 drivers/video/{ => fbdev}/riva/rivafb-i2c.c        |    0
 drivers/video/{ => fbdev}/riva/rivafb.h            |    0
 drivers/video/{ => fbdev}/s1d13xxxfb.c             |    0
 drivers/video/{ => fbdev}/s3c-fb.c                 |    0
 drivers/video/{ => fbdev}/s3c2410fb.c              |    0
 drivers/video/{ => fbdev}/s3c2410fb.h              |    0
 drivers/video/{ => fbdev}/s3fb.c                   |    0
 drivers/video/{ => fbdev}/sa1100fb.c               |    0
 drivers/video/{ => fbdev}/sa1100fb.h               |    0
 drivers/video/{ => fbdev}/savage/Makefile          |    0
 drivers/video/{ => fbdev}/savage/savagefb-i2c.c    |    0
 drivers/video/{ => fbdev}/savage/savagefb.h        |    0
 drivers/video/{ => fbdev}/savage/savagefb_accel.c  |    0
 drivers/video/{ => fbdev}/savage/savagefb_driver.c |    0
 drivers/video/{ => fbdev}/sbuslib.c                |    0
 drivers/video/{ => fbdev}/sbuslib.h                |    0
 drivers/video/{ => fbdev}/sgivwfb.c                |    0
 drivers/video/{ => fbdev}/sh7760fb.c               |    0
 drivers/video/{ => fbdev}/sh_mipi_dsi.c            |    0
 drivers/video/{ => fbdev}/sh_mobile_hdmi.c         |    0
 drivers/video/{ => fbdev}/sh_mobile_lcdcfb.c       |    0
 drivers/video/{ => fbdev}/sh_mobile_lcdcfb.h       |    0
 drivers/video/{ => fbdev}/sh_mobile_meram.c        |    0
 drivers/video/{ => fbdev}/simplefb.c               |    0
 drivers/video/{ => fbdev}/sis/300vtbl.h            |    0
 drivers/video/{ => fbdev}/sis/310vtbl.h            |    0
 drivers/video/{ => fbdev}/sis/Makefile             |    0
 drivers/video/{ => fbdev}/sis/init.c               |    0
 drivers/video/{ => fbdev}/sis/init.h               |    0
 drivers/video/{ => fbdev}/sis/init301.c            |    0
 drivers/video/{ => fbdev}/sis/init301.h            |    0
 drivers/video/{ => fbdev}/sis/initdef.h            |    0
 drivers/video/{ => fbdev}/sis/initextlfb.c         |    0
 drivers/video/{ => fbdev}/sis/oem300.h             |    0
 drivers/video/{ => fbdev}/sis/oem310.h             |    0
 drivers/video/{ => fbdev}/sis/sis.h                |    0
 drivers/video/{ => fbdev}/sis/sis_accel.c          |    0
 drivers/video/{ => fbdev}/sis/sis_accel.h          |    0
 drivers/video/{ => fbdev}/sis/sis_main.c           |    0
 drivers/video/{ => fbdev}/sis/sis_main.h           |    0
 drivers/video/{ => fbdev}/sis/vgatypes.h           |    0
 drivers/video/{ => fbdev}/sis/vstruct.h            |    0
 drivers/video/{ => fbdev}/skeletonfb.c             |    0
 drivers/video/{ => fbdev}/sm501fb.c                |    0
 drivers/video/{ => fbdev}/smscufx.c                |    0
 drivers/video/{ => fbdev}/ssd1307fb.c              |    0
 drivers/video/{ => fbdev}/sstfb.c                  |    0
 drivers/video/{ => fbdev}/sticore.h                |    0
 drivers/video/{ => fbdev}/stifb.c                  |    0
 drivers/video/{ => fbdev}/sunxvr1000.c             |    0
 drivers/video/{ => fbdev}/sunxvr2500.c             |    0
 drivers/video/{ => fbdev}/sunxvr500.c              |    0
 drivers/video/{ => fbdev}/tcx.c                    |    0
 drivers/video/{ => fbdev}/tdfxfb.c                 |    0
 drivers/video/{ => fbdev}/tgafb.c                  |    0
 drivers/video/{ => fbdev}/tmiofb.c                 |    0
 drivers/video/{ => fbdev}/tridentfb.c              |    0
 drivers/video/{ => fbdev}/udlfb.c                  |    0
 drivers/video/{ => fbdev}/uvesafb.c                |    0
 drivers/video/{ => fbdev}/valkyriefb.c             |    0
 drivers/video/{ => fbdev}/valkyriefb.h             |    0
 drivers/video/{ => fbdev}/vermilion/Makefile       |    0
 drivers/video/{ => fbdev}/vermilion/cr_pll.c       |    0
 drivers/video/{ => fbdev}/vermilion/vermilion.c    |    0
 drivers/video/{ => fbdev}/vermilion/vermilion.h    |    0
 drivers/video/{ => fbdev}/vesafb.c                 |    0
 drivers/video/{ => fbdev}/vfb.c                    |    0
 drivers/video/{ => fbdev}/vga16fb.c                |    0
 drivers/video/{ => fbdev}/via/Makefile             |    0
 drivers/video/{ => fbdev}/via/accel.c              |    0
 drivers/video/{ => fbdev}/via/accel.h              |    0
 drivers/video/{ => fbdev}/via/chip.h               |    0
 drivers/video/{ => fbdev}/via/debug.h              |    0
 drivers/video/{ => fbdev}/via/dvi.c                |    0
 drivers/video/{ => fbdev}/via/dvi.h                |    0
 drivers/video/{ => fbdev}/via/global.c             |    0
 drivers/video/{ => fbdev}/via/global.h             |    0
 drivers/video/{ => fbdev}/via/hw.c                 |    0
 drivers/video/{ => fbdev}/via/hw.h                 |    0
 drivers/video/{ => fbdev}/via/ioctl.c              |    0
 drivers/video/{ => fbdev}/via/ioctl.h              |    0
 drivers/video/{ => fbdev}/via/lcd.c                |    0
 drivers/video/{ => fbdev}/via/lcd.h                |    0
 drivers/video/{ => fbdev}/via/share.h              |    0
 drivers/video/{ => fbdev}/via/tblDPASetting.c      |    0
 drivers/video/{ => fbdev}/via/tblDPASetting.h      |    0
 drivers/video/{ => fbdev}/via/via-core.c           |    0
 drivers/video/{ => fbdev}/via/via-gpio.c           |    0
 drivers/video/{ => fbdev}/via/via_aux.c            |    0
 drivers/video/{ => fbdev}/via/via_aux.h            |    0
 drivers/video/{ => fbdev}/via/via_aux_ch7301.c     |    0
 drivers/video/{ => fbdev}/via/via_aux_edid.c       |    0
 drivers/video/{ => fbdev}/via/via_aux_sii164.c     |    0
 drivers/video/{ => fbdev}/via/via_aux_vt1621.c     |    0
 drivers/video/{ => fbdev}/via/via_aux_vt1622.c     |    0
 drivers/video/{ => fbdev}/via/via_aux_vt1625.c     |    0
 drivers/video/{ => fbdev}/via/via_aux_vt1631.c     |    0
 drivers/video/{ => fbdev}/via/via_aux_vt1632.c     |    0
 drivers/video/{ => fbdev}/via/via_aux_vt1636.c     |    0
 drivers/video/{ => fbdev}/via/via_clock.c          |    0
 drivers/video/{ => fbdev}/via/via_clock.h          |    0
 drivers/video/{ => fbdev}/via/via_i2c.c            |    0
 drivers/video/{ => fbdev}/via/via_modesetting.c    |    0
 drivers/video/{ => fbdev}/via/via_modesetting.h    |    0
 drivers/video/{ => fbdev}/via/via_utility.c        |    0
 drivers/video/{ => fbdev}/via/via_utility.h        |    0
 drivers/video/{ => fbdev}/via/viafbdev.c           |    0
 drivers/video/{ => fbdev}/via/viafbdev.h           |    0
 drivers/video/{ => fbdev}/via/viamode.c            |    0
 drivers/video/{ => fbdev}/via/viamode.h            |    0
 drivers/video/{ => fbdev}/via/vt1636.c             |    0
 drivers/video/{ => fbdev}/via/vt1636.h             |    0
 drivers/video/{ => fbdev}/vt8500lcdfb.c            |    0
 drivers/video/{ => fbdev}/vt8500lcdfb.h            |    0
 drivers/video/{ => fbdev}/vt8623fb.c               |    0
 drivers/video/{ => fbdev}/w100fb.c                 |    0
 drivers/video/{ => fbdev}/w100fb.h                 |    0
 drivers/video/{ => fbdev}/wm8505fb.c               |    0
 drivers/video/{ => fbdev}/wm8505fb_regs.h          |    0
 drivers/video/{ => fbdev}/wmt_ge_rops.c            |    2 +-
 drivers/video/{ => fbdev}/wmt_ge_rops.h            |    0
 drivers/video/{ => fbdev}/xen-fbfront.c            |    0
 drivers/video/{ => fbdev}/xilinxfb.c               |    0
 drivers/video/omap2/Kconfig                        |   10 -
 486 files changed, 2690 insertions(+), 2673 deletions(-)
 rename drivers/video/{ => fbdev}/68328fb.c (100%)
 create mode 100644 drivers/video/fbdev/Kconfig
 create mode 100644 drivers/video/fbdev/Makefile
 rename drivers/video/{ => fbdev}/acornfb.c (100%)
 rename drivers/video/{ => fbdev}/acornfb.h (100%)
 rename drivers/video/{ => fbdev}/amba-clcd.c (100%)
 rename drivers/video/{ => fbdev}/amifb.c (100%)
 rename drivers/video/{ => fbdev}/arcfb.c (100%)
 rename drivers/video/{ => fbdev}/arkfb.c (100%)
 rename drivers/video/{ => fbdev}/asiliantfb.c (100%)
 rename drivers/video/{ => fbdev}/atafb.c (100%)
 rename drivers/video/{ => fbdev}/atafb.h (100%)
 rename drivers/video/{ => fbdev}/atafb_iplan2p2.c (100%)
 rename drivers/video/{ => fbdev}/atafb_iplan2p4.c (100%)
 rename drivers/video/{ => fbdev}/atafb_iplan2p8.c (100%)
 rename drivers/video/{ => fbdev}/atafb_mfb.c (100%)
 rename drivers/video/{ => fbdev}/atafb_utils.h (100%)
 rename drivers/video/{ => fbdev}/atmel_lcdfb.c (100%)
 rename drivers/video/{ => fbdev}/aty/Makefile (100%)
 rename drivers/video/{ => fbdev}/aty/ati_ids.h (100%)
 rename drivers/video/{ => fbdev}/aty/aty128fb.c (100%)
 rename drivers/video/{ => fbdev}/aty/atyfb.h (100%)
 rename drivers/video/{ => fbdev}/aty/atyfb_base.c (100%)
 rename drivers/video/{ => fbdev}/aty/mach64_accel.c (100%)
 rename drivers/video/{ => fbdev}/aty/mach64_ct.c (100%)
 rename drivers/video/{ => fbdev}/aty/mach64_cursor.c (100%)
 rename drivers/video/{ => fbdev}/aty/mach64_gx.c (100%)
 rename drivers/video/{ => fbdev}/aty/radeon_accel.c (100%)
 rename drivers/video/{ => fbdev}/aty/radeon_backlight.c (100%)
 rename drivers/video/{ => fbdev}/aty/radeon_base.c (100%)
 rename drivers/video/{ => fbdev}/aty/radeon_i2c.c (100%)
 rename drivers/video/{ => fbdev}/aty/radeon_monitor.c (100%)
 rename drivers/video/{ => fbdev}/aty/radeon_pm.c (100%)
 rename drivers/video/{ => fbdev}/aty/radeonfb.h (100%)
 rename drivers/video/{ => fbdev}/au1100fb.c (100%)
 rename drivers/video/{ => fbdev}/au1100fb.h (100%)
 rename drivers/video/{ => fbdev}/au1200fb.c (100%)
 rename drivers/video/{ => fbdev}/au1200fb.h (100%)
 rename drivers/video/{ => fbdev}/auo_k1900fb.c (100%)
 rename drivers/video/{ => fbdev}/auo_k1901fb.c (100%)
 rename drivers/video/{ => fbdev}/auo_k190x.c (100%)
 rename drivers/video/{ => fbdev}/auo_k190x.h (100%)
 rename drivers/video/{ => fbdev}/bf537-lq035.c (100%)
 rename drivers/video/{ => fbdev}/bf54x-lq043fb.c (100%)
 rename drivers/video/{ => fbdev}/bfin-lq035q1-fb.c (100%)
 rename drivers/video/{ => fbdev}/bfin-t350mcqb-fb.c (100%)
 rename drivers/video/{ => fbdev}/bfin_adv7393fb.c (100%)
 rename drivers/video/{ => fbdev}/bfin_adv7393fb.h (100%)
 rename drivers/video/{ => fbdev}/broadsheetfb.c (100%)
 rename drivers/video/{ => fbdev}/bt431.h (100%)
 rename drivers/video/{ => fbdev}/bt455.h (100%)
 rename drivers/video/{ => fbdev}/bw2.c (100%)
 rename drivers/video/{ => fbdev}/c2p.h (100%)
 rename drivers/video/{ => fbdev}/c2p_core.h (100%)
 rename drivers/video/{ => fbdev}/c2p_iplan2.c (100%)
 rename drivers/video/{ => fbdev}/c2p_planar.c (100%)
 rename drivers/video/{ => fbdev}/carminefb.c (100%)
 rename drivers/video/{ => fbdev}/carminefb.h (100%)
 rename drivers/video/{ => fbdev}/carminefb_regs.h (100%)
 rename drivers/video/{ => fbdev}/cg14.c (100%)
 rename drivers/video/{ => fbdev}/cg3.c (100%)
 rename drivers/video/{ => fbdev}/cg6.c (100%)
 rename drivers/video/{ => fbdev}/chipsfb.c (100%)
 rename drivers/video/{ => fbdev}/cirrusfb.c (100%)
 rename drivers/video/{ => fbdev}/clps711xfb.c (100%)
 rename drivers/video/{ => fbdev}/cobalt_lcdfb.c (100%)
 rename drivers/video/{ => fbdev}/controlfb.c (100%)
 rename drivers/video/{ => fbdev}/controlfb.h (100%)
 create mode 100644 drivers/video/fbdev/core/Makefile
 rename drivers/video/{ => fbdev/core}/cfbcopyarea.c (100%)
 rename drivers/video/{ => fbdev/core}/cfbfillrect.c (100%)
 rename drivers/video/{ => fbdev/core}/cfbimgblt.c (100%)
 rename drivers/video/{ => fbdev/core}/fb_ddc.c (99%)
 rename drivers/video/{ => fbdev/core}/fb_defio.c (100%)
 rename drivers/video/{ => fbdev/core}/fb_draw.h (100%)
 rename drivers/video/{ => fbdev/core}/fb_notify.c (100%)
 rename drivers/video/{ => fbdev/core}/fb_sys_fops.c (100%)
 rename drivers/video/{ => fbdev/core}/fbcmap.c (100%)
 rename drivers/video/{ => fbdev/core}/fbcvt.c (100%)
 rename drivers/video/{ => fbdev/core}/fbmem.c (100%)
 rename drivers/video/{ => fbdev/core}/fbmon.c (99%)
 rename drivers/video/{ => fbdev/core}/fbsysfs.c (100%)
 rename drivers/video/{ => fbdev/core}/modedb.c (100%)
 rename drivers/video/{ => fbdev/core}/svgalib.c (100%)
 rename drivers/video/{ => fbdev/core}/syscopyarea.c (100%)
 rename drivers/video/{ => fbdev/core}/sysfillrect.c (100%)
 rename drivers/video/{ => fbdev/core}/sysimgblt.c (100%)
 rename drivers/video/{ => fbdev}/cyber2000fb.c (100%)
 rename drivers/video/{ => fbdev}/cyber2000fb.h (100%)
 rename drivers/video/{ => fbdev}/da8xx-fb.c (100%)
 rename drivers/video/{ => fbdev}/dnfb.c (100%)
 rename drivers/video/{ => fbdev}/edid.h (100%)
 rename drivers/video/{ => fbdev}/efifb.c (100%)
 rename drivers/video/{ => fbdev}/ep93xx-fb.c (100%)
 rename drivers/video/{ => fbdev}/exynos/Kconfig (100%)
 rename drivers/video/{ => fbdev}/exynos/Makefile (100%)
 rename drivers/video/{ => fbdev}/exynos/exynos_dp_core.c (100%)
 rename drivers/video/{ => fbdev}/exynos/exynos_dp_core.h (100%)
 rename drivers/video/{ => fbdev}/exynos/exynos_dp_reg.c (100%)
 rename drivers/video/{ => fbdev}/exynos/exynos_dp_reg.h (100%)
 rename drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi.c (100%)
 rename drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi_common.c (100%)
 rename drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi_common.h (100%)
 rename drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi_lowlevel.c (100%)
 rename drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi_lowlevel.h (100%)
 rename drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi_regs.h (100%)
 rename drivers/video/{ => fbdev}/exynos/s6e8ax0.c (100%)
 rename drivers/video/{ => fbdev}/fb-puv3.c (100%)
 rename drivers/video/{ => fbdev}/ffb.c (100%)
 rename drivers/video/{ => fbdev}/fm2fb.c (100%)
 rename drivers/video/{ => fbdev}/fsl-diu-fb.c (100%)
 rename drivers/video/{ => fbdev}/g364fb.c (100%)
 rename drivers/video/{ => fbdev}/gbefb.c (100%)
 rename drivers/video/{ => fbdev}/geode/Kconfig (100%)
 rename drivers/video/{ => fbdev}/geode/Makefile (100%)
 rename drivers/video/{ => fbdev}/geode/display_gx.c (100%)
 rename drivers/video/{ => fbdev}/geode/display_gx1.c (100%)
 rename drivers/video/{ => fbdev}/geode/display_gx1.h (100%)
 rename drivers/video/{ => fbdev}/geode/geodefb.h (100%)
 rename drivers/video/{ => fbdev}/geode/gx1fb_core.c (100%)
 rename drivers/video/{ => fbdev}/geode/gxfb.h (100%)
 rename drivers/video/{ => fbdev}/geode/gxfb_core.c (100%)
 rename drivers/video/{ => fbdev}/geode/lxfb.h (100%)
 rename drivers/video/{ => fbdev}/geode/lxfb_core.c (100%)
 rename drivers/video/{ => fbdev}/geode/lxfb_ops.c (100%)
 rename drivers/video/{ => fbdev}/geode/suspend_gx.c (100%)
 rename drivers/video/{ => fbdev}/geode/video_cs5530.c (100%)
 rename drivers/video/{ => fbdev}/geode/video_cs5530.h (100%)
 rename drivers/video/{ => fbdev}/geode/video_gx.c (100%)
 rename drivers/video/{ => fbdev}/goldfishfb.c (100%)
 rename drivers/video/{ => fbdev}/grvga.c (100%)
 rename drivers/video/{ => fbdev}/gxt4500.c (100%)
 rename drivers/video/{ => fbdev}/hecubafb.c (100%)
 rename drivers/video/{ => fbdev}/hgafb.c (100%)
 rename drivers/video/{ => fbdev}/hitfb.c (100%)
 rename drivers/video/{ => fbdev}/hpfb.c (100%)
 rename drivers/video/{ => fbdev}/hyperv_fb.c (100%)
 rename drivers/video/{ => fbdev}/i740_reg.h (100%)
 rename drivers/video/{ => fbdev}/i740fb.c (100%)
 rename drivers/video/{ => fbdev}/i810/Makefile (100%)
 rename drivers/video/{ => fbdev}/i810/i810-i2c.c (100%)
 rename drivers/video/{ => fbdev}/i810/i810.h (100%)
 rename drivers/video/{ => fbdev}/i810/i810_accel.c (100%)
 rename drivers/video/{ => fbdev}/i810/i810_dvt.c (100%)
 rename drivers/video/{ => fbdev}/i810/i810_gtf.c (100%)
 rename drivers/video/{ => fbdev}/i810/i810_main.c (100%)
 rename drivers/video/{ => fbdev}/i810/i810_main.h (100%)
 rename drivers/video/{ => fbdev}/i810/i810_regs.h (100%)
 rename drivers/video/{ => fbdev}/igafb.c (100%)
 rename drivers/video/{ => fbdev}/imsttfb.c (100%)
 rename drivers/video/{ => fbdev}/imxfb.c (100%)
 rename drivers/video/{ => fbdev}/intelfb/Makefile (100%)
 rename drivers/video/{ => fbdev}/intelfb/intelfb.h (100%)
 rename drivers/video/{ => fbdev}/intelfb/intelfb_i2c.c (100%)
 rename drivers/video/{ => fbdev}/intelfb/intelfbdrv.c (100%)
 rename drivers/video/{ => fbdev}/intelfb/intelfbhw.c (100%)
 rename drivers/video/{ => fbdev}/intelfb/intelfbhw.h (100%)
 rename drivers/video/{ => fbdev}/jz4740_fb.c (100%)
 rename drivers/video/{ => fbdev}/kyro/Makefile (100%)
 rename drivers/video/{ => fbdev}/kyro/STG4000InitDevice.c (100%)
 rename drivers/video/{ => fbdev}/kyro/STG4000Interface.h (100%)
 rename drivers/video/{ => fbdev}/kyro/STG4000OverlayDevice.c (100%)
 rename drivers/video/{ => fbdev}/kyro/STG4000Ramdac.c (100%)
 rename drivers/video/{ => fbdev}/kyro/STG4000Reg.h (100%)
 rename drivers/video/{ => fbdev}/kyro/STG4000VTG.c (100%)
 rename drivers/video/{ => fbdev}/kyro/fbdev.c (100%)
 rename drivers/video/{ => fbdev}/leo.c (100%)
 rename drivers/video/{ => fbdev}/macfb.c (100%)
 rename drivers/video/{ => fbdev}/macmodes.c (100%)
 rename drivers/video/{ => fbdev}/macmodes.h (100%)
 rename drivers/video/{ => fbdev}/matrox/Makefile (100%)
 rename drivers/video/{ => fbdev}/matrox/g450_pll.c (100%)
 rename drivers/video/{ => fbdev}/matrox/g450_pll.h (100%)
 rename drivers/video/{ => fbdev}/matrox/i2c-matroxfb.c (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_DAC1064.c (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_DAC1064.h (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_Ti3026.c (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_Ti3026.h (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_accel.c (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_accel.h (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_base.c (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_base.h (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_crtc2.c (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_crtc2.h (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_g450.c (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_g450.h (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_maven.c (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_maven.h (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_misc.c (100%)
 rename drivers/video/{ => fbdev}/matrox/matroxfb_misc.h (100%)
 rename drivers/video/{ => fbdev}/maxinefb.c (100%)
 rename drivers/video/{ => fbdev}/mb862xx/Makefile (100%)
 rename drivers/video/{ => fbdev}/mb862xx/mb862xx-i2c.c (100%)
 rename drivers/video/{ => fbdev}/mb862xx/mb862xx_reg.h (100%)
 rename drivers/video/{ => fbdev}/mb862xx/mb862xxfb.h (100%)
 rename drivers/video/{ => fbdev}/mb862xx/mb862xxfb_accel.c (100%)
 rename drivers/video/{ => fbdev}/mb862xx/mb862xxfb_accel.h (100%)
 rename drivers/video/{ => fbdev}/mb862xx/mb862xxfbdrv.c (100%)
 rename drivers/video/{ => fbdev}/mbx/Makefile (100%)
 rename drivers/video/{ => fbdev}/mbx/mbxdebugfs.c (100%)
 rename drivers/video/{ => fbdev}/mbx/mbxfb.c (100%)
 rename drivers/video/{ => fbdev}/mbx/reg_bits.h (100%)
 rename drivers/video/{ => fbdev}/mbx/regs.h (100%)
 rename drivers/video/{ => fbdev}/metronomefb.c (100%)
 rename drivers/video/{ => fbdev}/mmp/Kconfig (61%)
 rename drivers/video/{ => fbdev}/mmp/Makefile (100%)
 rename drivers/video/{ => fbdev}/mmp/core.c (100%)
 rename drivers/video/{ => fbdev}/mmp/fb/Kconfig (100%)
 rename drivers/video/{ => fbdev}/mmp/fb/Makefile (100%)
 rename drivers/video/{ => fbdev}/mmp/fb/mmpfb.c (100%)
 rename drivers/video/{ => fbdev}/mmp/fb/mmpfb.h (100%)
 rename drivers/video/{ => fbdev}/mmp/hw/Kconfig (100%)
 rename drivers/video/{ => fbdev}/mmp/hw/Makefile (100%)
 rename drivers/video/{ => fbdev}/mmp/hw/mmp_ctrl.c (100%)
 rename drivers/video/{ => fbdev}/mmp/hw/mmp_ctrl.h (100%)
 rename drivers/video/{ => fbdev}/mmp/hw/mmp_spi.c (100%)
 rename drivers/video/{ => fbdev}/mmp/panel/Kconfig (100%)
 rename drivers/video/{ => fbdev}/mmp/panel/Makefile (100%)
 rename drivers/video/{ => fbdev}/mmp/panel/tpo_tj032md01bw.c (100%)
 rename drivers/video/{ => fbdev}/msm/Makefile (100%)
 rename drivers/video/{ => fbdev}/msm/mddi.c (100%)
 rename drivers/video/{ => fbdev}/msm/mddi_client_dummy.c (100%)
 rename drivers/video/{ => fbdev}/msm/mddi_client_nt35399.c (100%)
 rename drivers/video/{ => fbdev}/msm/mddi_client_toshiba.c (100%)
 rename drivers/video/{ => fbdev}/msm/mddi_hw.h (100%)
 rename drivers/video/{ => fbdev}/msm/mdp.c (100%)
 rename drivers/video/{ => fbdev}/msm/mdp_csc_table.h (100%)
 rename drivers/video/{ => fbdev}/msm/mdp_hw.h (100%)
 rename drivers/video/{ => fbdev}/msm/mdp_ppp.c (100%)
 rename drivers/video/{ => fbdev}/msm/mdp_scale_tables.c (100%)
 rename drivers/video/{ => fbdev}/msm/mdp_scale_tables.h (100%)
 rename drivers/video/{ => fbdev}/msm/msm_fb.c (100%)
 rename drivers/video/{ => fbdev}/mx3fb.c (100%)
 rename drivers/video/{ => fbdev}/mxsfb.c (100%)
 rename drivers/video/{ => fbdev}/n411.c (100%)
 rename drivers/video/{ => fbdev}/neofb.c (100%)
 rename drivers/video/{ => fbdev}/nuc900fb.c (100%)
 rename drivers/video/{ => fbdev}/nuc900fb.h (100%)
 rename drivers/video/{ => fbdev}/nvidia/Makefile (100%)
 rename drivers/video/{ => fbdev}/nvidia/nv_accel.c (100%)
 rename drivers/video/{ => fbdev}/nvidia/nv_backlight.c (100%)
 rename drivers/video/{ => fbdev}/nvidia/nv_dma.h (100%)
 rename drivers/video/{ => fbdev}/nvidia/nv_hw.c (100%)
 rename drivers/video/{ => fbdev}/nvidia/nv_i2c.c (100%)
 rename drivers/video/{ => fbdev}/nvidia/nv_local.h (100%)
 rename drivers/video/{ => fbdev}/nvidia/nv_of.c (100%)
 rename drivers/video/{ => fbdev}/nvidia/nv_proto.h (100%)
 rename drivers/video/{ => fbdev}/nvidia/nv_setup.c (100%)
 rename drivers/video/{ => fbdev}/nvidia/nv_type.h (100%)
 rename drivers/video/{ => fbdev}/nvidia/nvidia.c (100%)
 rename drivers/video/{ => fbdev}/ocfb.c (100%)
 rename drivers/video/{ => fbdev}/offb.c (100%)
 rename drivers/video/{ => fbdev}/omap/Kconfig (100%)
 rename drivers/video/{ => fbdev}/omap/Makefile (100%)
 rename drivers/video/{ => fbdev}/omap/hwa742.c (100%)
 rename drivers/video/{ => fbdev}/omap/lcd_ams_delta.c (100%)
 rename drivers/video/{ => fbdev}/omap/lcd_h3.c (100%)
 rename drivers/video/{ => fbdev}/omap/lcd_htcherald.c (100%)
 rename drivers/video/{ => fbdev}/omap/lcd_inn1510.c (100%)
 rename drivers/video/{ => fbdev}/omap/lcd_inn1610.c (100%)
 rename drivers/video/{ => fbdev}/omap/lcd_mipid.c (100%)
 rename drivers/video/{ => fbdev}/omap/lcd_osk.c (100%)
 rename drivers/video/{ => fbdev}/omap/lcd_palmte.c (100%)
 rename drivers/video/{ => fbdev}/omap/lcd_palmtt.c (100%)
 rename drivers/video/{ => fbdev}/omap/lcd_palmz71.c (100%)
 rename drivers/video/{ => fbdev}/omap/lcdc.c (100%)
 rename drivers/video/{ => fbdev}/omap/lcdc.h (100%)
 rename drivers/video/{ => fbdev}/omap/omapfb.h (100%)
 rename drivers/video/{ => fbdev}/omap/omapfb_main.c (100%)
 rename drivers/video/{ => fbdev}/omap/sossi.c (100%)
 create mode 100644 drivers/video/fbdev/omap2/Kconfig
 rename drivers/video/{ => fbdev}/omap2/Makefile (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/Kconfig (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/Makefile (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/connector-analog-tv.c (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/connector-dvi.c (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/connector-hdmi.c (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/encoder-tfp410.c (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/encoder-tpd12s015.c (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/panel-dpi.c (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/panel-dsi-cm.c (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/panel-lgphilips-lb035q02.c (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/panel-nec-nl8048hl11.c (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/panel-sharp-ls037v7dw01.c (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/panel-sony-acx565akm.c (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/panel-tpo-td028ttec1.c (100%)
 rename drivers/video/{ => fbdev}/omap2/displays-new/panel-tpo-td043mtea1.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/Kconfig (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/Makefile (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/apply.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/core.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/dispc-compat.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/dispc-compat.h (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/dispc.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/dispc.h (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/dispc_coefs.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/display-sysfs.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/display.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/dpi.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/dsi.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/dss.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/dss.h (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/dss_features.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/dss_features.h (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/hdmi.h (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/hdmi4.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/hdmi4_core.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/hdmi4_core.h (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/hdmi_common.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/hdmi_phy.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/hdmi_pll.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/hdmi_wp.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/manager-sysfs.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/manager.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/output.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/overlay-sysfs.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/overlay.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/rfbi.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/sdi.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/venc.c (100%)
 rename drivers/video/{ => fbdev}/omap2/dss/venc_panel.c (100%)
 rename drivers/video/{ => fbdev}/omap2/omapfb/Kconfig (100%)
 rename drivers/video/{ => fbdev}/omap2/omapfb/Makefile (100%)
 rename drivers/video/{ => fbdev}/omap2/omapfb/omapfb-ioctl.c (100%)
 rename drivers/video/{ => fbdev}/omap2/omapfb/omapfb-main.c (100%)
 rename drivers/video/{ => fbdev}/omap2/omapfb/omapfb-sysfs.c (100%)
 rename drivers/video/{ => fbdev}/omap2/omapfb/omapfb.h (100%)
 rename drivers/video/{ => fbdev}/omap2/vrfb.c (100%)
 rename drivers/video/{ => fbdev}/p9100.c (100%)
 rename drivers/video/{ => fbdev}/platinumfb.c (100%)
 rename drivers/video/{ => fbdev}/platinumfb.h (100%)
 rename drivers/video/{ => fbdev}/pm2fb.c (100%)
 rename drivers/video/{ => fbdev}/pm3fb.c (100%)
 rename drivers/video/{ => fbdev}/pmag-aa-fb.c (100%)
 rename drivers/video/{ => fbdev}/pmag-ba-fb.c (100%)
 rename drivers/video/{ => fbdev}/pmagb-b-fb.c (100%)
 rename drivers/video/{ => fbdev}/ps3fb.c (100%)
 rename drivers/video/{ => fbdev}/pvr2fb.c (100%)
 rename drivers/video/{ => fbdev}/pxa168fb.c (100%)
 rename drivers/video/{ => fbdev}/pxa168fb.h (100%)
 rename drivers/video/{ => fbdev}/pxa3xx-gcu.c (100%)
 rename drivers/video/{ => fbdev}/pxa3xx-gcu.h (100%)
 rename drivers/video/{ => fbdev}/pxafb.c (100%)
 rename drivers/video/{ => fbdev}/pxafb.h (100%)
 rename drivers/video/{ => fbdev}/q40fb.c (100%)
 rename drivers/video/{ => fbdev}/riva/Makefile (100%)
 rename drivers/video/{ => fbdev}/riva/fbdev.c (100%)
 rename drivers/video/{ => fbdev}/riva/nv_driver.c (100%)
 rename drivers/video/{ => fbdev}/riva/nv_type.h (100%)
 rename drivers/video/{ => fbdev}/riva/nvreg.h (100%)
 rename drivers/video/{ => fbdev}/riva/riva_hw.c (100%)
 rename drivers/video/{ => fbdev}/riva/riva_hw.h (100%)
 rename drivers/video/{ => fbdev}/riva/riva_tbl.h (100%)
 rename drivers/video/{ => fbdev}/riva/rivafb-i2c.c (100%)
 rename drivers/video/{ => fbdev}/riva/rivafb.h (100%)
 rename drivers/video/{ => fbdev}/s1d13xxxfb.c (100%)
 rename drivers/video/{ => fbdev}/s3c-fb.c (100%)
 rename drivers/video/{ => fbdev}/s3c2410fb.c (100%)
 rename drivers/video/{ => fbdev}/s3c2410fb.h (100%)
 rename drivers/video/{ => fbdev}/s3fb.c (100%)
 rename drivers/video/{ => fbdev}/sa1100fb.c (100%)
 rename drivers/video/{ => fbdev}/sa1100fb.h (100%)
 rename drivers/video/{ => fbdev}/savage/Makefile (100%)
 rename drivers/video/{ => fbdev}/savage/savagefb-i2c.c (100%)
 rename drivers/video/{ => fbdev}/savage/savagefb.h (100%)
 rename drivers/video/{ => fbdev}/savage/savagefb_accel.c (100%)
 rename drivers/video/{ => fbdev}/savage/savagefb_driver.c (100%)
 rename drivers/video/{ => fbdev}/sbuslib.c (100%)
 rename drivers/video/{ => fbdev}/sbuslib.h (100%)
 rename drivers/video/{ => fbdev}/sgivwfb.c (100%)
 rename drivers/video/{ => fbdev}/sh7760fb.c (100%)
 rename drivers/video/{ => fbdev}/sh_mipi_dsi.c (100%)
 rename drivers/video/{ => fbdev}/sh_mobile_hdmi.c (100%)
 rename drivers/video/{ => fbdev}/sh_mobile_lcdcfb.c (100%)
 rename drivers/video/{ => fbdev}/sh_mobile_lcdcfb.h (100%)
 rename drivers/video/{ => fbdev}/sh_mobile_meram.c (100%)
 rename drivers/video/{ => fbdev}/simplefb.c (100%)
 rename drivers/video/{ => fbdev}/sis/300vtbl.h (100%)
 rename drivers/video/{ => fbdev}/sis/310vtbl.h (100%)
 rename drivers/video/{ => fbdev}/sis/Makefile (100%)
 rename drivers/video/{ => fbdev}/sis/init.c (100%)
 rename drivers/video/{ => fbdev}/sis/init.h (100%)
 rename drivers/video/{ => fbdev}/sis/init301.c (100%)
 rename drivers/video/{ => fbdev}/sis/init301.h (100%)
 rename drivers/video/{ => fbdev}/sis/initdef.h (100%)
 rename drivers/video/{ => fbdev}/sis/initextlfb.c (100%)
 rename drivers/video/{ => fbdev}/sis/oem300.h (100%)
 rename drivers/video/{ => fbdev}/sis/oem310.h (100%)
 rename drivers/video/{ => fbdev}/sis/sis.h (100%)
 rename drivers/video/{ => fbdev}/sis/sis_accel.c (100%)
 rename drivers/video/{ => fbdev}/sis/sis_accel.h (100%)
 rename drivers/video/{ => fbdev}/sis/sis_main.c (100%)
 rename drivers/video/{ => fbdev}/sis/sis_main.h (100%)
 rename drivers/video/{ => fbdev}/sis/vgatypes.h (100%)
 rename drivers/video/{ => fbdev}/sis/vstruct.h (100%)
 rename drivers/video/{ => fbdev}/skeletonfb.c (100%)
 rename drivers/video/{ => fbdev}/sm501fb.c (100%)
 rename drivers/video/{ => fbdev}/smscufx.c (100%)
 rename drivers/video/{ => fbdev}/ssd1307fb.c (100%)
 rename drivers/video/{ => fbdev}/sstfb.c (100%)
 rename drivers/video/{ => fbdev}/sticore.h (100%)
 rename drivers/video/{ => fbdev}/stifb.c (100%)
 rename drivers/video/{ => fbdev}/sunxvr1000.c (100%)
 rename drivers/video/{ => fbdev}/sunxvr2500.c (100%)
 rename drivers/video/{ => fbdev}/sunxvr500.c (100%)
 rename drivers/video/{ => fbdev}/tcx.c (100%)
 rename drivers/video/{ => fbdev}/tdfxfb.c (100%)
 rename drivers/video/{ => fbdev}/tgafb.c (100%)
 rename drivers/video/{ => fbdev}/tmiofb.c (100%)
 rename drivers/video/{ => fbdev}/tridentfb.c (100%)
 rename drivers/video/{ => fbdev}/udlfb.c (100%)
 rename drivers/video/{ => fbdev}/uvesafb.c (100%)
 rename drivers/video/{ => fbdev}/valkyriefb.c (100%)
 rename drivers/video/{ => fbdev}/valkyriefb.h (100%)
 rename drivers/video/{ => fbdev}/vermilion/Makefile (100%)
 rename drivers/video/{ => fbdev}/vermilion/cr_pll.c (100%)
 rename drivers/video/{ => fbdev}/vermilion/vermilion.c (100%)
 rename drivers/video/{ => fbdev}/vermilion/vermilion.h (100%)
 rename drivers/video/{ => fbdev}/vesafb.c (100%)
 rename drivers/video/{ => fbdev}/vfb.c (100%)
 rename drivers/video/{ => fbdev}/vga16fb.c (100%)
 rename drivers/video/{ => fbdev}/via/Makefile (100%)
 rename drivers/video/{ => fbdev}/via/accel.c (100%)
 rename drivers/video/{ => fbdev}/via/accel.h (100%)
 rename drivers/video/{ => fbdev}/via/chip.h (100%)
 rename drivers/video/{ => fbdev}/via/debug.h (100%)
 rename drivers/video/{ => fbdev}/via/dvi.c (100%)
 rename drivers/video/{ => fbdev}/via/dvi.h (100%)
 rename drivers/video/{ => fbdev}/via/global.c (100%)
 rename drivers/video/{ => fbdev}/via/global.h (100%)
 rename drivers/video/{ => fbdev}/via/hw.c (100%)
 rename drivers/video/{ => fbdev}/via/hw.h (100%)
 rename drivers/video/{ => fbdev}/via/ioctl.c (100%)
 rename drivers/video/{ => fbdev}/via/ioctl.h (100%)
 rename drivers/video/{ => fbdev}/via/lcd.c (100%)
 rename drivers/video/{ => fbdev}/via/lcd.h (100%)
 rename drivers/video/{ => fbdev}/via/share.h (100%)
 rename drivers/video/{ => fbdev}/via/tblDPASetting.c (100%)
 rename drivers/video/{ => fbdev}/via/tblDPASetting.h (100%)
 rename drivers/video/{ => fbdev}/via/via-core.c (100%)
 rename drivers/video/{ => fbdev}/via/via-gpio.c (100%)
 rename drivers/video/{ => fbdev}/via/via_aux.c (100%)
 rename drivers/video/{ => fbdev}/via/via_aux.h (100%)
 rename drivers/video/{ => fbdev}/via/via_aux_ch7301.c (100%)
 rename drivers/video/{ => fbdev}/via/via_aux_edid.c (100%)
 rename drivers/video/{ => fbdev}/via/via_aux_sii164.c (100%)
 rename drivers/video/{ => fbdev}/via/via_aux_vt1621.c (100%)
 rename drivers/video/{ => fbdev}/via/via_aux_vt1622.c (100%)
 rename drivers/video/{ => fbdev}/via/via_aux_vt1625.c (100%)
 rename drivers/video/{ => fbdev}/via/via_aux_vt1631.c (100%)
 rename drivers/video/{ => fbdev}/via/via_aux_vt1632.c (100%)
 rename drivers/video/{ => fbdev}/via/via_aux_vt1636.c (100%)
 rename drivers/video/{ => fbdev}/via/via_clock.c (100%)
 rename drivers/video/{ => fbdev}/via/via_clock.h (100%)
 rename drivers/video/{ => fbdev}/via/via_i2c.c (100%)
 rename drivers/video/{ => fbdev}/via/via_modesetting.c (100%)
 rename drivers/video/{ => fbdev}/via/via_modesetting.h (100%)
 rename drivers/video/{ => fbdev}/via/via_utility.c (100%)
 rename drivers/video/{ => fbdev}/via/via_utility.h (100%)
 rename drivers/video/{ => fbdev}/via/viafbdev.c (100%)
 rename drivers/video/{ => fbdev}/via/viafbdev.h (100%)
 rename drivers/video/{ => fbdev}/via/viamode.c (100%)
 rename drivers/video/{ => fbdev}/via/viamode.h (100%)
 rename drivers/video/{ => fbdev}/via/vt1636.c (100%)
 rename drivers/video/{ => fbdev}/via/vt1636.h (100%)
 rename drivers/video/{ => fbdev}/vt8500lcdfb.c (100%)
 rename drivers/video/{ => fbdev}/vt8500lcdfb.h (100%)
 rename drivers/video/{ => fbdev}/vt8623fb.c (100%)
 rename drivers/video/{ => fbdev}/w100fb.c (100%)
 rename drivers/video/{ => fbdev}/w100fb.h (100%)
 rename drivers/video/{ => fbdev}/wm8505fb.c (100%)
 rename drivers/video/{ => fbdev}/wm8505fb_regs.h (100%)
 rename drivers/video/{ => fbdev}/wmt_ge_rops.c (99%)
 rename drivers/video/{ => fbdev}/wmt_ge_rops.h (100%)
 rename drivers/video/{ => fbdev}/xen-fbfront.c (100%)
 rename drivers/video/{ => fbdev}/xilinxfb.c (100%)
 delete mode 100644 drivers/video/omap2/Kconfig


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

^ permalink raw reply

* Re: [PATCH] video: Check EDID for HDMI connection
From: Christopher Freeman @ 2014-04-08 21:43 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <1395873337-41305-1-git-send-email-cfreeman@nvidia.com>



On 4/8/14 2:19 AM, "Tomi Valkeinen" <tomi.valkeinen@ti.com> wrote:

>* PGP Signed by an unknown key
>
>Hi,
>
>On 27/03/14 00:35, cfreeman@nvidia.com wrote:
>> From: David Ung <davidu@nvidia.com>
>> 
>> Check EDID Vendor Specific Data Block bytes to see if the connection
>> is HDMI and set FB_MISC_HDMI.
>> 
>> Signed-off-by: David Ung <davidu@nvidia.com>
>> Signed-off-by: Christopher Freeman<cfreeman@nvidia.com>
>> ---
>
>Patch looks fine, but how do you use the flag? Shouldn't things like
>detecting if the monitor supports audio be done with some more detailed
>bits in the EDID data (not that I remember much from the HDMI spec).
The Tegra HDMI driver uses FB_MISC_HDMI to select the type of connection
it has hdmi/dvi and setup the avi info frames.
agree that we could use the EDID data to determine the audio format
support and sampling rates, but currently that's not being used.
I think determining the audio format and sample rate support could be
added in a separate and future patch.



>
> Tomi
>
>
>
>* Unknown Key
>* 0xBC961EF5

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

^ permalink raw reply

* Re: [PATCHv3 19/41] OMAPDSS: panel-dpi: Add DT support
From: Tony Lindgren @ 2014-04-08 15:29 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <53438B45.2090209@ti.com>

* Tomi Valkeinen <tomi.valkeinen@ti.com> [140407 22:42]:
> On 08/04/14 03:13, Tony Lindgren wrote:
> > Tomi,
> > 
> > * Tomi Valkeinen <tomi.valkeinen@ti.com> [140121 03:01]:
> >> Add DT support for panel-dpi.
> > 
> > Looks like this patch did not get merged or am I missing
> > something?
> 
> Yes, I dropped it. None of the boards that I converted used panel-dpi.
> There was so much discussions about the display bindings, so I thought
> it's better to leave out all but the needed patches.

OK
 
> > As you probably are aware, we have at least these boards
> > needing it before we can remove the omap3 legacy support:
> > 
> > board-am3517evm.c
> > board-cm-t35.c
> > board-devkit8000.c
> > board-ldp.c
> > board-overo.c
> > 
> > We could probably set the display timings based on the
> > compatible flag in the driver if that's an issue?
> 
> The timings shouldn't be an issue. But there's the backlight GPIO,
> currently handled by panel-dpi, which should be removed from the panel.
> We should use gpio-backlight for that one.

Using gpio-backlight makes sense for sure.

FYI, in the case of the LDP there are four GPIOs to configure to
get things going:

gpio55		LCD RESET		panel-dpi?
gpio56		LCD QVGA		panel-dpi?
twl gpio7	LCD power		panel-dpi
twl gpio15	LCD backlight		gpio-backlight
 
> > And then board-omap3pandora.c also needs support for
> > panel_tpo_td043mtea1_platform_data.
> 
> Yep, there's still much to do for DSS DT support. Hopefully it will be
> easier now that the core support is there. I'll continue working on the
> remaining boards and panels. However, I don't have any of the remaining
> boards, so help is of course appreciated.

Yeah I can test at least the LDP here.

Regards,

Tony

^ permalink raw reply

* Re: [PATCH 0/3] video: clps711x: New CLPS711X =?UTF-8?B?IEZCIGRyaXZlcg==?
From: Alexander Shiyan @ 2014-04-08 10:41 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <1396952145.538405759@f356.i.mail.ru>

VHVlLCA4IEFwciAyMDE0IDEzOjI0OjA5ICswMzAwINC+0YIgVG9taSBWYWxrZWluZW4gPHRvbWku
dmFsa2VpbmVuQHRpLmNvbT46Cj4gT24gMDgvMDQvMTQgMTM6MTUsIEFsZXhhbmRlciBTaGl5YW4g
d3JvdGU6Cj4gPiBUdWUsIDggQXByIDIwMTQgMTI6NTY6MjQgKzAzMDAg0L7RgiBUb21pIFZhbGtl
aW5lbiA8dG9taS52YWxrZWluZW5AdGkuY29tPjoKPiA+PiBIaSwKPiA+Pgo+ID4+IE9uIDIwLzAz
LzE0IDE4OjI0LCBBbGV4YW5kZXIgU2hpeWFuIHdyb3RlOgo+ID4+PiBUaGlzIHNlcmllcyBhZGRz
IGEgbmV3IGZyYW1lYnVmZmVyIGRyaXZlciBmb3IgQ2lycnVzIExvZ2ljIENMUFM3MTFYCj4gPj4+
IENQVXMuIFNpbmNlIGFsbCBjb2RlIHJld3JpdHRlbiBmcm9tIHNjcmF0Y2gsIHBhdGNoIGlzIGRl
c2lnbmVkIGFzIGEKPiA+Pj4gcmVwbGFjZW1lbnQgb2YgdGhlIG9sZCAobm90IHVwZGF0ZWQgZm9y
IGEgbG9uZyB0aW1lKSBmb3IgYSBuZXcgb25lLgo+ID4+Cj4gPj4gV2h5IHdhcyBpdCByZXdyaXR0
ZW4gZnJvbSBzY3JhdGNoPyBJdCdzIGFsbW9zdCBhbHdheXMgYmV0dGVyIHRvIGltcHJvdmUKPiA+
PiB0aGUgb2xkIG9uZSwgdGhhbiB3cml0ZSBhIG5ldywgcmVwbGFjaW5nIG9uZS4KPiA+IEhlbGxv
Lgo+ID4gCj4gPiBNb3N0IG9mIHRoZSBjb2RlIGhhcyBiZWVuIHJld3JpdHRlbi4gSXQgd2lsbCBi
ZSB2ZXJ5IGRpZmZpY3VsdCB0byBzZWUgdGhlIGNoYW5nZXMsCj4gPiBpZiBpdCBpcyBwcmVzZW50
ZWQgYXMgYSBwYXRjaCBmb3IgdGhlIG9sZCBkcml2ZXIuCj4gCj4gV2VsbCwgbm93IGl0J3MgaW1w
b3NzaWJsZSB0byBzZWUgdGhlIGNoYW5nZXMsIGV4Y2VwdCBvcGVuaW5nIGJvdGggZmlsZXMKPiBh
bmQgZ29pbmcgdGhyb3VnaCBsaW5lIGJ5IGxpbmUuIFlvdSBkb24ndCBldmVuIGxpc3QgYW55IG5l
dyBmZWF0dXJlcyBpbgo+IHRoZSBkZXNjcmlwdGlvbiwgb3IgZ2l2ZSBhbnkgcmVhc29uIHdoeSBh
IG5ldyBkcml2ZXIgaXMgcmVxdWlyZWQuCj4gCj4gQW5kIG9mIGNvdXJzZSBvbmUgaHVnZSBwYXRj
aCBjaGFuZ2luZyB0aGUgb2xkIGRyaXZlciB0byB0aGUgbmV3IGZvcm0gaXMKPiBiYWQgYWxzby4K
PiAKPiBUaGUgcHJvcGVyIHdheSB3b3VsZCBiZSB0byBncmFkdWFsbHkgY2hhbmdlIHRoZSBvbGQg
ZHJpdmVyIHdpdGggYSBwYXRjaAo+IHNlcmllcy4gVGhlbiBpdCdzIHBvc3NpYmxlIHRvIHJldmll
dyB0aGUgcGF0Y2hlcyBhbmQgc2VlIHdoYXQgaXMKPiBhY3R1YWxseSBjaGFuZ2VkLgoKWWVzLCBi
dXQgaW4gdGhpcyBjYXNlLCBJIHRoaW5rIGl0J3MgdXNlbGVzcyB3b3JrLiBDdXJyZW50IGRyaXZl
ciBpcyBpbnRlbmRlZApvbmx5IGZvciBvbmUgb3IgdHdvIGJvYXJkcy4gTmV3IHZlcnNpb24gc3Vw
cG9ydHMgRFQgYW5kIHJlbW92ZXMgdGhlIGxhc3QKdXNhZ2Ugb2YgPG1hY2gvaGFyZHdhcmUuaD4g
Zm9yIHRoaXMgcGxhdGZvcm0uIEkgd2lsbCBzaG93IGFsbCB0aGUgbmV3CmJlbmVmaXRzIGluIHYy
LgoKLS0tCgo

^ permalink raw reply

* Re: [PATCH 0/3] video: clps711x: New CLPS711X FB driver
From: Tomi Valkeinen @ 2014-04-08 10:24 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <1395332675-23135-1-git-send-email-shc_work@mail.ru>

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

On 08/04/14 13:15, Alexander Shiyan wrote:
> Tue, 8 Apr 2014 12:56:24 +0300 от Tomi Valkeinen <tomi.valkeinen@ti.com>:
>> Hi,
>>
>> On 20/03/14 18:24, Alexander Shiyan wrote:
>>> This series adds a new framebuffer driver for Cirrus Logic CLPS711X
>>> CPUs. Since all code rewritten from scratch, patch is designed as a
>>> replacement of the old (not updated for a long time) for a new one.
>>
>> Why was it rewritten from scratch? It's almost always better to improve
>> the old one, than write a new, replacing one.
> Hello.
> 
> Most of the code has been rewritten. It will be very difficult to see the changes,
> if it is presented as a patch for the old driver.

Well, now it's impossible to see the changes, except opening both files
and going through line by line. You don't even list any new features in
the description, or give any reason why a new driver is required.

And of course one huge patch changing the old driver to the new form is
bad also.

The proper way would be to gradually change the old driver with a patch
series. Then it's possible to review the patches and see what is
actually changed.

 Tomi



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

^ permalink raw reply

* Re: [PATCH 0/3] video: clps711x: New CLPS711X =?UTF-8?B?IEZCIGRyaXZlcg==?
From: Alexander Shiyan @ 2014-04-08 10:15 UTC (permalink / raw)
  To: linux-fbdev

VHVlLCA4IEFwciAyMDE0IDEyOjU2OjI0ICswMzAwINC+0YIgVG9taSBWYWxrZWluZW4gPHRvbWku
dmFsa2VpbmVuQHRpLmNvbT46Cj4gSGksCj4gCj4gT24gMjAvMDMvMTQgMTg6MjQsIEFsZXhhbmRl
ciBTaGl5YW4gd3JvdGU6Cj4gPiBUaGlzIHNlcmllcyBhZGRzIGEgbmV3IGZyYW1lYnVmZmVyIGRy
aXZlciBmb3IgQ2lycnVzIExvZ2ljIENMUFM3MTFYCj4gPiBDUFVzLiBTaW5jZSBhbGwgY29kZSBy
ZXdyaXR0ZW4gZnJvbSBzY3JhdGNoLCBwYXRjaCBpcyBkZXNpZ25lZCBhcyBhCj4gPiByZXBsYWNl
bWVudCBvZiB0aGUgb2xkIChub3QgdXBkYXRlZCBmb3IgYSBsb25nIHRpbWUpIGZvciBhIG5ldyBv
bmUuCj4gCj4gV2h5IHdhcyBpdCByZXdyaXR0ZW4gZnJvbSBzY3JhdGNoPyBJdCdzIGFsbW9zdCBh
bHdheXMgYmV0dGVyIHRvIGltcHJvdmUKPiB0aGUgb2xkIG9uZSwgdGhhbiB3cml0ZSBhIG5ldywg
cmVwbGFjaW5nIG9uZS4KSGVsbG8uCgpNb3N0IG9mIHRoZSBjb2RlIGhhcyBiZWVuIHJld3JpdHRl
bi4gSXQgd2lsbCBiZSB2ZXJ5IGRpZmZpY3VsdCB0byBzZWUgdGhlIGNoYW5nZXMsCmlmIGl0IGlz
IHByZXNlbnRlZCBhcyBhIHBhdGNoIGZvciB0aGUgb2xkIGRyaXZlci4KSW4gYW55IGNhc2UsIHRo
ZXJlIHdlcmUgY29tbWVudHMgb24gdGhlIHBhcnQgb2YgdGhlIERUIGJpbmRpbmdzLApzbyBJIHdp
bGwgc3VibWl0IGEgc2Vjb25kIHZlcnNpb24gbGF0ZXIuCgpUaGFua3MuCi0tLQoK

^ permalink raw reply

* Re: [PATCH] video: imxfb: Select LCD_CLASS_DEVICE unconditionally
From: Tomi Valkeinen @ 2014-04-08 10:10 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <1395298711-14619-1-git-send-email-shc_work@mail.ru>

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

On 08/04/14 13:08, Alexander Shiyan wrote:
> Tue, 8 Apr 2014 12:58:32 +0300 от Tomi Valkeinen <tomi.valkeinen@ti.com>:
>> Hi,
>>
>> On 20/03/14 08:58, Alexander Shiyan wrote:
>>> FB driver uses lowlevel controls for LCD powering and contrast changing.
>>> Since LCD class cannot be used as an optional feature and should be
>>> compiled for using in the driver, this patch selects LCD_CLASS_DEVICE
>>> symbol for the driver.
>>>
>>> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
>>> ---
>>>  drivers/video/fbdev/Kconfig | 2 ++
>>>  1 file changed, 2 insertions(+)
>>>
>>> diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
>>> index 67409e0..b7cb0af 100644
>>> --- a/drivers/video/fbdev/Kconfig
>>> +++ b/drivers/video/fbdev/Kconfig
>>> @@ -328,6 +328,8 @@ config FB_SA1100
>>>  config FB_IMX
>>>  	tristate "Freescale i.MX1/21/25/27 LCD support"
>>>  	depends on FB && IMX_HAVE_PLATFORM_IMX_FB
>>> +	select BACKLIGHT_LCD_SUPPORT
>>> +	select LCD_CLASS_DEVICE
>>>  	select FB_CFB_FILLRECT
>>>  	select FB_CFB_COPYAREA
>>>  	select FB_CFB_IMAGEBLIT
>>
>> I presume this should go in for 3.15?
> 
> Yes. Otherwise we may have problems with the compiling.

Ok, queuing this for 3.15 fixes.

 Tomi



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

^ permalink raw reply

* Re: [PATCH] video: imxfb: Select LCD_CLASS_DE =?UTF-8?B?VklDRSB1bmNvbmRpd
From: Alexander Shiyan @ 2014-04-08 10:08 UTC (permalink / raw)
  To: linux-fbdev

VHVlLCA4IEFwciAyMDE0IDEyOjU4OjMyICswMzAwINC+0YIgVG9taSBWYWxrZWluZW4gPHRvbWku
dmFsa2VpbmVuQHRpLmNvbT46Cj4gSGksCj4gCj4gT24gMjAvMDMvMTQgMDg6NTgsIEFsZXhhbmRl
ciBTaGl5YW4gd3JvdGU6Cj4gPiBGQiBkcml2ZXIgdXNlcyBsb3dsZXZlbCBjb250cm9scyBmb3Ig
TENEIHBvd2VyaW5nIGFuZCBjb250cmFzdCBjaGFuZ2luZy4KPiA+IFNpbmNlIExDRCBjbGFzcyBj
YW5ub3QgYmUgdXNlZCBhcyBhbiBvcHRpb25hbCBmZWF0dXJlIGFuZCBzaG91bGQgYmUKPiA+IGNv
bXBpbGVkIGZvciB1c2luZyBpbiB0aGUgZHJpdmVyLCB0aGlzIHBhdGNoIHNlbGVjdHMgTENEX0NM
QVNTX0RFVklDRQo+ID4gc3ltYm9sIGZvciB0aGUgZHJpdmVyLgo+ID4gCj4gPiBTaWduZWQtb2Zm
LWJ5OiBBbGV4YW5kZXIgU2hpeWFuIDxzaGNfd29ya0BtYWlsLnJ1Pgo+ID4gLS0tCj4gPiAgZHJp
dmVycy92aWRlby9mYmRldi9LY29uZmlnIHwgMiArKwo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAyIGlu
c2VydGlvbnMoKykKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvS2Nv
bmZpZyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZwo+ID4gaW5kZXggNjc0MDllMC4uYjdj
YjBhZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvS2NvbmZpZwo+ID4gKysr
IGIvZHJpdmVycy92aWRlby9mYmRldi9LY29uZmlnCj4gPiBAQCAtMzI4LDYgKzMyOCw4IEBAIGNv
bmZpZyBGQl9TQTExMDAKPiA+ICBjb25maWcgRkJfSU1YCj4gPiAgCXRyaXN0YXRlICJGcmVlc2Nh
bGUgaS5NWDEvMjEvMjUvMjcgTENEIHN1cHBvcnQiCj4gPiAgCWRlcGVuZHMgb24gRkIgJiYgSU1Y
X0hBVkVfUExBVEZPUk1fSU1YX0ZCCj4gPiArCXNlbGVjdCBCQUNLTElHSFRfTENEX1NVUFBPUlQK
PiA+ICsJc2VsZWN0IExDRF9DTEFTU19ERVZJQ0UKPiA+ICAJc2VsZWN0IEZCX0NGQl9GSUxMUkVD
VAo+ID4gIAlzZWxlY3QgRkJfQ0ZCX0NPUFlBUkVBCj4gPiAgCXNlbGVjdCBGQl9DRkJfSU1BR0VC
TElUCj4gCj4gSSBwcmVzdW1lIHRoaXMgc2hvdWxkIGdvIGluIGZvciAzLjE1PwoKWWVzLiBPdGhl
cndpc2Ugd2UgbWF5IGhhdmUgcHJvYmxlbXMgd2l0aCB0aGUgY29tcGlsaW5nLgoKLS0tCgo

^ permalink raw reply

* [PATCH] video: exynos: Add a dependency to the menu
From: Jean Delvare @ 2014-04-08 10:00 UTC (permalink / raw)
  To: linux-arm-kernel

All drivers under menu EXYNOS_VIDEO depend on either ARCH_S5PV210 or
ARCH_EXYNOS, so add these as dependencies to the menu itself. This
avoids presenting an empty and useless menu on other architectures.

Then drivers under the menu only need a dependency if they depend on
one of the supported architectures specifically.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Kukjin Kim <kgene.kim@samsung.com>
---
 drivers/video/exynos/Kconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-3.15-rc0.orig/drivers/video/exynos/Kconfig	2014-04-07 10:23:07.316226676 +0200
+++ linux-3.15-rc0/drivers/video/exynos/Kconfig	2014-04-08 11:50:17.406723187 +0200
@@ -4,6 +4,7 @@
 
 menuconfig EXYNOS_VIDEO
 	bool "Exynos Video driver support"
+	depends on ARCH_S5PV210 || ARCH_EXYNOS
 	help
 	  This enables support for EXYNOS Video device.
 
@@ -15,7 +16,6 @@ if EXYNOS_VIDEO
 
 config EXYNOS_MIPI_DSI
 	bool "EXYNOS MIPI DSI driver support."
-	depends on ARCH_S5PV210 || ARCH_EXYNOS
 	select GENERIC_PHY
 	help
 	  This enables support for MIPI-DSI device.


-- 
Jean Delvare
SUSE L3 Support

^ permalink raw reply

* Re: [PATCH] video: imxfb: Select LCD_CLASS_DEVICE unconditionally
From: Tomi Valkeinen @ 2014-04-08  9:58 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <1395298711-14619-1-git-send-email-shc_work@mail.ru>

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

Hi,

On 20/03/14 08:58, Alexander Shiyan wrote:
> FB driver uses lowlevel controls for LCD powering and contrast changing.
> Since LCD class cannot be used as an optional feature and should be
> compiled for using in the driver, this patch selects LCD_CLASS_DEVICE
> symbol for the driver.
> 
> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
> ---
>  drivers/video/fbdev/Kconfig | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
> index 67409e0..b7cb0af 100644
> --- a/drivers/video/fbdev/Kconfig
> +++ b/drivers/video/fbdev/Kconfig
> @@ -328,6 +328,8 @@ config FB_SA1100
>  config FB_IMX
>  	tristate "Freescale i.MX1/21/25/27 LCD support"
>  	depends on FB && IMX_HAVE_PLATFORM_IMX_FB
> +	select BACKLIGHT_LCD_SUPPORT
> +	select LCD_CLASS_DEVICE
>  	select FB_CFB_FILLRECT
>  	select FB_CFB_COPYAREA
>  	select FB_CFB_IMAGEBLIT

I presume this should go in for 3.15?

 Tomi



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

^ permalink raw reply

* Re: [PATCH 0/3] video: clps711x: New CLPS711X FB driver
From: Tomi Valkeinen @ 2014-04-08  9:56 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <1395332675-23135-1-git-send-email-shc_work@mail.ru>

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

Hi,

On 20/03/14 18:24, Alexander Shiyan wrote:
> This series adds a new framebuffer driver for Cirrus Logic CLPS711X
> CPUs. Since all code rewritten from scratch, patch is designed as a
> replacement of the old (not updated for a long time) for a new one.

Why was it rewritten from scratch? It's almost always better to improve
the old one, than write a new, replacing one.

 Tomi



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

^ permalink raw reply

* Re: [PATCH] video: Check EDID for HDMI connection
From: Tomi Valkeinen @ 2014-04-08  9:19 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <1395873337-41305-1-git-send-email-cfreeman@nvidia.com>

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

Hi,

On 27/03/14 00:35, cfreeman@nvidia.com wrote:
> From: David Ung <davidu@nvidia.com>
> 
> Check EDID Vendor Specific Data Block bytes to see if the connection
> is HDMI and set FB_MISC_HDMI.
> 
> Signed-off-by: David Ung <davidu@nvidia.com>
> Signed-off-by: Christopher Freeman<cfreeman@nvidia.com>
> ---

Patch looks fine, but how do you use the flag? Shouldn't things like
detecting if the monitor supports audio be done with some more detailed
bits in the EDID data (not that I remember much from the HDMI spec).

 Tomi



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

^ permalink raw reply


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