* [GIT PULL] fbdev reorder for 3.15
From: Tomi Valkeinen @ 2014-04-09 10:48 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, linux-fbdev, Jean-Christophe PLAGNIOL-VILLARD
[-- Attachment #1: Type: text/plain, Size: 59030 bytes --]
Hi Linus,
Please pull the final fbdev changes for 3.15. This one reorders the
drivers/video directory structure.
The patches are based on 3.14-rc4, and cause big conflicts, although the
conflicts are not complex as such. They are resolved in linux-next, and also in
my two branches below. The first one contains a resolved merge for your master
branch, the second one contains rebased patches on top of your master.
git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git 3.15/fb-reorder-merged
git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git 3.15/fb-reorder-rebased
I could also do a rebased version on top of 3.15-rc1 when it's released, if
that's more sensible. Or, if this kind of big move-files-around is a bad thing
(nobody has so far complained, on the contrary), we could also drop the whole
series.
Tomi
The following changes since commit cfbf8d4857c26a8a307fb7cd258074c9dcd8c691:
Linux 3.14-rc4 (2014-02-23 17:40:03 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git tags/fbdev-reorder-3.15
for you to fetch changes up to a1fd56fc812e29931f68acd05893f095a5ce5473:
video: Kconfig: move drm and fb into separate menus (2014-03-05 08:28:52 +0200)
----------------------------------------------------------------
Reorder drivers/video/ directory so that all fbdev drivers are now located in
drivers/video/fbdev/ and the fbdev framework core files are located in
drivers/video/fbdev/core/
The drivers/video/Kconfig is modified so that the DRM and the fbdev menu
options are in separate submenus, instead of both being mixed in the same
'Graphics support' menu level.
----------------------------------------------------------------
Tomi Valkeinen (3):
video: move fbdev to drivers/video/fbdev
fbdev: move fbdev core files to separate directory
video: Kconfig: move drm and fb into separate menus
Documentation/DocBook/device-drivers.tmpl | 10 +-
drivers/Makefile | 4 +-
drivers/staging/xgifb/vb_def.h | 2 +-
drivers/staging/xgifb/vb_struct.h | 2 +-
drivers/staging/xgifb/vgatypes.h | 4 +-
drivers/video/Kconfig | 2487 +-------------------
drivers/video/Makefile | 168 +-
drivers/video/console/sticon.c | 2 +-
drivers/video/console/sticore.c | 2 +-
drivers/video/{ => fbdev}/68328fb.c | 0
drivers/video/fbdev/Kconfig | 2481 +++++++++++++++++++
drivers/video/fbdev/Makefile | 153 ++
drivers/video/{ => fbdev}/acornfb.c | 0
drivers/video/{ => fbdev}/acornfb.h | 0
drivers/video/{ => fbdev}/amba-clcd.c | 0
drivers/video/{ => fbdev}/amifb.c | 0
drivers/video/{ => fbdev}/arcfb.c | 0
drivers/video/{ => fbdev}/arkfb.c | 0
drivers/video/{ => fbdev}/asiliantfb.c | 0
drivers/video/{ => fbdev}/atafb.c | 0
drivers/video/{ => fbdev}/atafb.h | 0
drivers/video/{ => fbdev}/atafb_iplan2p2.c | 0
drivers/video/{ => fbdev}/atafb_iplan2p4.c | 0
drivers/video/{ => fbdev}/atafb_iplan2p8.c | 0
drivers/video/{ => fbdev}/atafb_mfb.c | 0
drivers/video/{ => fbdev}/atafb_utils.h | 0
drivers/video/{ => fbdev}/atmel_lcdfb.c | 0
drivers/video/{ => fbdev}/aty/Makefile | 0
drivers/video/{ => fbdev}/aty/ati_ids.h | 0
drivers/video/{ => fbdev}/aty/aty128fb.c | 0
drivers/video/{ => fbdev}/aty/atyfb.h | 0
drivers/video/{ => fbdev}/aty/atyfb_base.c | 0
drivers/video/{ => fbdev}/aty/mach64_accel.c | 0
drivers/video/{ => fbdev}/aty/mach64_ct.c | 0
drivers/video/{ => fbdev}/aty/mach64_cursor.c | 0
drivers/video/{ => fbdev}/aty/mach64_gx.c | 0
drivers/video/{ => fbdev}/aty/radeon_accel.c | 0
drivers/video/{ => fbdev}/aty/radeon_backlight.c | 0
drivers/video/{ => fbdev}/aty/radeon_base.c | 0
drivers/video/{ => fbdev}/aty/radeon_i2c.c | 0
drivers/video/{ => fbdev}/aty/radeon_monitor.c | 0
drivers/video/{ => fbdev}/aty/radeon_pm.c | 0
drivers/video/{ => fbdev}/aty/radeonfb.h | 0
drivers/video/{ => fbdev}/au1100fb.c | 0
drivers/video/{ => fbdev}/au1100fb.h | 0
drivers/video/{ => fbdev}/au1200fb.c | 0
drivers/video/{ => fbdev}/au1200fb.h | 0
drivers/video/{ => fbdev}/auo_k1900fb.c | 0
drivers/video/{ => fbdev}/auo_k1901fb.c | 0
drivers/video/{ => fbdev}/auo_k190x.c | 0
drivers/video/{ => fbdev}/auo_k190x.h | 0
drivers/video/{ => fbdev}/bf537-lq035.c | 0
drivers/video/{ => fbdev}/bf54x-lq043fb.c | 0
drivers/video/{ => fbdev}/bfin-lq035q1-fb.c | 0
drivers/video/{ => fbdev}/bfin-t350mcqb-fb.c | 0
drivers/video/{ => fbdev}/bfin_adv7393fb.c | 0
drivers/video/{ => fbdev}/bfin_adv7393fb.h | 0
drivers/video/{ => fbdev}/broadsheetfb.c | 0
drivers/video/{ => fbdev}/bt431.h | 0
drivers/video/{ => fbdev}/bt455.h | 0
drivers/video/{ => fbdev}/bw2.c | 0
drivers/video/{ => fbdev}/c2p.h | 0
drivers/video/{ => fbdev}/c2p_core.h | 0
drivers/video/{ => fbdev}/c2p_iplan2.c | 0
drivers/video/{ => fbdev}/c2p_planar.c | 0
drivers/video/{ => fbdev}/carminefb.c | 0
drivers/video/{ => fbdev}/carminefb.h | 0
drivers/video/{ => fbdev}/carminefb_regs.h | 0
drivers/video/{ => fbdev}/cg14.c | 0
drivers/video/{ => fbdev}/cg3.c | 0
drivers/video/{ => fbdev}/cg6.c | 0
drivers/video/{ => fbdev}/chipsfb.c | 0
drivers/video/{ => fbdev}/cirrusfb.c | 0
drivers/video/{ => fbdev}/clps711xfb.c | 0
drivers/video/{ => fbdev}/cobalt_lcdfb.c | 0
drivers/video/{ => fbdev}/controlfb.c | 0
drivers/video/{ => fbdev}/controlfb.h | 0
drivers/video/fbdev/core/Makefile | 16 +
drivers/video/{ => fbdev/core}/cfbcopyarea.c | 0
drivers/video/{ => fbdev/core}/cfbfillrect.c | 0
drivers/video/{ => fbdev/core}/cfbimgblt.c | 0
drivers/video/{ => fbdev/core}/fb_ddc.c | 2 +-
drivers/video/{ => fbdev/core}/fb_defio.c | 0
drivers/video/{ => fbdev/core}/fb_draw.h | 0
drivers/video/{ => fbdev/core}/fb_notify.c | 0
drivers/video/{ => fbdev/core}/fb_sys_fops.c | 0
drivers/video/{ => fbdev/core}/fbcmap.c | 0
drivers/video/{ => fbdev/core}/fbcvt.c | 0
drivers/video/{ => fbdev/core}/fbmem.c | 0
drivers/video/{ => fbdev/core}/fbmon.c | 2 +-
drivers/video/{ => fbdev/core}/fbsysfs.c | 0
drivers/video/{ => fbdev/core}/modedb.c | 0
drivers/video/{ => fbdev/core}/svgalib.c | 0
drivers/video/{ => fbdev/core}/syscopyarea.c | 0
drivers/video/{ => fbdev/core}/sysfillrect.c | 0
drivers/video/{ => fbdev/core}/sysimgblt.c | 0
drivers/video/{ => fbdev}/cyber2000fb.c | 0
drivers/video/{ => fbdev}/cyber2000fb.h | 0
drivers/video/{ => fbdev}/da8xx-fb.c | 0
drivers/video/{ => fbdev}/dnfb.c | 0
drivers/video/{ => fbdev}/edid.h | 0
drivers/video/{ => fbdev}/efifb.c | 0
drivers/video/{ => fbdev}/ep93xx-fb.c | 0
drivers/video/{ => fbdev}/exynos/Kconfig | 0
drivers/video/{ => fbdev}/exynos/Makefile | 0
drivers/video/{ => fbdev}/exynos/exynos_dp_core.c | 0
drivers/video/{ => fbdev}/exynos/exynos_dp_core.h | 0
drivers/video/{ => fbdev}/exynos/exynos_dp_reg.c | 0
drivers/video/{ => fbdev}/exynos/exynos_dp_reg.h | 0
drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi.c | 0
.../{ => fbdev}/exynos/exynos_mipi_dsi_common.c | 0
.../{ => fbdev}/exynos/exynos_mipi_dsi_common.h | 0
.../{ => fbdev}/exynos/exynos_mipi_dsi_lowlevel.c | 0
.../{ => fbdev}/exynos/exynos_mipi_dsi_lowlevel.h | 0
.../{ => fbdev}/exynos/exynos_mipi_dsi_regs.h | 0
drivers/video/{ => fbdev}/exynos/s6e8ax0.c | 0
drivers/video/{ => fbdev}/fb-puv3.c | 0
drivers/video/{ => fbdev}/ffb.c | 0
drivers/video/{ => fbdev}/fm2fb.c | 0
drivers/video/{ => fbdev}/fsl-diu-fb.c | 0
drivers/video/{ => fbdev}/g364fb.c | 0
drivers/video/{ => fbdev}/gbefb.c | 0
drivers/video/{ => fbdev}/geode/Kconfig | 0
drivers/video/{ => fbdev}/geode/Makefile | 0
drivers/video/{ => fbdev}/geode/display_gx.c | 0
drivers/video/{ => fbdev}/geode/display_gx1.c | 0
drivers/video/{ => fbdev}/geode/display_gx1.h | 0
drivers/video/{ => fbdev}/geode/geodefb.h | 0
drivers/video/{ => fbdev}/geode/gx1fb_core.c | 0
drivers/video/{ => fbdev}/geode/gxfb.h | 0
drivers/video/{ => fbdev}/geode/gxfb_core.c | 0
drivers/video/{ => fbdev}/geode/lxfb.h | 0
drivers/video/{ => fbdev}/geode/lxfb_core.c | 0
drivers/video/{ => fbdev}/geode/lxfb_ops.c | 0
drivers/video/{ => fbdev}/geode/suspend_gx.c | 0
drivers/video/{ => fbdev}/geode/video_cs5530.c | 0
drivers/video/{ => fbdev}/geode/video_cs5530.h | 0
drivers/video/{ => fbdev}/geode/video_gx.c | 0
drivers/video/{ => fbdev}/goldfishfb.c | 0
drivers/video/{ => fbdev}/grvga.c | 0
drivers/video/{ => fbdev}/gxt4500.c | 0
drivers/video/{ => fbdev}/hecubafb.c | 0
drivers/video/{ => fbdev}/hgafb.c | 0
drivers/video/{ => fbdev}/hitfb.c | 0
drivers/video/{ => fbdev}/hpfb.c | 0
drivers/video/{ => fbdev}/hyperv_fb.c | 0
drivers/video/{ => fbdev}/i740_reg.h | 0
drivers/video/{ => fbdev}/i740fb.c | 0
drivers/video/{ => fbdev}/i810/Makefile | 0
drivers/video/{ => fbdev}/i810/i810-i2c.c | 0
drivers/video/{ => fbdev}/i810/i810.h | 0
drivers/video/{ => fbdev}/i810/i810_accel.c | 0
drivers/video/{ => fbdev}/i810/i810_dvt.c | 0
drivers/video/{ => fbdev}/i810/i810_gtf.c | 0
drivers/video/{ => fbdev}/i810/i810_main.c | 0
drivers/video/{ => fbdev}/i810/i810_main.h | 0
drivers/video/{ => fbdev}/i810/i810_regs.h | 0
drivers/video/{ => fbdev}/igafb.c | 0
drivers/video/{ => fbdev}/imsttfb.c | 0
drivers/video/{ => fbdev}/imxfb.c | 0
drivers/video/{ => fbdev}/intelfb/Makefile | 0
drivers/video/{ => fbdev}/intelfb/intelfb.h | 0
drivers/video/{ => fbdev}/intelfb/intelfb_i2c.c | 0
drivers/video/{ => fbdev}/intelfb/intelfbdrv.c | 0
drivers/video/{ => fbdev}/intelfb/intelfbhw.c | 0
drivers/video/{ => fbdev}/intelfb/intelfbhw.h | 0
drivers/video/{ => fbdev}/jz4740_fb.c | 0
drivers/video/{ => fbdev}/kyro/Makefile | 0
drivers/video/{ => fbdev}/kyro/STG4000InitDevice.c | 0
drivers/video/{ => fbdev}/kyro/STG4000Interface.h | 0
.../video/{ => fbdev}/kyro/STG4000OverlayDevice.c | 0
drivers/video/{ => fbdev}/kyro/STG4000Ramdac.c | 0
drivers/video/{ => fbdev}/kyro/STG4000Reg.h | 0
drivers/video/{ => fbdev}/kyro/STG4000VTG.c | 0
drivers/video/{ => fbdev}/kyro/fbdev.c | 0
drivers/video/{ => fbdev}/leo.c | 0
drivers/video/{ => fbdev}/macfb.c | 0
drivers/video/{ => fbdev}/macmodes.c | 0
drivers/video/{ => fbdev}/macmodes.h | 0
drivers/video/{ => fbdev}/matrox/Makefile | 0
drivers/video/{ => fbdev}/matrox/g450_pll.c | 0
drivers/video/{ => fbdev}/matrox/g450_pll.h | 0
drivers/video/{ => fbdev}/matrox/i2c-matroxfb.c | 0
.../video/{ => fbdev}/matrox/matroxfb_DAC1064.c | 0
.../video/{ => fbdev}/matrox/matroxfb_DAC1064.h | 0
drivers/video/{ => fbdev}/matrox/matroxfb_Ti3026.c | 0
drivers/video/{ => fbdev}/matrox/matroxfb_Ti3026.h | 0
drivers/video/{ => fbdev}/matrox/matroxfb_accel.c | 0
drivers/video/{ => fbdev}/matrox/matroxfb_accel.h | 0
drivers/video/{ => fbdev}/matrox/matroxfb_base.c | 0
drivers/video/{ => fbdev}/matrox/matroxfb_base.h | 0
drivers/video/{ => fbdev}/matrox/matroxfb_crtc2.c | 0
drivers/video/{ => fbdev}/matrox/matroxfb_crtc2.h | 0
drivers/video/{ => fbdev}/matrox/matroxfb_g450.c | 0
drivers/video/{ => fbdev}/matrox/matroxfb_g450.h | 0
drivers/video/{ => fbdev}/matrox/matroxfb_maven.c | 0
drivers/video/{ => fbdev}/matrox/matroxfb_maven.h | 0
drivers/video/{ => fbdev}/matrox/matroxfb_misc.c | 0
drivers/video/{ => fbdev}/matrox/matroxfb_misc.h | 0
drivers/video/{ => fbdev}/maxinefb.c | 0
drivers/video/{ => fbdev}/mb862xx/Makefile | 0
drivers/video/{ => fbdev}/mb862xx/mb862xx-i2c.c | 0
drivers/video/{ => fbdev}/mb862xx/mb862xx_reg.h | 0
drivers/video/{ => fbdev}/mb862xx/mb862xxfb.h | 0
.../video/{ => fbdev}/mb862xx/mb862xxfb_accel.c | 0
.../video/{ => fbdev}/mb862xx/mb862xxfb_accel.h | 0
drivers/video/{ => fbdev}/mb862xx/mb862xxfbdrv.c | 0
drivers/video/{ => fbdev}/mbx/Makefile | 0
drivers/video/{ => fbdev}/mbx/mbxdebugfs.c | 0
drivers/video/{ => fbdev}/mbx/mbxfb.c | 0
drivers/video/{ => fbdev}/mbx/reg_bits.h | 0
drivers/video/{ => fbdev}/mbx/regs.h | 0
drivers/video/{ => fbdev}/metronomefb.c | 0
drivers/video/{ => fbdev}/mmp/Kconfig | 6 +-
drivers/video/{ => fbdev}/mmp/Makefile | 0
drivers/video/{ => fbdev}/mmp/core.c | 0
drivers/video/{ => fbdev}/mmp/fb/Kconfig | 0
drivers/video/{ => fbdev}/mmp/fb/Makefile | 0
drivers/video/{ => fbdev}/mmp/fb/mmpfb.c | 0
drivers/video/{ => fbdev}/mmp/fb/mmpfb.h | 0
drivers/video/{ => fbdev}/mmp/hw/Kconfig | 0
drivers/video/{ => fbdev}/mmp/hw/Makefile | 0
drivers/video/{ => fbdev}/mmp/hw/mmp_ctrl.c | 0
drivers/video/{ => fbdev}/mmp/hw/mmp_ctrl.h | 0
drivers/video/{ => fbdev}/mmp/hw/mmp_spi.c | 0
drivers/video/{ => fbdev}/mmp/panel/Kconfig | 0
drivers/video/{ => fbdev}/mmp/panel/Makefile | 0
.../video/{ => fbdev}/mmp/panel/tpo_tj032md01bw.c | 0
drivers/video/{ => fbdev}/msm/Makefile | 0
drivers/video/{ => fbdev}/msm/mddi.c | 0
drivers/video/{ => fbdev}/msm/mddi_client_dummy.c | 0
.../video/{ => fbdev}/msm/mddi_client_nt35399.c | 0
.../video/{ => fbdev}/msm/mddi_client_toshiba.c | 0
drivers/video/{ => fbdev}/msm/mddi_hw.h | 0
drivers/video/{ => fbdev}/msm/mdp.c | 0
drivers/video/{ => fbdev}/msm/mdp_csc_table.h | 0
drivers/video/{ => fbdev}/msm/mdp_hw.h | 0
drivers/video/{ => fbdev}/msm/mdp_ppp.c | 0
drivers/video/{ => fbdev}/msm/mdp_scale_tables.c | 0
drivers/video/{ => fbdev}/msm/mdp_scale_tables.h | 0
drivers/video/{ => fbdev}/msm/msm_fb.c | 0
drivers/video/{ => fbdev}/mx3fb.c | 0
drivers/video/{ => fbdev}/mxsfb.c | 0
drivers/video/{ => fbdev}/n411.c | 0
drivers/video/{ => fbdev}/neofb.c | 0
drivers/video/{ => fbdev}/nuc900fb.c | 0
drivers/video/{ => fbdev}/nuc900fb.h | 0
drivers/video/{ => fbdev}/nvidia/Makefile | 0
drivers/video/{ => fbdev}/nvidia/nv_accel.c | 0
drivers/video/{ => fbdev}/nvidia/nv_backlight.c | 0
drivers/video/{ => fbdev}/nvidia/nv_dma.h | 0
drivers/video/{ => fbdev}/nvidia/nv_hw.c | 0
drivers/video/{ => fbdev}/nvidia/nv_i2c.c | 0
drivers/video/{ => fbdev}/nvidia/nv_local.h | 0
drivers/video/{ => fbdev}/nvidia/nv_of.c | 0
drivers/video/{ => fbdev}/nvidia/nv_proto.h | 0
drivers/video/{ => fbdev}/nvidia/nv_setup.c | 0
drivers/video/{ => fbdev}/nvidia/nv_type.h | 0
drivers/video/{ => fbdev}/nvidia/nvidia.c | 0
drivers/video/{ => fbdev}/ocfb.c | 0
drivers/video/{ => fbdev}/offb.c | 0
drivers/video/{ => fbdev}/omap/Kconfig | 0
drivers/video/{ => fbdev}/omap/Makefile | 0
drivers/video/{ => fbdev}/omap/hwa742.c | 0
drivers/video/{ => fbdev}/omap/lcd_ams_delta.c | 0
drivers/video/{ => fbdev}/omap/lcd_h3.c | 0
drivers/video/{ => fbdev}/omap/lcd_htcherald.c | 0
drivers/video/{ => fbdev}/omap/lcd_inn1510.c | 0
drivers/video/{ => fbdev}/omap/lcd_inn1610.c | 0
drivers/video/{ => fbdev}/omap/lcd_mipid.c | 0
drivers/video/{ => fbdev}/omap/lcd_osk.c | 0
drivers/video/{ => fbdev}/omap/lcd_palmte.c | 0
drivers/video/{ => fbdev}/omap/lcd_palmtt.c | 0
drivers/video/{ => fbdev}/omap/lcd_palmz71.c | 0
drivers/video/{ => fbdev}/omap/lcdc.c | 0
drivers/video/{ => fbdev}/omap/lcdc.h | 0
drivers/video/{ => fbdev}/omap/omapfb.h | 0
drivers/video/{ => fbdev}/omap/omapfb_main.c | 0
drivers/video/{ => fbdev}/omap/sossi.c | 0
drivers/video/fbdev/omap2/Kconfig | 10 +
drivers/video/{ => fbdev}/omap2/Makefile | 0
.../video/{ => fbdev}/omap2/displays-new/Kconfig | 0
.../video/{ => fbdev}/omap2/displays-new/Makefile | 0
.../omap2/displays-new/connector-analog-tv.c | 0
.../{ => fbdev}/omap2/displays-new/connector-dvi.c | 0
.../omap2/displays-new/connector-hdmi.c | 0
.../omap2/displays-new/encoder-tfp410.c | 0
.../omap2/displays-new/encoder-tpd12s015.c | 0
.../{ => fbdev}/omap2/displays-new/panel-dpi.c | 0
.../{ => fbdev}/omap2/displays-new/panel-dsi-cm.c | 0
.../omap2/displays-new/panel-lgphilips-lb035q02.c | 0
.../omap2/displays-new/panel-nec-nl8048hl11.c | 0
.../omap2/displays-new/panel-sharp-ls037v7dw01.c | 0
.../omap2/displays-new/panel-sony-acx565akm.c | 0
.../omap2/displays-new/panel-tpo-td028ttec1.c | 0
.../omap2/displays-new/panel-tpo-td043mtea1.c | 0
drivers/video/{ => fbdev}/omap2/dss/Kconfig | 0
drivers/video/{ => fbdev}/omap2/dss/Makefile | 0
drivers/video/{ => fbdev}/omap2/dss/apply.c | 0
drivers/video/{ => fbdev}/omap2/dss/core.c | 0
drivers/video/{ => fbdev}/omap2/dss/dispc-compat.c | 0
drivers/video/{ => fbdev}/omap2/dss/dispc-compat.h | 0
drivers/video/{ => fbdev}/omap2/dss/dispc.c | 0
drivers/video/{ => fbdev}/omap2/dss/dispc.h | 0
drivers/video/{ => fbdev}/omap2/dss/dispc_coefs.c | 0
.../video/{ => fbdev}/omap2/dss/display-sysfs.c | 0
drivers/video/{ => fbdev}/omap2/dss/display.c | 0
drivers/video/{ => fbdev}/omap2/dss/dpi.c | 0
drivers/video/{ => fbdev}/omap2/dss/dsi.c | 0
drivers/video/{ => fbdev}/omap2/dss/dss.c | 0
drivers/video/{ => fbdev}/omap2/dss/dss.h | 0
drivers/video/{ => fbdev}/omap2/dss/dss_features.c | 0
drivers/video/{ => fbdev}/omap2/dss/dss_features.h | 0
drivers/video/{ => fbdev}/omap2/dss/hdmi.h | 0
drivers/video/{ => fbdev}/omap2/dss/hdmi4.c | 0
drivers/video/{ => fbdev}/omap2/dss/hdmi4_core.c | 0
drivers/video/{ => fbdev}/omap2/dss/hdmi4_core.h | 0
drivers/video/{ => fbdev}/omap2/dss/hdmi_common.c | 0
drivers/video/{ => fbdev}/omap2/dss/hdmi_phy.c | 0
drivers/video/{ => fbdev}/omap2/dss/hdmi_pll.c | 0
drivers/video/{ => fbdev}/omap2/dss/hdmi_wp.c | 0
.../video/{ => fbdev}/omap2/dss/manager-sysfs.c | 0
drivers/video/{ => fbdev}/omap2/dss/manager.c | 0
drivers/video/{ => fbdev}/omap2/dss/output.c | 0
.../video/{ => fbdev}/omap2/dss/overlay-sysfs.c | 0
drivers/video/{ => fbdev}/omap2/dss/overlay.c | 0
drivers/video/{ => fbdev}/omap2/dss/rfbi.c | 0
drivers/video/{ => fbdev}/omap2/dss/sdi.c | 0
drivers/video/{ => fbdev}/omap2/dss/venc.c | 0
drivers/video/{ => fbdev}/omap2/dss/venc_panel.c | 0
drivers/video/{ => fbdev}/omap2/omapfb/Kconfig | 0
drivers/video/{ => fbdev}/omap2/omapfb/Makefile | 0
.../video/{ => fbdev}/omap2/omapfb/omapfb-ioctl.c | 0
.../video/{ => fbdev}/omap2/omapfb/omapfb-main.c | 0
.../video/{ => fbdev}/omap2/omapfb/omapfb-sysfs.c | 0
drivers/video/{ => fbdev}/omap2/omapfb/omapfb.h | 0
drivers/video/{ => fbdev}/omap2/vrfb.c | 0
drivers/video/{ => fbdev}/p9100.c | 0
drivers/video/{ => fbdev}/platinumfb.c | 0
drivers/video/{ => fbdev}/platinumfb.h | 0
drivers/video/{ => fbdev}/pm2fb.c | 0
drivers/video/{ => fbdev}/pm3fb.c | 0
drivers/video/{ => fbdev}/pmag-aa-fb.c | 0
drivers/video/{ => fbdev}/pmag-ba-fb.c | 0
drivers/video/{ => fbdev}/pmagb-b-fb.c | 0
drivers/video/{ => fbdev}/ps3fb.c | 0
drivers/video/{ => fbdev}/pvr2fb.c | 0
drivers/video/{ => fbdev}/pxa168fb.c | 0
drivers/video/{ => fbdev}/pxa168fb.h | 0
drivers/video/{ => fbdev}/pxa3xx-gcu.c | 0
drivers/video/{ => fbdev}/pxa3xx-gcu.h | 0
drivers/video/{ => fbdev}/pxafb.c | 0
drivers/video/{ => fbdev}/pxafb.h | 0
drivers/video/{ => fbdev}/q40fb.c | 0
drivers/video/{ => fbdev}/riva/Makefile | 0
drivers/video/{ => fbdev}/riva/fbdev.c | 0
drivers/video/{ => fbdev}/riva/nv_driver.c | 0
drivers/video/{ => fbdev}/riva/nv_type.h | 0
drivers/video/{ => fbdev}/riva/nvreg.h | 0
drivers/video/{ => fbdev}/riva/riva_hw.c | 0
drivers/video/{ => fbdev}/riva/riva_hw.h | 0
drivers/video/{ => fbdev}/riva/riva_tbl.h | 0
drivers/video/{ => fbdev}/riva/rivafb-i2c.c | 0
drivers/video/{ => fbdev}/riva/rivafb.h | 0
drivers/video/{ => fbdev}/s1d13xxxfb.c | 0
drivers/video/{ => fbdev}/s3c-fb.c | 0
drivers/video/{ => fbdev}/s3c2410fb.c | 0
drivers/video/{ => fbdev}/s3c2410fb.h | 0
drivers/video/{ => fbdev}/s3fb.c | 0
drivers/video/{ => fbdev}/sa1100fb.c | 0
drivers/video/{ => fbdev}/sa1100fb.h | 0
drivers/video/{ => fbdev}/savage/Makefile | 0
drivers/video/{ => fbdev}/savage/savagefb-i2c.c | 0
drivers/video/{ => fbdev}/savage/savagefb.h | 0
drivers/video/{ => fbdev}/savage/savagefb_accel.c | 0
drivers/video/{ => fbdev}/savage/savagefb_driver.c | 0
drivers/video/{ => fbdev}/sbuslib.c | 0
drivers/video/{ => fbdev}/sbuslib.h | 0
drivers/video/{ => fbdev}/sgivwfb.c | 0
drivers/video/{ => fbdev}/sh7760fb.c | 0
drivers/video/{ => fbdev}/sh_mipi_dsi.c | 0
drivers/video/{ => fbdev}/sh_mobile_hdmi.c | 0
drivers/video/{ => fbdev}/sh_mobile_lcdcfb.c | 0
drivers/video/{ => fbdev}/sh_mobile_lcdcfb.h | 0
drivers/video/{ => fbdev}/sh_mobile_meram.c | 0
drivers/video/{ => fbdev}/simplefb.c | 0
drivers/video/{ => fbdev}/sis/300vtbl.h | 0
drivers/video/{ => fbdev}/sis/310vtbl.h | 0
drivers/video/{ => fbdev}/sis/Makefile | 0
drivers/video/{ => fbdev}/sis/init.c | 0
drivers/video/{ => fbdev}/sis/init.h | 0
drivers/video/{ => fbdev}/sis/init301.c | 0
drivers/video/{ => fbdev}/sis/init301.h | 0
drivers/video/{ => fbdev}/sis/initdef.h | 0
drivers/video/{ => fbdev}/sis/initextlfb.c | 0
drivers/video/{ => fbdev}/sis/oem300.h | 0
drivers/video/{ => fbdev}/sis/oem310.h | 0
drivers/video/{ => fbdev}/sis/sis.h | 0
drivers/video/{ => fbdev}/sis/sis_accel.c | 0
drivers/video/{ => fbdev}/sis/sis_accel.h | 0
drivers/video/{ => fbdev}/sis/sis_main.c | 0
drivers/video/{ => fbdev}/sis/sis_main.h | 0
drivers/video/{ => fbdev}/sis/vgatypes.h | 0
drivers/video/{ => fbdev}/sis/vstruct.h | 0
drivers/video/{ => fbdev}/skeletonfb.c | 0
drivers/video/{ => fbdev}/sm501fb.c | 0
drivers/video/{ => fbdev}/smscufx.c | 0
drivers/video/{ => fbdev}/ssd1307fb.c | 0
drivers/video/{ => fbdev}/sstfb.c | 0
drivers/video/{ => fbdev}/sticore.h | 0
drivers/video/{ => fbdev}/stifb.c | 0
drivers/video/{ => fbdev}/sunxvr1000.c | 0
drivers/video/{ => fbdev}/sunxvr2500.c | 0
drivers/video/{ => fbdev}/sunxvr500.c | 0
drivers/video/{ => fbdev}/tcx.c | 0
drivers/video/{ => fbdev}/tdfxfb.c | 0
drivers/video/{ => fbdev}/tgafb.c | 0
drivers/video/{ => fbdev}/tmiofb.c | 0
drivers/video/{ => fbdev}/tridentfb.c | 0
drivers/video/{ => fbdev}/udlfb.c | 0
drivers/video/{ => fbdev}/uvesafb.c | 0
drivers/video/{ => fbdev}/valkyriefb.c | 0
drivers/video/{ => fbdev}/valkyriefb.h | 0
drivers/video/{ => fbdev}/vermilion/Makefile | 0
drivers/video/{ => fbdev}/vermilion/cr_pll.c | 0
drivers/video/{ => fbdev}/vermilion/vermilion.c | 0
drivers/video/{ => fbdev}/vermilion/vermilion.h | 0
drivers/video/{ => fbdev}/vesafb.c | 0
drivers/video/{ => fbdev}/vfb.c | 0
drivers/video/{ => fbdev}/vga16fb.c | 0
drivers/video/{ => fbdev}/via/Makefile | 0
drivers/video/{ => fbdev}/via/accel.c | 0
drivers/video/{ => fbdev}/via/accel.h | 0
drivers/video/{ => fbdev}/via/chip.h | 0
drivers/video/{ => fbdev}/via/debug.h | 0
drivers/video/{ => fbdev}/via/dvi.c | 0
drivers/video/{ => fbdev}/via/dvi.h | 0
drivers/video/{ => fbdev}/via/global.c | 0
drivers/video/{ => fbdev}/via/global.h | 0
drivers/video/{ => fbdev}/via/hw.c | 0
drivers/video/{ => fbdev}/via/hw.h | 0
drivers/video/{ => fbdev}/via/ioctl.c | 0
drivers/video/{ => fbdev}/via/ioctl.h | 0
drivers/video/{ => fbdev}/via/lcd.c | 0
drivers/video/{ => fbdev}/via/lcd.h | 0
drivers/video/{ => fbdev}/via/share.h | 0
drivers/video/{ => fbdev}/via/tblDPASetting.c | 0
drivers/video/{ => fbdev}/via/tblDPASetting.h | 0
drivers/video/{ => fbdev}/via/via-core.c | 0
drivers/video/{ => fbdev}/via/via-gpio.c | 0
drivers/video/{ => fbdev}/via/via_aux.c | 0
drivers/video/{ => fbdev}/via/via_aux.h | 0
drivers/video/{ => fbdev}/via/via_aux_ch7301.c | 0
drivers/video/{ => fbdev}/via/via_aux_edid.c | 0
drivers/video/{ => fbdev}/via/via_aux_sii164.c | 0
drivers/video/{ => fbdev}/via/via_aux_vt1621.c | 0
drivers/video/{ => fbdev}/via/via_aux_vt1622.c | 0
drivers/video/{ => fbdev}/via/via_aux_vt1625.c | 0
drivers/video/{ => fbdev}/via/via_aux_vt1631.c | 0
drivers/video/{ => fbdev}/via/via_aux_vt1632.c | 0
drivers/video/{ => fbdev}/via/via_aux_vt1636.c | 0
drivers/video/{ => fbdev}/via/via_clock.c | 0
drivers/video/{ => fbdev}/via/via_clock.h | 0
drivers/video/{ => fbdev}/via/via_i2c.c | 0
drivers/video/{ => fbdev}/via/via_modesetting.c | 0
drivers/video/{ => fbdev}/via/via_modesetting.h | 0
drivers/video/{ => fbdev}/via/via_utility.c | 0
drivers/video/{ => fbdev}/via/via_utility.h | 0
drivers/video/{ => fbdev}/via/viafbdev.c | 0
drivers/video/{ => fbdev}/via/viafbdev.h | 0
drivers/video/{ => fbdev}/via/viamode.c | 0
drivers/video/{ => fbdev}/via/viamode.h | 0
drivers/video/{ => fbdev}/via/vt1636.c | 0
drivers/video/{ => fbdev}/via/vt1636.h | 0
drivers/video/{ => fbdev}/vt8500lcdfb.c | 0
drivers/video/{ => fbdev}/vt8500lcdfb.h | 0
drivers/video/{ => fbdev}/vt8623fb.c | 0
drivers/video/{ => fbdev}/w100fb.c | 0
drivers/video/{ => fbdev}/w100fb.h | 0
drivers/video/{ => fbdev}/wm8505fb.c | 0
drivers/video/{ => fbdev}/wm8505fb_regs.h | 0
drivers/video/{ => fbdev}/wmt_ge_rops.c | 2 +-
drivers/video/{ => fbdev}/wmt_ge_rops.h | 0
drivers/video/{ => fbdev}/xen-fbfront.c | 0
drivers/video/{ => fbdev}/xilinxfb.c | 0
drivers/video/omap2/Kconfig | 10 -
486 files changed, 2690 insertions(+), 2673 deletions(-)
rename drivers/video/{ => fbdev}/68328fb.c (100%)
create mode 100644 drivers/video/fbdev/Kconfig
create mode 100644 drivers/video/fbdev/Makefile
rename drivers/video/{ => fbdev}/acornfb.c (100%)
rename drivers/video/{ => fbdev}/acornfb.h (100%)
rename drivers/video/{ => fbdev}/amba-clcd.c (100%)
rename drivers/video/{ => fbdev}/amifb.c (100%)
rename drivers/video/{ => fbdev}/arcfb.c (100%)
rename drivers/video/{ => fbdev}/arkfb.c (100%)
rename drivers/video/{ => fbdev}/asiliantfb.c (100%)
rename drivers/video/{ => fbdev}/atafb.c (100%)
rename drivers/video/{ => fbdev}/atafb.h (100%)
rename drivers/video/{ => fbdev}/atafb_iplan2p2.c (100%)
rename drivers/video/{ => fbdev}/atafb_iplan2p4.c (100%)
rename drivers/video/{ => fbdev}/atafb_iplan2p8.c (100%)
rename drivers/video/{ => fbdev}/atafb_mfb.c (100%)
rename drivers/video/{ => fbdev}/atafb_utils.h (100%)
rename drivers/video/{ => fbdev}/atmel_lcdfb.c (100%)
rename drivers/video/{ => fbdev}/aty/Makefile (100%)
rename drivers/video/{ => fbdev}/aty/ati_ids.h (100%)
rename drivers/video/{ => fbdev}/aty/aty128fb.c (100%)
rename drivers/video/{ => fbdev}/aty/atyfb.h (100%)
rename drivers/video/{ => fbdev}/aty/atyfb_base.c (100%)
rename drivers/video/{ => fbdev}/aty/mach64_accel.c (100%)
rename drivers/video/{ => fbdev}/aty/mach64_ct.c (100%)
rename drivers/video/{ => fbdev}/aty/mach64_cursor.c (100%)
rename drivers/video/{ => fbdev}/aty/mach64_gx.c (100%)
rename drivers/video/{ => fbdev}/aty/radeon_accel.c (100%)
rename drivers/video/{ => fbdev}/aty/radeon_backlight.c (100%)
rename drivers/video/{ => fbdev}/aty/radeon_base.c (100%)
rename drivers/video/{ => fbdev}/aty/radeon_i2c.c (100%)
rename drivers/video/{ => fbdev}/aty/radeon_monitor.c (100%)
rename drivers/video/{ => fbdev}/aty/radeon_pm.c (100%)
rename drivers/video/{ => fbdev}/aty/radeonfb.h (100%)
rename drivers/video/{ => fbdev}/au1100fb.c (100%)
rename drivers/video/{ => fbdev}/au1100fb.h (100%)
rename drivers/video/{ => fbdev}/au1200fb.c (100%)
rename drivers/video/{ => fbdev}/au1200fb.h (100%)
rename drivers/video/{ => fbdev}/auo_k1900fb.c (100%)
rename drivers/video/{ => fbdev}/auo_k1901fb.c (100%)
rename drivers/video/{ => fbdev}/auo_k190x.c (100%)
rename drivers/video/{ => fbdev}/auo_k190x.h (100%)
rename drivers/video/{ => fbdev}/bf537-lq035.c (100%)
rename drivers/video/{ => fbdev}/bf54x-lq043fb.c (100%)
rename drivers/video/{ => fbdev}/bfin-lq035q1-fb.c (100%)
rename drivers/video/{ => fbdev}/bfin-t350mcqb-fb.c (100%)
rename drivers/video/{ => fbdev}/bfin_adv7393fb.c (100%)
rename drivers/video/{ => fbdev}/bfin_adv7393fb.h (100%)
rename drivers/video/{ => fbdev}/broadsheetfb.c (100%)
rename drivers/video/{ => fbdev}/bt431.h (100%)
rename drivers/video/{ => fbdev}/bt455.h (100%)
rename drivers/video/{ => fbdev}/bw2.c (100%)
rename drivers/video/{ => fbdev}/c2p.h (100%)
rename drivers/video/{ => fbdev}/c2p_core.h (100%)
rename drivers/video/{ => fbdev}/c2p_iplan2.c (100%)
rename drivers/video/{ => fbdev}/c2p_planar.c (100%)
rename drivers/video/{ => fbdev}/carminefb.c (100%)
rename drivers/video/{ => fbdev}/carminefb.h (100%)
rename drivers/video/{ => fbdev}/carminefb_regs.h (100%)
rename drivers/video/{ => fbdev}/cg14.c (100%)
rename drivers/video/{ => fbdev}/cg3.c (100%)
rename drivers/video/{ => fbdev}/cg6.c (100%)
rename drivers/video/{ => fbdev}/chipsfb.c (100%)
rename drivers/video/{ => fbdev}/cirrusfb.c (100%)
rename drivers/video/{ => fbdev}/clps711xfb.c (100%)
rename drivers/video/{ => fbdev}/cobalt_lcdfb.c (100%)
rename drivers/video/{ => fbdev}/controlfb.c (100%)
rename drivers/video/{ => fbdev}/controlfb.h (100%)
create mode 100644 drivers/video/fbdev/core/Makefile
rename drivers/video/{ => fbdev/core}/cfbcopyarea.c (100%)
rename drivers/video/{ => fbdev/core}/cfbfillrect.c (100%)
rename drivers/video/{ => fbdev/core}/cfbimgblt.c (100%)
rename drivers/video/{ => fbdev/core}/fb_ddc.c (99%)
rename drivers/video/{ => fbdev/core}/fb_defio.c (100%)
rename drivers/video/{ => fbdev/core}/fb_draw.h (100%)
rename drivers/video/{ => fbdev/core}/fb_notify.c (100%)
rename drivers/video/{ => fbdev/core}/fb_sys_fops.c (100%)
rename drivers/video/{ => fbdev/core}/fbcmap.c (100%)
rename drivers/video/{ => fbdev/core}/fbcvt.c (100%)
rename drivers/video/{ => fbdev/core}/fbmem.c (100%)
rename drivers/video/{ => fbdev/core}/fbmon.c (99%)
rename drivers/video/{ => fbdev/core}/fbsysfs.c (100%)
rename drivers/video/{ => fbdev/core}/modedb.c (100%)
rename drivers/video/{ => fbdev/core}/svgalib.c (100%)
rename drivers/video/{ => fbdev/core}/syscopyarea.c (100%)
rename drivers/video/{ => fbdev/core}/sysfillrect.c (100%)
rename drivers/video/{ => fbdev/core}/sysimgblt.c (100%)
rename drivers/video/{ => fbdev}/cyber2000fb.c (100%)
rename drivers/video/{ => fbdev}/cyber2000fb.h (100%)
rename drivers/video/{ => fbdev}/da8xx-fb.c (100%)
rename drivers/video/{ => fbdev}/dnfb.c (100%)
rename drivers/video/{ => fbdev}/edid.h (100%)
rename drivers/video/{ => fbdev}/efifb.c (100%)
rename drivers/video/{ => fbdev}/ep93xx-fb.c (100%)
rename drivers/video/{ => fbdev}/exynos/Kconfig (100%)
rename drivers/video/{ => fbdev}/exynos/Makefile (100%)
rename drivers/video/{ => fbdev}/exynos/exynos_dp_core.c (100%)
rename drivers/video/{ => fbdev}/exynos/exynos_dp_core.h (100%)
rename drivers/video/{ => fbdev}/exynos/exynos_dp_reg.c (100%)
rename drivers/video/{ => fbdev}/exynos/exynos_dp_reg.h (100%)
rename drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi.c (100%)
rename drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi_common.c (100%)
rename drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi_common.h (100%)
rename drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi_lowlevel.c (100%)
rename drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi_lowlevel.h (100%)
rename drivers/video/{ => fbdev}/exynos/exynos_mipi_dsi_regs.h (100%)
rename drivers/video/{ => fbdev}/exynos/s6e8ax0.c (100%)
rename drivers/video/{ => fbdev}/fb-puv3.c (100%)
rename drivers/video/{ => fbdev}/ffb.c (100%)
rename drivers/video/{ => fbdev}/fm2fb.c (100%)
rename drivers/video/{ => fbdev}/fsl-diu-fb.c (100%)
rename drivers/video/{ => fbdev}/g364fb.c (100%)
rename drivers/video/{ => fbdev}/gbefb.c (100%)
rename drivers/video/{ => fbdev}/geode/Kconfig (100%)
rename drivers/video/{ => fbdev}/geode/Makefile (100%)
rename drivers/video/{ => fbdev}/geode/display_gx.c (100%)
rename drivers/video/{ => fbdev}/geode/display_gx1.c (100%)
rename drivers/video/{ => fbdev}/geode/display_gx1.h (100%)
rename drivers/video/{ => fbdev}/geode/geodefb.h (100%)
rename drivers/video/{ => fbdev}/geode/gx1fb_core.c (100%)
rename drivers/video/{ => fbdev}/geode/gxfb.h (100%)
rename drivers/video/{ => fbdev}/geode/gxfb_core.c (100%)
rename drivers/video/{ => fbdev}/geode/lxfb.h (100%)
rename drivers/video/{ => fbdev}/geode/lxfb_core.c (100%)
rename drivers/video/{ => fbdev}/geode/lxfb_ops.c (100%)
rename drivers/video/{ => fbdev}/geode/suspend_gx.c (100%)
rename drivers/video/{ => fbdev}/geode/video_cs5530.c (100%)
rename drivers/video/{ => fbdev}/geode/video_cs5530.h (100%)
rename drivers/video/{ => fbdev}/geode/video_gx.c (100%)
rename drivers/video/{ => fbdev}/goldfishfb.c (100%)
rename drivers/video/{ => fbdev}/grvga.c (100%)
rename drivers/video/{ => fbdev}/gxt4500.c (100%)
rename drivers/video/{ => fbdev}/hecubafb.c (100%)
rename drivers/video/{ => fbdev}/hgafb.c (100%)
rename drivers/video/{ => fbdev}/hitfb.c (100%)
rename drivers/video/{ => fbdev}/hpfb.c (100%)
rename drivers/video/{ => fbdev}/hyperv_fb.c (100%)
rename drivers/video/{ => fbdev}/i740_reg.h (100%)
rename drivers/video/{ => fbdev}/i740fb.c (100%)
rename drivers/video/{ => fbdev}/i810/Makefile (100%)
rename drivers/video/{ => fbdev}/i810/i810-i2c.c (100%)
rename drivers/video/{ => fbdev}/i810/i810.h (100%)
rename drivers/video/{ => fbdev}/i810/i810_accel.c (100%)
rename drivers/video/{ => fbdev}/i810/i810_dvt.c (100%)
rename drivers/video/{ => fbdev}/i810/i810_gtf.c (100%)
rename drivers/video/{ => fbdev}/i810/i810_main.c (100%)
rename drivers/video/{ => fbdev}/i810/i810_main.h (100%)
rename drivers/video/{ => fbdev}/i810/i810_regs.h (100%)
rename drivers/video/{ => fbdev}/igafb.c (100%)
rename drivers/video/{ => fbdev}/imsttfb.c (100%)
rename drivers/video/{ => fbdev}/imxfb.c (100%)
rename drivers/video/{ => fbdev}/intelfb/Makefile (100%)
rename drivers/video/{ => fbdev}/intelfb/intelfb.h (100%)
rename drivers/video/{ => fbdev}/intelfb/intelfb_i2c.c (100%)
rename drivers/video/{ => fbdev}/intelfb/intelfbdrv.c (100%)
rename drivers/video/{ => fbdev}/intelfb/intelfbhw.c (100%)
rename drivers/video/{ => fbdev}/intelfb/intelfbhw.h (100%)
rename drivers/video/{ => fbdev}/jz4740_fb.c (100%)
rename drivers/video/{ => fbdev}/kyro/Makefile (100%)
rename drivers/video/{ => fbdev}/kyro/STG4000InitDevice.c (100%)
rename drivers/video/{ => fbdev}/kyro/STG4000Interface.h (100%)
rename drivers/video/{ => fbdev}/kyro/STG4000OverlayDevice.c (100%)
rename drivers/video/{ => fbdev}/kyro/STG4000Ramdac.c (100%)
rename drivers/video/{ => fbdev}/kyro/STG4000Reg.h (100%)
rename drivers/video/{ => fbdev}/kyro/STG4000VTG.c (100%)
rename drivers/video/{ => fbdev}/kyro/fbdev.c (100%)
rename drivers/video/{ => fbdev}/leo.c (100%)
rename drivers/video/{ => fbdev}/macfb.c (100%)
rename drivers/video/{ => fbdev}/macmodes.c (100%)
rename drivers/video/{ => fbdev}/macmodes.h (100%)
rename drivers/video/{ => fbdev}/matrox/Makefile (100%)
rename drivers/video/{ => fbdev}/matrox/g450_pll.c (100%)
rename drivers/video/{ => fbdev}/matrox/g450_pll.h (100%)
rename drivers/video/{ => fbdev}/matrox/i2c-matroxfb.c (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_DAC1064.c (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_DAC1064.h (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_Ti3026.c (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_Ti3026.h (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_accel.c (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_accel.h (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_base.c (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_base.h (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_crtc2.c (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_crtc2.h (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_g450.c (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_g450.h (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_maven.c (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_maven.h (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_misc.c (100%)
rename drivers/video/{ => fbdev}/matrox/matroxfb_misc.h (100%)
rename drivers/video/{ => fbdev}/maxinefb.c (100%)
rename drivers/video/{ => fbdev}/mb862xx/Makefile (100%)
rename drivers/video/{ => fbdev}/mb862xx/mb862xx-i2c.c (100%)
rename drivers/video/{ => fbdev}/mb862xx/mb862xx_reg.h (100%)
rename drivers/video/{ => fbdev}/mb862xx/mb862xxfb.h (100%)
rename drivers/video/{ => fbdev}/mb862xx/mb862xxfb_accel.c (100%)
rename drivers/video/{ => fbdev}/mb862xx/mb862xxfb_accel.h (100%)
rename drivers/video/{ => fbdev}/mb862xx/mb862xxfbdrv.c (100%)
rename drivers/video/{ => fbdev}/mbx/Makefile (100%)
rename drivers/video/{ => fbdev}/mbx/mbxdebugfs.c (100%)
rename drivers/video/{ => fbdev}/mbx/mbxfb.c (100%)
rename drivers/video/{ => fbdev}/mbx/reg_bits.h (100%)
rename drivers/video/{ => fbdev}/mbx/regs.h (100%)
rename drivers/video/{ => fbdev}/metronomefb.c (100%)
rename drivers/video/{ => fbdev}/mmp/Kconfig (61%)
rename drivers/video/{ => fbdev}/mmp/Makefile (100%)
rename drivers/video/{ => fbdev}/mmp/core.c (100%)
rename drivers/video/{ => fbdev}/mmp/fb/Kconfig (100%)
rename drivers/video/{ => fbdev}/mmp/fb/Makefile (100%)
rename drivers/video/{ => fbdev}/mmp/fb/mmpfb.c (100%)
rename drivers/video/{ => fbdev}/mmp/fb/mmpfb.h (100%)
rename drivers/video/{ => fbdev}/mmp/hw/Kconfig (100%)
rename drivers/video/{ => fbdev}/mmp/hw/Makefile (100%)
rename drivers/video/{ => fbdev}/mmp/hw/mmp_ctrl.c (100%)
rename drivers/video/{ => fbdev}/mmp/hw/mmp_ctrl.h (100%)
rename drivers/video/{ => fbdev}/mmp/hw/mmp_spi.c (100%)
rename drivers/video/{ => fbdev}/mmp/panel/Kconfig (100%)
rename drivers/video/{ => fbdev}/mmp/panel/Makefile (100%)
rename drivers/video/{ => fbdev}/mmp/panel/tpo_tj032md01bw.c (100%)
rename drivers/video/{ => fbdev}/msm/Makefile (100%)
rename drivers/video/{ => fbdev}/msm/mddi.c (100%)
rename drivers/video/{ => fbdev}/msm/mddi_client_dummy.c (100%)
rename drivers/video/{ => fbdev}/msm/mddi_client_nt35399.c (100%)
rename drivers/video/{ => fbdev}/msm/mddi_client_toshiba.c (100%)
rename drivers/video/{ => fbdev}/msm/mddi_hw.h (100%)
rename drivers/video/{ => fbdev}/msm/mdp.c (100%)
rename drivers/video/{ => fbdev}/msm/mdp_csc_table.h (100%)
rename drivers/video/{ => fbdev}/msm/mdp_hw.h (100%)
rename drivers/video/{ => fbdev}/msm/mdp_ppp.c (100%)
rename drivers/video/{ => fbdev}/msm/mdp_scale_tables.c (100%)
rename drivers/video/{ => fbdev}/msm/mdp_scale_tables.h (100%)
rename drivers/video/{ => fbdev}/msm/msm_fb.c (100%)
rename drivers/video/{ => fbdev}/mx3fb.c (100%)
rename drivers/video/{ => fbdev}/mxsfb.c (100%)
rename drivers/video/{ => fbdev}/n411.c (100%)
rename drivers/video/{ => fbdev}/neofb.c (100%)
rename drivers/video/{ => fbdev}/nuc900fb.c (100%)
rename drivers/video/{ => fbdev}/nuc900fb.h (100%)
rename drivers/video/{ => fbdev}/nvidia/Makefile (100%)
rename drivers/video/{ => fbdev}/nvidia/nv_accel.c (100%)
rename drivers/video/{ => fbdev}/nvidia/nv_backlight.c (100%)
rename drivers/video/{ => fbdev}/nvidia/nv_dma.h (100%)
rename drivers/video/{ => fbdev}/nvidia/nv_hw.c (100%)
rename drivers/video/{ => fbdev}/nvidia/nv_i2c.c (100%)
rename drivers/video/{ => fbdev}/nvidia/nv_local.h (100%)
rename drivers/video/{ => fbdev}/nvidia/nv_of.c (100%)
rename drivers/video/{ => fbdev}/nvidia/nv_proto.h (100%)
rename drivers/video/{ => fbdev}/nvidia/nv_setup.c (100%)
rename drivers/video/{ => fbdev}/nvidia/nv_type.h (100%)
rename drivers/video/{ => fbdev}/nvidia/nvidia.c (100%)
rename drivers/video/{ => fbdev}/ocfb.c (100%)
rename drivers/video/{ => fbdev}/offb.c (100%)
rename drivers/video/{ => fbdev}/omap/Kconfig (100%)
rename drivers/video/{ => fbdev}/omap/Makefile (100%)
rename drivers/video/{ => fbdev}/omap/hwa742.c (100%)
rename drivers/video/{ => fbdev}/omap/lcd_ams_delta.c (100%)
rename drivers/video/{ => fbdev}/omap/lcd_h3.c (100%)
rename drivers/video/{ => fbdev}/omap/lcd_htcherald.c (100%)
rename drivers/video/{ => fbdev}/omap/lcd_inn1510.c (100%)
rename drivers/video/{ => fbdev}/omap/lcd_inn1610.c (100%)
rename drivers/video/{ => fbdev}/omap/lcd_mipid.c (100%)
rename drivers/video/{ => fbdev}/omap/lcd_osk.c (100%)
rename drivers/video/{ => fbdev}/omap/lcd_palmte.c (100%)
rename drivers/video/{ => fbdev}/omap/lcd_palmtt.c (100%)
rename drivers/video/{ => fbdev}/omap/lcd_palmz71.c (100%)
rename drivers/video/{ => fbdev}/omap/lcdc.c (100%)
rename drivers/video/{ => fbdev}/omap/lcdc.h (100%)
rename drivers/video/{ => fbdev}/omap/omapfb.h (100%)
rename drivers/video/{ => fbdev}/omap/omapfb_main.c (100%)
rename drivers/video/{ => fbdev}/omap/sossi.c (100%)
create mode 100644 drivers/video/fbdev/omap2/Kconfig
rename drivers/video/{ => fbdev}/omap2/Makefile (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/Kconfig (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/Makefile (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/connector-analog-tv.c (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/connector-dvi.c (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/connector-hdmi.c (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/encoder-tfp410.c (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/encoder-tpd12s015.c (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/panel-dpi.c (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/panel-dsi-cm.c (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/panel-lgphilips-lb035q02.c (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/panel-nec-nl8048hl11.c (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/panel-sharp-ls037v7dw01.c (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/panel-sony-acx565akm.c (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/panel-tpo-td028ttec1.c (100%)
rename drivers/video/{ => fbdev}/omap2/displays-new/panel-tpo-td043mtea1.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/Kconfig (100%)
rename drivers/video/{ => fbdev}/omap2/dss/Makefile (100%)
rename drivers/video/{ => fbdev}/omap2/dss/apply.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/core.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/dispc-compat.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/dispc-compat.h (100%)
rename drivers/video/{ => fbdev}/omap2/dss/dispc.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/dispc.h (100%)
rename drivers/video/{ => fbdev}/omap2/dss/dispc_coefs.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/display-sysfs.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/display.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/dpi.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/dsi.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/dss.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/dss.h (100%)
rename drivers/video/{ => fbdev}/omap2/dss/dss_features.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/dss_features.h (100%)
rename drivers/video/{ => fbdev}/omap2/dss/hdmi.h (100%)
rename drivers/video/{ => fbdev}/omap2/dss/hdmi4.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/hdmi4_core.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/hdmi4_core.h (100%)
rename drivers/video/{ => fbdev}/omap2/dss/hdmi_common.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/hdmi_phy.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/hdmi_pll.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/hdmi_wp.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/manager-sysfs.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/manager.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/output.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/overlay-sysfs.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/overlay.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/rfbi.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/sdi.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/venc.c (100%)
rename drivers/video/{ => fbdev}/omap2/dss/venc_panel.c (100%)
rename drivers/video/{ => fbdev}/omap2/omapfb/Kconfig (100%)
rename drivers/video/{ => fbdev}/omap2/omapfb/Makefile (100%)
rename drivers/video/{ => fbdev}/omap2/omapfb/omapfb-ioctl.c (100%)
rename drivers/video/{ => fbdev}/omap2/omapfb/omapfb-main.c (100%)
rename drivers/video/{ => fbdev}/omap2/omapfb/omapfb-sysfs.c (100%)
rename drivers/video/{ => fbdev}/omap2/omapfb/omapfb.h (100%)
rename drivers/video/{ => fbdev}/omap2/vrfb.c (100%)
rename drivers/video/{ => fbdev}/p9100.c (100%)
rename drivers/video/{ => fbdev}/platinumfb.c (100%)
rename drivers/video/{ => fbdev}/platinumfb.h (100%)
rename drivers/video/{ => fbdev}/pm2fb.c (100%)
rename drivers/video/{ => fbdev}/pm3fb.c (100%)
rename drivers/video/{ => fbdev}/pmag-aa-fb.c (100%)
rename drivers/video/{ => fbdev}/pmag-ba-fb.c (100%)
rename drivers/video/{ => fbdev}/pmagb-b-fb.c (100%)
rename drivers/video/{ => fbdev}/ps3fb.c (100%)
rename drivers/video/{ => fbdev}/pvr2fb.c (100%)
rename drivers/video/{ => fbdev}/pxa168fb.c (100%)
rename drivers/video/{ => fbdev}/pxa168fb.h (100%)
rename drivers/video/{ => fbdev}/pxa3xx-gcu.c (100%)
rename drivers/video/{ => fbdev}/pxa3xx-gcu.h (100%)
rename drivers/video/{ => fbdev}/pxafb.c (100%)
rename drivers/video/{ => fbdev}/pxafb.h (100%)
rename drivers/video/{ => fbdev}/q40fb.c (100%)
rename drivers/video/{ => fbdev}/riva/Makefile (100%)
rename drivers/video/{ => fbdev}/riva/fbdev.c (100%)
rename drivers/video/{ => fbdev}/riva/nv_driver.c (100%)
rename drivers/video/{ => fbdev}/riva/nv_type.h (100%)
rename drivers/video/{ => fbdev}/riva/nvreg.h (100%)
rename drivers/video/{ => fbdev}/riva/riva_hw.c (100%)
rename drivers/video/{ => fbdev}/riva/riva_hw.h (100%)
rename drivers/video/{ => fbdev}/riva/riva_tbl.h (100%)
rename drivers/video/{ => fbdev}/riva/rivafb-i2c.c (100%)
rename drivers/video/{ => fbdev}/riva/rivafb.h (100%)
rename drivers/video/{ => fbdev}/s1d13xxxfb.c (100%)
rename drivers/video/{ => fbdev}/s3c-fb.c (100%)
rename drivers/video/{ => fbdev}/s3c2410fb.c (100%)
rename drivers/video/{ => fbdev}/s3c2410fb.h (100%)
rename drivers/video/{ => fbdev}/s3fb.c (100%)
rename drivers/video/{ => fbdev}/sa1100fb.c (100%)
rename drivers/video/{ => fbdev}/sa1100fb.h (100%)
rename drivers/video/{ => fbdev}/savage/Makefile (100%)
rename drivers/video/{ => fbdev}/savage/savagefb-i2c.c (100%)
rename drivers/video/{ => fbdev}/savage/savagefb.h (100%)
rename drivers/video/{ => fbdev}/savage/savagefb_accel.c (100%)
rename drivers/video/{ => fbdev}/savage/savagefb_driver.c (100%)
rename drivers/video/{ => fbdev}/sbuslib.c (100%)
rename drivers/video/{ => fbdev}/sbuslib.h (100%)
rename drivers/video/{ => fbdev}/sgivwfb.c (100%)
rename drivers/video/{ => fbdev}/sh7760fb.c (100%)
rename drivers/video/{ => fbdev}/sh_mipi_dsi.c (100%)
rename drivers/video/{ => fbdev}/sh_mobile_hdmi.c (100%)
rename drivers/video/{ => fbdev}/sh_mobile_lcdcfb.c (100%)
rename drivers/video/{ => fbdev}/sh_mobile_lcdcfb.h (100%)
rename drivers/video/{ => fbdev}/sh_mobile_meram.c (100%)
rename drivers/video/{ => fbdev}/simplefb.c (100%)
rename drivers/video/{ => fbdev}/sis/300vtbl.h (100%)
rename drivers/video/{ => fbdev}/sis/310vtbl.h (100%)
rename drivers/video/{ => fbdev}/sis/Makefile (100%)
rename drivers/video/{ => fbdev}/sis/init.c (100%)
rename drivers/video/{ => fbdev}/sis/init.h (100%)
rename drivers/video/{ => fbdev}/sis/init301.c (100%)
rename drivers/video/{ => fbdev}/sis/init301.h (100%)
rename drivers/video/{ => fbdev}/sis/initdef.h (100%)
rename drivers/video/{ => fbdev}/sis/initextlfb.c (100%)
rename drivers/video/{ => fbdev}/sis/oem300.h (100%)
rename drivers/video/{ => fbdev}/sis/oem310.h (100%)
rename drivers/video/{ => fbdev}/sis/sis.h (100%)
rename drivers/video/{ => fbdev}/sis/sis_accel.c (100%)
rename drivers/video/{ => fbdev}/sis/sis_accel.h (100%)
rename drivers/video/{ => fbdev}/sis/sis_main.c (100%)
rename drivers/video/{ => fbdev}/sis/sis_main.h (100%)
rename drivers/video/{ => fbdev}/sis/vgatypes.h (100%)
rename drivers/video/{ => fbdev}/sis/vstruct.h (100%)
rename drivers/video/{ => fbdev}/skeletonfb.c (100%)
rename drivers/video/{ => fbdev}/sm501fb.c (100%)
rename drivers/video/{ => fbdev}/smscufx.c (100%)
rename drivers/video/{ => fbdev}/ssd1307fb.c (100%)
rename drivers/video/{ => fbdev}/sstfb.c (100%)
rename drivers/video/{ => fbdev}/sticore.h (100%)
rename drivers/video/{ => fbdev}/stifb.c (100%)
rename drivers/video/{ => fbdev}/sunxvr1000.c (100%)
rename drivers/video/{ => fbdev}/sunxvr2500.c (100%)
rename drivers/video/{ => fbdev}/sunxvr500.c (100%)
rename drivers/video/{ => fbdev}/tcx.c (100%)
rename drivers/video/{ => fbdev}/tdfxfb.c (100%)
rename drivers/video/{ => fbdev}/tgafb.c (100%)
rename drivers/video/{ => fbdev}/tmiofb.c (100%)
rename drivers/video/{ => fbdev}/tridentfb.c (100%)
rename drivers/video/{ => fbdev}/udlfb.c (100%)
rename drivers/video/{ => fbdev}/uvesafb.c (100%)
rename drivers/video/{ => fbdev}/valkyriefb.c (100%)
rename drivers/video/{ => fbdev}/valkyriefb.h (100%)
rename drivers/video/{ => fbdev}/vermilion/Makefile (100%)
rename drivers/video/{ => fbdev}/vermilion/cr_pll.c (100%)
rename drivers/video/{ => fbdev}/vermilion/vermilion.c (100%)
rename drivers/video/{ => fbdev}/vermilion/vermilion.h (100%)
rename drivers/video/{ => fbdev}/vesafb.c (100%)
rename drivers/video/{ => fbdev}/vfb.c (100%)
rename drivers/video/{ => fbdev}/vga16fb.c (100%)
rename drivers/video/{ => fbdev}/via/Makefile (100%)
rename drivers/video/{ => fbdev}/via/accel.c (100%)
rename drivers/video/{ => fbdev}/via/accel.h (100%)
rename drivers/video/{ => fbdev}/via/chip.h (100%)
rename drivers/video/{ => fbdev}/via/debug.h (100%)
rename drivers/video/{ => fbdev}/via/dvi.c (100%)
rename drivers/video/{ => fbdev}/via/dvi.h (100%)
rename drivers/video/{ => fbdev}/via/global.c (100%)
rename drivers/video/{ => fbdev}/via/global.h (100%)
rename drivers/video/{ => fbdev}/via/hw.c (100%)
rename drivers/video/{ => fbdev}/via/hw.h (100%)
rename drivers/video/{ => fbdev}/via/ioctl.c (100%)
rename drivers/video/{ => fbdev}/via/ioctl.h (100%)
rename drivers/video/{ => fbdev}/via/lcd.c (100%)
rename drivers/video/{ => fbdev}/via/lcd.h (100%)
rename drivers/video/{ => fbdev}/via/share.h (100%)
rename drivers/video/{ => fbdev}/via/tblDPASetting.c (100%)
rename drivers/video/{ => fbdev}/via/tblDPASetting.h (100%)
rename drivers/video/{ => fbdev}/via/via-core.c (100%)
rename drivers/video/{ => fbdev}/via/via-gpio.c (100%)
rename drivers/video/{ => fbdev}/via/via_aux.c (100%)
rename drivers/video/{ => fbdev}/via/via_aux.h (100%)
rename drivers/video/{ => fbdev}/via/via_aux_ch7301.c (100%)
rename drivers/video/{ => fbdev}/via/via_aux_edid.c (100%)
rename drivers/video/{ => fbdev}/via/via_aux_sii164.c (100%)
rename drivers/video/{ => fbdev}/via/via_aux_vt1621.c (100%)
rename drivers/video/{ => fbdev}/via/via_aux_vt1622.c (100%)
rename drivers/video/{ => fbdev}/via/via_aux_vt1625.c (100%)
rename drivers/video/{ => fbdev}/via/via_aux_vt1631.c (100%)
rename drivers/video/{ => fbdev}/via/via_aux_vt1632.c (100%)
rename drivers/video/{ => fbdev}/via/via_aux_vt1636.c (100%)
rename drivers/video/{ => fbdev}/via/via_clock.c (100%)
rename drivers/video/{ => fbdev}/via/via_clock.h (100%)
rename drivers/video/{ => fbdev}/via/via_i2c.c (100%)
rename drivers/video/{ => fbdev}/via/via_modesetting.c (100%)
rename drivers/video/{ => fbdev}/via/via_modesetting.h (100%)
rename drivers/video/{ => fbdev}/via/via_utility.c (100%)
rename drivers/video/{ => fbdev}/via/via_utility.h (100%)
rename drivers/video/{ => fbdev}/via/viafbdev.c (100%)
rename drivers/video/{ => fbdev}/via/viafbdev.h (100%)
rename drivers/video/{ => fbdev}/via/viamode.c (100%)
rename drivers/video/{ => fbdev}/via/viamode.h (100%)
rename drivers/video/{ => fbdev}/via/vt1636.c (100%)
rename drivers/video/{ => fbdev}/via/vt1636.h (100%)
rename drivers/video/{ => fbdev}/vt8500lcdfb.c (100%)
rename drivers/video/{ => fbdev}/vt8500lcdfb.h (100%)
rename drivers/video/{ => fbdev}/vt8623fb.c (100%)
rename drivers/video/{ => fbdev}/w100fb.c (100%)
rename drivers/video/{ => fbdev}/w100fb.h (100%)
rename drivers/video/{ => fbdev}/wm8505fb.c (100%)
rename drivers/video/{ => fbdev}/wm8505fb_regs.h (100%)
rename drivers/video/{ => fbdev}/wmt_ge_rops.c (99%)
rename drivers/video/{ => fbdev}/wmt_ge_rops.h (100%)
rename drivers/video/{ => fbdev}/xen-fbfront.c (100%)
rename drivers/video/{ => fbdev}/xilinxfb.c (100%)
delete mode 100644 drivers/video/omap2/Kconfig
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: [GIT PULL] fbdev reorder for 3.15
From: Linus Torvalds @ 2014-04-09 19:23 UTC (permalink / raw)
To: Tomi Valkeinen, Stephen Rothwell
Cc: linux-kernel, linux-fbdev, Jean-Christophe PLAGNIOL-VILLARD
In-Reply-To: <5345258C.1070308@ti.com>
On Wed, Apr 9, 2014 at 3:48 AM, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
>
> The patches are based on 3.14-rc4, and cause big conflicts, although the
> conflicts are not complex as such. They are resolved in linux-next, and also in
> my two branches below. The first one contains a resolved merge for your master
> branch, the second one contains rebased patches on top of your master.
Ok, I did the merge, and it wasn't horrid, although it was good that
you had pre-merged and I could double-check because I did miss some
things (that would likely have shown up in my test builds, but maybe
not).
But looking at the reaulting history, I think I will undo the merge
after all, and end up using your rebased branch instead. Simply
because the mixed file movement and other changes during this merge
window just make the end result unnecessarily hard to follow wrt how
the changes happened.
Let me ruminate on this a while. I don't generally like rebasing, but
for something fairly "mindless" like the file rename, it seems a
better option.
Are there other things pending in this area? Because if there are, I
think I'll take you up on your "or we can rebase on top of -rc1" offer
instead.
Linus
^ permalink raw reply
* Re: [GIT PULL] fbdev reorder for 3.15
From: Stephen Rothwell @ 2014-04-09 23:04 UTC (permalink / raw)
To: Linus Torvalds
Cc: Tomi Valkeinen, linux-kernel, linux-fbdev,
Jean-Christophe PLAGNIOL-VILLARD
In-Reply-To: <CA+55aFytXaTBE6Uf2H=C-XX01Pk1-QArF6u7+yhditk-cJLVQw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2571 bytes --]
Hi Linus,
On Wed, 9 Apr 2014 12:23:47 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> Are there other things pending in this area? Because if there are, I
> think I'll take you up on your "or we can rebase on top of -rc1" offer
> instead.
I have only 2 other commits that touch drivers/video in linux-next and
they are both from Tomi and both only touch a couple of files in
drivers/video/omap2/dss (and drivers/video/fbdev/omap2/dss/ since one of
them is based after the move).
I also have the following merge fix patch in linux-next (maybe you
already have this in the test merge branches):
From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Tue, 4 Mar 2014 16:11:12 +1100
Subject: [PATCH] video: fbdev: fix up for removal of SGI Visual Workstation
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
drivers/video/fbdev/Kconfig | 11 +----------
drivers/video/fbdev/Makefile | 1 -
2 files changed, 1 insertion(+), 11 deletions(-)
diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
index 31c3f3ddfd38..6b1984c7f4e7 100644
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -765,18 +765,9 @@ config FB_HGA
As this card technology is at least 25 years old,
most people will answer N here.
-config FB_SGIVW
- tristate "SGI Visual Workstation framebuffer support"
- depends on FB && X86_VISWS
- select FB_CFB_FILLRECT
- select FB_CFB_COPYAREA
- select FB_CFB_IMAGEBLIT
- help
- SGI Visual Workstation support for framebuffer graphics.
-
config FB_GBE
bool "SGI Graphics Backend frame buffer support"
- depends on (FB = y) && (SGI_IP32 || X86_VISWS)
+ depends on (FB = y) && SGI_IP32
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
diff --git a/drivers/video/fbdev/Makefile b/drivers/video/fbdev/Makefile
index 6ef2c66110e3..0284f2a12538 100644
--- a/drivers/video/fbdev/Makefile
+++ b/drivers/video/fbdev/Makefile
@@ -55,7 +55,6 @@ obj-$(CONFIG_FB_CG14) += cg14.o sbuslib.o
obj-$(CONFIG_FB_P9100) += p9100.o sbuslib.o
obj-$(CONFIG_FB_TCX) += tcx.o sbuslib.o
obj-$(CONFIG_FB_LEO) += leo.o sbuslib.o
-obj-$(CONFIG_FB_SGIVW) += sgivwfb.o
obj-$(CONFIG_FB_ACORN) += acornfb.o
obj-$(CONFIG_FB_ATARI) += atafb.o c2p_iplan2.o atafb_mfb.o \
atafb_iplan2p2.o atafb_iplan2p4.o atafb_iplan2p8.o
--
1.9.0
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply related
* Re: [GIT PULL] fbdev reorder for 3.15
From: Tomi Valkeinen @ 2014-04-10 5:50 UTC (permalink / raw)
To: Linus Torvalds, Stephen Rothwell
Cc: linux-kernel, linux-fbdev, Jean-Christophe PLAGNIOL-VILLARD
In-Reply-To: <CA+55aFytXaTBE6Uf2H=C-XX01Pk1-QArF6u7+yhditk-cJLVQw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 511 bytes --]
On 09/04/14 22:23, Linus Torvalds wrote:
> Are there other things pending in this area? Because if there are, I
> think I'll take you up on your "or we can rebase on top of -rc1" offer
> instead.
Nothing from me, and as Stephen said, linux-next doesn't contain
anything either. So I think we're pretty safe here, but maybe you can
wait until you're ready to tag the -rc1, and merge this only then. If
something conflicting has popped up, I can then do a rebase on top of
-rc1 instead.
Tomi
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* [PATCH] video: bf54x-lq043fb: fix build error
From: Steven Miao @ 2014-04-12 1:30 UTC (permalink / raw)
To: Jean-Christophe Plagniol-Villard, Tomi Valkeinen
Cc: adi-buildroot-devel, linux-kernel, linux-fbdev, Steven Miao
From: Steven Miao <realmz6@gmail.com>
should include linux/gpio.h
Signed-off-by: Steven Miao <realmz6@gmail.com>
---
drivers/video/bf54x-lq043fb.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
index 42b8f9d..d2b54f1 100644
--- a/drivers/video/bf54x-lq043fb.c
+++ b/drivers/video/bf54x-lq043fb.c
@@ -49,6 +49,7 @@
#include <linux/spinlock.h>
#include <linux/dma-mapping.h>
#include <linux/platform_device.h>
+#include <linux/gpio.h>
#include <asm/blackfin.h>
#include <asm/irq.h>
--
1.7.9.5
^ permalink raw reply related
* [PATCH v2 1/3] video: clps711x: Add new Cirrus Logic CLPS711X framebuffer driver
From: Alexander Shiyan @ 2014-04-12 6:53 UTC (permalink / raw)
To: linux-fbdev
This adds support for the framebuffer available in the Cirrus
Logic CLPS711X CPUs.
FB features:
- 1-2-4 bits per pixel.
- Programmable panel size to a maximum of 1024x256 at 4 bps.
- Relocatible Frame Buffer (SRAM or SDRAM).
- Programmable refresh rates.
- 16 gray scale values.
This new driver supports usage with devicetree and as a general
change it removes last user of <mach/hardware.h> for CLPS711X targets,
so this subarch will fully prepared to switch to multiplatform.
The driver have been tested with custom board equipped Cirrus Logic
EP7312 in DT and non-DT mode.
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
drivers/video/fbdev/clps711x-fb.c | 456 ++++++++++++++++++++++++++++++++++++++
1 file changed, 456 insertions(+)
create mode 100644 drivers/video/fbdev/clps711x-fb.c
diff --git a/drivers/video/fbdev/clps711x-fb.c b/drivers/video/fbdev/clps711x-fb.c
new file mode 100644
index 0000000..87fd42d
--- /dev/null
+++ b/drivers/video/fbdev/clps711x-fb.c
@@ -0,0 +1,456 @@
+/*
+ * Cirrus Logic CLPS711X FB driver
+ *
+ * Copyright (C) 2014 Alexander Shiyan <shc_work@mail.ru>
+ * Based on driver by Russell King <rmk@arm.linux.org.uk>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <linux/clk.h>
+#include <linux/fb.h>
+#include <linux/io.h>
+#include <linux/lcd.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+#include <linux/regmap.h>
+#include <linux/mfd/syscon.h>
+#include <linux/mfd/syscon/clps711x.h>
+#include <linux/regulator/consumer.h>
+#include <video/of_display_timing.h>
+
+#define CLPS711X_FB_NAME "clps711x-fb"
+#define CLPS711X_FB_BPP_MAX (4)
+
+/* Registers relative to LCDCON */
+#define CLPS711X_LCDCON (0x0000)
+# define LCDCON_GSEN BIT(30)
+# define LCDCON_GSMD BIT(31)
+#define CLPS711X_PALLSW (0x0280)
+#define CLPS711X_PALMSW (0x02c0)
+#define CLPS711X_FBADDR (0x0d40)
+
+struct clps711x_fb_info {
+ struct clk *clk;
+ void __iomem *base;
+ struct regmap *syscon;
+ resource_size_t buffsize;
+ struct fb_videomode mode;
+ struct regulator *lcd_pwr;
+ u32 ac_prescale;
+ bool cmap_invert;
+};
+
+static int clps711x_fb_setcolreg(u_int regno, u_int red, u_int green,
+ u_int blue, u_int transp, struct fb_info *info)
+{
+ struct clps711x_fb_info *cfb = info->par;
+ u32 level, mask, shift;
+
+ if (regno >= BIT(info->var.bits_per_pixel))
+ return -EINVAL;
+
+ shift = 4 * (regno & 7);
+ mask = 0xf << shift;
+ /* gray = 0.30*R + 0.58*G + 0.11*B */
+ level = (((red * 77 + green * 151 + blue * 28) >> 20) << shift) & mask;
+ if (cfb->cmap_invert)
+ level = 0xf - level;
+
+ regno = (regno < 8) ? CLPS711X_PALLSW : CLPS711X_PALMSW;
+
+ writel((readl(cfb->base + regno) & ~mask) | level, cfb->base + regno);
+
+ return 0;
+}
+
+static int clps711x_fb_check_var(struct fb_var_screeninfo *var,
+ struct fb_info *info)
+{
+ u32 val;
+
+ if (var->bits_per_pixel < 1 ||
+ var->bits_per_pixel > CLPS711X_FB_BPP_MAX)
+ return -EINVAL;
+
+ if (!var->pixclock)
+ return -EINVAL;
+
+ val = DIV_ROUND_UP(var->xres, 16) - 1;
+ if (val < 0x01 || val > 0x3f)
+ return -EINVAL;
+
+ val = DIV_ROUND_UP(var->yres * var->xres * var->bits_per_pixel, 128);
+ val--;
+ if (val < 0x001 || val > 0x1fff)
+ return -EINVAL;
+
+ var->transp.msb_right = 0;
+ var->transp.offset = 0;
+ var->transp.length = 0;
+ var->red.msb_right = 0;
+ var->red.offset = 0;
+ var->red.length = var->bits_per_pixel;
+ var->green = var->red;
+ var->blue = var->red;
+ var->grayscale = var->bits_per_pixel > 1;
+
+ return 0;
+}
+
+static int clps711x_fb_set_par(struct fb_info *info)
+{
+ struct clps711x_fb_info *cfb = info->par;
+ resource_size_t size;
+ u32 lcdcon, pps;
+
+ size = (info->var.xres * info->var.yres * info->var.bits_per_pixel) / 8;
+ if (size > cfb->buffsize)
+ return -EINVAL;
+
+ switch (info->var.bits_per_pixel) {
+ case 1:
+ info->fix.visual = FB_VISUAL_MONO01;
+ break;
+ case 2:
+ case 4:
+ info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ info->fix.line_length = info->var.xres * info->var.bits_per_pixel / 8;
+ info->fix.smem_len = size;
+
+ lcdcon = (info->var.xres * info->var.yres *
+ info->var.bits_per_pixel) / 128 - 1;
+ lcdcon |= ((info->var.xres / 16) - 1) << 13;
+ lcdcon |= (cfb->ac_prescale & 0x1f) << 25;
+
+ pps = clk_get_rate(cfb->clk) / (PICOS2KHZ(info->var.pixclock) * 1000);
+ if (pps)
+ pps--;
+ lcdcon |= (pps & 0x3f) << 19;
+
+ if (info->var.bits_per_pixel = 4)
+ lcdcon |= LCDCON_GSMD;
+ if (info->var.bits_per_pixel >= 2)
+ lcdcon |= LCDCON_GSEN;
+
+ /* LCDCON must only be changed while the LCD is disabled */
+ regmap_update_bits(cfb->syscon, SYSCON_OFFSET, SYSCON1_LCDEN, 0);
+ writel(lcdcon, cfb->base + CLPS711X_LCDCON);
+ regmap_update_bits(cfb->syscon, SYSCON_OFFSET,
+ SYSCON1_LCDEN, SYSCON1_LCDEN);
+
+ return 0;
+}
+
+static int clps711x_fb_blank(int blank, struct fb_info *info)
+{
+ /* Return happy */
+ return 0;
+}
+
+static struct fb_ops clps711x_fb_ops = {
+ .owner = THIS_MODULE,
+ .fb_setcolreg = clps711x_fb_setcolreg,
+ .fb_check_var = clps711x_fb_check_var,
+ .fb_set_par = clps711x_fb_set_par,
+ .fb_blank = clps711x_fb_blank,
+ .fb_fillrect = sys_fillrect,
+ .fb_copyarea = sys_copyarea,
+ .fb_imageblit = sys_imageblit,
+};
+
+static int clps711x_lcd_check_fb(struct lcd_device *lcddev, struct fb_info *fi)
+{
+ struct clps711x_fb_info *cfb = dev_get_drvdata(&lcddev->dev);
+
+ return (!fi || fi->par = cfb) ? 1 : 0;
+}
+
+static int clps711x_lcd_get_power(struct lcd_device *lcddev)
+{
+ struct clps711x_fb_info *cfb = dev_get_drvdata(&lcddev->dev);
+
+ if (!IS_ERR_OR_NULL(cfb->lcd_pwr))
+ return regulator_is_enabled(cfb->lcd_pwr);
+
+ return 1;
+}
+
+static int clps711x_lcd_set_power(struct lcd_device *lcddev, int power)
+{
+ struct clps711x_fb_info *cfb = dev_get_drvdata(&lcddev->dev);
+
+ if (!IS_ERR_OR_NULL(cfb->lcd_pwr)) {
+ if (power)
+ return regulator_enable(cfb->lcd_pwr);
+ else
+ return regulator_disable(cfb->lcd_pwr);
+ }
+
+ return 0;
+}
+
+static struct lcd_ops clps711x_lcd_ops = {
+ .check_fb = clps711x_lcd_check_fb,
+ .get_power = clps711x_lcd_get_power,
+ .set_power = clps711x_lcd_set_power,
+};
+
+static int clps711x_fb_get_mode(struct platform_device *pdev)
+{
+ struct fb_info *info = platform_get_drvdata(pdev);
+ bool *pinvert = dev_get_platdata(&pdev->dev);
+ struct clps711x_fb_info *cfb = info->par;
+ unsigned long pixclk;
+ unsigned int val;
+ int ret;
+
+ cfb->syscon = syscon_regmap_lookup_by_pdevname("syscon.1");
+ if (IS_ERR(cfb->syscon))
+ return PTR_ERR(cfb->syscon);
+
+ ret = regmap_read(cfb->syscon, SYSCON_OFFSET, &val);
+ if (ret)
+ return ret;
+
+ if (pinvert)
+ cfb->cmap_invert = *pinvert;
+
+ /* Get mode from LCD if active */
+ if (val & SYSCON1_LCDEN) {
+ val = readl(cfb->base + CLPS711X_LCDCON);
+
+ switch (val & (LCDCON_GSMD | LCDCON_GSEN)) {
+ case LCDCON_GSMD | LCDCON_GSEN:
+ info->var.bits_per_pixel = 4;
+ break;
+ case LCDCON_GSEN:
+ info->var.bits_per_pixel = 2;
+ break;
+ default:
+ info->var.bits_per_pixel = 1;
+ break;
+ }
+
+ cfb->mode.xres = (((val >> 13) & 0x3f) + 1) * 16;
+ cfb->mode.yres = (((val & 0x1fff) + 1) * 128) /
+ (cfb->mode.xres * info->var.bits_per_pixel);
+ cfb->ac_prescale = (val >> 25) & 0x1f;
+ pixclk = clk_get_rate(cfb->clk) / (((val >> 19) & 0x3f) + 1);
+ } else {
+ /* Fixed setup for existing users */
+ info->var.bits_per_pixel = 4;
+ cfb->mode.xres = 640;
+ cfb->mode.yres = 240;
+ cfb->ac_prescale = 13;
+ pixclk = 10000000;
+ }
+
+ cfb->mode.refresh = pixclk / (cfb->mode.xres * cfb->mode.yres);
+ cfb->mode.pixclock = KHZ2PICOS(pixclk / 1000);
+
+ return 0;
+}
+
+static int clps711x_fb_get_mode_dt(struct platform_device *pdev)
+{
+ struct device_node *disp, *np = pdev->dev.of_node;
+ struct fb_info *info = platform_get_drvdata(pdev);
+ struct clps711x_fb_info *cfb = info->par;
+ int ret;
+
+ cfb->syscon + syscon_regmap_lookup_by_compatible("cirrus,clps711x-syscon1");
+ if (IS_ERR(cfb->syscon))
+ return PTR_ERR(cfb->syscon);
+
+ disp = of_parse_phandle(np, "display", 0);
+ if (!disp) {
+ dev_err(&pdev->dev, "No display defined\n");
+ return -ENODATA;
+ }
+
+ ret = of_get_fb_videomode(disp, &cfb->mode, OF_USE_NATIVE_MODE);
+ if (ret)
+ return ret;
+
+ of_property_read_u32(disp, "ac-prescale", &cfb->ac_prescale);
+ cfb->cmap_invert = of_property_read_bool(disp, "cmap-invert");
+
+ return of_property_read_u32(disp, "bits-per-pixel",
+ &info->var.bits_per_pixel);
+}
+
+static int clps711x_fb_probe(struct platform_device *pdev)
+{
+ struct device *dev = &pdev->dev;
+ struct device_node *np = dev->of_node;
+ struct clps711x_fb_info *cfb;
+ struct lcd_device *lcd;
+ struct fb_info *info;
+ struct resource *res;
+ int ret = -ENOENT;
+ u32 val;
+
+ if (fb_get_options(CLPS711X_FB_NAME, NULL))
+ return -ENODEV;
+
+ info = framebuffer_alloc(sizeof(*cfb), dev);
+ if (!info)
+ return -ENOMEM;
+
+ cfb = info->par;
+ platform_set_drvdata(pdev, info);
+
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res)
+ goto out_fb_release;
+ cfb->base = devm_ioremap(dev, res->start, resource_size(res));
+ if (!cfb->base) {
+ ret = -ENOMEM;
+ goto out_fb_release;
+ }
+
+ info->fix.mmio_start = res->start;
+ info->fix.mmio_len = resource_size(res);
+
+ res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
+ info->screen_base = devm_ioremap_resource(dev, res);
+ if (IS_ERR(info->screen_base)) {
+ ret = PTR_ERR(info->screen_base);
+ goto out_fb_release;
+ }
+
+ /* Physical address should be aligned to 256 MiB */
+ if (res->start & 0x0fffffff) {
+ ret = -EINVAL;
+ goto out_fb_release;
+ }
+
+ info->apertures = alloc_apertures(1);
+ if (!info->apertures) {
+ ret = -ENOMEM;
+ goto out_fb_release;
+ }
+
+ cfb->buffsize = resource_size(res);
+ info->fix.smem_start = res->start;
+ info->apertures->ranges[0].base = info->fix.smem_start;
+ info->apertures->ranges[0].size = cfb->buffsize;
+
+ cfb->clk = devm_clk_get(dev, NULL);
+ if (IS_ERR(cfb->clk)) {
+ ret = PTR_ERR(cfb->clk);
+ goto out_fb_release;
+ }
+
+ ret = np ? clps711x_fb_get_mode_dt(pdev) : clps711x_fb_get_mode(pdev);
+ if (ret)
+ goto out_fb_release;
+
+ /* Force disable LCD on any mismatch */
+ if (info->fix.smem_start != (readb(cfb->base + CLPS711X_FBADDR) << 28))
+ regmap_update_bits(cfb->syscon, SYSCON_OFFSET,
+ SYSCON1_LCDEN, 0);
+
+ ret = regmap_read(cfb->syscon, SYSCON_OFFSET, &val);
+ if (ret)
+ goto out_fb_release;
+
+ if (!(val & SYSCON1_LCDEN)) {
+ /* Setup start FB address */
+ writeb(info->fix.smem_start >> 28, cfb->base + CLPS711X_FBADDR);
+ /* Clean FB memory */
+ memset(info->screen_base, 0, cfb->buffsize);
+ }
+
+ cfb->lcd_pwr = devm_regulator_get(dev, "lcd");
+ if (PTR_ERR(cfb->lcd_pwr) = -EPROBE_DEFER) {
+ ret = -EPROBE_DEFER;
+ goto out_fb_release;
+ }
+
+ info->fbops = &clps711x_fb_ops;
+ info->flags = FBINFO_DEFAULT;
+ info->var.activate = FB_ACTIVATE_FORCE | FB_ACTIVATE_NOW;
+ info->var.height = -1;
+ info->var.width = -1;
+ info->var.vmode = FB_VMODE_NONINTERLACED;
+ info->fix.type = FB_TYPE_PACKED_PIXELS;
+ info->fix.accel = FB_ACCEL_NONE;
+ strlcpy(info->fix.id, CLPS711X_FB_NAME, sizeof(info->fix.id));
+ fb_videomode_to_var(&info->var, &cfb->mode);
+
+ ret = fb_alloc_cmap(&info->cmap, BIT(CLPS711X_FB_BPP_MAX), 0);
+ if (ret)
+ goto out_fb_release;
+
+ ret = fb_set_var(info, &info->var);
+ if (ret)
+ goto out_fb_dealloc_cmap;
+
+ ret = register_framebuffer(info);
+ if (ret)
+ goto out_fb_dealloc_cmap;
+
+ lcd = devm_lcd_device_register(dev, "clps711x-lcd", dev, cfb,
+ &clps711x_lcd_ops);
+ if (!IS_ERR(lcd))
+ return 0;
+
+ ret = PTR_ERR(lcd);
+ unregister_framebuffer(info);
+
+out_fb_dealloc_cmap:
+ regmap_update_bits(cfb->syscon, SYSCON_OFFSET, SYSCON1_LCDEN, 0);
+ fb_dealloc_cmap(&info->cmap);
+
+out_fb_release:
+ framebuffer_release(info);
+
+ return ret;
+}
+
+static int clps711x_fb_remove(struct platform_device *pdev)
+{
+ struct fb_info *info = platform_get_drvdata(pdev);
+ struct clps711x_fb_info *cfb = info->par;
+
+ regmap_update_bits(cfb->syscon, SYSCON_OFFSET, SYSCON1_LCDEN, 0);
+
+ unregister_framebuffer(info);
+ fb_dealloc_cmap(&info->cmap);
+ framebuffer_release(info);
+
+ return 0;
+}
+
+static const struct of_device_id __maybe_unused clps711x_fb_dt_ids[] = {
+ { .compatible = "cirrus,clps711x-fb", },
+ { }
+};
+MODULE_DEVICE_TABLE(of, clps711x_fb_dt_ids);
+
+static struct platform_driver clps711x_fb_driver = {
+ .driver = {
+ .name = CLPS711X_FB_NAME,
+ .owner = THIS_MODULE,
+ .of_match_table = of_match_ptr(clps711x_fb_dt_ids),
+ },
+ .probe = clps711x_fb_probe,
+ .remove = clps711x_fb_remove,
+};
+module_platform_driver(clps711x_fb_driver);
+
+MODULE_AUTHOR("Alexander Shiyan <shc_work@mail.ru>");
+MODULE_DESCRIPTION("Cirrus Logic CLPS711X FB driver");
+MODULE_LICENSE("GPL");
--
1.8.3.2
^ permalink raw reply related
* [PATCH v2 2/3] video: clps711x: Switch CLPS711X boards to use new FB driver
From: Alexander Shiyan @ 2014-04-12 6:53 UTC (permalink / raw)
To: linux-fbdev
This patch removes old implementation of Cirrus Logic CLPS711X FB
driver and switch current users to use new one.
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
arch/arm/mach-clps711x/board-autcpu12.c | 2 +-
arch/arm/mach-clps711x/board-edb7211.c | 2 +-
arch/arm/mach-clps711x/board-p720t.c | 2 +-
arch/arm/mach-clps711x/devices.c | 22 +++
arch/arm/mach-clps711x/devices.h | 1 +
drivers/video/fbdev/Kconfig | 18 +-
drivers/video/fbdev/Makefile | 2 +-
drivers/video/fbdev/clps711xfb.c | 315 --------------------------------
8 files changed, 38 insertions(+), 326 deletions(-)
delete mode 100644 drivers/video/fbdev/clps711xfb.c
diff --git a/arch/arm/mach-clps711x/board-autcpu12.c b/arch/arm/mach-clps711x/board-autcpu12.c
index d62ca16..ed8369d 100644
--- a/arch/arm/mach-clps711x/board-autcpu12.c
+++ b/arch/arm/mach-clps711x/board-autcpu12.c
@@ -249,7 +249,7 @@ static void __init autcpu12_init(void)
{
clps711x_devices_init();
platform_device_register(&autcpu12_flash_pdev);
- platform_device_register_simple("video-clps711x", 0, NULL, 0);
+ clps711x_add_fb(CLPS711X_SRAM_BASE, CLPS711X_SRAM_SIZE, false);
platform_device_register_simple("cs89x0", 0, autcpu12_cs8900_resource,
ARRAY_SIZE(autcpu12_cs8900_resource));
platform_device_register(&autcpu12_mmgpio_pdev);
diff --git a/arch/arm/mach-clps711x/board-edb7211.c b/arch/arm/mach-clps711x/board-edb7211.c
index 0776098..973900c 100644
--- a/arch/arm/mach-clps711x/board-edb7211.c
+++ b/arch/arm/mach-clps711x/board-edb7211.c
@@ -166,7 +166,7 @@ static void __init edb7211_init_late(void)
platform_device_register_data(&platform_bus, "generic-bl", 0,
&edb7211_lcd_backlight_pdata,
sizeof(edb7211_lcd_backlight_pdata));
- platform_device_register_simple("video-clps711x", 0, NULL, 0);
+ clps711x_add_fb(CLPS711X_SDRAM0_BASE, VIDEORAM_SIZE, true);
platform_device_register_simple("cs89x0", 0, edb7211_cs8900_resource,
ARRAY_SIZE(edb7211_cs8900_resource));
platform_device_register_data(&platform_bus, "i2c-gpio", 0,
diff --git a/arch/arm/mach-clps711x/board-p720t.c b/arch/arm/mach-clps711x/board-p720t.c
index 67b7337..af35aa8 100644
--- a/arch/arm/mach-clps711x/board-p720t.c
+++ b/arch/arm/mach-clps711x/board-p720t.c
@@ -354,7 +354,7 @@ static void __init p720t_init_late(void)
platform_device_register_data(&platform_bus, "generic-bl", 0,
&p720t_lcd_backlight_pdata,
sizeof(p720t_lcd_backlight_pdata));
- platform_device_register_simple("video-clps711x", 0, NULL, 0);
+ clps711x_add_fb(CLPS711X_SRAM_BASE, CLPS711X_SRAM_SIZE, false);
platform_device_register_data(&platform_bus, "leds-gpio", 0,
&p720t_gpio_led_pdata,
sizeof(p720t_gpio_led_pdata));
diff --git a/arch/arm/mach-clps711x/devices.c b/arch/arm/mach-clps711x/devices.c
index 2001488..d32c73f 100644
--- a/arch/arm/mach-clps711x/devices.c
+++ b/arch/arm/mach-clps711x/devices.c
@@ -14,6 +14,28 @@
#include <mach/hardware.h>
+static bool fb_invert __initdata;
+
+void __init clps711x_add_fb(phys_addr_t base, resource_size_t size, bool invert)
+{
+ struct resource res[2];
+
+ memset(res, 0, sizeof(res));
+
+ res[0].flags = IORESOURCE_MEM;
+ res[0].start = CLPS711X_PHYS_BASE + LCDCON;
+ res[0].end = CLPS711X_PHYS_BASE + FBADDR + 3;
+ res[1].flags = IORESOURCE_MEM;
+ res[1].start = base;
+ res[1].end = base + size - 1;
+ fb_invert = invert;
+
+ platform_device_register_resndata(NULL, "clps711x-fb",
+ PLATFORM_DEVID_NONE,
+ res, ARRAY_SIZE(res),
+ &fb_invert, sizeof(fb_invert));
+}
+
static const phys_addr_t clps711x_gpios[][2] __initconst = {
{ PADR, PADDR },
{ PBDR, PBDDR },
diff --git a/arch/arm/mach-clps711x/devices.h b/arch/arm/mach-clps711x/devices.h
index a5efc17..3a44153 100644
--- a/arch/arm/mach-clps711x/devices.h
+++ b/arch/arm/mach-clps711x/devices.h
@@ -9,4 +9,5 @@
* (at your option) any later version.
*/
+void clps711x_add_fb(phys_addr_t, resource_size_t, bool);
void clps711x_devices_init(void);
diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
index 45fd7f3..d1f6dca 100644
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -302,14 +302,18 @@ config FB_ACORN
unsure, say N.
config FB_CLPS711X
- bool "CLPS711X LCD support"
- depends on (FB = y) && ARM && ARCH_CLPS711X
- select FB_CFB_FILLRECT
- select FB_CFB_COPYAREA
- select FB_CFB_IMAGEBLIT
+ tristate "CLPS711X LCD support"
+ depends on FB && (ARCH_CLPS711X || COMPILE_TEST)
+ select BACKLIGHT_LCD_SUPPORT
+ select FB_MODE_HELPERS
+ select FB_SYS_FILLRECT
+ select FB_SYS_COPYAREA
+ select FB_SYS_IMAGEBLIT
+ select LCD_CLASS_DEVICE
+ select VIDEOMODE_HELPERS
help
- Say Y to enable the Framebuffer driver for the CLPS7111 and
- EP7212 processors.
+ Say Y to enable the Framebuffer driver for the Cirrus Logic
+ CLPS711X CPUs.
config FB_SA1100
bool "SA-1100 LCD support"
diff --git a/drivers/video/fbdev/Makefile b/drivers/video/fbdev/Makefile
index 0284f2a..0164bb1 100644
--- a/drivers/video/fbdev/Makefile
+++ b/drivers/video/fbdev/Makefile
@@ -14,7 +14,7 @@ obj-$(CONFIG_FB_WMT_GE_ROPS) += wmt_ge_rops.o
# Hardware specific drivers go first
obj-$(CONFIG_FB_AMIGA) += amifb.o c2p_planar.o
obj-$(CONFIG_FB_ARC) += arcfb.o
-obj-$(CONFIG_FB_CLPS711X) += clps711xfb.o
+obj-$(CONFIG_FB_CLPS711X) += clps711x-fb.o
obj-$(CONFIG_FB_CYBER2000) += cyber2000fb.o
obj-$(CONFIG_FB_GRVGA) += grvga.o
obj-$(CONFIG_FB_PM2) += pm2fb.o
diff --git a/drivers/video/fbdev/clps711xfb.c b/drivers/video/fbdev/clps711xfb.c
deleted file mode 100644
index f009806..0000000
--- a/drivers/video/fbdev/clps711xfb.c
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * linux/drivers/video/clps711xfb.c
- *
- * Copyright (C) 2000-2001 Deep Blue Solutions Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Framebuffer driver for the CLPS7111 and EP7212 processors.
- */
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/slab.h>
-#include <linux/fb.h>
-#include <linux/init.h>
-#include <linux/delay.h>
-#include <linux/platform_device.h>
-
-#include <mach/hardware.h>
-#include <asm/mach-types.h>
-#include <linux/uaccess.h>
-
-struct fb_info *cfb;
-
-#define CMAP_MAX_SIZE 16
-
-/*
- * LCD AC Prescale. This comes from the LCD panel manufacturers specifications.
- * This determines how many clocks + 1 of CL1 before the M signal toggles.
- * The number of lines on the display must not be divisible by this number.
- */
-static unsigned int lcd_ac_prescale = 13;
-
-/*
- * Set a single color register. Return != 0 for invalid regno.
- */
-static int
-clps7111fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
- u_int transp, struct fb_info *info)
-{
- unsigned int level, mask, shift, pal;
-
- if (regno >= (1 << info->var.bits_per_pixel))
- return 1;
-
- /* gray = 0.30*R + 0.58*G + 0.11*B */
- level = (red * 77 + green * 151 + blue * 28) >> 20;
-
- /*
- * On an LCD, a high value is dark, while a low value is light.
- * So we invert the level.
- *
- * This isn't true on all machines, so we only do it on EDB7211.
- * --rmk
- */
- if (machine_is_edb7211()) {
- level = 15 - level;
- }
-
- shift = 4 * (regno & 7);
- level <<= shift;
- mask = 15 << shift;
- level &= mask;
-
- regno = regno < 8 ? PALLSW : PALMSW;
-
- pal = clps_readl(regno);
- pal = (pal & ~mask) | level;
- clps_writel(pal, regno);
-
- return 0;
-}
-
-/*
- * Validate the purposed mode.
- */
-static int
-clps7111fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
-{
- var->transp.msb_right = 0;
- var->transp.offset = 0;
- var->transp.length = 0;
- var->red.msb_right = 0;
- var->red.offset = 0;
- var->red.length = var->bits_per_pixel;
- var->green = var->red;
- var->blue = var->red;
-
- if (var->bits_per_pixel > 4)
- return -EINVAL;
-
- return 0;
-}
-
-/*
- * Set the hardware state.
- */
-static int
-clps7111fb_set_par(struct fb_info *info)
-{
- unsigned int lcdcon, syscon, pixclock;
-
- switch (info->var.bits_per_pixel) {
- case 1:
- info->fix.visual = FB_VISUAL_MONO01;
- break;
- case 2:
- info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
- break;
- case 4:
- info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
- break;
- }
-
- info->fix.line_length = info->var.xres_virtual * info->var.bits_per_pixel / 8;
-
- lcdcon = (info->var.xres_virtual * info->var.yres_virtual * info->var.bits_per_pixel) / 128 - 1;
- lcdcon |= ((info->var.xres_virtual / 16) - 1) << 13;
- lcdcon |= lcd_ac_prescale << 25;
-
- /*
- * Calculate pixel prescale value from the pixclock. This is:
- * 36.864MHz / pixclock_mhz - 1.
- * However, pixclock is in picoseconds, so this ends up being:
- * 36864000 * pixclock_ps / 10^12 - 1
- * and this will overflow the 32-bit math. We perform this as
- * (9 * 4096000 = 36864000):
- * pixclock_ps * 9 * (4096000 / 10^12) - 1
- */
- pixclock = 9 * info->var.pixclock / 244140 - 1;
- lcdcon |= pixclock << 19;
-
- if (info->var.bits_per_pixel = 4)
- lcdcon |= LCDCON_GSMD;
- if (info->var.bits_per_pixel >= 2)
- lcdcon |= LCDCON_GSEN;
-
- /*
- * LCDCON must only be changed while the LCD is disabled
- */
- syscon = clps_readl(SYSCON1);
- clps_writel(syscon & ~SYSCON1_LCDEN, SYSCON1);
- clps_writel(lcdcon, LCDCON);
- clps_writel(syscon | SYSCON1_LCDEN, SYSCON1);
- return 0;
-}
-
-static int clps7111fb_blank(int blank, struct fb_info *info)
-{
- /* Enable/Disable LCD controller. */
- if (blank)
- clps_writel(clps_readl(SYSCON1) & ~SYSCON1_LCDEN, SYSCON1);
- else
- clps_writel(clps_readl(SYSCON1) | SYSCON1_LCDEN, SYSCON1);
-
- return 0;
-}
-
-static struct fb_ops clps7111fb_ops = {
- .owner = THIS_MODULE,
- .fb_check_var = clps7111fb_check_var,
- .fb_set_par = clps7111fb_set_par,
- .fb_setcolreg = clps7111fb_setcolreg,
- .fb_blank = clps7111fb_blank,
- .fb_fillrect = cfb_fillrect,
- .fb_copyarea = cfb_copyarea,
- .fb_imageblit = cfb_imageblit,
-};
-
-static void clps711x_guess_lcd_params(struct fb_info *info)
-{
- unsigned int lcdcon, syscon, size;
- unsigned long phys_base = PAGE_OFFSET;
- void *virt_base = (void *)PAGE_OFFSET;
-
- info->var.xres_virtual = 640;
- info->var.yres_virtual = 240;
- info->var.bits_per_pixel = 4;
- info->var.activate = FB_ACTIVATE_NOW;
- info->var.height = -1;
- info->var.width = -1;
- info->var.pixclock = 93006; /* 10.752MHz pixel clock */
-
- /*
- * If the LCD controller is already running, decode the values
- * in LCDCON to xres/yres/bpp/pixclock/acprescale
- */
- syscon = clps_readl(SYSCON1);
- if (syscon & SYSCON1_LCDEN) {
- lcdcon = clps_readl(LCDCON);
-
- /*
- * Decode GSMD and GSEN bits to bits per pixel
- */
- switch (lcdcon & (LCDCON_GSMD | LCDCON_GSEN)) {
- case LCDCON_GSMD | LCDCON_GSEN:
- info->var.bits_per_pixel = 4;
- break;
-
- case LCDCON_GSEN:
- info->var.bits_per_pixel = 2;
- break;
-
- default:
- info->var.bits_per_pixel = 1;
- break;
- }
-
- /*
- * Decode xres/yres
- */
- info->var.xres_virtual = (((lcdcon >> 13) & 0x3f) + 1) * 16;
- info->var.yres_virtual = (((lcdcon & 0x1fff) + 1) * 128) /
- (info->var.xres_virtual *
- info->var.bits_per_pixel);
-
- /*
- * Calculate pixclock
- */
- info->var.pixclock = (((lcdcon >> 19) & 0x3f) + 1) * 244140 / 9;
-
- /*
- * Grab AC prescale
- */
- lcd_ac_prescale = (lcdcon >> 25) & 0x1f;
- }
-
- info->var.xres = info->var.xres_virtual;
- info->var.yres = info->var.yres_virtual;
- info->var.grayscale = info->var.bits_per_pixel > 1;
-
- size = info->var.xres * info->var.yres * info->var.bits_per_pixel / 8;
-
- /*
- * Might be worth checking to see if we can use the on-board
- * RAM if size here...
- * CLPS7110 - no on-board SRAM
- * EP7212 - 38400 bytes
- */
- if (size <= 38400) {
- printk(KERN_INFO "CLPS711xFB: could use on-board SRAM?\n");
- }
-
- if ((syscon & SYSCON1_LCDEN) = 0) {
- /*
- * The display isn't running. Ensure that
- * the display memory is empty.
- */
- memset(virt_base, 0, size);
- }
-
- info->screen_base = virt_base;
- info->fix.smem_start = phys_base;
- info->fix.smem_len = PAGE_ALIGN(size);
- info->fix.type = FB_TYPE_PACKED_PIXELS;
-}
-
-static int clps711x_fb_probe(struct platform_device *pdev)
-{
- int err = -ENOMEM;
-
- if (fb_get_options("clps711xfb", NULL))
- return -ENODEV;
-
- cfb = kzalloc(sizeof(*cfb), GFP_KERNEL);
- if (!cfb)
- goto out;
-
- strcpy(cfb->fix.id, "clps711x");
-
- cfb->fbops = &clps7111fb_ops;
- cfb->flags = FBINFO_DEFAULT;
-
- clps711x_guess_lcd_params(cfb);
-
- fb_alloc_cmap(&cfb->cmap, CMAP_MAX_SIZE, 0);
-
- err = register_framebuffer(cfb);
-
-out: return err;
-}
-
-static int clps711x_fb_remove(struct platform_device *pdev)
-{
- unregister_framebuffer(cfb);
- kfree(cfb);
-
- return 0;
-}
-
-static struct platform_driver clps711x_fb_driver = {
- .driver = {
- .name = "video-clps711x",
- .owner = THIS_MODULE,
- },
- .probe = clps711x_fb_probe,
- .remove = clps711x_fb_remove,
-};
-module_platform_driver(clps711x_fb_driver);
-
-MODULE_AUTHOR("Russell King <rmk@arm.linux.org.uk>");
-MODULE_DESCRIPTION("CLPS711X framebuffer driver");
-MODULE_LICENSE("GPL");
--
1.8.3.2
^ permalink raw reply related
* [PATCH v2 3/3] video: clps711x: Add bindings documentation for CLPS711X framebuffer
From: Alexander Shiyan @ 2014-04-12 6:55 UTC (permalink / raw)
To: linux-fbdev-u79uwXL29TY76Z2rM5mHXA
Cc: Jean-Christophe Plagniol-Villard, Tomi Valkeinen, Olof Johansson,
Arnd Bergmann, devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring,
Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, Grant Likely,
Alexander Shiyan
Add OF document for Cirrus Logic CLPS711X framebuffer driver.
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
.../bindings/video/cirrus,clps711x-fb.txt | 47 ++++++++++++++++++++++
1 file changed, 47 insertions(+)
create mode 100644 Documentation/devicetree/bindings/video/cirrus,clps711x-fb.txt
diff --git a/Documentation/devicetree/bindings/video/cirrus,clps711x-fb.txt b/Documentation/devicetree/bindings/video/cirrus,clps711x-fb.txt
new file mode 100644
index 0000000..6fc3c6a
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/cirrus,clps711x-fb.txt
@@ -0,0 +1,47 @@
+* Currus Logic CLPS711X Framebuffer
+
+Required properties:
+- compatible: Shall contain "cirrus,clps711x-fb".
+- reg : Physical base address and length of the controller's registers +
+ location and size of the framebuffer memory.
+- clocks : phandle + clock specifier pair of the FB reference clock.
+- display : phandle to a display node as described in
+ Documentation/devicetree/bindings/video/display-timing.txt.
+ Additionally, the display node has to define properties:
+ - bits-per-pixel: Bits per pixel.
+ - ac-prescale : LCD AC bias frequency. This frequency is the required
+ AC bias frequency for a given manufacturer's LCD plate.
+ - cmap-invert : Invert the color levels (Optional).
+
+Optional properties:
+- lcd-supply: Regulator for LCD supply voltage.
+
+Example:
+ fb: fb@800002c0 {
+ compatible = "cirrus,ep7312-fb", "cirrus,clps711x-fb";
+ reg = <0x800002c0 0xd44>, <0x60000000 0xc000>;
+ clocks = <&clks 2>;
+ lcd-supply = <®5v0>;
+ display = <&display>;
+ };
+
+ display: display {
+ model = "320x240x4";
+ native-mode = <&timing0>;
+ bits-per-pixel = <4>;
+ ac-prescale = <17>;
+
+ display-timings {
+ timing0: 320x240 {
+ hactive = <320>;
+ hback-porch = <0>;
+ hfront-porch = <0>;
+ hsync-len = <0>;
+ vactive = <240>;
+ vback-porch = <0>;
+ vfront-porch = <0>;
+ vsync-len = <0>;
+ clock-frequency = <6500000>;
+ };
+ };
+ };
--
1.8.3.2
^ permalink raw reply related
* [patch] video: mmpfb: cleanup some static checker warnings in probe()
From: Dan Carpenter @ 2014-04-14 8:09 UTC (permalink / raw)
To: linux-fbdev
Sparse complains about using zero instead of NULL for pointers.
Probably, if we enabled the warning, then GCC would complain about the
unused initializers. I've just removed them.
Smatch complains that we first check if "fbi" is NULL and then
dereference it in the error handling. It turns out that "fbi" can't be
NULL so I've removed the check.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c
index 7ab31eb..910fcc6 100644
--- a/drivers/video/fbdev/mmp/fb/mmpfb.c
+++ b/drivers/video/fbdev/mmp/fb/mmpfb.c
@@ -554,8 +554,8 @@ static void fb_info_clear(struct fb_info *info)
static int mmpfb_probe(struct platform_device *pdev)
{
struct mmp_buffer_driver_mach_info *mi;
- struct fb_info *info = 0;
- struct mmpfb_info *fbi = 0;
+ struct fb_info *info;
+ struct mmpfb_info *fbi;
int ret, modes_num;
mi = pdev->dev.platform_data;
@@ -569,10 +569,6 @@ static int mmpfb_probe(struct platform_device *pdev)
if (info = NULL)
return -ENOMEM;
fbi = info->par;
- if (!fbi) {
- ret = -EINVAL;
- goto failed;
- }
/* init fb */
fbi->fb_info = info;
@@ -667,7 +663,6 @@ failed_free_buff:
fbi->fb_start_dma);
failed_destroy_mutex:
mutex_destroy(&fbi->access_ok);
-failed:
dev_err(fbi->dev, "mmp-fb: frame buffer device init failed\n");
framebuffer_release(info);
^ permalink raw reply related
* Re: [patch] video: mmpfb: cleanup some static checker warnings in probe()
From: Jingoo Han @ 2014-04-14 8:49 UTC (permalink / raw)
To: linux-fbdev
In-Reply-To: <20140414080929.GB13372@mwanda>
On Monday, April 14, 2014 5:09 PM, Dan Carpenter wrote:
>
> Sparse complains about using zero instead of NULL for pointers.
> Probably, if we enabled the warning, then GCC would complain about the
> unused initializers. I've just removed them.
>
> Smatch complains that we first check if "fbi" is NULL and then
> dereference it in the error handling. It turns out that "fbi" can't be
> NULL so I've removed the check.
Yes, right.
'fbi' cannot be NULL, because 'info->par' is set as below.
./drivers/video/fbsysfs.c
struct fb_info *framebuffer_alloc(size_t size, struct device *dev)
{
.....
info = (struct fb_info *) p;
if (size)
info->par = p + fb_info_size;
>
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Jingoo Han <jg1.han@samsung.com>
Best regards,
Jingoo Han
>
> diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c
> index 7ab31eb..910fcc6 100644
> --- a/drivers/video/fbdev/mmp/fb/mmpfb.c
> +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c
> @@ -554,8 +554,8 @@ static void fb_info_clear(struct fb_info *info)
> static int mmpfb_probe(struct platform_device *pdev)
> {
> struct mmp_buffer_driver_mach_info *mi;
> - struct fb_info *info = 0;
> - struct mmpfb_info *fbi = 0;
> + struct fb_info *info;
> + struct mmpfb_info *fbi;
> int ret, modes_num;
>
> mi = pdev->dev.platform_data;
> @@ -569,10 +569,6 @@ static int mmpfb_probe(struct platform_device *pdev)
> if (info = NULL)
> return -ENOMEM;
> fbi = info->par;
> - if (!fbi) {
> - ret = -EINVAL;
> - goto failed;
> - }
>
> /* init fb */
> fbi->fb_info = info;
> @@ -667,7 +663,6 @@ failed_free_buff:
> fbi->fb_start_dma);
> failed_destroy_mutex:
> mutex_destroy(&fbi->access_ok);
> -failed:
> dev_err(fbi->dev, "mmp-fb: frame buffer device init failed\n");
>
> framebuffer_release(info);
^ permalink raw reply
* [PATCH] OMAPDSS: fix shared irq handlers
From: Tomi Valkeinen @ 2014-04-14 11:48 UTC (permalink / raw)
To: linux-fbdev
DSS uses shared irq handlers for DISPC and DSI, because on OMAP3, the
DISPC and DSI share the same irq line.
However, the irq handlers presume that the hardware is enabled, which,
in theory, may not be the case with shared irq handlers. So if an
interrupt happens while the DISPC/DSI is off, the kernel will halt as
the irq handler tries to access the DISPC/DSI registers.
In practice that should never happen, as both DSI and DISPC are in the
same power domain. So if there's an IRQ for one of them, the other is
also enabled. However, if CONFIG_DEBUG_SHIRQ is enabled, the kernel will
generate a spurious IRQ, which then causes the problem.
This patch adds an is_enabled field for both DISPC and DSI, which is
used to track if the HW is enabled. For DISPC the code is slightly more
complex, as the users of DISPC can register the interrupt handler, and
we want to hide the is_enabled handling from the users of DISPC.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
drivers/video/omap2/dss/dispc.c | 55 +++++++++++++++++++++++++++++++++++------
drivers/video/omap2/dss/dsi.c | 20 +++++++++++++++
2 files changed, 68 insertions(+), 7 deletions(-)
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 2bbdb7ff7daf..b37e3fbf60cc 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -101,6 +101,8 @@ static struct {
void __iomem *base;
int irq;
+ irq_handler_t user_handler;
+ void *user_data;
unsigned long core_clk_rate;
unsigned long tv_pclk_rate;
@@ -113,6 +115,8 @@ static struct {
u32 ctx[DISPC_SZ_REGS / sizeof(u32)];
const struct dispc_features *feat;
+
+ bool is_enabled;
} dispc;
enum omap_color_component {
@@ -3669,16 +3673,44 @@ static int __init dispc_init_features(struct platform_device *pdev)
return 0;
}
+static irqreturn_t dispc_irq_handler(int irq, void *arg)
+{
+ if (!dispc.is_enabled)
+ return IRQ_NONE;
+
+ return dispc.user_handler(irq, dispc.user_data);
+}
+
int dispc_request_irq(irq_handler_t handler, void *dev_id)
{
- return devm_request_irq(&dispc.pdev->dev, dispc.irq, handler,
- IRQF_SHARED, "OMAP DISPC", dev_id);
+ int r;
+
+ if (dispc.user_handler != NULL)
+ return -EBUSY;
+
+ dispc.user_handler = handler;
+ dispc.user_data = dev_id;
+
+ /* ensure the dispc_irq_handler sees the values above */
+ smp_wmb();
+
+ r = devm_request_irq(&dispc.pdev->dev, dispc.irq, dispc_irq_handler,
+ IRQF_SHARED, "OMAP DISPC", &dispc);
+ if (r) {
+ dispc.user_handler = NULL;
+ dispc.user_data = NULL;
+ }
+
+ return r;
}
EXPORT_SYMBOL(dispc_request_irq);
void dispc_free_irq(void *dev_id)
{
- devm_free_irq(&dispc.pdev->dev, dispc.irq, dev_id);
+ devm_free_irq(&dispc.pdev->dev, dispc.irq, &dispc);
+
+ dispc.user_handler = NULL;
+ dispc.user_data = NULL;
}
EXPORT_SYMBOL(dispc_free_irq);
@@ -3750,6 +3782,12 @@ static int __exit omap_dispchw_remove(struct platform_device *pdev)
static int dispc_runtime_suspend(struct device *dev)
{
+ dispc.is_enabled = false;
+ /* ensure the dispc_irq_handler sees the is_enabled value */
+ smp_wmb();
+ /* wait for current handler to finish before turning the DISPC off */
+ synchronize_irq(dispc.irq);
+
dispc_save_context();
return 0;
@@ -3763,12 +3801,15 @@ static int dispc_runtime_resume(struct device *dev)
* _omap_dispc_initial_config(). We can thus use it to detect if
* we have lost register context.
*/
- if (REG_GET(DISPC_CONFIG, 2, 1) = OMAP_DSS_LOAD_FRAME_ONLY)
- return 0;
+ if (REG_GET(DISPC_CONFIG, 2, 1) != OMAP_DSS_LOAD_FRAME_ONLY) {
+ _omap_dispc_initial_config();
- _omap_dispc_initial_config();
+ dispc_restore_context();
+ }
- dispc_restore_context();
+ dispc.is_enabled = true;
+ /* ensure the dispc_irq_handler sees the is_enabled value */
+ smp_wmb();
return 0;
}
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
index 121d1049d0bc..8be9b04d8849 100644
--- a/drivers/video/omap2/dss/dsi.c
+++ b/drivers/video/omap2/dss/dsi.c
@@ -297,6 +297,8 @@ struct dsi_data {
int irq;
+ bool is_enabled;
+
struct clk *dss_clk;
struct clk *sys_clk;
@@ -795,6 +797,9 @@ static irqreturn_t omap_dsi_irq_handler(int irq, void *arg)
dsidev = (struct platform_device *) arg;
dsi = dsi_get_dsidrv_data(dsidev);
+ if (!dsi->is_enabled)
+ return IRQ_NONE;
+
spin_lock(&dsi->irq_lock);
irqstatus = dsi_read_reg(dsidev, DSI_IRQSTATUS);
@@ -5671,6 +5676,15 @@ static int __exit omap_dsihw_remove(struct platform_device *dsidev)
static int dsi_runtime_suspend(struct device *dev)
{
+ struct platform_device *pdev = to_platform_device(dev);
+ struct dsi_data *dsi = dsi_get_dsidrv_data(pdev);
+
+ dsi->is_enabled = false;
+ /* ensure the irq handler sees the is_enabled value */
+ smp_wmb();
+ /* wait for current handler to finish before turning the DSI off */
+ synchronize_irq(dsi->irq);
+
dispc_runtime_put();
return 0;
@@ -5678,12 +5692,18 @@ static int dsi_runtime_suspend(struct device *dev)
static int dsi_runtime_resume(struct device *dev)
{
+ struct platform_device *pdev = to_platform_device(dev);
+ struct dsi_data *dsi = dsi_get_dsidrv_data(pdev);
int r;
r = dispc_runtime_get();
if (r)
return r;
+ dsi->is_enabled = true;
+ /* ensure the irq handler sees the is_enabled value */
+ smp_wmb();
+
return 0;
}
--
1.8.3.2
^ permalink raw reply related
* Re: [PATCH] video: bf54x-lq043fb: fix build error
From: Tomi Valkeinen @ 2014-04-14 12:44 UTC (permalink / raw)
To: Steven Miao
Cc: Jean-Christophe Plagniol-Villard, adi-buildroot-devel,
linux-kernel, linux-fbdev, Steven Miao
In-Reply-To: <1397266245-3144-1-git-send-email-realmz6@kernel.org>
[-- Attachment #1: Type: text/plain, Size: 803 bytes --]
On 12/04/14 04:30, Steven Miao wrote:
> From: Steven Miao <realmz6@gmail.com>
>
> should include linux/gpio.h
>
> Signed-off-by: Steven Miao <realmz6@gmail.com>
> ---
> drivers/video/bf54x-lq043fb.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
> index 42b8f9d..d2b54f1 100644
> --- a/drivers/video/bf54x-lq043fb.c
> +++ b/drivers/video/bf54x-lq043fb.c
> @@ -49,6 +49,7 @@
> #include <linux/spinlock.h>
> #include <linux/dma-mapping.h>
> #include <linux/platform_device.h>
> +#include <linux/gpio.h>
The driver includes <asm/gpio.h>. I think that should be removed, and
<linux/gpio.h> should be used.
Can you also remove the asm/gpio.h in your patch, and see if it compiles
fine?
Tomi
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: [PATCH] video: Check EDID for HDMI connection
From: Tomi Valkeinen @ 2014-04-14 12:53 UTC (permalink / raw)
To: linux-fbdev
In-Reply-To: <1395873337-41305-1-git-send-email-cfreeman@nvidia.com>
[-- Attachment #1: Type: text/plain, Size: 1231 bytes --]
On 09/04/14 00:43, Christopher Freeman wrote:
>
>
> On 4/8/14 2:19 AM, "Tomi Valkeinen" <tomi.valkeinen@ti.com> wrote:
>
>> * PGP Signed by an unknown key
>>
>> Hi,
>>
>> On 27/03/14 00:35, cfreeman@nvidia.com wrote:
>>> From: David Ung <davidu@nvidia.com>
>>>
>>> Check EDID Vendor Specific Data Block bytes to see if the connection
>>> is HDMI and set FB_MISC_HDMI.
>>>
>>> Signed-off-by: David Ung <davidu@nvidia.com>
>>> Signed-off-by: Christopher Freeman<cfreeman@nvidia.com>
>>> ---
>>
>> Patch looks fine, but how do you use the flag? Shouldn't things like
>> detecting if the monitor supports audio be done with some more detailed
>> bits in the EDID data (not that I remember much from the HDMI spec).
> The Tegra HDMI driver uses FB_MISC_HDMI to select the type of connection
> it has hdmi/dvi and setup the avi info frames.
> agree that we could use the EDID data to determine the audio format
> support and sampling rates, but currently that's not being used.
> I think determining the audio format and sample rate support could be
> added in a separate and future patch.
Yep. I don't see any harm with the patch, even if it's not perfect =).
So I'm queuing it for 3.16.
Tomi
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* [PATCHv2 00/11] improve PWM lookup support without device tree
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
A patch set as suggested by Thierry to make lookup with the lookup table
instead of device tree behave more like when using device tree.
The first patch adds a period and a polarity member to the lookup table and use
those to set period and polarity.
Patch 2, 4 and 5 are making use of those new members from the board files.
Patch 3 removes useless code since setting the polarity is now handled by the
PWM core.
I couldn't decide on a good name for the extended PWM_LOOKUP macro and I believe
we won't have to add members to that structure soon so:
Patch 6 modifies the PWM_LOOKUP macro to also initialize period and polarity
and
Patch 7-9 are making use of the new PWM_LOOKUP macro in the board files
Patch 10 and 11 are making the leds-pwm and pwm_bl drivers get the period from
the PWM before using pwm_period_ns if it is not already set.
Patch 10 will obviously conflict with the series of Russell reworking the
leds-pwm probing. I can rebase if necessary
The final goal would be to get rid of .pwm_period_ns in leds-pwm and pwm_bl
after moving all the remaining users (still around 25) to pwm_lookup.
Changes in v2:
- correctly unlock the pwm_lookup_lock mutex before returning.
- don't change PWM_LOOKUP atomically
- remove tpu_pwm_platform_data and the associated header file
- make the leds-pwm and pwm_bl drivers get the period from the PWM
Alexandre Belloni (11):
pwm: add period and polarity to struct pwm_lookup
ARM: shmobile: Armadillo 800 EVA: initialize all struct pwm_lookup
members
pwm: renesas-tpu: remove useless struct tpu_pwm_platform_data
ARM: OMAP3: Beagle: initialize all the struct pwm_lookup members
ARM: pxa: hx4700: initialize all the struct pwm_lookup members
pwm: modify PWM_LOOKUP to initialize all struct pwm_lookup members
ARM: OMAP3: Beagle: use PWM_LOOKUP to initialize struct pwm_lookup
ARM: shmobile: Armadillo 800 EVA: use PWM_LOOKUP to initialize struct
pwm_lookup
ARM: pxa: hx4700: use PWM_LOOKUP to initialize struct pwm_lookup
leds: leds-pwm: retrieve configured pwm period
backlight: pwm_bl: retrieve configured pwm period
Documentation/pwm.txt | 3 ++-
arch/arm/mach-omap2/board-omap3beagle.c | 3 ++-
arch/arm/mach-pxa/hx4700.c | 3 ++-
arch/arm/mach-shmobile/board-armadillo800eva.c | 14 +++-----------
drivers/leds/leds-pwm.c | 5 ++++-
drivers/pwm/core.c | 8 +++++++-
drivers/pwm/pwm-renesas-tpu.c | 19 +++----------------
drivers/video/backlight/pwm_bl.c | 8 +++++---
include/linux/platform_data/pwm-renesas-tpu.h | 16 ----------------
include/linux/pwm.h | 6 +++++-
10 files changed, 33 insertions(+), 52 deletions(-)
delete mode 100644 include/linux/platform_data/pwm-renesas-tpu.h
--
1.8.3.2
^ permalink raw reply
* [PATCHv2 01/11] pwm: add period and polarity to struct pwm_lookup
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1397512793-10325-1-git-send-email-alexandre.belloni@free-electrons.com>
Adds a period and a polarity member to struct pwm_lookup so that when performing
a lookup using the lookup table instead of device tree, we are able to set the
period and the polarity accordingly like what is done in
of_pwm_xlate_with_flags.
The period and polarity can be set unconditionally as the default is 0 anyway.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
drivers/pwm/core.c | 8 +++++++-
include/linux/pwm.h | 2 ++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
index a80471399c20..4b66bf09ee55 100644
--- a/drivers/pwm/core.c
+++ b/drivers/pwm/core.c
@@ -661,10 +661,16 @@ struct pwm_device *pwm_get(struct device *dev, const char *con_id)
}
}
+ mutex_unlock(&pwm_lookup_lock);
+
if (chip)
pwm = pwm_request_from_chip(chip, index, con_id ?: dev_id);
+ if (IS_ERR(pwm))
+ return pwm;
+
+ pwm_set_period(pwm, p->period);
+ pwm_set_polarity(pwm, p->polarity);
- mutex_unlock(&pwm_lookup_lock);
return pwm;
}
diff --git a/include/linux/pwm.h b/include/linux/pwm.h
index 4717f54051cb..2f45e2fe5b93 100644
--- a/include/linux/pwm.h
+++ b/include/linux/pwm.h
@@ -274,6 +274,8 @@ struct pwm_lookup {
unsigned int index;
const char *dev_id;
const char *con_id;
+ unsigned int period;
+ enum pwm_polarity polarity;
};
#define PWM_LOOKUP(_provider, _index, _dev_id, _con_id) \
--
1.8.3.2
^ permalink raw reply related
* [PATCHv2 02/11] ARM: shmobile: Armadillo 800 EVA: initialize all struct pwm_lookup members
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1397512793-10325-1-git-send-email-alexandre.belloni@free-electrons.com>
Initializing all the struct pwm_lookup members allows to get rid of the struct
tpu_pwm_platform_data as the polarity initialization will be taken care of by
the PWM core.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
arch/arm/mach-shmobile/board-armadillo800eva.c | 20 +++++++++-----------
1 file changed, 9 insertions(+), 11 deletions(-)
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c
index 2858f380beae..1bf61dad9a35 100644
--- a/arch/arm/mach-shmobile/board-armadillo800eva.c
+++ b/arch/arm/mach-shmobile/board-armadillo800eva.c
@@ -31,7 +31,7 @@
#include <linux/gpio_keys.h>
#include <linux/regulator/driver.h>
#include <linux/pinctrl/machine.h>
-#include <linux/platform_data/pwm-renesas-tpu.h>
+#include <linux/pwm.h>
#include <linux/pwm_backlight.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/gpio-regulator.h>
@@ -399,24 +399,22 @@ static struct resource pwm_resources[] = {
},
};
-static struct tpu_pwm_platform_data pwm_device_data = {
- .channels[2] = {
- .polarity = PWM_POLARITY_INVERSED,
- }
-};
-
static struct platform_device pwm_device = {
.name = "renesas-tpu-pwm",
.id = -1,
- .dev = {
- .platform_data = &pwm_device_data,
- },
.num_resources = ARRAY_SIZE(pwm_resources),
.resource = pwm_resources,
};
static struct pwm_lookup pwm_lookup[] = {
- PWM_LOOKUP("renesas-tpu-pwm", 2, "pwm-backlight.0", NULL),
+ {
+ .provider = "renesas-tpu-pwm",
+ .index = 2,
+ .dev_id = "pwm-backlight.0",
+ .con_id = NULL,
+ .period = 33333,
+ .polarity = PWM_POLARITY_INVERSED,
+ },
};
/* LCDC and backlight */
--
1.8.3.2
^ permalink raw reply related
* [PATCHv2 03/11] pwm: renesas-tpu: remove useless struct tpu_pwm_platform_data
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1397512793-10325-1-git-send-email-alexandre.belloni@free-electrons.com>
The struct tpu_pwm_platform_data is not used anymore and the polarity
initialization will be taken care of by the PWM core.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
drivers/pwm/pwm-renesas-tpu.c | 19 +++----------------
include/linux/platform_data/pwm-renesas-tpu.h | 16 ----------------
2 files changed, 3 insertions(+), 32 deletions(-)
delete mode 100644 include/linux/platform_data/pwm-renesas-tpu.h
diff --git a/drivers/pwm/pwm-renesas-tpu.c b/drivers/pwm/pwm-renesas-tpu.c
index aff6ba9b49e7..9dbcf82b3e6c 100644
--- a/drivers/pwm/pwm-renesas-tpu.c
+++ b/drivers/pwm/pwm-renesas-tpu.c
@@ -21,13 +21,14 @@
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/of.h>
-#include <linux/platform_data/pwm-renesas-tpu.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/pwm.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
+#define TPU_CHANNEL_MAX 4
+
#define TPU_TSTR 0x00 /* Timer start register (shared) */
#define TPU_TCRn 0x00 /* Timer control register */
@@ -87,7 +88,6 @@ struct tpu_pwm_device {
struct tpu_device {
struct platform_device *pdev;
- enum pwm_polarity polarities[TPU_CHANNEL_MAX];
struct pwm_chip chip;
spinlock_t lock;
@@ -229,7 +229,7 @@ static int tpu_pwm_request(struct pwm_chip *chip, struct pwm_device *_pwm)
pwm->tpu = tpu;
pwm->channel = _pwm->hwpwm;
- pwm->polarity = tpu->polarities[pwm->channel];
+ pwm->polarity = PWM_POLARITY_NORMAL;
pwm->prescaler = 0;
pwm->period = 0;
pwm->duty = 0;
@@ -388,16 +388,6 @@ static const struct pwm_ops tpu_pwm_ops = {
* Probe and remove
*/
-static void tpu_parse_pdata(struct tpu_device *tpu)
-{
- struct tpu_pwm_platform_data *pdata = tpu->pdev->dev.platform_data;
- unsigned int i;
-
- for (i = 0; i < ARRAY_SIZE(tpu->polarities); ++i)
- tpu->polarities[i] = pdata ? pdata->channels[i].polarity
- : PWM_POLARITY_NORMAL;
-}
-
static int tpu_probe(struct platform_device *pdev)
{
struct tpu_device *tpu;
@@ -413,9 +403,6 @@ static int tpu_probe(struct platform_device *pdev)
spin_lock_init(&tpu->lock);
tpu->pdev = pdev;
- /* Initialize device configuration from platform data. */
- tpu_parse_pdata(tpu);
-
/* Map memory, get clock and pin control. */
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
tpu->base = devm_ioremap_resource(&pdev->dev, res);
diff --git a/include/linux/platform_data/pwm-renesas-tpu.h b/include/linux/platform_data/pwm-renesas-tpu.h
deleted file mode 100644
index a7220b10ddab..000000000000
--- a/include/linux/platform_data/pwm-renesas-tpu.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __PWM_RENESAS_TPU_H__
-#define __PWM_RENESAS_TPU_H__
-
-#include <linux/pwm.h>
-
-#define TPU_CHANNEL_MAX 4
-
-struct tpu_pwm_channel_data {
- enum pwm_polarity polarity;
-};
-
-struct tpu_pwm_platform_data {
- struct tpu_pwm_channel_data channels[TPU_CHANNEL_MAX];
-};
-
-#endif /* __PWM_RENESAS_TPU_H__ */
--
1.8.3.2
^ permalink raw reply related
* [PATCHv2 04/11] ARM: OMAP3: Beagle: initialize all the struct pwm_lookup members
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1397512793-10325-1-git-send-email-alexandre.belloni@free-electrons.com>
This will allow to get rid of the .pwm_period_ns member of struct led_pwm as the
period will be set by the PWM core.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
arch/arm/mach-omap2/board-omap3beagle.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index d6ed819ff15c..f27e1ec90b5e 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -61,7 +61,14 @@
static struct pwm_lookup pwm_lookup[] = {
/* LEDB -> PMU_STAT */
- PWM_LOOKUP("twl-pwmled", 1, "leds_pwm", "beagleboard::pmu_stat"),
+ {
+ .provider = "twl-pwmled",
+ .index = 1,
+ .dev_id = "leds_pwm",
+ .con_id = "beagleboard::pmu_stat",
+ .period = 7812500,
+ .polarity = PWM_POLARITY_NORMAL,
+ },
};
static struct led_pwm pwm_leds[] = {
--
1.8.3.2
^ permalink raw reply related
* [PATCHv2 05/11] ARM: pxa: hx4700: initialize all the struct pwm_lookup members
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1397512793-10325-1-git-send-email-alexandre.belloni@free-electrons.com>
This will allow to get rid of the .pwm_period_ns member of struct
platform_pwm_backlight_data as the period will be set by the PWM core.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
arch/arm/mach-pxa/hx4700.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c
index a7c30eb0c8db..0788a1f171fe 100644
--- a/arch/arm/mach-pxa/hx4700.c
+++ b/arch/arm/mach-pxa/hx4700.c
@@ -574,7 +574,14 @@ static struct platform_device backlight = {
};
static struct pwm_lookup hx4700_pwm_lookup[] = {
- PWM_LOOKUP("pxa27x-pwm.1", 0, "pwm-backlight", NULL),
+ {
+ .provider = "pxa27x-pwm.1",
+ .index = 0,
+ .dev_id = "pwm-backlight",
+ .con_id = NULL,
+ .period = 30923,
+ .polarity = PWM_POLARITY_NORMAL,
+ },
};
/*
--
1.8.3.2
^ permalink raw reply related
* [PATCHv2 06/11] pwm: modify PWM_LOOKUP to initialize all struct pwm_lookup members
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1397512793-10325-1-git-send-email-alexandre.belloni@free-electrons.com>
Now that PWM_LOOKUP is not used anymore, modify it to initialize all the
members of struct pwm_lookup.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
Documentation/pwm.txt | 3 ++-
include/linux/pwm.h | 4 +++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/Documentation/pwm.txt b/Documentation/pwm.txt
index 93cb97974986..f38f99cda64f 100644
--- a/Documentation/pwm.txt
+++ b/Documentation/pwm.txt
@@ -19,7 +19,8 @@ should instead register a static mapping that can be used to match PWM
consumers to providers, as given in the following example:
static struct pwm_lookup board_pwm_lookup[] = {
- PWM_LOOKUP("tegra-pwm", 0, "pwm-backlight", NULL),
+ PWM_LOOKUP("tegra-pwm", 0, "pwm-backlight", NULL,
+ 50000, PWM_POLARITY_NORMAL),
};
static void __init board_init(void)
diff --git a/include/linux/pwm.h b/include/linux/pwm.h
index 2f45e2fe5b93..e90628cac8fa 100644
--- a/include/linux/pwm.h
+++ b/include/linux/pwm.h
@@ -278,12 +278,14 @@ struct pwm_lookup {
enum pwm_polarity polarity;
};
-#define PWM_LOOKUP(_provider, _index, _dev_id, _con_id) \
+#define PWM_LOOKUP(_provider, _index, _dev_id, _con_id, _period, _polarity) \
{ \
.provider = _provider, \
.index = _index, \
.dev_id = _dev_id, \
.con_id = _con_id, \
+ .period = _period, \
+ .polarity = _polarity \
}
#if IS_ENABLED(CONFIG_PWM)
--
1.8.3.2
^ permalink raw reply related
* [PATCHv2 07/11] ARM: OMAP3: Beagle: use PWM_LOOKUP to initialize struct pwm_lookup
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1397512793-10325-1-git-send-email-alexandre.belloni@free-electrons.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
arch/arm/mach-omap2/board-omap3beagle.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index f27e1ec90b5e..54c135a5b4f7 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -61,14 +61,8 @@
static struct pwm_lookup pwm_lookup[] = {
/* LEDB -> PMU_STAT */
- {
- .provider = "twl-pwmled",
- .index = 1,
- .dev_id = "leds_pwm",
- .con_id = "beagleboard::pmu_stat",
- .period = 7812500,
- .polarity = PWM_POLARITY_NORMAL,
- },
+ PWM_LOOKUP("twl-pwmled", 1, "leds_pwm", "beagleboard::pmu_stat",
+ 7812500, PWM_POLARITY_NORMAL),
};
static struct led_pwm pwm_leds[] = {
--
1.8.3.2
^ permalink raw reply related
* [PATCHv2 08/11] ARM: shmobile: Armadillo 800 EVA: use PWM_LOOKUP to initialize struct pwm_lookup
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1397512793-10325-1-git-send-email-alexandre.belloni@free-electrons.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
arch/arm/mach-shmobile/board-armadillo800eva.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c
index 1bf61dad9a35..ca82b1e2ebab 100644
--- a/arch/arm/mach-shmobile/board-armadillo800eva.c
+++ b/arch/arm/mach-shmobile/board-armadillo800eva.c
@@ -407,14 +407,8 @@ static struct platform_device pwm_device = {
};
static struct pwm_lookup pwm_lookup[] = {
- {
- .provider = "renesas-tpu-pwm",
- .index = 2,
- .dev_id = "pwm-backlight.0",
- .con_id = NULL,
- .period = 33333,
- .polarity = PWM_POLARITY_INVERSED,
- },
+ PWM_LOOKUP("renesas-tpu-pwm", 2, "pwm-backlight.0", NULL,
+ 33333, PWM_POLARITY_INVERSED),
};
/* LCDC and backlight */
--
1.8.3.2
^ permalink raw reply related
* [PATCHv2 09/11] ARM: pxa: hx4700: use PWM_LOOKUP to initialize struct pwm_lookup
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1397512793-10325-1-git-send-email-alexandre.belloni@free-electrons.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
arch/arm/mach-pxa/hx4700.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c
index 0788a1f171fe..c66ad4edc5e3 100644
--- a/arch/arm/mach-pxa/hx4700.c
+++ b/arch/arm/mach-pxa/hx4700.c
@@ -574,14 +574,8 @@ static struct platform_device backlight = {
};
static struct pwm_lookup hx4700_pwm_lookup[] = {
- {
- .provider = "pxa27x-pwm.1",
- .index = 0,
- .dev_id = "pwm-backlight",
- .con_id = NULL,
- .period = 30923,
- .polarity = PWM_POLARITY_NORMAL,
- },
+ PWM_LOOKUP("pxa27x-pwm.1", 0, "pwm-backlight", NULL,
+ 30923, PWM_POLARITY_NORMAL),
};
/*
--
1.8.3.2
^ permalink raw reply related
* [PATCHv2 10/11] leds: leds-pwm: retrieve configured pwm period
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1397512793-10325-1-git-send-email-alexandre.belloni@free-electrons.com>
The PWM core is now able to initialize the PWM period. Use it and if it is not
configured, use the supplied pwm_period_ns.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
drivers/leds/leds-pwm.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/leds/leds-pwm.c b/drivers/leds/leds-pwm.c
index 7d0aaed1e23a..aa770ec1e892 100644
--- a/drivers/leds/leds-pwm.c
+++ b/drivers/leds/leds-pwm.c
@@ -181,7 +181,6 @@ static int led_pwm_probe(struct platform_device *pdev)
led_dat->cdev.name = cur_led->name;
led_dat->cdev.default_trigger = cur_led->default_trigger;
led_dat->active_low = cur_led->active_low;
- led_dat->period = cur_led->pwm_period_ns;
led_dat->cdev.brightness_set = led_pwm_set;
led_dat->cdev.brightness = LED_OFF;
led_dat->cdev.max_brightness = cur_led->max_brightness;
@@ -191,6 +190,10 @@ static int led_pwm_probe(struct platform_device *pdev)
if (led_dat->can_sleep)
INIT_WORK(&led_dat->work, led_pwm_work);
+ led_dat->period = pwm_get_period(led_dat->pwm);
+ if (!led_dat->period && (cur_led->pwm_period_ns > 0))
+ led_dat->period = cur_led->pwm_period_ns;
+
ret = led_classdev_register(&pdev->dev, &led_dat->cdev);
if (ret < 0)
goto err;
--
1.8.3.2
^ permalink raw reply related
* [PATCHv2 11/11] backlight: pwm_bl: retrieve configured pwm period
From: Alexandre Belloni @ 2014-04-14 21:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1397512793-10325-1-git-send-email-alexandre.belloni@free-electrons.com>
The PWM core is now able to initialize the PWM period from platform_data. Use it
and if it is not configured, use the supplied pwm_period_ns.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
drivers/video/backlight/pwm_bl.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c
index b75201ff46f6..1bb8a69062c5 100644
--- a/drivers/video/backlight/pwm_bl.c
+++ b/drivers/video/backlight/pwm_bl.c
@@ -304,12 +304,14 @@ static int pwm_backlight_probe(struct platform_device *pdev)
/*
* The DT case will set the pwm_period_ns field to 0 and store the
* period, parsed from the DT, in the PWM device. For the non-DT case,
- * set the period from platform data.
+ * set the period from platform data if it is not already set.
*/
- if (data->pwm_period_ns > 0)
+ pb->period = pwm_get_period(pb->pwm);
+ if (!pb->period && (data->pwm_period_ns > 0)) {
+ pb->period = data->pwm_period_ns;
pwm_set_period(pb->pwm, data->pwm_period_ns);
+ }
- pb->period = pwm_get_period(pb->pwm);
pb->lth_brightness = data->lth_brightness * (pb->period / pb->scale);
memset(&props, 0, sizeof(struct backlight_properties));
--
1.8.3.2
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox