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

Commit 53a77a29 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "fbdev: msm: snapshot of mdss driver"

parents 67eba95a 69c26a7f
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -134,7 +134,9 @@ static int fts_command(struct fts_ts_info *info, unsigned char cmd);
static int fts_chip_initialization(struct fts_ts_info *info);
static int fts_enable_reg(struct fts_ts_info *info, bool enable);

#if !defined(CONFIG_FB_MSM)
static struct drm_panel *active_panel;
#endif

void touch_callback(unsigned int status)
{
@@ -4167,7 +4169,7 @@ static int fts_fb_state_chg_callback(struct notifier_block *nb,
	struct fb_event *evdata = data;
	unsigned int blank;

	if (!evdata || (evdata->id != 0))
	if (!evdata)
		return 0;

	if (val != FB_EVENT_BLANK)
@@ -4556,6 +4558,7 @@ static int parse_dt(struct device *dev,

static int check_dt(struct device_node *np)
{
#if !defined(CONFIG_FB_MSM)
	int i;
	int count;
	struct device_node *node;
@@ -4575,6 +4578,7 @@ static int check_dt(struct device_node *np)
		}
	}

#endif
	return -ENODEV;
}

+14 −0
Original line number Diff line number Diff line
@@ -2222,6 +2222,19 @@ config FB_PRE_INIT_FB
	  Select this option if display contents should be inherited as set by
	  the bootloader.

config FB_MSM
	tristate "MSM Framebuffer support"
	depends on FB && ARCH_QCOM
	select FB_CFB_FILLRECT
	select FB_CFB_COPYAREA
	select FB_CFB_IMAGEBLIT
	select SYNC_FILE
	help
	 The MSM driver implements a frame buffer interface to
	 provide access to the display hardware and provide
	 a way for users to display graphics
	 on connected display panels.

config FB_MX3
	tristate "MX3 Framebuffer support"
	depends on FB && MX3_IPU
@@ -2339,3 +2352,4 @@ config FB_SM712
source "drivers/video/fbdev/omap/Kconfig"
source "drivers/video/fbdev/omap2/Kconfig"
source "drivers/video/fbdev/mmp/Kconfig"
source "drivers/video/fbdev/msm/Kconfig"
+5 −0
Original line number Diff line number Diff line
@@ -125,6 +125,11 @@ obj-$(CONFIG_FB_PUV3_UNIGFX) += fb-puv3.o
obj-$(CONFIG_FB_HYPERV)		  += hyperv_fb.o
obj-$(CONFIG_FB_OPENCORES)	  += ocfb.o
obj-$(CONFIG_FB_SM712)		  += sm712fb.o
ifeq ($(CONFIG_FB_MSM),y)
obj-y                             += msm/
else
obj-$(CONFIG_MSM_DBA)             += msm/msm_dba/
endif

# Platform or fallback drivers go here
obj-$(CONFIG_FB_UVESA)            += uvesafb.o
+16 −13
Original line number Diff line number Diff line
@@ -1082,7 +1082,7 @@ fb_blank(struct fb_info *info, int blank)
EXPORT_SYMBOL(fb_blank);

static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
			unsigned long arg)
			unsigned long arg, struct file *file)
{
	struct fb_ops *fb;
	struct fb_var_screeninfo var;
@@ -1182,9 +1182,8 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
	case FBIOPUT_CON2FBMAP:
		if (copy_from_user(&con2fb, argp, sizeof(con2fb)))
			return -EFAULT;
		if (con2fb.console < 1 || con2fb.console > MAX_NR_CONSOLES)
			return -EINVAL;
		if (con2fb.framebuffer >= FB_MAX)
		if (con2fb.console < 1 || con2fb.console > MAX_NR_CONSOLES ||
			(con2fb.framebuffer >= FB_MAX))
			return -EINVAL;
		if (!registered_fb[con2fb.framebuffer])
			request_module("fb%d", con2fb.framebuffer);
@@ -1219,7 +1218,9 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
		if (!lock_fb_info(info))
			return -ENODEV;
		fb = info->fbops;
		if (fb->fb_ioctl)
		if (fb->fb_ioctl_v2)
			ret = fb->fb_ioctl_v2(info, cmd, arg, file);
		else if (fb->fb_ioctl)
			ret = fb->fb_ioctl(info, cmd, arg);
		else
			ret = -ENOTTY;
@@ -1234,7 +1235,7 @@ static long fb_ioctl(struct file *file, unsigned int cmd, unsigned long arg)

	if (!info)
		return -ENODEV;
	return do_fb_ioctl(info, cmd, arg);
	return do_fb_ioctl(info, cmd, arg, file);
}

#ifdef CONFIG_COMPAT
@@ -1265,7 +1266,7 @@ struct fb_cmap32 {
};

static int fb_getput_cmap(struct fb_info *info, unsigned int cmd,
			  unsigned long arg)
			  unsigned long arg, struct file *file)
{
	struct fb_cmap_user __user *cmap;
	struct fb_cmap32 __user *cmap32;
@@ -1288,7 +1289,7 @@ static int fb_getput_cmap(struct fb_info *info, unsigned int cmd,
	    put_user(compat_ptr(data), &cmap->transp))
		return -EFAULT;

	err = do_fb_ioctl(info, cmd, (unsigned long) cmap);
	err = do_fb_ioctl(info, cmd, (unsigned long) cmap, file);

	if (!err) {
		if (copy_in_user(&cmap32->start,
@@ -1333,7 +1334,7 @@ static int do_fscreeninfo_to_user(struct fb_fix_screeninfo *fix,
}

static int fb_get_fscreeninfo(struct fb_info *info, unsigned int cmd,
			      unsigned long arg)
			      unsigned long arg, struct file *file)
{
	struct fb_fix_screeninfo fix;

@@ -1363,20 +1364,22 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd,
		arg = (unsigned long) compat_ptr(arg);
		/* fall through */
	case FBIOBLANK:
		ret = do_fb_ioctl(info, cmd, arg);
		ret = do_fb_ioctl(info, cmd, arg, file);
		break;

	case FBIOGET_FSCREENINFO:
		ret = fb_get_fscreeninfo(info, cmd, arg);
		ret = fb_get_fscreeninfo(info, cmd, arg, file);
		break;

	case FBIOGETCMAP:
	case FBIOPUTCMAP:
		ret = fb_getput_cmap(info, cmd, arg);
		ret = fb_getput_cmap(info, cmd, arg, file);
		break;

	default:
		if (fb->fb_compat_ioctl)
		if (fb->fb_compat_ioctl_v2)
			ret = fb->fb_compat_ioctl_v2(info, cmd, arg, file);
		else if (fb->fb_compat_ioctl)
			ret = fb->fb_compat_ioctl(info, cmd, arg);
		break;
	}
+173 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
source "drivers/video/fbdev/msm/msm_dba/Kconfig"

if FB_MSM

config FB_MSM_MDSS_COMMON
	bool

choice
	prompt "MDP HW version"
	default FB_MSM_MDP
	help
	The Mobile Display Processor (MDP) hardware version used in
	the chipset. The hardware version varies across multiple
	chipsets.

	Support for MDP HW.

config FB_MSM_MDP
	bool "MDP HW"
	select FB_MSM_MDP_HW
	help
	The Mobile Display Processor (MDP) driver support devices which
	contain MDP hardware block.

	Support for MSM MDP HW revision 2.2.
	Say Y here if this is msm7201 variant platform.

config FB_MSM_MDSS
	bool "MDSS HW"
	select SYNC_FILE
	select FB_MSM_MDSS_COMMON
	help
	The Mobile Display Sub System (MDSS) driver supports devices which
	contain MDSS hardware block.

	The MDSS driver implements frame buffer interface to provide access to
	the display hardware and provide a way for users to display graphics
	on connected display panels.

config FB_MSM_MDP_NONE
	bool "MDP HW None"
	help
	This is used for platforms without Mobile Display Sub System (MDSS).
	mdm platform don't have MDSS hardware block.

	Say Y here if this is mdm platform.

endchoice

config FB_MSM_QPIC
	bool
	select FB_MSM_MDSS_COMMON

config FB_MSM_QPIC_ILI_QVGA_PANEL
	bool "Qpic MIPI ILI QVGA Panel"
	select FB_MSM_QPIC
	---help---
	Support for MIPI ILI QVGA (240x320) panel ILI TECHNOLOGY 9341
	with on-chip full display RAM use parallel interface.

config FB_MSM_QPIC_PANEL_DETECT
	bool "Qpic Panel Detect"
	select FB_MSM_QPIC_ILI_QVGA_PANEL
	---help---
	Support for Qpic panel auto detect.

config FB_MSM_MDSS_WRITEBACK
	bool "MDSS Writeback Panel"
	---help---
	The MDSS Writeback Panel provides support for routing the output of
	MDSS frame buffer driver and MDP processing to memory.

config FB_MSM_MDSS_HDMI_PANEL
	bool "MDSS HDMI Tx Panel"
	depends on FB_MSM_MDSS
	select MSM_EXT_DISPLAY
	default n
	---help---
	The MDSS HDMI Panel provides support for transmitting TMDS signals of
	MDSS frame buffer data to connected hdmi compliant TVs, monitors etc.

config FB_MSM_MDSS_HDMI_MHL_SII8334
	depends on FB_MSM_MDSS_HDMI_PANEL
	bool 'MHL SII8334 support '
	default n
	---help---
	Support the HDMI to MHL conversion.
	MHL (Mobile High-Definition Link) technology
	uses USB connector to output HDMI content

config FB_MSM_MDSS_SPI_PANEL
	depends on SPI_QUP
	bool "Support SPI panel feature"
	---help---
	The MDSS SPI Panel provides support for transmittimg SPI signals of
	MDSS frame buffer data to connected panel. Limited by SPI clock rate,
	the current max fps only reach to ~30 fps with 240x240 resolution, and
	limited by MDP hardware architecture only supply GPU compostition.

config FB_MSM_MDSS_RGB_PANEL
	depends on FB_MSM_MDSS
	bool "Support RGB panel feature"
	---help---
	The MDSS RGB Panel provides support for transmitting
	MDSS frame buffer data over RGB parallel interface
	connected to RGB panel. Panel on/off sequence commands
	are sent to RGB Panel through an SPI interface.

config FB_MSM_MDSS_MHL3
	depends on FB_MSM_MDSS_HDMI_PANEL
	bool "MHL3 SII8620 Support"
	default n
	---help---
	Support the SiliconImage 8620 MHL Tx transmitter that uses
	USB connector to output HDMI content. Transmitter is an
	i2c device acting as an HDMI to MHL bridge. Chip supports
	MHL 3.0 standard.

config FB_MSM_MDSS_DSI_CTRL_STATUS
	tristate "DSI controller status check feature"
	---help---
	Check DSI controller status periodically (default period is 5
	seconds) by sending Bus-Turn-Around (BTA) command. If DSI controller
	fails to acknowledge the BTA command, it sends PANEL_ALIVE=0 status
	to HAL layer to reset the controller.

config FB_MSM_MDSS_DP_PANEL
        depends on FB_MSM_MDSS
        select MSM_EXT_DISPLAY
        bool "MDSS DP Panel"
        ---help---
	The MDSS DP Panel provides support for DP host controller driver
	which runs in Video mode only and is responsible for transmitting
	frame buffer from host SOC to DP display panel.

	support for DP display panel.

config FB_MSM_MDSS_EDP_PANEL
	depends on FB_MSM_MDSS
	bool "MDSS eDP Panel"
	---help---
	The MDSS eDP Panel provides support for eDP host controller driver.
	Which runs in Video mode only and is responsible for transmitting
	frame buffer from host SOC to eDP display panel.

config FB_MSM_MDSS_MDP3
	depends on FB_MSM_MDSS
	bool "MDP3 display controller"
	---help---
	The MDP3 provides support for an older version display controller.
	Included in latest display sub-system, known as MDSS.

config FB_MSM_MDSS_XLOG_DEBUG
	depends on FB_MSM_MDSS
	bool "Enable MDSS debugging"
	---help---
	The MDSS debugging provides support to enable display debugging
	features to: Dump MDSS registers during driver errors, panic
	driver during fatal errors and enable some display-driver logging
	into an internal buffer (this avoids logging overhead).

config FB_MSM_MDSS_FRC_DEBUG
	depends on DEBUG_FS && FB_MSM_MDSS
	bool "Enable Video FRC debugging"
	default n
	---help---
	The MDSS FRC debugging provides support to enable the deterministic
	frame rate control (FRC) debugging features to: Collect video frame
	statistics and check whether its output pattern matches expected
	cadence.

endif
Loading