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

Commit eab97669 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-next-2018-06-27' of git://anongit.freedesktop.org/drm/drm-misc into drm-next



drm-misc-next for 4.19:

Cross-subsystem Changes:
devicetree documentation
dt-bindings defintions for sun8i (Jernej Skrabec)

Core Changes:
Consider drivers setting DRIVER_ATOMIC as atomic (Eric Anholt)
Improvements for in-kernel clients (Noralf Trønnes)
Export and rename drm_crtc_port_mask() (Jernej Skrabec)

Driver Changes:
v3d: Add looking for GPU scheduler jobs management (Eric Anholt)
Add Ilitek ILI9881c panel driver(Maxime Ripard)
rockchip: vop: fixup linebuffer mode calc error (Sandy Huang)
tinydrm: new driver for ILI9341 display panels (David Lechner)
sun4i: Add TCON TOP driver (Jernej Skrabec)

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180628010018.GA10929@juma
parents b4d4b0b7 57e23de0
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
Ilitek ILI9341 display panels

This binding is for display panels using an Ilitek ILI9341 controller in SPI
mode.

Required properties:
- compatible:	"adafruit,yx240qv29", "ilitek,ili9341"
- dc-gpios:	D/C pin
- reset-gpios:	Reset pin

The node for this driver must be a child node of a SPI controller, hence
all mandatory properties described in ../spi/spi-bus.txt must be specified.

Optional properties:
- rotation:	panel rotation in degrees counter clockwise (0,90,180,270)
- backlight:	phandle of the backlight device attached to the panel

Example:
	display@0{
		compatible = "adafruit,yx240qv29", "ilitek,ili9341";
		reg = <0>;
		spi-max-frequency = <32000000>;
		dc-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
		rotation = <270>;
		backlight = <&backlight>;
	};
+20 −0
Original line number Diff line number Diff line
Ilitek ILI9881c based MIPI-DSI panels

Required properties:
  - compatible: must be "ilitek,ili9881c" and one of:
    * "bananapi,lhr050h41"
  - reg: DSI virtual channel used by that screen
  - power-supply: phandle to the power regulator
  - reset-gpios: a GPIO phandle for the reset pin

Optional properties:
  - backlight: phandle to the backlight used

Example:
panel@0 {
	compatible = "bananapi,lhr050h41", "ilitek,ili9881c";
	reg = <0>;
	power-supply = <&reg_display>;
	reset-gpios = <&r_pio 0 5 GPIO_ACTIVE_LOW>; /* PL05 */
	backlight = <&pwm_bl>;
};
+59 −1
Original line number Diff line number Diff line
@@ -101,6 +101,7 @@ DWC HDMI PHY

Required properties:
  - compatible: value must be one of:
    * allwinner,sun50i-a64-hdmi-phy
    * allwinner,sun8i-a83t-hdmi-phy
    * allwinner,sun8i-h3-hdmi-phy
  - reg: base address and size of memory-mapped region
@@ -111,8 +112,9 @@ Required properties:
  - resets: phandle to the reset controller driving the PHY
  - reset-names: must be "phy"

H3 HDMI PHY requires additional clock:
H3 and A64 HDMI PHY require additional clocks:
  - pll-0: parent of phy clock
  - pll-1: second possible phy clock parent (A64 only)

TV Encoder
----------
@@ -187,6 +189,62 @@ And on the A23, A31, A31s and A33, you need one more clock line:
   - 'lvds-alt': An alternative clock source, separate from the TCON channel 0
                 clock, that can be used to drive the LVDS clock

TCON TOP
--------

TCON TOPs main purpose is to configure whole display pipeline. It determines
relationships between mixers and TCONs, selects source TCON for HDMI, muxes
LCD and TV encoder GPIO output, selects TV encoder clock source and contains
additional TV TCON and DSI gates.

It allows display pipeline to be configured in very different ways:

                                / LCD0/LVDS0
                 / [0] TCON-LCD0
                 |              \ MIPI DSI
 mixer0          |
        \        / [1] TCON-LCD1 - LCD1/LVDS1
         TCON-TOP
        /        \ [2] TCON-TV0 [0] - TVE0/RGB
 mixer1          |                  \
                 |                   TCON-TOP - HDMI
                 |                  /
                 \ [3] TCON-TV1 [1] - TVE1/RGB

Note that both TCON TOP references same physical unit. Both mixers can be
connected to any TCON.

Required properties:
  - compatible: value must be one of:
    * allwinner,sun8i-r40-tcon-top
  - reg: base address and size of the memory-mapped region.
  - clocks: phandle to the clocks feeding the TCON TOP
    * bus: TCON TOP interface clock
    * tcon-tv0: TCON TV0 clock
    * tve0: TVE0 clock
    * tcon-tv1: TCON TV1 clock
    * tve1: TVE0 clock
    * dsi: MIPI DSI clock
  - clock-names: clock name mentioned above
  - resets: phandle to the reset line driving the TCON TOP
  - #clock-cells : must contain 1
  - clock-output-names: Names of clocks created for TCON TV0 channel clock,
    TCON TV1 channel clock and DSI channel clock, in that order.

- ports: A ports node with endpoint definitions as defined in
    Documentation/devicetree/bindings/media/video-interfaces.txt. 6 ports should
    be defined:
    * port 0 is input for mixer0 mux
    * port 1 is output for mixer0 mux
    * port 2 is input for mixer1 mux
    * port 3 is output for mixer1 mux
    * port 4 is input for HDMI mux
    * port 5 is output for HDMI mux
    All output endpoints for mixer muxes and input endpoints for HDMI mux should
    have reg property with the id of the target TCON, as shown in above graph
    (0-3 for mixer muxes and 0-1 for HDMI mux). All ports should have only one
    endpoint connected to remote endpoint.

DRC
---

+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ abracon Abracon Corporation
actions	Actions Semiconductor Co., Ltd.
active-semi	Active-Semi International Inc
ad	Avionic Design GmbH
adafruit	Adafruit Industries, LLC
adapteva	Adapteva, Inc.
adaptrum	Adaptrum, Inc.
adh	AD Holdings Plc.
+15 −4
Original line number Diff line number Diff line
@@ -65,6 +65,12 @@ int drm_mode_getresources(struct drm_device *dev,


/* drm_dumb_buffers.c */
int drm_mode_create_dumb(struct drm_device *dev,
			 struct drm_mode_create_dumb *args,
			 struct drm_file *file_priv);
int drm_mode_destroy_dumb(struct drm_device *dev, u32 handle,
			  struct drm_file *file_priv);

/* IOCTLs */
int drm_mode_create_dumb_ioctl(struct drm_device *dev,
			       void *data, struct drm_file *file_priv);
@@ -166,13 +172,18 @@ int drm_framebuffer_check_src_coords(uint32_t src_x, uint32_t src_y,
				     const struct drm_framebuffer *fb);
void drm_fb_release(struct drm_file *file_priv);

int drm_mode_addfb(struct drm_device *dev, struct drm_mode_fb_cmd *or,
		   struct drm_file *file_priv);
int drm_mode_rmfb(struct drm_device *dev, u32 fb_id,
		  struct drm_file *file_priv);


/* IOCTL */
int drm_mode_addfb(struct drm_device *dev,
int drm_mode_addfb_ioctl(struct drm_device *dev,
			 void *data, struct drm_file *file_priv);
int drm_mode_addfb2(struct drm_device *dev,
		    void *data, struct drm_file *file_priv);
int drm_mode_rmfb(struct drm_device *dev,
int drm_mode_rmfb_ioctl(struct drm_device *dev,
			void *data, struct drm_file *file_priv);
int drm_mode_getfb(struct drm_device *dev,
		   void *data, struct drm_file *file_priv);
Loading