Linux Framebuffer Layer development
 help / color / mirror / Atom feed
* 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

* Re: [PATCH 1/5] video: imxfb: Remove dead declaration of set_imx_fb_info()
From: Sascha Hauer @ 2014-02-17  7:02 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <1392443786-30527-1-git-send-email-shc_work@mail.ru>

On Sat, Feb 15, 2014 at 09:56:22AM +0400, Alexander Shiyan wrote:
> 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>

Nice cleanup to this driver!

Acked-by: Sascha Hauer <s.hauer@pengutronix.de>

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply

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

On Tue, Jan 14, 2014 at 11:16:24AM +0000, Zhou Zhu wrote:
> add device tree support for mmp fb/controller
> the description of DT config is at
> Documentation/devicetree/bindings/fb/mmp-disp.txt
> 
> Signed-off-by: Zhou Zhu <zzhu3@marvell.com>
> ---
>  Documentation/devicetree/bindings/fb/mmp-disp.txt |   60 ++++++++
>  drivers/video/mmp/fb/mmpfb.c                      |   73 ++++++----
>  drivers/video/mmp/hw/mmp_ctrl.c                   |  160 ++++++++++++++++-----
>  3 files changed, 235 insertions(+), 58 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/fb/mmp-disp.txt
> 
> diff --git a/Documentation/devicetree/bindings/fb/mmp-disp.txt b/Documentation/devicetree/bindings/fb/mmp-disp.txt
> new file mode 100644
> index 0000000..80702f5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/fb/mmp-disp.txt
> @@ -0,0 +1,60 @@
> +* Marvell MMP Display (MMP_DISP)
> +
> +To config mmp display, 3 parts are required to be set in dts:
> +1. mmp fb
> +Required properties:
> +- compatible: Should be "marvell,<soc>-fb".

Please list the precise values and when they should be used. It makes
searching for them _far_ easier.

> +- marvell,path: Should be the path this fb connecting to.

What type is this? The example implies a phandle.

What type of node does this point to?

It's not explained at this point and it's really unclear what this is.

> +- marvell,overlay-id: Should be the id of overlay this fb is on.
> +- marvell,dmafetch-id: Should be the dma fetch id this fb using.

Are these hardware properties?

Is there any documentation which could make this clearer?

> +- marvell,default-pixfmt: Should be the default pixel format when this fb is
> +turned on.

What format is this? The example is useless. If this is a standard
binding, please refer to the binding document.

> +
> +2. mmp controller
> +Required properties:
> +- compatible: Should be "marvell,<soc>-disp".

Please list the precise set of values.

> +- reg: Should be address and length of the register set for this controller.
> +- interrupts: Should be interrupt of this controller.

Just to check: the device only has on interrupt?

> +
> +Required sub-node:
> +- path:
> +Required properties in this sub-node:
> +-- marvell,overlay_num: Should be number of overlay this path has.

s/_/-/ in property names please.

num-overlays would be a clearer name.

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

These are completely opaque to me. Please describe what these are either
in place or in reference to standard bindings.

Is rbswap a boolean value?

[...]

> +       if (!path_np || of_property_read_u32(path_np, "marvell,overlay-num",
> +                               &path_info->output_type) ||
> +                       of_property_read_u32(path_np, "marvell,output-type",
> +                               &path_info->overlay_num)) {

These are reading into the wrong variables.

Cheers,
Mark.

^ permalink raw reply

* Re: [PATCH 0/10] framebuffer patches
From: Mikulas Patocka @ 2014-02-17 17:15 UTC (permalink / raw)
  To: linux-fbdev
In-Reply-To: <alpine.LRH.2.02.1401231436400.7971@file01.intranet.prod.int.rdu2.redhat.com>



On Tue, 11 Feb 2014, Tomi Valkeinen wrote:

> On 11/02/14 14:58, Tomi Valkeinen wrote:
> > On 23/01/14 21:37, Mikulas Patocka wrote:
> >> Hi
> >>
> >> Here I'm sending some framebuffer patches for matrox, mach64, tga and a 
> >> fix for copying on vesafb.
> >>
> >> Mikulas
> >>
> > 
> > Looks fine to me. Queuing for 3.15.
> 
> Oh, I did some conflict resolution on "tgafb: fix mode setting with
> fbset". It was trivial, so I think I got it right. But please check
> anyway in a few days when these get into linux-next.
> 
>  Tomi

Hi

Your change it OK, I tested it.

Mikulas

^ permalink raw reply

* [PATCH] video: da8xx-fb: Use "SIMPLE_DEV_PM_OPS" macro
From: Manish Badarkhe @ 2014-02-18  3:37 UTC (permalink / raw)
  To: linux-kernel, linux-fbdev, davinci-linux-open-source
  Cc: tomi.valkeinen, plagnioj, nsekhar, badarkhe.manish

Update driver to use SIMPLE_DEV_PM_OPS macro for power
management suspend and resume operations.

Signed-off-by: Manish Badarkhe <badarkhe.manish@gmail.com>
---
:100644 100644 a1d74dd... 0c0ba92... M	drivers/video/da8xx-fb.c
 drivers/video/da8xx-fb.c |   22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
index a1d74dd..0c0ba92 100644
--- a/drivers/video/da8xx-fb.c
+++ b/drivers/video/da8xx-fb.c
@@ -1546,7 +1546,7 @@ err_pm_runtime_disable:
 	return ret;
 }
 
-#ifdef CONFIG_PM
+#ifdef CONFIG_PM_SLEEP
 static struct lcdc_context {
 	u32 clk_enable;
 	u32 ctrl;
@@ -1610,9 +1610,9 @@ static void lcd_context_restore(void)
 	return;
 }
 
-static int fb_suspend(struct platform_device *dev, pm_message_t state)
+static int fb_suspend(struct device *dev)
 {
-	struct fb_info *info = platform_get_drvdata(dev);
+	struct fb_info *info = dev_get_drvdata(dev);
 	struct da8xx_fb_par *par = info->par;
 
 	console_lock();
@@ -1622,18 +1622,18 @@ static int fb_suspend(struct platform_device *dev, pm_message_t state)
 	fb_set_suspend(info, 1);
 	lcd_disable_raster(DA8XX_FRAME_WAIT);
 	lcd_context_save();
-	pm_runtime_put_sync(&dev->dev);
+	pm_runtime_put_sync(dev);
 	console_unlock();
 
 	return 0;
 }
-static int fb_resume(struct platform_device *dev)
+static int fb_resume(struct device *dev)
 {
-	struct fb_info *info = platform_get_drvdata(dev);
+	struct fb_info *info = dev_get_drvdata(dev);
 	struct da8xx_fb_par *par = info->par;
 
 	console_lock();
-	pm_runtime_get_sync(&dev->dev);
+	pm_runtime_get_sync(dev);
 	lcd_context_restore();
 	if (par->blank = FB_BLANK_UNBLANK) {
 		lcd_enable_raster();
@@ -1647,19 +1647,17 @@ static int fb_resume(struct platform_device *dev)
 
 	return 0;
 }
-#else
-#define fb_suspend NULL
-#define fb_resume NULL
 #endif
 
+static SIMPLE_DEV_PM_OPS(fb_pm_ops, fb_suspend, fb_resume);
+
 static struct platform_driver da8xx_fb_driver = {
 	.probe = fb_probe,
 	.remove = fb_remove,
-	.suspend = fb_suspend,
-	.resume = fb_resume,
 	.driver = {
 		   .name = DRIVER_NAME,
 		   .owner = THIS_MODULE,
+		   .pm	= &fb_pm_ops,
 		   },
 };
 module_platform_driver(da8xx_fb_driver);
-- 
1.7.10.4


^ permalink raw reply related

* Dear
From: Dr. Pius Okagba @ 2014-02-18 11:36 UTC (permalink / raw)
  To: linux-fbdev

Attention:
Regarding the transaction made so far, I waited for your message as you told 
me
with none received. Remember, I supposed to have traveled last night 
but the
weather is too bad. I will be leaving to Paraguay tomorrow for estate project.
Meanwhile, contact the Bank manager with below address, i have kept the cheque
worth of USD2.5M. They will either mail it to you or remit it for transfer
depending on how you want it; Here is Bank contact information:
 
Name Of Manager: Mr. Franklin Barnard
MAIL: (franklinb1@barid.com,
okagbapius1@live.com
Thank you
UN Office.

^ permalink raw reply

* Re: [PATCH 1/2] OMAPDSS: use DISPC register to detect context loss
From: Archit Taneja @ 2014-02-18 11:51 UTC (permalink / raw)
  To: Tomi Valkeinen, linux-fbdev, linux-omap; +Cc: Nishanth Menon
In-Reply-To: <1392366572-31729-1-git-send-email-tomi.valkeinen@ti.com>

On Friday 14 February 2014 01:59 PM, Tomi Valkeinen wrote:
> 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.

Nice trick :p

Reviewed-by: Archit Taneja <archit@ti.com>

Archit

>
> 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();
>


^ permalink raw reply

* Re: [PATCH 1/9] Doc/DT: Add OMAP DSS DT Bindings
From: Archit Taneja @ 2014-02-18 11:55 UTC (permalink / raw)
  To: Tomi Valkeinen, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-fbdev-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1392294752-18762-2-git-send-email-tomi.valkeinen-l0cyMroinI0@public.gmane.org>

Hi,

On Thursday 13 February 2014 06:02 PM, Tomi Valkeinen wrote:
> Add device tree bindings for OMAP Display Subsystem for the following
> SoCs: OMAP2, OMAP3, OMAP4.


>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
> ---

<snip>

> +A shortened example of the board description for OMAP4 Panda board, defined in
> +omap4-panda.dts.
> +
> +The Panda board has a DVI and a HDMI connector, and the board contains a TFP410
> +chip (MIPI DPI to DVI encoder) and a TPD12S015 chip (HDMI ESD protection & level
> +shifter). The video pipelines for the connectors are formed as follows:
> +
> +DSS Core --(MIPI DPI)--> TFP410 --(DVI)--> DVI Connector
> +OMAP HDMI --(HDMI)--> TPD12S015 --(HDMI)--> HDMI COnnector

Nitpick - 'CO' -> 'Co'

Archit


^ permalink raw reply

* Re: [PATCH 0/9] OMAP DSS DT bindings documentation
From: Archit Taneja @ 2014-02-18 12:21 UTC (permalink / raw)
  To: Tomi Valkeinen, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-fbdev-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1392294752-18762-1-git-send-email-tomi.valkeinen-l0cyMroinI0@public.gmane.org>

Hi,

On Thursday 13 February 2014 06:02 PM, Tomi Valkeinen wrote:
> Hi,
>
> Here is DT binding documentation for OMAP Display Subsystem. I've sent these
> earlier as part of the whole DSS DT series, but I'm now sending them separately
> to get comments for them.
>
> These patches are essentially the same as what I already sent earlier. The only
> difference is that I added clock information for omap3 and omap4 platforms.

Reviewed-by: Archit Taneja <archit@ti.com>

Archit


^ permalink raw reply

* [PATCH 0/2] Re-sending two patches for hyperv_fb
From: Haiyang Zhang @ 2014-02-18 20:20 UTC (permalink / raw)
  To: plagnioj, tomi.valkeinen, akpm, linux-fbdev
  Cc: olaf, jasowang, driverdev-devel, linux-kernel, haiyangz

They were sent out during tree closing, I'm re-sending them now.

Haiyang Zhang (2):
  hyperv_fb: Add screen refresh after pause/resume operation
  hyperv_fb: Add support for Gen2 VM

 drivers/video/hyperv_fb.c |   70 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 50 insertions(+), 20 deletions(-)

-- 
1.7.4.1


^ permalink raw reply

* [PATCH 1/2] hyperv_fb: Add screen refresh after pause/resume operation
From: Haiyang Zhang @ 2014-02-18 20:20 UTC (permalink / raw)
  To: plagnioj, tomi.valkeinen, akpm, linux-fbdev
  Cc: olaf, jasowang, driverdev-devel, linux-kernel, haiyangz
In-Reply-To: <1392757891-28680-1-git-send-email-haiyangz@microsoft.com>

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>
---
 drivers/video/hyperv_fb.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/drivers/video/hyperv_fb.c b/drivers/video/hyperv_fb.c
index 130708f..bbcc8c0 100644
--- a/drivers/video/hyperv_fb.c
+++ b/drivers/video/hyperv_fb.c
@@ -218,6 +218,7 @@ struct hvfb_par {
 
 	struct delayed_work dwork;
 	bool update;
+	bool xrefresh;
 
 	u32 pseudo_palette[16];
 	u8 init_buf[MAX_VMBUS_PKT_SIZE];
@@ -369,7 +370,7 @@ static void synthvid_recv_sub(struct hv_device *hdev)
 			synthvid_send_situ(hdev);
 		}
 
-		par->update = msg->feature_chg.is_dirt_needed;
+		par->xrefresh = par->update = msg->feature_chg.is_dirt_needed;
 		if (par->update)
 			schedule_delayed_work(&par->dwork, HVFB_UPDATE_DELAY);
 	}
@@ -522,6 +523,13 @@ static void hvfb_update_work(struct work_struct *w)
 {
 	struct hvfb_par *par = container_of(w, struct hvfb_par, dwork.work);
 	struct fb_info *info = par->info;
+	char *argv[] = {"/usr/bin/xrefresh", "-display", ":0.0", NULL};
+	char *envp[] = {"HOME=/", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL };
+
+	if (par->xrefresh) {
+		par->xrefresh = false;
+		call_usermodehelper(argv[0], argv, envp, UMH_NO_WAIT);
+	}
 
 	if (par->fb_ready)
 		synthvid_update(info);
-- 
1.7.4.1


^ permalink raw reply related

* [PATCH 2/2] hyperv_fb: Add support for Gen2 VM
From: Haiyang Zhang @ 2014-02-18 20:22 UTC (permalink / raw)
  To: plagnioj, tomi.valkeinen, akpm, linux-fbdev
  Cc: olaf, jasowang, driverdev-devel, linux-kernel, haiyangz
In-Reply-To: <1392757891-28680-1-git-send-email-haiyangz@microsoft.com>

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

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

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

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

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


^ permalink raw reply related

* Re: [v2] backlight: Convert from Legacy pm ops to dev_pm_ops
From: sebastian.capella @ 2014-02-18 22:20 UTC (permalink / raw)
  To: tomi.valkeinen, shuah.kh, rpurdie, rafael.j.wysocki, plagnioj,
	FlorianSchandinat
  Cc: shuahkhan, linux-kernel, linux-fbdev
In-Reply-To: <2236505237-3336-1-git-send-email-shuah.kh@samsung.com>

Shuah Khan <shuah.kh@samsung.com> wrote:

> Convert drivers/video/backlight/class to use dev_pm_ops for power
> management and remove Legacy PM ops hooks. With this change, rtc class
> registers suspend/resume callbacks via class->pm (dev_pm_ops) instead of
> Legacy class->suspend/resume. When __device_suspend() runs call-backs,
> it will find class->pm ops for the backlight class.
>
> Signed-off-by: Shuah Khan <shuah.kh@samsung.com>
> Cc: Shuah Khan <shuahkhan@gmail.com>
>
> ---
> v2: Updated changelog to correct device class.
>
>  drivers/video/backlight/backlight.c |    8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
> index c74e7aa..0ffb251 100644
> --- a/drivers/video/backlight/backlight.c
> +++ b/drivers/video/backlight/backlight.c
> @@ -208,7 +208,7 @@ static ssize_t backlight_show_actual_brightness(struct device *dev,
>  
>  static struct class *backlight_class;
>  
> -static int backlight_suspend(struct device *dev, pm_message_t state)
> +static int backlight_suspend(struct device *dev)
>  {
>  	struct backlight_device *bd = to_backlight_device(dev);
>  
> @@ -236,6 +236,9 @@ static int backlight_resume(struct device *dev)
>  	return 0;
>  }
>  
> +static SIMPLE_DEV_PM_OPS(backlight_class_dev_pm_ops, backlight_suspend,
> +			 backlight_resume);
> +
>  static void bl_device_release(struct device *dev)
>  {
>  	struct backlight_device *bd = to_backlight_device(dev);
> @@ -414,8 +417,7 @@ static int __init backlight_class_init(void)
>  	}
>  
>  	backlight_class->dev_attrs = bl_device_attributes;
> -	backlight_class->suspend = backlight_suspend;
> -	backlight_class->resume = backlight_resume;
> +	backlight_class->pm = &backlight_class_dev_pm_ops;
>  	return 0;
>  }
>  

^ permalink raw reply

* [PATCH v2,0/2] Re-sending two patches for hyperv_fb
From: Haiyang Zhang @ 2014-02-21  4:58 UTC (permalink / raw)
  To: plagnioj, tomi.valkeinen, akpm, linux-fbdev
  Cc: olaf, jasowang, driverdev-devel, linux-kernel, haiyangz

They were sent out during tree closing, I'm re-sending them now.
---
v2: 
  Updated the variable type gen2vm to int, because efi_enabled() returns int.

Haiyang Zhang (2):
  hyperv_fb: Add screen refresh after pause/resume operation
  hyperv_fb: Add support for Gen2 VM

 drivers/video/hyperv_fb.c |   70 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 50 insertions(+), 20 deletions(-)

-- 
1.7.4.1


^ 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