Commit f365ab31 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'drm-next-2020-04-01' of git://anongit.freedesktop.org/drm/drm

Pull drm updates from Dave Airlie:
 "This is the main drm pull request for 5.7-rc1.

  Highlights:

   - i915 enables Tigerlake by default

   - i915 and amdgpu have initial OLED backlight support

     [ Jani Nikula pipes up and points out that we've had a bunch of
       "initial support" code for a long time already, but only now
       Lyude made it actually work on real world machines ]

   - vmwgfx add support to enable OpenGL 4 userspace

   - zero length arrays are mostly removed.

  Detailed summary:

  new driver:
   - tidss: TI Keystone platform display subsystem

  core:
   - new drm device warn macros
   - mode config valid for memory constrained devices
   - bridge bus format negotation
   - consolidated fake vblank event handling
   - dma_alloc related cleanups
   - drop get_crtc callback
   - dp: DP1.4 EDID corruption test
   - EDID CEA detailed timings improvements
   - relicense some code to dual GPL2/MIT
   - convert core vblank support to per-crtc support
   - rework drm_global_mutex
   - bridge rework to allow omap_dss custom driver removeal
   - remove drm_fb_helper connector interrfaces
   - zero-length array removal

  scheduler:
   - support for modifying the sched list
   - revert job distribution optimization
   - helper to pick least loaded scheduler
   - race condition fix

  mst:
   - various fixes
   - remove register_connector callback

  i915:
   - uapi to allows userspace specific CS ring buffer sizes
   - Tigerlake enablement patches + Tigerlake enabled by default
   - new sysfs entries for engine properties
   - display/logging refactors
   - eDP/DP fixes for DPCD
   - Gen7 back to aliasing-ppgtt
   - Gen8+ irq refactor
   - Avoid globals
   - GEM locking fixes and simplifications
   - Ice Lake and Elkhart Lake fixes and workarounds
   - Baytrail/Haswell instability fix
   - GVT - VFIO edid better support

  amdgpu:
   - Rework VM update handling in preparation for HMM support
   - drm load/unload removal fixups
   - USB-C PD firmware updates
   - HDCP srm support
   - Navi/renoir PM watermark fixes
   - OLED panel support
   - Optimize debugging vram access
   - Use BACO for runtime pm
   - DC clock programming optimizations and fixes
   - PSP fw loading sequence updates
   - Drop DRIVER_USE_AGP
   - Remove legacy drm load and unload callbacks
   - ACP Kconfig fix
   - Lots of fixes across the driver

  amdkfd:
   - runtime pm support
   - more gfx config details in amdgpu

  radeon:
   - drop DRIVER_USE_AGP

  vmwgfx:
   - Disable DMA when SEV encryption in use
   - Shader Model 5 support - needed for GL4 support

  msm:
   - DPU resource manager refactor
   - dpu using atomic global state

  mediatek:
   - MT8183 DPI support

  etnaviv:
   - out-of-bounds read fix
   - expose feature flags for GC400 STM32MP1 SoC
   - runtime suspend entry fix
   - dma32 zone fix

  hisilicon:
   - mode selection fixes

  meson:
   - YUV420 support

  lima:
   - add support for heap buffers

  tinydrm:
   - removal of owner field
   - explicit DT dependency removal
   - YAML schema conversion

  tegra:
   - misc cleanups

  tidss:
   - new driver

  virtio:
   - better batching of notifications to host
   - memory handling reworked
   - shmem + gpu context fixes

  hibmc:
   - add gamma_set support
   - improve DPMS support

  pl111:
   - Integrator IM-PD1 support

  sun4i:
   - LVDS support for A20 + A33
   - DSI panel handling improvements"

* tag 'drm-next-2020-04-01' of git://anongit.freedesktop.org/drm/drm: (1537 commits)
  drm/i915/display: Fix mode private_flags comparison at atomic_check
  drm/i915/gt: Stage the transfer of the virtual breadcrumb
  drm/i915/gt: Select the deepest available parking mode for rc6
  drm/i915: Avoid live-lock with i915_vma_parked()
  drm/i915/gt: Treat idling as a RPS downclock event
  drm/i915/gt: Cancel a hung context if already closed
  drm/i915: Use explicit flag to mark unreachable intel_context
  drm/amdgpu: don't try to reserve training bo for sriov (v2)
  drm/amdgpu/smu11: add support for SMU AC/DC interrupts
  drm/amdgpu/swSMU: handle manual AC/DC notifications
  drm/amdgpu/swSMU: handle DC controlled by GPIO for navi1x
  drm/amdgpu/swSMU: set AC/DC mode based on the current system state (v2)
  drm/amdgpu/swSMU: correct the bootup power source for Navi1X (v2)
  drm/amdgpu/swSMU: use the smu11 power source helper for navi1x
  drm/amdgpu/smu11: add a helper to set the power source
  drm/amd/swSMU: add callback to set AC/DC power source (v2)
  drm/scheduler: fix rare NULL ptr race
  drm/amdgpu: fix the coverage issue to clear ArcVPGRs
  drm/amd/display: Fix pageflip event race condition for DCN.
  drm/[radeon|amdgpu]: Remove HAINAN board from max_sclk override check
  ...
parents 4646de87 59e7a8cc
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -34,6 +34,12 @@ properties:
      - const: allwinner,sun9i-a80-tcon-lcd
      - const: allwinner,sun9i-a80-tcon-tv

      - items:
        - enum:
          - allwinner,sun7i-a20-tcon0
          - allwinner,sun7i-a20-tcon1
        - const: allwinner,sun7i-a20-tcon

      - items:
        - enum:
            - allwinner,sun50i-a64-tcon-lcd
+12 −11
Original line number Diff line number Diff line
Analog Device ADV7511(W)/13/33 HDMI Encoders
Analog Device ADV7511(W)/13/33/35 HDMI Encoders
-----------------------------------------

The ADV7511, ADV7511W, ADV7513 and ADV7533 are HDMI audio and video transmitters
compatible with HDMI 1.4 and DVI 1.0. They support color space conversion,
S/PDIF, CEC and HDCP. ADV7533 supports the DSI interface for input pixels, while
the others support RGB interface.
The ADV7511, ADV7511W, ADV7513, ADV7533 and ADV7535 are HDMI audio and video
transmitters compatible with HDMI 1.4 and DVI 1.0. They support color space
conversion, S/PDIF, CEC and HDCP. ADV7533/5 supports the DSI interface for input
pixels, while the others support RGB interface.

Required properties:

@@ -13,6 +13,7 @@ Required properties:
		"adi,adv7511w"
		"adi,adv7513"
		"adi,adv7533"
		"adi,adv7535"

- reg: I2C slave addresses
  The ADV7511 internal registers are split into four pages exposed through
@@ -52,14 +53,14 @@ The following input format properties are required except in "rgb 1x" and
- bgvdd-supply: A 1.8V supply that powers up the BGVDD pin. This is
  needed only for ADV7511.

The following properties are required for ADV7533:
The following properties are required for ADV7533 and ADV7535:

- adi,dsi-lanes: Number of DSI data lanes connected to the DSI host. It should
  be one of 1, 2, 3 or 4.
- a2vdd-supply: 1.8V supply that powers up the A2VDD pin on the chip.
- v3p3-supply: A 3.3V supply that powers up the V3P3 pin on the chip.
- v1p2-supply: A supply that powers up the V1P2 pin on the chip. It can be
  either 1.2V or 1.8V.
  either 1.2V or 1.8V for ADV7533 but only 1.8V for ADV7535.

Optional properties:

@@ -71,9 +72,9 @@ Optional properties:
- adi,embedded-sync: The input uses synchronization signals embedded in the
  data stream (similar to BT.656). Defaults to separate H/V synchronization
  signals.
- adi,disable-timing-generator: Only for ADV7533. Disables the internal timing
  generator. The chip will rely on the sync signals in the DSI data lanes,
  rather than generate its own timings for HDMI output.
- adi,disable-timing-generator: Only for ADV7533 and ADV7535. Disables the
  internal timing generator. The chip will rely on the sync signals in the
  DSI data lanes, rather than generate its own timings for HDMI output.
- clocks: from common clock binding: reference to the CEC clock.
- clock-names: from common clock binding: must be "cec".
- reg-names : Names of maps with programmable addresses.
@@ -85,7 +86,7 @@ Required nodes:
The ADV7511 has two video ports. Their connections are modelled using the OF
graph bindings specified in Documentation/devicetree/bindings/graph.txt.

- Video port 0 for the RGB, YUV or DSI input. In the case of ADV7533, the
- Video port 0 for the RGB, YUV or DSI input. In the case of ADV7533/5, the
  remote endpoint phandle should be a reference to a valid mipi_dsi_host device
  node.
- Video port 1 for the HDMI output
+112 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/bridge/ps8640.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MIPI DSI to eDP Video Format Converter Device Tree Bindings

maintainers:
  - Nicolas Boichat <drinkcat@chromium.org>
  - Enric Balletbo i Serra <enric.balletbo@collabora.com>

description: |
  The PS8640 is a low power MIPI-to-eDP video format converter supporting
  mobile devices with embedded panel resolutions up to 2048 x 1536. The
  device accepts a single channel of MIPI DSI v1.1, with up to four lanes
  plus clock, at a transmission rate up to 1.5Gbit/sec per lane. The
  device outputs eDP v1.4, one or two lanes, at a link rate of up to
  3.24Gbit/sec per lane.

properties:
  compatible:
    const: parade,ps8640

  reg:
    maxItems: 1
    description: Base I2C address of the device.

  powerdown-gpios:
    maxItems: 1
    description: GPIO connected to active low powerdown.

  reset-gpios:
    maxItems: 1
    description: GPIO connected to active low reset.

  vdd12-supply:
    maxItems: 1
    description: Regulator for 1.2V digital core power.

  vdd33-supply:
    maxItems: 1
    description: Regulator for 3.3V digital core power.

  ports:
    type: object
    description:
      A node containing DSI input & output port nodes with endpoint
      definitions as documented in
      Documentation/devicetree/bindings/media/video-interfaces.txt
      Documentation/devicetree/bindings/graph.txt
    properties:
      port@0:
        type: object
        description: |
          Video port for DSI input

      port@1:
        type: object
        description: |
          Video port for eDP output (panel or connector).

    required:
      - port@0

required:
  - compatible
  - reg
  - powerdown-gpios
  - reset-gpios
  - vdd12-supply
  - vdd33-supply
  - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    i2c0 {
        #address-cells = <1>;
        #size-cells = <0>;

        ps8640: edp-bridge@18 {
            compatible = "parade,ps8640";
            reg = <0x18>;
            powerdown-gpios = <&pio 116 GPIO_ACTIVE_LOW>;
            reset-gpios = <&pio 115 GPIO_ACTIVE_LOW>;
            vdd12-supply = <&ps8640_fixed_1v2>;
            vdd33-supply = <&mt6397_vgp2_reg>;

            ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    reg = <0>;
                    ps8640_in: endpoint {
                        remote-endpoint = <&dsi0_out>;
                    };
                };

                port@1 {
                    reg = <1>;
                    ps8640_out: endpoint {
                        remote-endpoint = <&panel_in>;
                   };
                };
            };
        };
    };
+159 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/bridge/toshiba,tc358768.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Toschiba TC358768/TC358778 Parallel RGB to MIPI DSI bridge

maintainers:
  - Peter Ujfalusi <peter.ujfalusi@ti.com>

description: |
  The TC358768/TC358778 is bridge device which converts RGB to DSI.

properties:
  compatible:
    enum:
      - toshiba,tc358768
      - toshiba,tc358778

  reg:
    maxItems: 1
    description: base I2C address of the device

  reset-gpios:
    maxItems: 1
    description: GPIO connected to active low RESX pin

  vddc-supply:
    description: Regulator for 1.2V internal core power.

  vddmipi-supply:
    description: Regulator for 1.2V for the MIPI.

  vddio-supply:
    description: Regulator for 1.8V - 3.3V IO power.

  clocks:
    maxItems: 1

  clock-names:
    const: refclk

  ports:
    type: object

    properties:
      "#address-cells":
        const: 1

      "#size-cells":
        const: 0

      port@0:
        type: object
        additionalProperties: false

        description: |
          Video port for RGB input

        properties:
          reg:
            const: 0

        patternProperties:
          endpoint:
            type: object
            additionalProperties: false

            properties:
              data-lines:
                enum: [ 16, 18, 24 ]

              remote-endpoint: true

        required:
          - reg

      port@1:
        type: object
        additionalProperties: false

        description: |
          Video port for DSI output (panel or connector).

        properties:
          reg:
            const: 1

        patternProperties:
          endpoint:
            type: object
            additionalProperties: false

            properties:
              remote-endpoint: true

        required:
          - reg

    required:
      - "#address-cells"
      - "#size-cells"
      - port@0
      - port@1

required:
  - compatible
  - reg
  - vddc-supply
  - vddmipi-supply
  - vddio-supply
  - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

    i2c1 {
      #address-cells = <1>;
      #size-cells = <0>;

      dsi_bridge: dsi-bridge@e {
        compatible = "toshiba,tc358768";
        reg = <0xe>;

        clocks = <&tc358768_refclk>;
        clock-names = "refclk";

        reset-gpios = <&pcf_display_board 0 GPIO_ACTIVE_LOW>;

        vddc-supply = <&v1_2d>;
        vddmipi-supply = <&v1_2d>;
        vddio-supply = <&v3_3d>;

        dsi_bridge_ports: ports {
          #address-cells = <1>;
          #size-cells = <0>;

          port@0 {
            reg = <0>;
            rgb_in: endpoint {
              remote-endpoint = <&dpi_out>;
              data-lines = <24>;
            };
          };

          port@1 {
            reg = <1>;
            dsi_out: endpoint {
              remote-endpoint = <&lcd_in>;
            };
          };
        };
      };
    };
    
+73 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/ilitek,ili9486.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Ilitek ILI9486 display panels device tree bindings

maintainers:
  - Kamlesh Gurudasani <kamlesh.gurudasani@gmail.com>

description:
  This binding is for display panels using an Ilitek ILI9486 controller in SPI
  mode.

allOf:
  - $ref: panel/panel-common.yaml#

properties:
  compatible:
    items:
      - enum:
          # Waveshare 3.5" 320x480 Color TFT LCD
        - waveshare,rpi-lcd-35
          # Ozzmaker 3.5" 320x480 Color TFT LCD
        - ozzmaker,piscreen
      - const: ilitek,ili9486

  spi-max-frequency:
    maximum: 32000000

  dc-gpios:
    maxItems: 1
    description: Display data/command selection (D/CX)

  backlight: true
  reg: true
  reset-gpios: true
  rotation: true

required:
  - compatible
  - reg
  - dc-gpios
  - reset-gpios

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

    backlight: backlight {
            compatible = "gpio-backlight";
            gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
    };
    spi {
            #address-cells = <1>;
            #size-cells = <0>;


            display@0{
                    compatible = "waveshare,rpi-lcd-35", "ilitek,ili9486";
                    reg = <0>;
                    spi-max-frequency = <32000000>;
                    dc-gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>;
                    reset-gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
                    rotation = <180>;
                    backlight = <&backlight>;
            };
    };

...
Loading