Linux Framebuffer Layer development
 help / color / mirror / Atom feed
* Re: Fixing the kernels backlight API
From: Hans de Goede @ 2014-02-13 13:49 UTC (permalink / raw)
  To: David Herrmann, Ville Syrjälä
  Cc: xorg-devel-go0+a7rfsptAfugRpC6u6w@public.gmane.org,
	Linux Fbdev development list, Jingoo Han, Dave Airlie, dri-devel
In-Reply-To: <CANq1E4R=UVo5YVPUrdRFeobAE-qU6e-+GHZ2VJwwaa8zEO6g3Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Hi,

On 02/12/2014 11:26 PM, David Herrmann wrote:
> Hi
> 
> On Wed, Feb 12, 2014 at 9:43 PM, Ville Syrjälä
> <ville.syrjala@linux.intel.com> wrote:
>> On Thu, Feb 13, 2014 at 06:14:04AM +1000, Dave Airlie wrote:
>>>>
>>>> The biggest remaining stumbling block is the backlight API, because opening the
>>>> sysfs files requires root rights. I'll very likely write a little helper for this
>>>> for now, but in the long run it would be good to have a better solution.
>>>>
>>>> While discussion this in the graphics devroom at Fosdem, the general consensus
>>>> seemed to be that the current backlight API is in need of an overhaul anyways.
>>>>
>>>> There are several issues with the current API:
>>>> -there is no reliable way to determine the relation between a backlight
>>>>  control in sysfs and the display it controls the backlight off
>>>> -on many laptops we end up with multiple providers of backlight control
>>>>  all battling over control of the same backlight controller through various
>>>>  firmware interfaces
>>>> -and there is no way to do acl management on it because of sysfs usage
>>>>
>>>> At Fosdem it was suggested to "simply" make the backlight a property of
>>>> the connector in drm/kms and let users control it that way. From an acl pov
>>>> this makes a ton of sense, if a user controls the other display-panel settings,
>>>> then he should be able to control the backlight too.
>>>>
>>>> This also nicely solves the issue of userspace having to figure out which backlight
>>>> control to use for a certain output.
>>>>
>>>> Last this makes it the kernels responsibility to figure out which firmware interface
>>>> (if any) to use and tie that to the connector, rather then just exporting all of
>>>> them, including conflicting ones, and just hoping that userspace will figure things out.
>>>>
>>>> Note that wrt the last point, the kernel is the one which should have all the hardware
>>>> knowledge to do this properly, after all hardware abstraction is one of the tasks of
>>>> the kernel.
>>>>
>>>> I realize moving this more into the kernel, and tying things into drm is in no means
>>>> easy, but it is about time we clean up this mess.
>>>>
>>>> Note that although I'm kicking of this discussion, my focus within the graphics team is
>>>> mostly on input devices, so I'm hoping that someone else will pick things up once we've
>>>> a better idea of how we would like to solve this.
>>>>
>>>
>>> I hate to respond with yeah no, but yeah no,
>>>
>>> http://people.freedesktop.org/~cbrill/dri-log/?channel=dri-devel&show_html=true&highlight_names=&date 14-02-04
>>> http://people.freedesktop.org/~cbrill/dri-log/?channel=dri-devel&show_html=true&highlight_names=&date 14-02-05
>>>
>>> read down that until you see me and tagr talking, read it a few times,
>>> and the follow on chat with dvdhrm.
>>>
>>> The biggest problem with leaving the kernel to pick the correct one,
>>> is the kernel simply never knows which is the
>>> correct one,
>>
>> That could be solved by still allowing userspace to change the
>> connection between the property and the actual backlight device.
>>
>> With the prop approach + atomic modeset you could also do some
>> slightly fancier things like changing the backlight at the same
>> time as doing a modeset or just adjusting some other display
>> related properties.
> 
> The "attach" stuff actually sounds doable, but who decides which one
> to attach? You still need some user-space script during device-plug
> for that.
> But to be honest, the simplest way would be a "backlightd"
> bus-activatable daemon. SetBacklight() then takes a DRM-connector and
> brightness-value, which the daemon looks up in /sys and sets.. This
> has the advantage that we can do any fancy matching in user-space. We
> can provide quirks (maybe even via udev-hwdb) and other helpers for
> weird setups.

This sounds like a good idea, note that at-least gnome already has
something similar in the form of the (one-shot, not daemon)
gsd-backlight-helper which also has some code to try and figure out
what is the right backlight class device to use.

Interestingly enough the xf86-video-intel driver does this on its own
using somewhat more complex logic to find the right backlight class
device to use, and then exporting this as a property on the connector
in Xrandr.

So a first rough idea of how this would work / a plan would be:

1) We have a bus-activated backlightd running as root

2) This can be asked for backlight properties on a certain drm/kms
connector

3) If there actually is a backlight for the connector, it can also be
used to change the backlight brightness

4) The xserver will get some helper functions which drivers can call
to create a backlight property on xrandr connectors

5) In the long run gsd-backlight-helper and the xf86-video-intel
backlight code can be removed

Note there also is a step:

0) Get xf86-video-intel backlight code to work without root in some
way for now


Regards,

Hans

^ permalink raw reply

* Re: Fixing the kernels backlight API
From: Hans de Goede @ 2014-02-13 13:57 UTC (permalink / raw)
  To: Alexander E. Patrakov, David Herrmann, Ville Syrjälä
  Cc: Dave Airlie, Linux Fbdev development list, Jingoo Han,
	xorg-devel-go0+a7rfsptAfugRpC6u6w@public.gmane.org, dri-devel
In-Reply-To: <52FC683F.10905-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Hi,

On 02/13/2014 07:37 AM, Alexander E. Patrakov wrote:
> 13.02.2014 04:26, David Herrmann wrote:
>> The "attach" stuff actually sounds doable, but who decides which one
>> to attach? You still need some user-space script during device-plug
>> for that.
>> But to be honest, the simplest way would be a "backlightd"
>> bus-activatable daemon. SetBacklight() then takes a DRM-connector and
>> brightness-value, which the daemon looks up in /sys and sets.. This
>> has the advantage that we can do any fancy matching in user-space. We
>> can provide quirks (maybe even via udev-hwdb) and other helpers for
>> weird setups.
> 
> What would be done with Samsung monitors (like an old SyncMaster 770P) that have a DVI connection, no physical buttons and have to be controlled via DDC-CI? Currently, ddccontrol works (via /dev/i2c-*), but only from root. I would like this use case to be covered in such a way that it could work both in Xorg and in Wayland, and, if possible, without races related to i2c usage from the kernel and from userspace.

The nice thing about having a userspace daemon for this is that we can
actually add some support for DCC-CI too.

WRT races between user and kernelspace, those can be avoided by using
the I2C_RDWR ioctl, in this case you can specify multipel i2c writes /
reads which will all get executed as one transaction, note this
assumes that the protocol supports repeated START conditions,
if it needs a STOP condition and still needs everything to be in
one transaction, then things become trickier. This also assumes
that the i2c controller driver used supports I2C_FUNC_I2C

Regards,

Hans

^ permalink raw reply

* Re: Fixing the kernels backlight API
From: Matthew Garrett @ 2014-02-13 17:19 UTC (permalink / raw)
  To: Hans de Goede
  Cc: xorg-devel@lists.x.org, Linux Fbdev development list, Jingoo Han,
	dri-devel
In-Reply-To: <52FCCBA1.3070303@redhat.com>

On Thu, Feb 13, 2014 at 02:41:53PM +0100, Hans de Goede wrote:

> I still believe we need to do better, but maybe that better needs to be done
> in userspace rather then in the kernel.

One option is to put it on the connector but provide some mechanism for 
userspace to define the relationship between platform/firmware 
interfaces and connectors. We ought to be able to tie connectors into 
the ACPI namespace and do a better job than we currently do with the 
association between backlight and connector. The bigger problem is 
figuring out how platform interfaces tie into things, and that's where 
heuristics are probably going to be involved.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply

* Re: Fixing the kernels backlight API
From: Hans de Goede @ 2014-02-13 19:43 UTC (permalink / raw)
  To: Matthew Garrett
  Cc: xorg-devel-go0+a7rfsptAfugRpC6u6w@public.gmane.org,
	Linux Fbdev development list, Jingoo Han, Dave Airlie, dri-devel
In-Reply-To: <20140213171932.GB4420-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>

Hi,

On 02/13/2014 06:19 PM, Matthew Garrett wrote:
> On Thu, Feb 13, 2014 at 02:41:53PM +0100, Hans de Goede wrote:
> 
>> I still believe we need to do better, but maybe that better needs to be done
>> in userspace rather then in the kernel.
> 
> One option is to put it on the connector but provide some mechanism for 
> userspace to define the relationship between platform/firmware 
> interfaces and connectors. We ought to be able to tie connectors into 
> the ACPI namespace and do a better job than we currently do with the 
> association between backlight and connector. The bigger problem is 
> figuring out how platform interfaces tie into things, and that's where 
> heuristics are probably going to be involved.

Right, but as Dave Airlie pointed out that means putting links between
two completely unrelated subsystems, causing locking and module load
ordering problems.

I can understand where Dave is coming from, from a kernel pov, so this
might really be easier to just solve in userspace. I don't know if you've
seen my very rough sketch of how this could work in userspace in my other
mail. The idea would be to still make this show up on a specific connector,
but only at the xrandr level, not at the drm level, and have the xserver
talk to some kind of backlightd for this.  The backlightd API should of cource
be generic enough that it can be used in wayland too.

This sounds like a reasonable and workable plan to me, but I must admit
I'm very naive when it comes to backlight stuff.

Regards,

Hans

^ permalink raw reply

* Re: Fixing the kernels backlight API
From: Matthew Garrett @ 2014-02-13 20:12 UTC (permalink / raw)
  To: Hans de Goede
  Cc: xorg-devel-go0+a7rfsptAfugRpC6u6w@public.gmane.org,
	Linux Fbdev development list, Jingoo Han, Dave Airlie, dri-devel
In-Reply-To: <52FD204E.40507-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

On Thu, Feb 13, 2014 at 08:43:10PM +0100, Hans de Goede wrote:

> I can understand where Dave is coming from, from a kernel pov, so this
> might really be easier to just solve in userspace. I don't know if you've
> seen my very rough sketch of how this could work in userspace in my other
> mail. The idea would be to still make this show up on a specific connector,
> but only at the xrandr level, not at the drm level, and have the xserver
> talk to some kind of backlightd for this.  The backlightd API should of cource
> be generic enough that it can be used in wayland too.

Sure. You should probably take a look at libbacklight, which already has 
some amount of support for appropriate heuristics.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply

* [PATCH 1/2] OMAPDSS: use DISPC register to detect context loss
From: Tomi Valkeinen @ 2014-02-14  8:29 UTC (permalink / raw)
  To: linux-fbdev, linux-omap, Archit Taneja; +Cc: Nishanth Menon, Tomi Valkeinen

Instead of relying on the OMAP specific
omap_pm_get_dev_context_loss_count() to detect register context loss, we
can achieve the same in a much simpler way by just observing the DISPC
registers.

We always set DISPC's load mode to LOAD_FRAME_ONLY, which is not the
reset value. Thus we can just observe the load mode to see if we have
lost register context.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/video/omap2/dss/dispc.c | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index bbeb8dd7f108..1659aa912d2b 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -100,8 +100,6 @@ static struct {
 	struct platform_device *pdev;
 	void __iomem    *base;
 
-	int		ctx_loss_cnt;
-
 	int irq;
 
 	unsigned long core_clk_rate;
@@ -357,29 +355,20 @@ static void dispc_save_context(void)
 	if (dss_has_feature(FEAT_CORE_CLK_DIV))
 		SR(DIVISOR);
 
-	dispc.ctx_loss_cnt = dss_get_ctx_loss_count();
 	dispc.ctx_valid = true;
 
-	DSSDBG("context saved, ctx_loss_count %d\n", dispc.ctx_loss_cnt);
+	DSSDBG("context saved\n");
 }
 
 static void dispc_restore_context(void)
 {
-	int i, j, ctx;
+	int i, j;
 
 	DSSDBG("dispc_restore_context\n");
 
 	if (!dispc.ctx_valid)
 		return;
 
-	ctx = dss_get_ctx_loss_count();
-
-	if (ctx >= 0 && ctx = dispc.ctx_loss_cnt)
-		return;
-
-	DSSDBG("ctx_loss_count: saved %d, current %d\n",
-			dispc.ctx_loss_cnt, ctx);
-
 	/*RR(IRQENABLE);*/
 	/*RR(CONTROL);*/
 	RR(CONFIG);
@@ -3768,6 +3757,15 @@ static int dispc_runtime_suspend(struct device *dev)
 
 static int dispc_runtime_resume(struct device *dev)
 {
+	/*
+	 * The reset value for load mode is 0 (OMAP_DSS_LOAD_CLUT_AND_FRAME)
+	 * but we always initialize it to 2 (OMAP_DSS_LOAD_FRAME_ONLY) in
+	 * _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;
+
 	_omap_dispc_initial_config();
 
 	dispc_restore_context();
-- 
1.8.3.2


^ permalink raw reply related

* [PATCH 2/2] OMAPDSS: Remove unused get_context_loss_count support
From: Tomi Valkeinen @ 2014-02-14  8:29 UTC (permalink / raw)
  To: linux-fbdev, linux-omap, Archit Taneja; +Cc: Nishanth Menon, Tomi Valkeinen
In-Reply-To: <1392366572-31729-1-git-send-email-tomi.valkeinen@ti.com>

The omapdss driver no longer uses get_context_loss_count call, so we can
remove it.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 arch/arm/mach-omap2/display.c |  1 -
 drivers/video/omap2/dss/dss.c | 16 ----------------
 drivers/video/omap2/dss/dss.h |  2 --
 include/video/omapdss.h       |  1 -
 4 files changed, 20 deletions(-)

diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
index 4cf165502b35..93ebb4007ea9 100644
--- a/arch/arm/mach-omap2/display.c
+++ b/arch/arm/mach-omap2/display.c
@@ -301,7 +301,6 @@ int __init omap_display_init(struct omap_dss_board_info *board_data)
 	board_data->version = ver;
 	board_data->dsi_enable_pads = omap_dsi_enable_pads;
 	board_data->dsi_disable_pads = omap_dsi_disable_pads;
-	board_data->get_context_loss_count = omap_pm_get_dev_context_loss_count;
 	board_data->set_min_bus_tput = omap_dss_set_min_bus_tput;
 
 	omap_display_device.dev.platform_data = board_data;
diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
index 9a145da35ad3..96e400c51001 100644
--- a/drivers/video/omap2/dss/dss.c
+++ b/drivers/video/omap2/dss/dss.c
@@ -154,22 +154,6 @@ static void dss_restore_context(void)
 #undef SR
 #undef RR
 
-int dss_get_ctx_loss_count(void)
-{
-	struct platform_device *core_pdev = dss_get_core_pdev();
-	struct omap_dss_board_info *board_data = core_pdev->dev.platform_data;
-	int cnt;
-
-	if (!board_data->get_context_loss_count)
-		return -ENOENT;
-
-	cnt = board_data->get_context_loss_count(&dss.pdev->dev);
-
-	WARN_ONCE(cnt < 0, "get_context_loss_count failed: %d\n", cnt);
-
-	return cnt;
-}
-
 void dss_sdi_init(int datapairs)
 {
 	u32 l;
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
index 057f24c8a332..570f7ed2bcbc 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -225,8 +225,6 @@ void dss_dump_clocks(struct seq_file *s);
 void dss_debug_dump_clocks(struct seq_file *s);
 #endif
 
-int dss_get_ctx_loss_count(void);
-
 void dss_sdi_init(int datapairs);
 int dss_sdi_enable(void);
 void dss_sdi_disable(void);
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index 3d7c51a6f9ff..1eb9aa605eee 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -323,7 +323,6 @@ enum omapdss_version {
 
 /* Board specific data */
 struct omap_dss_board_info {
-	int (*get_context_loss_count)(struct device *dev);
 	int num_devices;
 	struct omap_dss_device **devices;
 	struct omap_dss_device *default_device;
-- 
1.8.3.2


^ permalink raw reply related

* Re: [PATCHv14][ 3/4] video: Kconfig: Allow more broad selection of the imxfb framebuffer driver.
From: Tomi Valkeinen @ 2014-02-14  8:43 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1390410577-22073-3-git-send-email-denis@eukrea.com>

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

Hi,

On 22/01/14 19:09, Denis Carikli wrote:
> Without that patch, a user can't select the imxfb driver when the i.MX25 and/or
>   the i.MX27 device tree board are selected and that no boards that selects
>   IMX_HAVE_PLATFORM_IMX_FB are compiled in.
> 
> Cc: Eric Bénard <eric@eukrea.com>
> Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
> Cc: Sascha Hauer <kernel@pengutronix.de>
> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Denis Carikli <denis@eukrea.com>
> Acked-by: Shawn Guo <shawn.guo@linaro.org>
> Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> Acked-by: Sascha Hauer <s.hauer@pengutronix.de>

Applied for 3.14 fbdev fixes.

As a generic comment, I'd appreciate if you'd use normal formatting in
the patch descriptions (no double spaces in the beginning of the lines).

 Tomi



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

^ permalink raw reply

* Re: Fixing the kernels backlight API
From: Hans de Goede @ 2014-02-14  8:45 UTC (permalink / raw)
  To: Matthew Garrett
  Cc: xorg-devel-go0+a7rfsptAfugRpC6u6w@public.gmane.org,
	Linux Fbdev development list, Jingoo Han, Dave Airlie, dri-devel
In-Reply-To: <20140213201237.GA19355-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>

Hi,

On 02/13/2014 09:12 PM, Matthew Garrett wrote:
> On Thu, Feb 13, 2014 at 08:43:10PM +0100, Hans de Goede wrote:
> 
>> I can understand where Dave is coming from, from a kernel pov, so this
>> might really be easier to just solve in userspace. I don't know if you've
>> seen my very rough sketch of how this could work in userspace in my other
>> mail. The idea would be to still make this show up on a specific connector,
>> but only at the xrandr level, not at the drm level, and have the xserver
>> talk to some kind of backlightd for this.  The backlightd API should of cource
>> be generic enough that it can be used in wayland too.
> 
> Sure. You should probably take a look at libbacklight, which already has 
> some amount of support for appropriate heuristics.

Ah, I did not know about libbacklight, thanks for the pointer.

Note that although I believe we do need to sort out this mess, and having
something like backlightd would be a good idea, I likely won't have time to
work on this in the near future. For $dayjob I will be focussing on finishing
rootless xorg and working on libinput. And $hobbytime is all going to getting
upstream support for Allwinner ARM SoCs into place.

Still I'll put a line about this in my todo file, just don't expect anything
soon, and no promises about this at all!

Regards,

Hans

^ permalink raw reply

* [GIT PULL] fbdev fixes for 3.14
From: Tomi Valkeinen @ 2014-02-14  9:10 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-kernel, linux-fbdev, Jean-Christophe PLAGNIOL-VILLARD

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

Hi Linus,

Please pull a few minor fbdev fixes for 3.14.

 Tomi

The following changes since commit b28a960c42fcd9cfc987441fa6d1c1a471f0f9ed:

  Linux 3.14-rc2 (2014-02-09 18:15:47 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git tags/fbdev-fixes-3.14

for you to fetch changes up to b359bb0d9c5132abb6fec1ef555c48daf267de59:

  video: Kconfig: Allow more broad selection of the imxfb framebuffer driver. (2014-02-14 10:44:52 +0200)

----------------------------------------------------------------
Minor fbdev fixes for 3.14.

----------------------------------------------------------------
Denis Carikli (1):
      video: Kconfig: Allow more broad selection of the imxfb framebuffer driver.

Sachin Kamat (1):
      video: exynos: Fix S6E8AX0 LCD driver build error

Tomi Valkeinen (2):
      OMAPDSS: DISPC: decimation rounding fix
      OMAPDSS: fix fck field types

 drivers/video/Kconfig           |  2 +-
 drivers/video/exynos/Kconfig    |  3 ++-
 drivers/video/omap2/dss/dispc.c | 16 ++++++++--------
 drivers/video/omap2/dss/dpi.c   |  2 +-
 drivers/video/omap2/dss/sdi.c   |  2 +-
 5 files changed, 13 insertions(+), 12 deletions(-)


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

^ permalink raw reply

* [PATCH RFC 2/3] fbdev: move fbdev core files to separate directory
From: Tomi Valkeinen @ 2014-02-14 11:18 UTC (permalink / raw)
  To: linux-fbdev, dri-devel, linux-kernel
  Cc: Laurent Pinchart, Geert Uytterhoeven,
	Jean-Christophe Plagniol-Villard, David Airlie, Tomi Valkeinen
In-Reply-To: <1392376711-11290-1-git-send-email-tomi.valkeinen@ti.com>

Instead of having fbdev framework core files at the root fbdev
directory, mixed with random fbdev device drivers, move the fbdev core
files to a separate core directory. This makes it much clearer which of
the files are actually part of the fbdev framework, and which are part
of device drivers.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/video/fbdev/Makefile                 | 16 +---------------
 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/wmt_ge_rops.c            |  2 +-
 21 files changed, 20 insertions(+), 18 deletions(-)
 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%)

diff --git a/drivers/video/fbdev/Makefile b/drivers/video/fbdev/Makefile
index 616e0975ae6e..6ef2c66110e3 100644
--- a/drivers/video/fbdev/Makefile
+++ b/drivers/video/fbdev/Makefile
@@ -4,25 +4,11 @@
 
 # Each configuration option enables a list of files.
 
-obj-y                             += fb_notify.o
-obj-$(CONFIG_FB)                  += fb.o
-fb-y                              := fbmem.o fbmon.o fbcmap.o fbsysfs.o \
-                                     modedb.o fbcvt.o
-fb-objs                           := $(fb-y)
+obj-y				+= core/
 
 obj-$(CONFIG_EXYNOS_VIDEO)     += exynos/
 
-obj-$(CONFIG_FB_CFB_FILLRECT)  += cfbfillrect.o
-obj-$(CONFIG_FB_CFB_COPYAREA)  += cfbcopyarea.o
-obj-$(CONFIG_FB_CFB_IMAGEBLIT) += cfbimgblt.o
-obj-$(CONFIG_FB_SYS_FILLRECT)  += sysfillrect.o
-obj-$(CONFIG_FB_SYS_COPYAREA)  += syscopyarea.o
-obj-$(CONFIG_FB_SYS_IMAGEBLIT) += sysimgblt.o
-obj-$(CONFIG_FB_SYS_FOPS)      += fb_sys_fops.o
-obj-$(CONFIG_FB_SVGALIB)       += svgalib.o
 obj-$(CONFIG_FB_MACMODES)      += macmodes.o
-obj-$(CONFIG_FB_DDC)           += fb_ddc.o
-obj-$(CONFIG_FB_DEFERRED_IO)   += fb_defio.o
 obj-$(CONFIG_FB_WMT_GE_ROPS)   += wmt_ge_rops.o
 
 # Hardware specific drivers go first
diff --git a/drivers/video/fbdev/core/Makefile b/drivers/video/fbdev/core/Makefile
new file mode 100644
index 000000000000..fa306538dac2
--- /dev/null
+++ b/drivers/video/fbdev/core/Makefile
@@ -0,0 +1,16 @@
+obj-y                             += fb_notify.o
+obj-$(CONFIG_FB)                  += fb.o
+fb-y                              := fbmem.o fbmon.o fbcmap.o fbsysfs.o \
+                                     modedb.o fbcvt.o
+fb-objs                           := $(fb-y)
+
+obj-$(CONFIG_FB_CFB_FILLRECT)  += cfbfillrect.o
+obj-$(CONFIG_FB_CFB_COPYAREA)  += cfbcopyarea.o
+obj-$(CONFIG_FB_CFB_IMAGEBLIT) += cfbimgblt.o
+obj-$(CONFIG_FB_SYS_FILLRECT)  += sysfillrect.o
+obj-$(CONFIG_FB_SYS_COPYAREA)  += syscopyarea.o
+obj-$(CONFIG_FB_SYS_IMAGEBLIT) += sysimgblt.o
+obj-$(CONFIG_FB_SYS_FOPS)      += fb_sys_fops.o
+obj-$(CONFIG_FB_SVGALIB)       += svgalib.o
+obj-$(CONFIG_FB_DDC)           += fb_ddc.o
+obj-$(CONFIG_FB_DEFERRED_IO)   += fb_defio.o
diff --git a/drivers/video/fbdev/cfbcopyarea.c b/drivers/video/fbdev/core/cfbcopyarea.c
similarity index 100%
rename from drivers/video/fbdev/cfbcopyarea.c
rename to drivers/video/fbdev/core/cfbcopyarea.c
diff --git a/drivers/video/fbdev/cfbfillrect.c b/drivers/video/fbdev/core/cfbfillrect.c
similarity index 100%
rename from drivers/video/fbdev/cfbfillrect.c
rename to drivers/video/fbdev/core/cfbfillrect.c
diff --git a/drivers/video/fbdev/cfbimgblt.c b/drivers/video/fbdev/core/cfbimgblt.c
similarity index 100%
rename from drivers/video/fbdev/cfbimgblt.c
rename to drivers/video/fbdev/core/cfbimgblt.c
diff --git a/drivers/video/fbdev/fb_ddc.c b/drivers/video/fbdev/core/fb_ddc.c
similarity index 99%
rename from drivers/video/fbdev/fb_ddc.c
rename to drivers/video/fbdev/core/fb_ddc.c
index 2b106f046fde..94322ccfedde 100644
--- a/drivers/video/fbdev/fb_ddc.c
+++ b/drivers/video/fbdev/core/fb_ddc.c
@@ -15,7 +15,7 @@
 #include <linux/i2c-algo-bit.h>
 #include <linux/slab.h>
 
-#include "edid.h"
+#include "../edid.h"
 
 #define DDC_ADDR	0x50
 
diff --git a/drivers/video/fbdev/fb_defio.c b/drivers/video/fbdev/core/fb_defio.c
similarity index 100%
rename from drivers/video/fbdev/fb_defio.c
rename to drivers/video/fbdev/core/fb_defio.c
diff --git a/drivers/video/fbdev/fb_draw.h b/drivers/video/fbdev/core/fb_draw.h
similarity index 100%
rename from drivers/video/fbdev/fb_draw.h
rename to drivers/video/fbdev/core/fb_draw.h
diff --git a/drivers/video/fbdev/fb_notify.c b/drivers/video/fbdev/core/fb_notify.c
similarity index 100%
rename from drivers/video/fbdev/fb_notify.c
rename to drivers/video/fbdev/core/fb_notify.c
diff --git a/drivers/video/fbdev/fb_sys_fops.c b/drivers/video/fbdev/core/fb_sys_fops.c
similarity index 100%
rename from drivers/video/fbdev/fb_sys_fops.c
rename to drivers/video/fbdev/core/fb_sys_fops.c
diff --git a/drivers/video/fbdev/fbcmap.c b/drivers/video/fbdev/core/fbcmap.c
similarity index 100%
rename from drivers/video/fbdev/fbcmap.c
rename to drivers/video/fbdev/core/fbcmap.c
diff --git a/drivers/video/fbdev/fbcvt.c b/drivers/video/fbdev/core/fbcvt.c
similarity index 100%
rename from drivers/video/fbdev/fbcvt.c
rename to drivers/video/fbdev/core/fbcvt.c
diff --git a/drivers/video/fbdev/fbmem.c b/drivers/video/fbdev/core/fbmem.c
similarity index 100%
rename from drivers/video/fbdev/fbmem.c
rename to drivers/video/fbdev/core/fbmem.c
diff --git a/drivers/video/fbdev/fbmon.c b/drivers/video/fbdev/core/fbmon.c
similarity index 99%
rename from drivers/video/fbdev/fbmon.c
rename to drivers/video/fbdev/core/fbmon.c
index 6103fa6fb54f..c204ebe6187e 100644
--- a/drivers/video/fbdev/fbmon.c
+++ b/drivers/video/fbdev/core/fbmon.c
@@ -37,7 +37,7 @@
 #include <asm/prom.h>
 #include <asm/pci-bridge.h>
 #endif
-#include "edid.h"
+#include "../edid.h"
 
 /*
  * EDID parser
diff --git a/drivers/video/fbdev/fbsysfs.c b/drivers/video/fbdev/core/fbsysfs.c
similarity index 100%
rename from drivers/video/fbdev/fbsysfs.c
rename to drivers/video/fbdev/core/fbsysfs.c
diff --git a/drivers/video/fbdev/modedb.c b/drivers/video/fbdev/core/modedb.c
similarity index 100%
rename from drivers/video/fbdev/modedb.c
rename to drivers/video/fbdev/core/modedb.c
diff --git a/drivers/video/fbdev/svgalib.c b/drivers/video/fbdev/core/svgalib.c
similarity index 100%
rename from drivers/video/fbdev/svgalib.c
rename to drivers/video/fbdev/core/svgalib.c
diff --git a/drivers/video/fbdev/syscopyarea.c b/drivers/video/fbdev/core/syscopyarea.c
similarity index 100%
rename from drivers/video/fbdev/syscopyarea.c
rename to drivers/video/fbdev/core/syscopyarea.c
diff --git a/drivers/video/fbdev/sysfillrect.c b/drivers/video/fbdev/core/sysfillrect.c
similarity index 100%
rename from drivers/video/fbdev/sysfillrect.c
rename to drivers/video/fbdev/core/sysfillrect.c
diff --git a/drivers/video/fbdev/sysimgblt.c b/drivers/video/fbdev/core/sysimgblt.c
similarity index 100%
rename from drivers/video/fbdev/sysimgblt.c
rename to drivers/video/fbdev/core/sysimgblt.c
diff --git a/drivers/video/fbdev/wmt_ge_rops.c b/drivers/video/fbdev/wmt_ge_rops.c
index b0a9f34b2e01..9df6fe78a44b 100644
--- a/drivers/video/fbdev/wmt_ge_rops.c
+++ b/drivers/video/fbdev/wmt_ge_rops.c
@@ -18,7 +18,7 @@
 #include <linux/module.h>
 #include <linux/fb.h>
 #include <linux/platform_device.h>
-#include "fb_draw.h"
+#include "core/fb_draw.h"
 
 #define GE_COMMAND_OFF		0x00
 #define GE_DEPTH_OFF		0x04
-- 
1.8.3.2


^ permalink raw reply related

* [PATCH RFC 3/3] video: Kconfig: move drm and fb into separate menus
From: Tomi Valkeinen @ 2014-02-14 11:18 UTC (permalink / raw)
  To: linux-fbdev, dri-devel, linux-kernel
  Cc: Laurent Pinchart, Geert Uytterhoeven,
	Jean-Christophe Plagniol-Villard, David Airlie, Tomi Valkeinen
In-Reply-To: <1392376711-11290-1-git-send-email-tomi.valkeinen@ti.com>

At the moment the "Device Drivers / Graphics support" kernel config page
looks rather messy, with DRM and fbdev driver selections on the same
page, some on the top level Graphics support page, some under their
respective subsystems.

If I'm not mistaken, this is caused by the drivers depending on other
things than DRM or FB, which causes Kconfig to arrange the options in
not-so-neat manner.

Both DRM and FB have a main menuconfig option for the whole DRM or FB
subsystem. Optimally, this would be enough to arrange all DRM and FB
options under the respective subsystem, but for whatever reason this
doesn't work reliably.

This patch adds an explicit submenu for DRM and FB, making it much
clearer which options are related to FB, and which to DRM.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/video/Kconfig | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index f0f26a0b746e..70d174090a54 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -21,9 +21,13 @@ source "drivers/gpu/vga/Kconfig"
 
 source "drivers/gpu/host1x/Kconfig"
 
+menu "Direct Rendering Manager"
 source "drivers/gpu/drm/Kconfig"
+endmenu
 
+menu "Framebuffer Devices"
 source "drivers/video/fbdev/Kconfig"
+endmenu
 
 source "drivers/video/backlight/Kconfig"
 
-- 
1.8.3.2


^ permalink raw reply related

* Re: [PATCH 1/1] video: s6e8ax0: Use devm_* APIs
From: Tomi Valkeinen @ 2014-02-14 11:40 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <1392198779-5203-1-git-send-email-sachin.kamat@linaro.org>

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

On 12/02/14 11:52, Sachin Kamat wrote:
> devm_* APIs make the cleanup paths simpler.
> 
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
> ---
>  drivers/video/exynos/s6e8ax0.c |   13 ++++---------
>  1 file changed, 4 insertions(+), 9 deletions(-)

Thanks, queued for 3.15.

 Tomi



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

^ permalink raw reply

* Re: [PATCH RFC 2/3] fbdev: move fbdev core files to separate directory
From: Geert Uytterhoeven @ 2014-02-14 12:27 UTC (permalink / raw)
  To: Tomi Valkeinen
  Cc: Linux Fbdev development list, linux-kernel@vger.kernel.org,
	DRI Development, Laurent Pinchart,
	Jean-Christophe Plagniol-Villard
In-Reply-To: <1392376711-11290-2-git-send-email-tomi.valkeinen@ti.com>

Hi Tomi,

Thanks for doing this!

Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>

On Fri, Feb 14, 2014 at 12:18 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> --- a/drivers/video/fbdev/fbmon.c
> +++ b/drivers/video/fbdev/core/fbmon.c
> @@ -37,7 +37,7 @@
>  #include <asm/prom.h>
>  #include <asm/>
>  /*
>   * EDID parserpci-bridge.h>
>  #endif
> -#include "edid.h"
> +#include "../edid.h"

This looks a bit asymmetrical ...

> --- a/drivers/video/fbdev/wmt_ge_rops.c
> +++ b/drivers/video/fbdev/wmt_ge_rops.c
> @@ -18,7 +18,7 @@
>  #include <linux/module.h>
>  #include <linux/fb.h>
>  #include <linux/platform_device.h>
> -#include "fb_draw.h"
> +#include "core/fb_draw.h"

... to this.

Perhaps (the content of) edid.h belongs in include/video/edid.h?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply

* Re: [PATCH RFC 2/3] fbdev: move fbdev core files to separate directory
From: Tomi Valkeinen @ 2014-02-14 12:31 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Linux Fbdev development list, DRI Development,
	linux-kernel@vger.kernel.org, Laurent Pinchart,
	Jean-Christophe Plagniol-Villard, David Airlie
In-Reply-To: <CAMuHMdWWOUVe-16VBZ098-OfB21X9Wz1wO8gmSUy4PsFvQoX1A@mail.gmail.com>

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

On 14/02/14 14:27, Geert Uytterhoeven wrote:
> Hi Tomi,
> 
> Thanks for doing this!
> 
> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
> 
> On Fri, Feb 14, 2014 at 12:18 PM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>> --- a/drivers/video/fbdev/fbmon.c
>> +++ b/drivers/video/fbdev/core/fbmon.c
>> @@ -37,7 +37,7 @@
>>  #include <asm/prom.h>
>>  #include <asm/>
>>  /*
>>   * EDID parserpci-bridge.h>
>>  #endif
>> -#include "edid.h"
>> +#include "../edid.h"
> 
> This looks a bit asymmetrical ...
> 
>> --- a/drivers/video/fbdev/wmt_ge_rops.c
>> +++ b/drivers/video/fbdev/wmt_ge_rops.c
>> @@ -18,7 +18,7 @@
>>  #include <linux/module.h>
>>  #include <linux/fb.h>
>>  #include <linux/platform_device.h>
>> -#include "fb_draw.h"
>> +#include "core/fb_draw.h"
> 
> ... to this.
> 
> Perhaps (the content of) edid.h belongs in include/video/edid.h?

Yes, I thought the same, but I didn't want to start messing around too
much in this series. I also noticed some odd Kconfig options (for
example, HAVE_FB_ATMEL, SH_MIPI_DSI, SH_LCD_MIPI_DSI at the beginning of
drivers/video/Kconfig), which I almost started cleaning up, but decided
to just concentrate on the main reorganization.

 Tomi



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

^ permalink raw reply

* Re: [PATCH RFC 1/3] video: move fbdev to drivers/video/fbdev
From: Laurent Pinchart @ 2014-02-14 15:07 UTC (permalink / raw)
  To: Rob Clark
  Cc: Linux Fbdev development list, Linux Kernel Mailing List,
	dri-devel@lists.freedesktop.org, Tomi Valkeinen,
	Geert Uytterhoeven, Jean-Christophe Plagniol-Villard
In-Reply-To: <CAF6AEGvGBhBVQQ3_M-N=XhM+kOh_VZ=7QUQ3gUxJ8-ept7++cQ@mail.gmail.com>

Hi Tomi,

On Friday 14 February 2014 07:02:22 Rob Clark wrote:
> On Fri, Feb 14, 2014 at 6:18 AM, Tomi Valkeinen wrote:
> > The drivers/video directory is a mess. It contains generic video related
> > files, directories for backlight, console, linux logo, lots of fbdev
> > device drivers, fbdev framework files.
> > 
> > Make some order into the chaos by creating drivers/video/fbdev
> > directory, and move all fbdev related files there.
> > 
> > No functionality is changed, although I guess it is possible that some
> > subtle Makefile build order related issue could be created by this
> > patch.
> 
> +1 for the series.. I could go either way on #2/3, but either way,
> consolidating all the fbdev stuff is a nice cleanup

Ditto. Thanks for the patches.

Regarding the edid.h issue I believe it would be a good idea to move at least 
part of that file to include/video/, and possibly to share the definitions 
with DRM. That should come as another patch on top of this.

So, for the whole series,

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Now I wonder who will submit a 'git mv drivers/gpu/drm drivers/video/' patch 
;-)

> > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > ---
> > 
> >  drivers/Makefile                                   |    4 +-
> >  drivers/video/Kconfig                              | 2483 +--------------
> >  drivers/video/Makefile                             |  168 +-
> >  drivers/video/{ => fbdev}/68328fb.c                |    0
> >  drivers/video/fbdev/Kconfig                        | 2481 +++++++++++++++
> >  drivers/video/fbdev/Makefile                       |  167 ++
> >  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}/cfbcopyarea.c            |    0
> >  drivers/video/{ => fbdev}/cfbfillrect.c            |    0
> >  drivers/video/{ => fbdev}/cfbimgblt.c              |    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}/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}/fb_ddc.c                 |    0
> >  drivers/video/{ => fbdev}/fb_defio.c               |    0
> >  drivers/video/{ => fbdev}/fb_draw.h                |    0
> >  drivers/video/{ => fbdev}/fb_notify.c              |    0
> >  drivers/video/{ => fbdev}/fb_sys_fops.c            |    0
> >  drivers/video/{ => fbdev}/fbcmap.c                 |    0
> >  drivers/video/{ => fbdev}/fbcvt.c                  |    0
> >  drivers/video/{ => fbdev}/fbmem.c                  |    0
> >  drivers/video/{ => fbdev}/fbmon.c                  |    0
> >  drivers/video/{ => fbdev}/fbsysfs.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}/modedb.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}/svgalib.c                |    0
> >  drivers/video/{ => fbdev}/syscopyarea.c            |    0
> >  drivers/video/{ => fbdev}/sysfillrect.c            |    0
> >  drivers/video/{ => fbdev}/sysimgblt.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            |    0
> >  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 -
> >  479 files changed, 2670 insertions(+), 2659 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}/cfbcopyarea.c (100%)
> >  rename drivers/video/{ => fbdev}/cfbfillrect.c (100%)
> >  rename drivers/video/{ => fbdev}/cfbimgblt.c (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%)
> >  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}/fb_ddc.c (100%)
> >  rename drivers/video/{ => fbdev}/fb_defio.c (100%)
> >  rename drivers/video/{ => fbdev}/fb_draw.h (100%)
> >  rename drivers/video/{ => fbdev}/fb_notify.c (100%)
> >  rename drivers/video/{ => fbdev}/fb_sys_fops.c (100%)
> >  rename drivers/video/{ => fbdev}/fbcmap.c (100%)
> >  rename drivers/video/{ => fbdev}/fbcvt.c (100%)
> >  rename drivers/video/{ => fbdev}/fbmem.c (100%)
> >  rename drivers/video/{ => fbdev}/fbmon.c (100%)
> >  rename drivers/video/{ => fbdev}/fbsysfs.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}/modedb.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}/svgalib.c (100%)
> >  rename drivers/video/{ => fbdev}/syscopyarea.c (100%)
> >  rename drivers/video/{ => fbdev}/sysfillrect.c (100%)
> >  rename drivers/video/{ => fbdev}/sysimgblt.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 (100%)
> >  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

-- 
Regards,

Laurent Pinchart


^ permalink raw reply

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



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

Hi Tomi and Andrew,

This patch has been submitted for a while. Do I need to re-submit it, or make
any changes?

Thanks,
- Haiyang


^ permalink raw reply

* RE: [PATCH] hyperv_fb: Add support for Gen2 VM
From: Haiyang Zhang @ 2014-02-14 22:00 UTC (permalink / raw)
  To: FlorianSchandinat@gmx.de, akpm@linux-foundation.org,
	linux-fbdev@vger.kernel.org, Tomi Valkeinen
  Cc: olaf@aepfle.de, gregkh@linuxfoundation.org, jasowang@redhat.com,
	driverdev-devel@linuxdriverproject.org,
	linux-kernel@vger.kernel.org
In-Reply-To: <1391880342-10081-1-git-send-email-haiyangz@microsoft.com>



> -----Original Message-----
> From: linux-fbdev-owner@vger.kernel.org [mailto:linux-fbdev-
> owner@vger.kernel.org] On Behalf Of Haiyang Zhang
> Sent: Saturday, February 8, 2014 12:26 PM
> To: FlorianSchandinat@gmx.de; akpm@linux-foundation.org; linux-
> fbdev@vger.kernel.org
> Cc: Haiyang Zhang; KY Srinivasan; olaf@aepfle.de; jasowang@redhat.com;
> gregkh@linuxfoundation.org; linux-kernel@vger.kernel.org; driverdev-
> devel@linuxdriverproject.org
> Subject: [PATCH] hyperv_fb: Add support for Gen2 VM
> 
> This patch enables Hyper-V FB driver to run on Gen2 VM.
> 
> The Gen2 VM provides MMIO area for synthetic video from ACPI module,
> which is exported by vmbus. The generic video is provided by UEFI. PCI video
> in Gen1 is no longer available.
> 
> To support synthetic video on Hyper-V Gen2 VM, this patch updated code
> related to the changes above.
> 
> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
> Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
> ---

Hi Tomi and Andrew,

This patch has been submitted for a while. Do I need to re-submit it, or 
make any changes?

Thanks,
- Haiyang


^ permalink raw reply

* [PATCH 1/5] video: imxfb: Remove dead declaration of set_imx_fb_info()
From: Alexander Shiyan @ 2014-02-15  5:56 UTC (permalink / raw)
  To: linux-fbdev

Function set_imx_fb_info() is missing in the kernel code,
so remove the dead declaration.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
 include/linux/platform_data/video-imxfb.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/include/linux/platform_data/video-imxfb.h b/include/linux/platform_data/video-imxfb.h
index 8902706..dd1bed9 100644
--- a/include/linux/platform_data/video-imxfb.h
+++ b/include/linux/platform_data/video-imxfb.h
@@ -79,5 +79,4 @@ struct imx_fb_platform_data {
 	void (*backlight_power)(int);
 };
 
-void set_imx_fb_info(struct imx_fb_platform_data *);
 #endif /* ifndef __MACH_IMXFB_H__ */
-- 
1.8.3.2


^ permalink raw reply related

* [PATCH 2/5] video: imxfb: Remove unused fields from platform data structure
From: Alexander Shiyan @ 2014-02-15  5:56 UTC (permalink / raw)
  To: linux-fbdev

Some fields in platform data structure is never used by boards.
This patch removes these fields and as a result optimizes private
driver structure a bit. Additionally patch removes backligh_power()
callback, so if it will be needed in the future, this feature should
be added as pwm{gpio,etc.}-regulator to the board code or in the DTS.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
 drivers/video/imxfb.c                     | 64 ++++++++-----------------------
 include/linux/platform_data/video-imxfb.h | 10 -----
 2 files changed, 17 insertions(+), 57 deletions(-)

diff --git a/drivers/video/imxfb.c b/drivers/video/imxfb.c
index e50b67f..5b07053 100644
--- a/drivers/video/imxfb.c
+++ b/drivers/video/imxfb.c
@@ -156,11 +156,8 @@ struct imxfb_info {
 	 * the framebuffer memory region to.
 	 */
 	dma_addr_t		map_dma;
-	u_char			*map_cpu;
 	u_int			map_size;
 
-	u_char			*screen_cpu;
-	dma_addr_t		screen_dma;
 	u_int			palette_size;
 
 	dma_addr_t		dbar1;
@@ -170,9 +167,8 @@ struct imxfb_info {
 	u_int			pwmr;
 	u_int			lscr1;
 	u_int			dmacr;
-	u_int			cmap_inverse:1,
-				cmap_static:1,
-				unused:30;
+	bool			cmap_inverse;
+	bool			cmap_static;
 
 	struct imx_fb_videomode *mode;
 	int			num_modes;
@@ -180,8 +176,6 @@ struct imxfb_info {
 	struct backlight_device *bl;
 #endif
 
-	void (*backlight_power)(int);
-
 	struct regulator	*lcd_pwr;
 };
 
@@ -573,7 +567,7 @@ static void imxfb_enable_controller(struct imxfb_info *fbi)
 
 	pr_debug("Enabling LCD controller\n");
 
-	writel(fbi->screen_dma, fbi->regs + LCDC_SSA);
+	writel(fbi->map_dma, fbi->regs + LCDC_SSA);
 
 	/* panning offset 0 (0 pixel offset)        */
 	writel(0x00000000, fbi->regs + LCDC_POS);
@@ -592,9 +586,6 @@ static void imxfb_enable_controller(struct imxfb_info *fbi)
 	clk_prepare_enable(fbi->clk_ahb);
 	clk_prepare_enable(fbi->clk_per);
 	fbi->enabled = true;
-
-	if (fbi->backlight_power)
-		fbi->backlight_power(1);
 }
 
 static void imxfb_disable_controller(struct imxfb_info *fbi)
@@ -604,9 +595,6 @@ static void imxfb_disable_controller(struct imxfb_info *fbi)
 
 	pr_debug("Disabling LCD controller\n");
 
-	if (fbi->backlight_power)
-		fbi->backlight_power(0);
-
 	clk_disable_unprepare(fbi->clk_per);
 	clk_disable_unprepare(fbi->clk_ipg);
 	clk_disable_unprepare(fbi->clk_ahb);
@@ -790,13 +778,9 @@ static int imxfb_init_fbinfo(struct platform_device *pdev)
 	info->flags			= FBINFO_FLAG_DEFAULT |
 					  FBINFO_READS_FAST;
 	if (pdata) {
-		info->var.grayscale		= pdata->cmap_greyscale;
-		fbi->cmap_inverse		= pdata->cmap_inverse;
-		fbi->cmap_static		= pdata->cmap_static;
 		fbi->lscr1			= pdata->lscr1;
 		fbi->dmacr			= pdata->dmacr;
 		fbi->pwmr			= pdata->pwmr;
-		fbi->backlight_power		= pdata->backlight_power;
 	} else {
 		np = pdev->dev.of_node;
 		info->var.grayscale = of_property_read_bool(np,
@@ -808,8 +792,6 @@ static int imxfb_init_fbinfo(struct platform_device *pdev)
 		of_property_read_u32(np, "fsl,lscr1", &fbi->lscr1);
 
 		of_property_read_u32(np, "fsl,dmacr", &fbi->dmacr);
-
-		fbi->backlight_power = NULL;
 	}
 
 	return 0;
@@ -1003,32 +985,18 @@ static int imxfb_probe(struct platform_device *pdev)
 		goto failed_ioremap;
 	}
 
-	/* Seems not being used by anyone, so no support for oftree */
-	if (!pdata || !pdata->fixed_screen_cpu) {
-		fbi->map_size = PAGE_ALIGN(info->fix.smem_len);
-		fbi->map_cpu = dma_alloc_writecombine(&pdev->dev,
-				fbi->map_size, &fbi->map_dma, GFP_KERNEL);
+	fbi->map_size = PAGE_ALIGN(info->fix.smem_len);
+	info->screen_base = dma_alloc_writecombine(&pdev->dev, fbi->map_size,
+						   &fbi->map_dma, GFP_KERNEL);
 
-		if (!fbi->map_cpu) {
-			dev_err(&pdev->dev, "Failed to allocate video RAM: %d\n", ret);
-			ret = -ENOMEM;
-			goto failed_map;
-		}
-
-		info->screen_base = fbi->map_cpu;
-		fbi->screen_cpu = fbi->map_cpu;
-		fbi->screen_dma = fbi->map_dma;
-		info->fix.smem_start = fbi->screen_dma;
-	} else {
-		/* Fixed framebuffer mapping enables location of the screen in eSRAM */
-		fbi->map_cpu = pdata->fixed_screen_cpu;
-		fbi->map_dma = pdata->fixed_screen_dma;
-		info->screen_base = fbi->map_cpu;
-		fbi->screen_cpu = fbi->map_cpu;
-		fbi->screen_dma = fbi->map_dma;
-		info->fix.smem_start = fbi->screen_dma;
+	if (!info->screen_base) {
+		dev_err(&pdev->dev, "Failed to allocate video RAM: %d\n", ret);
+		ret = -ENOMEM;
+		goto failed_map;
 	}
 
+	info->fix.smem_start = fbi->map_dma;
+
 	if (pdata && pdata->init) {
 		ret = pdata->init(fbi->pdev);
 		if (ret)
@@ -1087,9 +1055,8 @@ failed_cmap:
 	if (pdata && pdata->exit)
 		pdata->exit(fbi->pdev);
 failed_platform_init:
-	if (pdata && !pdata->fixed_screen_cpu)
-		dma_free_writecombine(&pdev->dev,fbi->map_size,fbi->map_cpu,
-			fbi->map_dma);
+	dma_free_writecombine(&pdev->dev, fbi->map_size, info->screen_base,
+			      fbi->map_dma);
 failed_map:
 	iounmap(fbi->regs);
 failed_ioremap:
@@ -1127,6 +1094,9 @@ static int imxfb_remove(struct platform_device *pdev)
 	kfree(info->pseudo_palette);
 	framebuffer_release(info);
 
+	dma_free_writecombine(&pdev->dev, fbi->map_size, info->screen_base,
+			      fbi->map_dma);
+
 	iounmap(fbi->regs);
 	release_mem_region(res->start, resource_size(res));
 
diff --git a/include/linux/platform_data/video-imxfb.h b/include/linux/platform_data/video-imxfb.h
index dd1bed9..18e9083 100644
--- a/include/linux/platform_data/video-imxfb.h
+++ b/include/linux/platform_data/video-imxfb.h
@@ -61,22 +61,12 @@ struct imx_fb_platform_data {
 	struct imx_fb_videomode *mode;
 	int		num_modes;
 
-	u_int		cmap_greyscale:1,
-			cmap_inverse:1,
-			cmap_static:1,
-			unused:29;
-
 	u_int		pwmr;
 	u_int		lscr1;
 	u_int		dmacr;
 
-	u_char * fixed_screen_cpu;
-	dma_addr_t fixed_screen_dma;
-
 	int (*init)(struct platform_device *);
 	void (*exit)(struct platform_device *);
-
-	void (*backlight_power)(int);
 };
 
 #endif /* ifndef __MACH_IMXFB_H__ */
-- 
1.8.3.2


^ permalink raw reply related

* [PATCH 3/5] video: imxfb: Use module_platform_driver()
From: Alexander Shiyan @ 2014-02-15  5:56 UTC (permalink / raw)
  To: linux-fbdev

We have no reason to call fb_get_options() when registering module,
so move this call in the probe() and convert the driver to use
module_platform_driver() macro.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
 drivers/video/imxfb.c | 65 +++++++++++++++++++++------------------------------
 1 file changed, 26 insertions(+), 39 deletions(-)

diff --git a/drivers/video/imxfb.c b/drivers/video/imxfb.c
index 5b07053..3137a69 100644
--- a/drivers/video/imxfb.c
+++ b/drivers/video/imxfb.c
@@ -874,6 +874,26 @@ static struct lcd_ops imxfb_lcd_ops = {
 	.set_power	= imxfb_lcd_set_power,
 };
 
+static int imxfb_setup(void)
+{
+	char *opt, *options = NULL;
+
+	if (fb_get_options("imxfb", &options))
+		return -ENODEV;
+
+	if (!options || !*options)
+		return 0;
+
+	while ((opt = strsep(&options, ",")) != NULL) {
+		if (!*opt)
+			continue;
+		else
+			fb_mode = opt;
+	}
+
+	return 0;
+}
+
 static int imxfb_probe(struct platform_device *pdev)
 {
 	struct imxfb_info *fbi;
@@ -888,6 +908,10 @@ static int imxfb_probe(struct platform_device *pdev)
 
 	dev_info(&pdev->dev, "i.MX Framebuffer driver\n");
 
+	ret = imxfb_setup();
+	if (ret < 0)
+		return ret;
+
 	of_id = of_match_device(imxfb_of_dev_id, &pdev->dev);
 	if (of_id)
 		pdev->id_entry = of_id->data;
@@ -1113,6 +1137,7 @@ static void imxfb_shutdown(struct platform_device *dev)
 static struct platform_driver imxfb_driver = {
 	.suspend	= imxfb_suspend,
 	.resume		= imxfb_resume,
+	.probe		= imxfb_probe,
 	.remove		= imxfb_remove,
 	.shutdown	= imxfb_shutdown,
 	.driver		= {
@@ -1121,45 +1146,7 @@ static struct platform_driver imxfb_driver = {
 	},
 	.id_table	= imxfb_devtype,
 };
-
-static int imxfb_setup(void)
-{
-#ifndef MODULE
-	char *opt, *options = NULL;
-
-	if (fb_get_options("imxfb", &options))
-		return -ENODEV;
-
-	if (!options || !*options)
-		return 0;
-
-	while ((opt = strsep(&options, ",")) != NULL) {
-		if (!*opt)
-			continue;
-		else
-			fb_mode = opt;
-	}
-#endif
-	return 0;
-}
-
-static int __init imxfb_init(void)
-{
-	int ret = imxfb_setup();
-
-	if (ret < 0)
-		return ret;
-
-	return platform_driver_probe(&imxfb_driver, imxfb_probe);
-}
-
-static void __exit imxfb_cleanup(void)
-{
-	platform_driver_unregister(&imxfb_driver);
-}
-
-module_init(imxfb_init);
-module_exit(imxfb_cleanup);
+module_platform_driver(imxfb_driver);
 
 MODULE_DESCRIPTION("Freescale i.MX framebuffer driver");
 MODULE_AUTHOR("Sascha Hauer, Pengutronix");
-- 
1.8.3.2


^ permalink raw reply related

* [PATCH 4/5] video: imxfb: Resolve mismatch between backlight/contrast
From: Alexander Shiyan @ 2014-02-15  5:56 UTC (permalink / raw)
  To: linux-fbdev

Currently, driver uses backlight class to control contrast value.
This is not correct. This patch resolves this issue by removing
backlight class from the driver and replace handling of LCDC PWM
Contrast Control Register by contrast control through LCD class.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
 drivers/video/imxfb.c | 124 ++++++++++++--------------------------------------
 1 file changed, 30 insertions(+), 94 deletions(-)

diff --git a/drivers/video/imxfb.c b/drivers/video/imxfb.c
index 3137a69..398a8ca 100644
--- a/drivers/video/imxfb.c
+++ b/drivers/video/imxfb.c
@@ -48,12 +48,6 @@
  */
 #define DEBUG_VAR 1
 
-#if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || \
-	(defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE) && \
-		defined(CONFIG_FB_IMX_MODULE))
-#define PWMR_BACKLIGHT_AVAILABLE
-#endif
-
 #define DRIVER_NAME "imx-fb"
 
 #define LCDC_SSA	0x00
@@ -172,9 +166,6 @@ struct imxfb_info {
 
 	struct imx_fb_videomode *mode;
 	int			num_modes;
-#ifdef PWMR_BACKLIGHT_AVAILABLE
-	struct backlight_device *bl;
-#endif
 
 	struct regulator	*lcd_pwr;
 };
@@ -482,83 +473,6 @@ static int imxfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-#ifdef PWMR_BACKLIGHT_AVAILABLE
-static int imxfb_bl_get_brightness(struct backlight_device *bl)
-{
-	struct imxfb_info *fbi = bl_get_data(bl);
-
-	return readl(fbi->regs + LCDC_PWMR) & 0xFF;
-}
-
-static int imxfb_bl_update_status(struct backlight_device *bl)
-{
-	struct imxfb_info *fbi = bl_get_data(bl);
-	int brightness = bl->props.brightness;
-
-	if (!fbi->pwmr)
-		return 0;
-
-	if (bl->props.power != FB_BLANK_UNBLANK)
-		brightness = 0;
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK)
-		brightness = 0;
-
-	fbi->pwmr = (fbi->pwmr & ~0xFF) | brightness;
-
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK) {
-		clk_prepare_enable(fbi->clk_ipg);
-		clk_prepare_enable(fbi->clk_ahb);
-		clk_prepare_enable(fbi->clk_per);
-	}
-	writel(fbi->pwmr, fbi->regs + LCDC_PWMR);
-	if (bl->props.fb_blank != FB_BLANK_UNBLANK) {
-		clk_disable_unprepare(fbi->clk_per);
-		clk_disable_unprepare(fbi->clk_ahb);
-		clk_disable_unprepare(fbi->clk_ipg);
-	}
-
-	return 0;
-}
-
-static const struct backlight_ops imxfb_lcdc_bl_ops = {
-	.update_status = imxfb_bl_update_status,
-	.get_brightness = imxfb_bl_get_brightness,
-};
-
-static void imxfb_init_backlight(struct imxfb_info *fbi)
-{
-	struct backlight_properties props;
-	struct backlight_device	*bl;
-
-	if (fbi->bl)
-		return;
-
-	memset(&props, 0, sizeof(struct backlight_properties));
-	props.max_brightness = 0xff;
-	props.type = BACKLIGHT_RAW;
-	writel(fbi->pwmr, fbi->regs + LCDC_PWMR);
-
-	bl = backlight_device_register("imxfb-bl", &fbi->pdev->dev, fbi,
-				       &imxfb_lcdc_bl_ops, &props);
-	if (IS_ERR(bl)) {
-		dev_err(&fbi->pdev->dev, "error %ld on backlight register\n",
-				PTR_ERR(bl));
-		return;
-	}
-
-	fbi->bl = bl;
-	bl->props.power = FB_BLANK_UNBLANK;
-	bl->props.fb_blank = FB_BLANK_UNBLANK;
-	bl->props.brightness = imxfb_bl_get_brightness(bl);
-}
-
-static void imxfb_exit_backlight(struct imxfb_info *fbi)
-{
-	if (fbi->bl)
-		backlight_device_unregister(fbi->bl);
-}
-#endif
-
 static void imxfb_enable_controller(struct imxfb_info *fbi)
 {
 
@@ -697,10 +611,8 @@ static int imxfb_activate_var(struct fb_var_screeninfo *var, struct fb_info *inf
 			fbi->regs + LCDC_SIZE);
 
 	writel(fbi->pcr, fbi->regs + LCDC_PCR);
-#ifndef PWMR_BACKLIGHT_AVAILABLE
 	if (fbi->pwmr)
 		writel(fbi->pwmr, fbi->regs + LCDC_PWMR);
-#endif
 	writel(fbi->lscr1, fbi->regs + LCDC_LSCR1);
 
 	/* dmacr = 0 is no valid value, as we need DMA control marks. */
@@ -844,6 +756,32 @@ static int imxfb_lcd_check_fb(struct lcd_device *lcddev, struct fb_info *fi)
 	return 0;
 }
 
+static int imxfb_lcd_get_contrast(struct lcd_device *lcddev)
+{
+	struct imxfb_info *fbi = dev_get_drvdata(&lcddev->dev);
+
+	return fbi->pwmr & 0xff;
+}
+
+static int imxfb_lcd_set_contrast(struct lcd_device *lcddev, int contrast)
+{
+	struct imxfb_info *fbi = dev_get_drvdata(&lcddev->dev);
+
+	if (fbi->pwmr && fbi->enabled) {
+		if (contrast > 255)
+			contrast = 255;
+		else if (contrast < 0)
+			contrast = 0;
+
+		fbi->pwmr &= ~0xff;
+		fbi->pwmr |= contrast;
+
+		writel(fbi->pwmr, fbi->regs + LCDC_PWMR);
+	}
+
+	return 0;
+}
+
 static int imxfb_lcd_get_power(struct lcd_device *lcddev)
 {
 	struct imxfb_info *fbi = dev_get_drvdata(&lcddev->dev);
@@ -870,6 +808,8 @@ static int imxfb_lcd_set_power(struct lcd_device *lcddev, int power)
 
 static struct lcd_ops imxfb_lcd_ops = {
 	.check_fb	= imxfb_lcd_check_fb,
+	.get_contrast	= imxfb_lcd_get_contrast,
+	.set_contrast	= imxfb_lcd_set_contrast,
 	.get_power	= imxfb_lcd_get_power,
 	.set_power	= imxfb_lcd_set_power,
 };
@@ -1062,11 +1002,10 @@ static int imxfb_probe(struct platform_device *pdev)
 		goto failed_lcd;
 	}
 
+	lcd->props.max_contrast = 0xff;
+
 	imxfb_enable_controller(fbi);
 	fbi->pdev = pdev;
-#ifdef PWMR_BACKLIGHT_AVAILABLE
-	imxfb_init_backlight(fbi);
-#endif
 
 	return 0;
 
@@ -1105,9 +1044,6 @@ static int imxfb_remove(struct platform_device *pdev)
 
 	imxfb_disable_controller(fbi);
 
-#ifdef PWMR_BACKLIGHT_AVAILABLE
-	imxfb_exit_backlight(fbi);
-#endif
 	unregister_framebuffer(info);
 
 	pdata = dev_get_platdata(&pdev->dev);
-- 
1.8.3.2


^ permalink raw reply related

* [PATCH 5/5] video: imxfb: Convert to SIMPLE_DEV_PM_OPS
From: Alexander Shiyan @ 2014-02-15  5:56 UTC (permalink / raw)
  To: linux-fbdev

Instead of assigning the pm_ops fields individually we can simply
use SIMPLE_DEV_PM_OPS.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
 drivers/video/imxfb.c | 59 ++++++++++++++++++---------------------------------
 1 file changed, 21 insertions(+), 38 deletions(-)

diff --git a/drivers/video/imxfb.c b/drivers/video/imxfb.c
index 398a8ca..086e024 100644
--- a/drivers/video/imxfb.c
+++ b/drivers/video/imxfb.c
@@ -622,37 +622,6 @@ static int imxfb_activate_var(struct fb_var_screeninfo *var, struct fb_info *inf
 	return 0;
 }
 
-#ifdef CONFIG_PM
-/*
- * Power management hooks.  Note that we won't be called from IRQ context,
- * unlike the blank functions above, so we may sleep.
- */
-static int imxfb_suspend(struct platform_device *dev, pm_message_t state)
-{
-	struct fb_info *info = platform_get_drvdata(dev);
-	struct imxfb_info *fbi = info->par;
-
-	pr_debug("%s\n", __func__);
-
-	imxfb_disable_controller(fbi);
-	return 0;
-}
-
-static int imxfb_resume(struct platform_device *dev)
-{
-	struct fb_info *info = platform_get_drvdata(dev);
-	struct imxfb_info *fbi = info->par;
-
-	pr_debug("%s\n", __func__);
-
-	imxfb_enable_controller(fbi);
-	return 0;
-}
-#else
-#define imxfb_suspend	NULL
-#define imxfb_resume	NULL
-#endif
-
 static int imxfb_init_fbinfo(struct platform_device *pdev)
 {
 	struct imx_fb_platform_data *pdata = dev_get_platdata(&pdev->dev);
@@ -1063,23 +1032,37 @@ static int imxfb_remove(struct platform_device *pdev)
 	return 0;
 }
 
-static void imxfb_shutdown(struct platform_device *dev)
+static int __maybe_unused imxfb_suspend(struct device *dev)
 {
-	struct fb_info *info = platform_get_drvdata(dev);
+	struct fb_info *info = dev_get_drvdata(dev);
 	struct imxfb_info *fbi = info->par;
+
 	imxfb_disable_controller(fbi);
+
+	return 0;
 }
 
+static int __maybe_unused imxfb_resume(struct device *dev)
+{
+	struct fb_info *info = dev_get_drvdata(dev);
+	struct imxfb_info *fbi = info->par;
+
+	imxfb_enable_controller(fbi);
+
+	return 0;
+}
+
+static SIMPLE_DEV_PM_OPS(imxfb_pm_ops, imxfb_suspend, imxfb_resume);
+
 static struct platform_driver imxfb_driver = {
-	.suspend	= imxfb_suspend,
-	.resume		= imxfb_resume,
-	.probe		= imxfb_probe,
-	.remove		= imxfb_remove,
-	.shutdown	= imxfb_shutdown,
 	.driver		= {
 		.name	= DRIVER_NAME,
 		.of_match_table = imxfb_of_dev_id,
+		.owner	= THIS_MODULE,
+		.pm	= &imxfb_pm_ops,
 	},
+	.probe		= imxfb_probe,
+	.remove		= imxfb_remove,
 	.id_table	= imxfb_devtype,
 };
 module_platform_driver(imxfb_driver);
-- 
1.8.3.2


^ permalink raw reply related

* Re: [PATCH RFC 2/3] fbdev: move fbdev core files to separate directory
From: Jingoo Han @ 2014-02-17  1:51 UTC (permalink / raw)
  To: 'Tomi Valkeinen', linux-fbdev, dri-devel, linux-kernel
  Cc: 'Laurent Pinchart', 'Geert Uytterhoeven',
	'Jean-Christophe Plagniol-Villard',
	'David Airlie'
In-Reply-To: <1392376711-11290-2-git-send-email-tomi.valkeinen@ti.com>

On Friday, February 14, 2014 8:19 PM, Tomi Valkeinen wrote:
> 
> Instead of having fbdev framework core files at the root fbdev
> directory, mixed with random fbdev device drivers, move the fbdev core
> files to a separate core directory. This makes it much clearer which of
> the files are actually part of the fbdev framework, and which are part
> of device drivers.
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

Hi Tomi,

This is what I wanted for a long time!
Thank you for your effort!

Last year, I noticed that the current FB directory and files
are not clear. It looks good!

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

Best regards,
Jingoo Han

> ---
>  drivers/video/fbdev/Makefile                 | 16 +---------------
>  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/wmt_ge_rops.c            |  2 +-
>  21 files changed, 20 insertions(+), 18 deletions(-)
>  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%)


^ permalink raw reply

* Re: [PATCH RFC 3/3] video: Kconfig: move drm and fb into separate menus
From: Jingoo Han @ 2014-02-17  1:55 UTC (permalink / raw)
  To: 'Tomi Valkeinen', linux-fbdev, dri-devel, linux-kernel
  Cc: 'Laurent Pinchart', 'Geert Uytterhoeven',
	'Jean-Christophe Plagniol-Villard',
	'David Airlie', 'Jingoo Han'
In-Reply-To: <1392376711-11290-3-git-send-email-tomi.valkeinen@ti.com>

On Friday, February 14, 2014 8:19 PM, Tomi Valkeinen wrote:
> 
> At the moment the "Device Drivers / Graphics support" kernel config page
> looks rather messy, with DRM and fbdev driver selections on the same
> page, some on the top level Graphics support page, some under their
> respective subsystems.
> 
> If I'm not mistaken, this is caused by the drivers depending on other
> things than DRM or FB, which causes Kconfig to arrange the options in
> not-so-neat manner.
> 
> Both DRM and FB have a main menuconfig option for the whole DRM or FB
> subsystem. Optimally, this would be enough to arrange all DRM and FB
> options under the respective subsystem, but for whatever reason this
> doesn't work reliably.
> 
> This patch adds an explicit submenu for DRM and FB, making it much
> clearer which options are related to FB, and which to DRM.
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

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

I tested this patch. Menu becomes clearer!
Thanks.

Best regards,
Jingoo Han

> ---
>  drivers/video/Kconfig | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> index f0f26a0b746e..70d174090a54 100644
> --- a/drivers/video/Kconfig
> +++ b/drivers/video/Kconfig
> @@ -21,9 +21,13 @@ source "drivers/gpu/vga/Kconfig"
> 
>  source "drivers/gpu/host1x/Kconfig"
> 
> +menu "Direct Rendering Manager"
>  source "drivers/gpu/drm/Kconfig"
> +endmenu
> 
> +menu "Framebuffer Devices"
>  source "drivers/video/fbdev/Kconfig"
> +endmenu
> 
>  source "drivers/video/backlight/Kconfig"
> 
> --
> 1.8.3.2



^ 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