Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d200153 authored by Stepan Moskovchenko's avatar Stepan Moskovchenko Committed by Greg Kroah-Hartman
Browse files

Staging: add MSM framebuffer driver



Qualcomm development of the MSM SOC framebuffer driver has
diverged significantly from the driver used by Android. This
is a snapshot of our current driver, in all it's agony. We are
putting this in staging to help with the process of converging
the two drivers.

At this point, the driver has been tested only in dumb
framebuffer mode.

Signed-off-by: default avatarStepan Moskovchenko <stepanm@codeaurora.org>
Signed-off-by: default avatarDavid Brown <davidb@codeaurora.org>
Signed-off-by: default avatarAbhijeet Dharmapurikar <adharmap@codeaurora.org>
[dwalker@codeaurora.org: added a small compile fix and TODO.]
Signed-off-by: default avatarDaniel Walker <dwalker@codeaurora.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 34ef545a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -145,5 +145,7 @@ source "drivers/staging/xgifb/Kconfig"

source "drivers/staging/mrst-touchscreen/Kconfig"

source "drivers/staging/msm/Kconfig"

endif # !STAGING_EXCLUDE_BUILD
endif # STAGING
+1 −0
Original line number Diff line number Diff line
@@ -53,3 +53,4 @@ obj-$(CONFIG_TI_ST) += ti-st/
obj-$(CONFIG_ADIS16255)		+= adis16255/
obj-$(CONFIG_FB_XGI)		+= xgifb/
obj-$(CONFIG_TOUCHSCREEN_MRSTOUCH)	+= mrst-touchscreen/
obj-$(CONFIG_MSM_STAGING)	+= msm/
+134 −0
Original line number Diff line number Diff line
config MSM_STAGING
	tristate "MSM Frame Buffer Support"
	depends on FB && ARCH_MSM && !FB_MSM
	select FB_BACKLIGHT if FB_MSM_BACKLIGHT
	select NEW_LEDS
	select LEDS_CLASS
	select FB_CFB_FILLRECT
	select FB_CFB_COPYAREA
	select FB_CFB_IMAGEBLIT
	---help---
	  Support for MSM Framebuffer.

if MSM_STAGING

config FB_MSM_LCDC_HW
	bool
	default n

choice
	prompt "MDP HW version"
	default FB_MSM_MDP31

config FB_MSM_MDP31
	select FB_MSM_LCDC_HW
	bool "MDP HW ver3.1"
	---help---
	  Support for MSM MDP HW revision 3.1
	  Say Y here if this is msm8x50 variant platform.
endchoice

config FB_MSM_LCDC
	bool
	default n

config FB_MSM_TVOUT
	bool
	default n

config FB_MSM_LCDC_PANEL
	bool
	select FB_MSM_LCDC
	default n

config FB_MSM_LCDC_PRISM_WVGA
        bool
	select FB_MSM_LCDC_PANEL
	default n

config FB_MSM_LCDC_ST1_WXGA
	bool
	select FB_MSM_LCDC_PANEL
	default n

config FB_MSM_LCDC_ST15_WXGA
        bool
        select FB_MSM_LCDC_PANEL
        default n

config FB_MSM_LCDC_WXGA
	bool
	select FB_MSM_LCDC_PANEL
	default n

choice
	prompt "LCD Panel"
	default FB_MSM_LCDC_ST15_PANEL

config FB_MSM_LCDC_PRISM_WVGA_PANEL
	depends on FB_MSM_LCDC_HW
	bool "LCDC Prism WVGA Panel"
	select FB_MSM_LCDC_PRISM_WVGA
	---help---
	  Support for LCDC Prism WVGA (800x480) panel


config FB_MSM_LCDC_ST15_PANEL
        depends on FB_MSM_LCDC_HW
        bool "LCDC ST1.5 Panel"
        select FB_MSM_LCDC_ST15_WXGA
        ---help---
          Support for ST1.5 WXGA (1366x768) panel

config FB_MSM_PANEL_NONE
	bool "NONE"
	---help---
	  This will disable LCD panel
endchoice

choice
	prompt "Secondary LCD Panel"
	depends on  FB_MSM_MDP31
	default FB_MSM_SECONDARY_PANEL_NONE

config FB_MSM_SECONDARY_PANEL_NONE
	bool "NONE"
	---help---
	  No secondary panel
endchoice

config FB_MSM_TVOUT_NTSC
	bool
	select FB_MSM_TVOUT
	default n

config FB_MSM_TVOUT_PAL
	bool
	select FB_MSM_TVOUT
	default n

choice
	depends on  (FB_MSM_MDP22 || FB_MSM_MDP31)
	prompt "TVOut Region"
	default FB_MSM_TVOUT_NTSC_M

config FB_MSM_TVOUT_NTSC_M
	bool "NTSC M"
	select FB_MSM_TVOUT_NTSC
	---help---
	  Support for NTSC M region (North American and Korea)

config FB_MSM_TVOUT_NONE
	bool "NONE"
	---help---
	  This will disable TV Out functionality.
endchoice

config PMEM_KERNEL_SIZE
        int "PMEM for kernel components (in MB)"
        default 2
        depends on ARCH_QSD8X50
        help
          Configures the amount of PMEM for use by kernel components
          (in MB; minimum 2MB)
endif
+93 −0
Original line number Diff line number Diff line
obj-y := msm_fb.o staging-devices.o memory.o

obj-$(CONFIG_FB_MSM_LOGO) += logo.o
obj-$(CONFIG_FB_BACKLIGHT) += msm_fb_bl.o

# MDP
obj-y += mdp.o

ifeq ($(CONFIG_FB_MSM_MDP40),y)
obj-y += mdp4_util.o
obj-$(CONFIG_DEBUG_FS) += mdp4_debugfs.o
else
obj-y += mdp_hw_init.o
obj-y += mdp_ppp.o
ifeq ($(CONFIG_FB_MSM_MDP31),y)
obj-y += mdp_ppp_v31.o
obj-$(CONFIG_MDP_PPP_ASYNC_OP) += mdp_ppp_dq.o
else
obj-y += mdp_ppp_v20.o
endif
endif

ifeq ($(CONFIG_FB_MSM_OVERLAY),y)
obj-y += mdp4_overlay.o
obj-y += mdp4_overlay_lcdc.o
obj-y += mdp4_overlay_mddi.o
else
obj-y += mdp_dma_lcdc.o
endif

obj-y += mdp_dma.o
obj-y += mdp_dma_s.o
obj-y += mdp_vsync.o
obj-y += mdp_cursor.o
obj-y += mdp_dma_tv.o

# EBI2
obj-$(CONFIG_FB_MSM_EBI2) += ebi2_lcd.o

# LCDC
obj-$(CONFIG_FB_MSM_LCDC) += lcdc.o

# MDDI
msm_mddi-objs := mddi.o mddihost.o mddihosti.o
obj-$(CONFIG_FB_MSM_MDDI) += msm_mddi.o

# External MDDI
msm_mddi_ext-objs := mddihost_e.o mddi_ext.o
obj-$(CONFIG_FB_MSM_EXTMDDI) += msm_mddi_ext.o

# TVEnc
obj-$(CONFIG_FB_MSM_TVOUT) += tvenc.o

# MSM FB Panel
obj-y += msm_fb_panel.o
obj-$(CONFIG_FB_MSM_EBI2_TMD_QVGA_EPSON_QCIF) += ebi2_tmd20.o
obj-$(CONFIG_FB_MSM_EBI2_TMD_QVGA_EPSON_QCIF) += ebi2_l2f.o

ifeq ($(CONFIG_FB_MSM_MDDI_AUTO_DETECT),y)
obj-y += mddi_prism.o
obj-y += mddi_toshiba.o
obj-y += mddi_toshiba_vga.o
obj-y += mddi_toshiba_wvga_pt.o
obj-y += mddi_toshiba_wvga.o
obj-y += mddi_sharp.o
else
obj-$(CONFIG_FB_MSM_MDDI_PRISM_WVGA) += mddi_prism.o
obj-$(CONFIG_FB_MSM_MDDI_TOSHIBA_COMMON) += mddi_toshiba.o
obj-$(CONFIG_FB_MSM_MDDI_TOSHIBA_COMMON_VGA) += mddi_toshiba_vga.o
obj-$(CONFIG_FB_MSM_MDDI_TOSHIBA_WVGA_PORTRAIT) += mddi_toshiba_wvga_pt.o
obj-$(CONFIG_FB_MSM_MDDI_TOSHIBA_WVGA) += mddi_toshiba_wvga.o
obj-$(CONFIG_FB_MSM_MDDI_SHARP_QVGA_128x128) += mddi_sharp.o
endif

obj-$(CONFIG_FB_MSM_LCDC_PANEL) += lcdc_panel.o
obj-$(CONFIG_FB_MSM_LCDC_PRISM_WVGA) += lcdc_prism.o
obj-$(CONFIG_FB_MSM_LCDC_EXTERNAL_WXGA) += lcdc_external.o
obj-$(CONFIG_FB_MSM_LCDC_GORDON_VGA) += lcdc_gordon.o
obj-$(CONFIG_FB_MSM_LCDC_WXGA) += lcdc_wxga.o
obj-$(CONFIG_FB_MSM_LCDC_TOSHIBA_WVGA_PT) += lcdc_toshiba_wvga_pt.o
obj-$(CONFIG_FB_MSM_LCDC_SHARP_WVGA_PT) += lcdc_sharp_wvga_pt.o
obj-$(CONFIG_FB_MSM_LCDC_GRAPEFRUIT_VGA) += lcdc_grapefruit.o
obj-$(CONFIG_FB_MSM_LCDC_ST1_WXGA) += lcdc_st1_wxga.o
obj-$(CONFIG_FB_MSM_LCDC_ST15_WXGA) += lcdc_st15.o
obj-$(CONFIG_FB_MSM_HDMI_SII_EXTERNAL_720P) += hdmi_sii9022.o

obj-$(CONFIG_FB_MSM_TVOUT_NTSC) += tv_ntsc.o
obj-$(CONFIG_FB_MSM_TVOUT_PAL) += tv_pal.o

obj-$(CONFIG_FB_MSM_EXTMDDI_SVGA) += mddi_ext_lcd.o

clean:
	rm *.o .*cmd
+3 −0
Original line number Diff line number Diff line
- Merge this code with the existing MSM framebuffer
- General style clean ups.
Loading