Loading drivers/input/touchscreen/st/fts.c +5 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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) Loading Loading @@ -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; Loading @@ -4575,6 +4578,7 @@ static int check_dt(struct device_node *np) } } #endif return -ENODEV; } Loading drivers/video/fbdev/Kconfig +14 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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" drivers/video/fbdev/Makefile +5 −0 Original line number Diff line number Diff line Loading @@ -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 Loading drivers/video/fbdev/core/fbmem.c +16 −13 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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; Loading @@ -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 Loading Loading @@ -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; Loading @@ -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, Loading Loading @@ -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; Loading Loading @@ -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; } Loading drivers/video/fbdev/msm/Kconfig 0 → 100644 +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
drivers/input/touchscreen/st/fts.c +5 −1 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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) Loading Loading @@ -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; Loading @@ -4575,6 +4578,7 @@ static int check_dt(struct device_node *np) } } #endif return -ENODEV; } Loading
drivers/video/fbdev/Kconfig +14 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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"
drivers/video/fbdev/Makefile +5 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
drivers/video/fbdev/core/fbmem.c +16 −13 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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; Loading @@ -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 Loading Loading @@ -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; Loading @@ -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, Loading Loading @@ -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; Loading Loading @@ -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; } Loading
drivers/video/fbdev/msm/Kconfig 0 → 100644 +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