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

Commit 9e9ac896 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull fbdev updates from Tomi Valkeinen:
 - much better HDMI infoframe support for OMAP
 - Cirrus Logic CLPS711X framebuffer driver
 - DT support for PL11x CLCD driver
 - various small fixes

* tag 'fbdev-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (35 commits)
  OMAPDSS: DSI: fix depopulating dsi peripherals
  video: hyperv: hyperv_fb: refresh the VM screen by force on VM panic
  video: ARM CLCD: Fix DT-related build problems
  drivers: video: fbdev: atmel_lcdfb.c: Add ability to inverted backlight PWM.
  video: ARM CLCD: Add DT support
  drm/omap: Add infoframe & dvi/hdmi mode support
  OMAPDSS: HDMI: remove the unused code
  OMAPDSS: HDMI5: add support to set infoframe & HDMI mode
  OMAPDSS: HDMI4: add support to set infoframe & HDMI mode
  OMAPDSS: HDMI: add infoframe and hdmi_dvi_mode fields
  OMAPDSS: add hdmi ops to hdmi-connector and tpd12s015
  OMAPDSS: add hdmi ops to hdmi_ops and omap_dss_driver
  OMAPDSS: HDMI: remove custom avi infoframe
  OMAPDSS: HDMI5: use common AVI infoframe support
  OMAPDSS: HDMI4: use common AVI infoframe support
  OMAPDSS: Kconfig: select HDMI
  OMAPDSS: HDMI: fix name conflict
  OMAPDSS: DISPC: clean up dispc_mgr_timings_ok
  OMAPDSS: DISPC: reject interlace for lcd out
  OMAPDSS: DISPC: fix debugfs reg dump
  ...
parents 34b20e6d e4e42b8a
Loading
Loading
Loading
Loading
+109 −0
Original line number Diff line number Diff line
* ARM PrimeCell Color LCD Controller PL110/PL111

See also Documentation/devicetree/bindings/arm/primecell.txt

Required properties:

- compatible: must be one of:
	"arm,pl110", "arm,primecell"
	"arm,pl111", "arm,primecell"

- reg: base address and size of the control registers block

- interrupt-names: either the single entry "combined" representing a
	combined interrupt output (CLCDINTR), or the four entries
	"mbe", "vcomp", "lnbu", "fuf" representing the individual
	CLCDMBEINTR, CLCDVCOMPINTR, CLCDLNBUINTR, CLCDFUFINTR interrupts

- interrupts: contains an interrupt specifier for each entry in
	interrupt-names

- clock-names: should contain "clcdclk" and "apb_pclk"

- clocks: contains phandle and clock specifier pairs for the entries
	in the clock-names property. See
	Documentation/devicetree/binding/clock/clock-bindings.txt

Optional properties:

- memory-region: phandle to a node describing memory (see
	Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt)
	to be used for the framebuffer; if not present, the framebuffer
	may be located anywhere in the memory

- max-memory-bandwidth: maximum bandwidth in bytes per second that the
	cell's memory interface can handle; if not present, the memory
	interface is fast enough to handle all possible video modes

Required sub-nodes:

- port: describes LCD panel signals, following the common binding
	for video transmitter interfaces; see
	Documentation/devicetree/bindings/media/video-interfaces.txt;
	when it is a TFT panel, the port's endpoint must define the
	following property:

	- arm,pl11x,tft-r0g0b0-pads: an array of three 32-bit values,
		defining the way CLD pads are wired up; first value
		contains index of the "CLD" external pin (pad) used
		as R0 (first bit of the red component), second value
	        index of the pad used as G0, third value index of the
		pad used as B0, see also "LCD panel signal multiplexing
		details" paragraphs in the PL110/PL111 Technical
		Reference Manuals; this implicitly defines available
		color modes, for example:
		- PL111 TFT 4:4:4 panel:
			arm,pl11x,tft-r0g0b0-pads = <4 15 20>;
		- PL110 TFT (1:)5:5:5 panel:
			arm,pl11x,tft-r0g0b0-pads = <1 7 13>;
		- PL111 TFT (1:)5:5:5 panel:
			arm,pl11x,tft-r0g0b0-pads = <3 11 19>;
		- PL111 TFT 5:6:5 panel:
			arm,pl11x,tft-r0g0b0-pads = <3 10 19>;
		- PL110 and PL111 TFT 8:8:8 panel:
			arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
		- PL110 and PL111 TFT 8:8:8 panel, R & B components swapped:
			arm,pl11x,tft-r0g0b0-pads = <16 8 0>;


Example:

	clcd@10020000 {
		compatible = "arm,pl111", "arm,primecell";
		reg = <0x10020000 0x1000>;
		interrupt-names = "combined";
		interrupts = <0 44 4>;
		clocks = <&oscclk1>, <&oscclk2>;
		clock-names = "clcdclk", "apb_pclk";
		max-memory-bandwidth = <94371840>; /* Bps, 1024x768@60 16bpp */

		port {
			clcd_pads: endpoint {
				remote-endpoint = <&clcd_panel>;
				arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
			};
		};

	};

	panel {
		compatible = "panel-dpi";

		port {
			clcd_panel: endpoint {
				remote-endpoint = <&clcd_pads>;
			};
		};

		panel-timing {
			clock-frequency = <25175000>;
			hactive = <640>;
			hback-porch = <40>;
			hfront-porch = <24>;
			hsync-len = <96>;
			vactive = <480>;
			vback-porch = <32>;
			vfront-porch = <11>;
			vsync-len = <2>;
		};
	};
+1 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ Required properties (as per of_videomode_helper):

Optional properties (as per of_videomode_helper):
 - atmel,lcdcon-backlight: enable backlight
 - atmel,lcdcon-backlight-inverted: invert backlight PWM polarity
 - atmel,lcd-wiring-mode: lcd wiring mode "RGB" or "BRG"
 - atmel,power-control-gpio: gpio to power on or off the LCD (as many as needed)

+47 −0
Original line number Diff line number Diff line
* 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 = <&reg5v0>;
		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>;
			};
		};
	};
+37 −37
Original line number Diff line number Diff line
@@ -606,7 +606,7 @@ W: http://www.amd.com/us-en/ConnectivitySolutions/TechnicalResources/0,,50_2334_
S:	Supported
F:	drivers/char/hw_random/geode-rng.c
F:	drivers/crypto/geode*
F:	drivers/video/geode/
F:	drivers/video/fbdev/geode/
F:	arch/x86/include/asm/geode.h

AMD IOMMU (AMD-VI)
@@ -735,8 +735,8 @@ F: drivers/ata/pata_arasan_cf.c
ARC FRAMEBUFFER DRIVER
M:	Jaya Kumar <jayalk@intworks.biz>
S:	Maintained
F:	drivers/video/arcfb.c
F:	drivers/video/fb_defio.c
F:	drivers/video/fbdev/arcfb.c
F:	drivers/video/fbdev/core/fb_defio.c

ARM MFM AND FLOPPY DRIVERS
M:	Ian Molton <spyro@f2s.com>
@@ -775,7 +775,7 @@ F: sound/arm/aaci.*
ARM PRIMECELL CLCD PL110 DRIVER
M:	Russell King <linux@arm.linux.org.uk>
S:	Maintained
F:	drivers/video/amba-clcd.*
F:	drivers/video/fbdev/amba-clcd.*

ARM PRIMECELL KMI PL050 DRIVER
M:	Russell King <linux@arm.linux.org.uk>
@@ -1180,7 +1180,7 @@ M: Daniel Walker <dwalker@fifo99.com>
M:	Bryan Huntsman <bryanh@codeaurora.org>
L:	linux-arm-msm@vger.kernel.org
F:	arch/arm/mach-msm/
F:	drivers/video/msm/
F:	drivers/video/fbdev/msm/
F:	drivers/mmc/host/msm_sdcc.c
F:	drivers/mmc/host/msm_sdcc.h
F:	drivers/tty/serial/msm_serial.h
@@ -1414,7 +1414,7 @@ F: drivers/mtd/nand/nuc900_nand.c
F:	drivers/rtc/rtc-nuc900.c
F:	drivers/spi/spi-nuc900.c
F:	drivers/usb/host/ehci-w90x900.c
F:	drivers/video/nuc900fb.c
F:	drivers/video/fbdev/nuc900fb.c

ARM/U300 MACHINE SUPPORT
M:	Linus Walleij <linus.walleij@linaro.org>
@@ -1484,9 +1484,9 @@ F: drivers/rtc/rtc-vt8500.c
F:	drivers/tty/serial/vt8500_serial.c
F:	drivers/usb/host/ehci-platform.c
F:	drivers/usb/host/uhci-platform.c
F:	drivers/video/vt8500lcdfb.*
F:	drivers/video/wm8505fb*
F:	drivers/video/wmt_ge_rops.*
F:	drivers/video/fbdev/vt8500lcdfb.*
F:	drivers/video/fbdev/wm8505fb*
F:	drivers/video/fbdev/wmt_ge_rops.*

ARM/ZIPIT Z2 SUPPORT
M:	Marek Vasut <marek.vasut@gmail.com>
@@ -1676,7 +1676,7 @@ ATMEL LCDFB DRIVER
M:	Nicolas Ferre <nicolas.ferre@atmel.com>
L:	linux-fbdev@vger.kernel.org
S:	Maintained
F:	drivers/video/atmel_lcdfb.c
F:	drivers/video/fbdev/atmel_lcdfb.c
F:	include/video/atmel_lcdc.h

ATMEL MACB ETHERNET DRIVER
@@ -2703,7 +2703,7 @@ M: Russell King <linux@arm.linux.org.uk>
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
W:	http://www.arm.linux.org.uk/
S:	Maintained
F:	drivers/video/cyber2000fb.*
F:	drivers/video/fbdev/cyber2000fb.*

CYCLADES ASYNC MUX DRIVER
W:	http://www.cyclades.com/
@@ -2941,7 +2941,7 @@ M: Bernie Thompson <bernie@plugable.com>
L:	linux-fbdev@vger.kernel.org
S:	Maintained
W:	http://plugable.com/category/projects/udlfb/
F:	drivers/video/udlfb.c
F:	drivers/video/fbdev/udlfb.c
F:	include/video/udlfb.h
F:	Documentation/fb/udlfb.txt

@@ -3452,7 +3452,7 @@ EFIFB FRAMEBUFFER DRIVER
L:	linux-fbdev@vger.kernel.org
M:	Peter Jones <pjones@redhat.com>
S:	Maintained
F:	drivers/video/efifb.c
F:	drivers/video/fbdev/efifb.c

EFS FILESYSTEM
W:	http://aeschi.ch.eu.org/efs/
@@ -3517,7 +3517,7 @@ EPSON S1D13XXX FRAMEBUFFER DRIVER
M:	Kristoffer Ericson <kristoffer.ericson@gmail.com>
S:	Maintained
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git
F:	drivers/video/s1d13xxxfb.c
F:	drivers/video/fbdev/s1d13xxxfb.c
F:	include/video/s1d13xxxfb.h

ETHERNET BRIDGE
@@ -3595,7 +3595,7 @@ M: Donghwa Lee <dh09.lee@samsung.com>
M:	Kyungmin Park <kyungmin.park@samsung.com>
L:	linux-fbdev@vger.kernel.org
S:	Maintained
F:	drivers/video/exynos/exynos_mipi*
F:	drivers/video/fbdev/exynos/exynos_mipi*
F:	include/video/exynos_mipi*

F71805F HARDWARE MONITORING DRIVER
@@ -3774,7 +3774,7 @@ FREESCALE DIU FRAMEBUFFER DRIVER
M:	Timur Tabi <timur@tabi.org>
L:	linux-fbdev@vger.kernel.org
S:	Maintained
F:	drivers/video/fsl-diu-fb.*
F:	drivers/video/fbdev/fsl-diu-fb.*

FREESCALE DMA DRIVER
M:	Li Yang <leoli@freescale.com>
@@ -3796,7 +3796,7 @@ L: linux-fbdev@vger.kernel.org
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S:	Maintained
F:	include/linux/platform_data/video-imxfb.h
F:	drivers/video/imxfb.c
F:	drivers/video/fbdev/imxfb.c

FREESCALE SOC FS_ENET DRIVER
M:	Pantelis Antoniou <pantelis.antoniou@gmail.com>
@@ -4222,7 +4222,7 @@ M: Ferenc Bakonyi <fero@drama.obuda.kando.hu>
L:	linux-nvidia@lists.surfsouth.com
W:	http://drama.obuda.kando.hu/~fero/cgi-bin/hgafb.shtml
S:	Maintained
F:	drivers/video/hgafb.c
F:	drivers/video/fbdev/hgafb.c

HIBERNATION (aka Software Suspend, aka swsusp)
M:	"Rafael J. Wysocki" <rjw@rjwysocki.net>
@@ -4364,7 +4364,7 @@ F: drivers/hv/
F:	drivers/input/serio/hyperv-keyboard.c
F:	drivers/net/hyperv/
F:	drivers/scsi/storvsc_drv.c
F:	drivers/video/hyperv_fb.c
F:	drivers/video/fbdev/hyperv_fb.c
F:	include/linux/hyperv.h
F:	tools/hv/

@@ -4620,7 +4620,7 @@ F: security/integrity/ima/
IMS TWINTURBO FRAMEBUFFER DRIVER
L:	linux-fbdev@vger.kernel.org
S:	Orphan
F:	drivers/video/imsttfb.c
F:	drivers/video/fbdev/imsttfb.c

INFINIBAND SUBSYSTEM
M:	Roland Dreier <roland@kernel.org>
@@ -4687,13 +4687,13 @@ M: Maik Broemme <mbroemme@plusserver.de>
L:	linux-fbdev@vger.kernel.org
S:	Maintained
F:	Documentation/fb/intelfb.txt
F:	drivers/video/intelfb/
F:	drivers/video/fbdev/intelfb/

INTEL 810/815 FRAMEBUFFER DRIVER
M:	Antonino Daplas <adaplas@gmail.com>
L:	linux-fbdev@vger.kernel.org
S:	Maintained
F:	drivers/video/i810/
F:	drivers/video/fbdev/i810/

INTEL MENLOW THERMAL DRIVER
M:	Sujith Thomas <sujith.thomas@intel.com>
@@ -5758,7 +5758,7 @@ F: drivers/mmc/host/mvsdio.*
MATROX FRAMEBUFFER DRIVER
L:	linux-fbdev@vger.kernel.org
S:	Orphan
F:	drivers/video/matrox/matroxfb_*
F:	drivers/video/fbdev/matrox/matroxfb_*
F:	include/uapi/linux/matroxfb.h

MAX16065 HARDWARE MONITOR DRIVER
@@ -6398,8 +6398,8 @@ NVIDIA (rivafb and nvidiafb) FRAMEBUFFER DRIVER
M:	Antonino Daplas <adaplas@gmail.com>
L:	linux-fbdev@vger.kernel.org
S:	Maintained
F:	drivers/video/riva/
F:	drivers/video/nvidia/
F:	drivers/video/fbdev/riva/
F:	drivers/video/fbdev/nvidia/

NVM EXPRESS DRIVER
M:	Matthew Wilcox <willy@linux.intel.com>
@@ -6469,14 +6469,14 @@ M: Tomi Valkeinen <tomi.valkeinen@ti.com>
L:	linux-fbdev@vger.kernel.org
L:	linux-omap@vger.kernel.org
S:	Maintained
F:	drivers/video/omap/
F:	drivers/video/fbdev/omap/

OMAP DISPLAY SUBSYSTEM and FRAMEBUFFER SUPPORT (DSS2)
M:	Tomi Valkeinen <tomi.valkeinen@ti.com>
L:	linux-omap@vger.kernel.org
L:	linux-fbdev@vger.kernel.org
S:	Maintained
F:	drivers/video/omap2/
F:	drivers/video/fbdev/omap2/
F:	Documentation/arm/OMAP/DSS

OMAP HARDWARE SPINLOCK SUPPORT
@@ -6768,7 +6768,7 @@ F: drivers/char/agp/parisc-agp.c
F:	drivers/input/serio/gscps2.c
F:	drivers/parport/parport_gsc.*
F:	drivers/tty/serial/8250/8250_gsc.c
F:	drivers/video/sti*
F:	drivers/video/fbdev/sti*
F:	drivers/video/console/sti*
F:	drivers/video/logo/logo_parisc*

@@ -7027,7 +7027,7 @@ S: Maintained
T:	git git://github.com/gxt/linux.git
F:	drivers/input/serio/i8042-unicore32io.h
F:	drivers/i2c/busses/i2c-puv3.c
F:	drivers/video/fb-puv3.c
F:	drivers/video/fbdev/fb-puv3.c
F:	drivers/rtc/rtc-puv3.c

PMBUS HARDWARE MONITORING DRIVERS
@@ -7407,7 +7407,7 @@ RADEON FRAMEBUFFER DISPLAY DRIVER
M:	Benjamin Herrenschmidt <benh@kernel.crashing.org>
L:	linux-fbdev@vger.kernel.org
S:	Maintained
F:	drivers/video/aty/radeon*
F:	drivers/video/fbdev/aty/radeon*
F:	include/uapi/linux/radeonfb.h

RADIOSHARK RADIO DRIVER
@@ -7429,7 +7429,7 @@ RAGE128 FRAMEBUFFER DISPLAY DRIVER
M:	Paul Mackerras <paulus@samba.org>
L:	linux-fbdev@vger.kernel.org
S:	Maintained
F:	drivers/video/aty/aty128fb.c
F:	drivers/video/fbdev/aty/aty128fb.c

RALINK RT2X00 WIRELESS LAN DRIVER
P:	rt2x00 project
@@ -7677,7 +7677,7 @@ S3 SAVAGE FRAMEBUFFER DRIVER
M:	Antonino Daplas <adaplas@gmail.com>
L:	linux-fbdev@vger.kernel.org
S:	Maintained
F:	drivers/video/savage/
F:	drivers/video/fbdev/savage/

S390
M:	Martin Schwidefsky <schwidefsky@de.ibm.com>
@@ -7800,7 +7800,7 @@ SAMSUNG FRAMEBUFFER DRIVER
M:	Jingoo Han <jg1.han@samsung.com>
L:	linux-fbdev@vger.kernel.org
S:	Maintained
F:	drivers/video/s3c-fb.c
F:	drivers/video/fbdev/s3c-fb.c

SAMSUNG MULTIFUNCTION DEVICE DRIVERS
M:	Sangbeom Kim <sbkim73@samsung.com>
@@ -8297,7 +8297,7 @@ M: Thomas Winischhofer <thomas@winischhofer.net>
W:	http://www.winischhofer.net/linuxsisvga.shtml
S:	Maintained
F:	Documentation/fb/sisfb.txt
F:	drivers/video/sis/
F:	drivers/video/fbdev/sis/
F:	include/video/sisfb.h

SIS USB2VGA DRIVER
@@ -8406,7 +8406,7 @@ SMSC UFX6000 and UFX7000 USB to VGA DRIVER
M:	Steve Glendinning <steve.glendinning@shawell.net>
L:	linux-fbdev@vger.kernel.org
S:	Maintained
F:	drivers/video/smscufx.c
F:	drivers/video/fbdev/smscufx.c

SOC-CAMERA V4L2 SUBSYSTEM
M:	Guennadi Liakhovetski <g.liakhovetski@gmx.de>
@@ -9670,7 +9670,7 @@ L: linux-fbdev@vger.kernel.org
W:	http://dev.gentoo.org/~spock/projects/uvesafb/
S:	Maintained
F:	Documentation/fb/uvesafb.txt
F:	drivers/video/uvesafb.*
F:	drivers/video/fbdev/uvesafb.*

VFAT/FAT/MSDOS FILESYSTEM
M:	OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
@@ -9743,7 +9743,7 @@ S: Maintained
F:	include/linux/via-core.h
F:	include/linux/via-gpio.h
F:	include/linux/via_i2c.h
F:	drivers/video/via/
F:	drivers/video/fbdev/via/

VIA VELOCITY NETWORK DRIVER
M:	Francois Romieu <romieu@fr.zoreil.com>
+12 −0
Original line number Diff line number Diff line
@@ -32,8 +32,16 @@ struct omap_connector {
	struct drm_connector base;
	struct omap_dss_device *dssdev;
	struct drm_encoder *encoder;
	bool hdmi_mode;
};

bool omap_connector_get_hdmi_mode(struct drm_connector *connector)
{
	struct omap_connector *omap_connector = to_omap_connector(connector);

	return omap_connector->hdmi_mode;
}

void copy_timings_omap_to_drm(struct drm_display_mode *mode,
		struct omap_video_timings *timings)
{
@@ -162,10 +170,14 @@ static int omap_connector_get_modes(struct drm_connector *connector)
			drm_mode_connector_update_edid_property(
					connector, edid);
			n = drm_add_edid_modes(connector, edid);

			omap_connector->hdmi_mode =
				drm_detect_hdmi_monitor(edid);
		} else {
			drm_mode_connector_update_edid_property(
					connector, NULL);
		}

		kfree(edid);
	} else {
		struct drm_display_mode *mode = drm_mode_create(dev);
Loading