Commit 93b694d0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'drm-next-2020-10-15' of git://anongit.freedesktop.org/drm/drm

Pull drm updates from Dave Airlie:
 "Not a major amount of change, the i915 trees got split into display
  and gt trees to better facilitate higher level review, and there's a
  major refactoring of i915 GEM locking to use more core kernel concepts
  (like ww-mutexes). msm gets per-process pagetables, older AMD SI cards
  get DC support, nouveau got a bump in displayport support with common
  code extraction from i915.

  Outside of drm this contains a couple of patches for hexint
  moduleparams which you've acked, and a virtio common code tree that
  you should also get via it's regular path.

  New driver:
   - Cadence MHDP8546 DisplayPort bridge driver

  core:
   - cross-driver scatterlist cleanups
   - devm_drm conversions
   - remove drm_dev_init
   - devm_drm_dev_alloc conversion

  ttm:
   - lots of refactoring and cleanups

  bridges:
   - chained bridge support in more drivers

  panel:
   - misc new panels

  scheduler:
   - cleanup priority levels

  displayport:
   - refactor i915 code into helpers for nouveau

  i915:
   - split into display and GT trees
   - WW locking refactoring in GEM
   - execbuf2 extension mechanism
   - syncobj timeline support
   - GEN 12 HOBL display powersaving
   - Rocket Lake display additions
   - Disable FBC on Tigerlake
   - Tigerlake Type-C + DP improvements
   - Hotplug interrupt refactoring

  amdgpu:
   - Sienna Cichlid updates
   - Navy Flounder updates
   - DCE6 (SI) support for DC
   - Plane rotation enabled
   - TMZ state info ioctl
   - PCIe DPC recovery support
   - DC interrupt handling refactor
   - OLED panel fixes

  amdkfd:
   - add SMI events for thermal throttling
   - SMI interface events ioctl update
   - process eviction counters

  radeon:
   - move to dma_ for allocations
   - expose sclk via sysfs

  msm:
   - DSI support for sm8150/sm8250
   - per-process GPU pagetable support
   - Displayport support

  mediatek:
   - move HDMI phy driver to PHY
   - convert mtk-dpi to bridge API
   - disable mt2701 tmds

  tegra:
   - bridge support

  exynos:
   - misc cleanups

  vc4:
   - dual display cleanups

  ast:
   - cleanups

  gma500:
   - conversion to GPIOd API

  hisilicon:
   - misc reworks

  ingenic:
   - clock handling and format improvements

  mcde:
   - DSI support

  mgag200:
   - desktop g200 support

  mxsfb:
   - i.MX7 + i.MX8M
   - alpha plane support

  panfrost:
   - devfreq support
   - amlogic SoC support

  ps8640:
   - EDID from eDP retrieval

  tidss:
   - AM65xx YUV workaround

  virtio:
   - virtio-gpu exported resources

  rcar-du:
   - R8A7742, R8A774E1 and R8A77961 support
   - YUV planar format fixes
   - non-visible plane handling
   - VSP device reference count fix
   - Kconfig fix to avoid displaying disabled options in .config"

* tag 'drm-next-2020-10-15' of git://anongit.freedesktop.org/drm/drm: (1494 commits)
  drm/ingenic: Fix bad revert
  drm/amdgpu: Fix invalid number of character '{' in amdgpu_acpi_init
  drm/amdgpu: Remove warning for virtual_display
  drm/amdgpu: kfd_initialized can be static
  drm/amd/pm: setup APU dpm clock table in SMU HW initialization
  drm/amdgpu: prevent spurious warning
  drm/amdgpu/swsmu: fix ARC build errors
  drm/amd/display: Fix OPTC_DATA_FORMAT programming
  drm/amd/display: Don't allow pstate if no support in blank
  drm/panfrost: increase readl_relaxed_poll_timeout values
  MAINTAINERS: Update entry for st7703 driver after the rename
  Revert "gpu/drm: ingenic: Add option to mmap GEM buffers cached"
  drm/amd/display: HDMI remote sink need mode validation for Linux
  drm/amd/display: Change to correct unit on audio rate
  drm/amd/display: Avoid set zero in the requested clk
  drm/amdgpu: align frag_end to covered address space
  drm/amdgpu: fix NULL pointer dereference for Renoir
  drm/vmwgfx: fix regression in thp code due to ttm init refactor.
  drm/amdgpu/swsmu: add interrupt work handler for smu11 parts
  drm/amdgpu/swsmu: add interrupt work function
  ...
parents 726eb70e 640eee06
Loading
Loading
Loading
Loading
+117 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/brcm,bcm2711-hdmi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM2711 HDMI Controller Device Tree Bindings

maintainers:
  - Eric Anholt <eric@anholt.net>

properties:
  compatible:
    enum:
      - brcm,bcm2711-hdmi0
      - brcm,bcm2711-hdmi1

  reg:
    items:
      - description: HDMI controller register range
      - description: DVP register range
      - description: HDMI PHY register range
      - description: Rate Manager register range
      - description: Packet RAM register range
      - description: Metadata RAM register range
      - description: CSC register range
      - description: CEC register range
      - description: HD register range

  reg-names:
    items:
      - const: hdmi
      - const: dvp
      - const: phy
      - const: rm
      - const: packet
      - const: metadata
      - const: csc
      - const: cec
      - const: hd

  clocks:
    items:
      - description: The HDMI state machine clock
      - description: The Pixel BVB clock
      - description: The HDMI Audio parent clock
      - description: The HDMI CEC parent clock

  clock-names:
    items:
      - const: hdmi
      - const: bvb
      - const: audio
      - const: cec

  ddc:
    allOf:
      - $ref: /schemas/types.yaml#/definitions/phandle
    description: >
      Phandle of the I2C controller used for DDC EDID probing

  hpd-gpios:
    description: >
      The GPIO pin for the HDMI hotplug detect (if it doesn't appear
      as an interrupt/status bit in the HDMI controller itself)

  dmas:
    maxItems: 1
    description: >
      Should contain one entry pointing to the DMA channel used to
      transfer audio data.

  dma-names:
    const: audio-rx

  resets:
    maxItems: 1

required:
  - compatible
  - reg
  - reg-names
  - clocks
  - resets
  - ddc

additionalProperties: false

examples:
  - |
    hdmi0: hdmi@7ef00700 {
        compatible = "brcm,bcm2711-hdmi0";
        reg = <0x7ef00700 0x300>,
              <0x7ef00300 0x200>,
              <0x7ef00f00 0x80>,
              <0x7ef00f80 0x80>,
              <0x7ef01b00 0x200>,
              <0x7ef01f00 0x400>,
              <0x7ef00200 0x80>,
              <0x7ef04300 0x100>,
              <0x7ef20000 0x100>;
        reg-names = "hdmi",
                    "dvp",
                    "phy",
                    "rm",
                    "packet",
                    "metadata",
                    "csc",
                    "cec",
                    "hd";
        clocks = <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_27MHz>;
        clock-names = "hdmi", "bvb", "audio", "cec";
        resets = <&dvp 0>;
        ddc = <&ddc0>;
    };

...
+17 −1
Original line number Diff line number Diff line
@@ -11,7 +11,9 @@ maintainers:

properties:
  compatible:
    const: brcm,bcm2835-hvs
    enum:
      - brcm,bcm2711-hvs
      - brcm,bcm2835-hvs

  reg:
    maxItems: 1
@@ -19,6 +21,10 @@ properties:
  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1
    description: Core Clock

required:
  - compatible
  - reg
@@ -26,6 +32,16 @@ required:

additionalProperties: false

if:
  properties:
    compatible:
      contains:
        const: brcm,bcm2711-hvs"

then:
  required:
    - clocks

examples:
  - |
    hvs@7e400000 {
+5 −0
Original line number Diff line number Diff line
@@ -15,6 +15,11 @@ properties:
      - brcm,bcm2835-pixelvalve0
      - brcm,bcm2835-pixelvalve1
      - brcm,bcm2835-pixelvalve2
      - brcm,bcm2711-pixelvalve0
      - brcm,bcm2711-pixelvalve1
      - brcm,bcm2711-pixelvalve2
      - brcm,bcm2711-pixelvalve3
      - brcm,bcm2711-pixelvalve4

  reg:
    maxItems: 1
+1 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ description: >
properties:
  compatible:
    enum:
      - brcm,bcm2711-vc5
      - brcm,bcm2835-vc4
      - brcm,cygnus-vc4

+169 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/display/bridge/cdns,mhdp8546.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Cadence MHDP8546 bridge

maintainers:
  - Swapnil Jakhade <sjakhade@cadence.com>
  - Yuti Amonkar <yamonkar@cadence.com>

properties:
  compatible:
    enum:
      - cdns,mhdp8546
      - ti,j721e-mhdp8546

  reg:
    minItems: 1
    maxItems: 2
    items:
      - description:
          Register block of mhdptx apb registers up to PHY mapped area (AUX_CONFIG_P).
          The AUX and PMA registers are not part of this range, they are instead
          included in the associated PHY.
      - description:
          Register block for DSS_EDP0_INTG_CFG_VP registers in case of TI J7 SoCs.

  reg-names:
    minItems: 1
    maxItems: 2
    items:
      - const: mhdptx
      - const: j721e-intg

  clocks:
    maxItems: 1
    description:
      DP bridge clock, used by the IP to know how to translate a number of
      clock cycles into a time (which is used to comply with DP standard timings
      and delays).

  phys:
    maxItems: 1
    description:
      phandle to the DisplayPort PHY.

  phy-names:
    items:
      - const: dpphy

  power-domains:
    maxItems: 1

  interrupts:
    maxItems: 1

  ports:
    type: object
    description:
      Ports as described in Documentation/devicetree/bindings/graph.txt.

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

      '#size-cells':
        const: 0

      port@0:
        type: object
        description:
          First input port representing the DP bridge input.

      port@1:
        type: object
        description:
          Second input port representing the DP bridge input.

      port@2:
        type: object
        description:
          Third input port representing the DP bridge input.

      port@3:
        type: object
        description:
          Fourth input port representing the DP bridge input.

      port@4:
        type: object
        description:
          Output port representing the DP bridge output.

    required:
      - port@0
      - port@4
      - '#address-cells'
      - '#size-cells'

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: ti,j721e-mhdp8546
    then:
      properties:
        reg:
          minItems: 2
        reg-names:
          minItems: 2
    else:
      properties:
        reg:
          maxItems: 1
        reg-names:
          maxItems: 1

required:
  - compatible
  - clocks
  - reg
  - reg-names
  - phys
  - phy-names
  - interrupts
  - ports

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    bus {
        #address-cells = <2>;
        #size-cells = <2>;

        mhdp: dp-bridge@f0fb000000 {
            compatible = "cdns,mhdp8546";
            reg = <0xf0 0xfb000000 0x0 0x1000000>;
            reg-names = "mhdptx";
            clocks = <&mhdp_clock>;
            phys = <&dp_phy>;
            phy-names = "dpphy";
            interrupts = <GIC_SPI 614 IRQ_TYPE_LEVEL_HIGH>;

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

                port@0 {
                    reg = <0>;
                    dp_bridge_input: endpoint {
                        remote-endpoint = <&xxx_dpi_output>;
                    };
                };

                port@4 {
                    reg = <4>;
                    dp_bridge_output: endpoint {
                        remote-endpoint = <&xxx_dp_connector_input>;
                    };
                };
            };
        };
    };
...
Loading