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

Merge tag 'drm-next-2021-07-01' of git://anongit.freedesktop.org/drm/drm

Pull drm updates from Dave Airlie:
 "Highlights:

   - AMD enables two more GPUs, with resulting header files

   - i915 has started to move to TTM for discrete GPU and enable DG1
     discrete GPU support (not by default yet)

   - new HyperV drm driver

   - vmwgfx adds arm64 support

   - TTM refactoring ongoing

   - 16bpc display support for AMD hw

  Otherwise it's just the usual insane amounts of work all over the
  place in lots of drivers and the core, as mostly summarised below:

  Core:
   - mark AGP ioctls as legacy
   - disable force probing for non-master clients
   - HDR metadata property helpers
   - HDMI infoframe signal colorimetry support
   - remove drm_device.pdev pointer
   - remove DRM_KMS_FB_HELPER config option
   - remove drm_pci_alloc/free
   - drm_err_*/drm_dbg_* helpers
   - use drm driver names for fbdev
   - leaked DMA handle fix
   - 16bpc fixed point format fourcc
   - add prefetching memcpy for WC
   - Documentation fixes

  aperture:
   - add aperture ownership helpers

  dp:
   - aux fixes
   - downstream 0 port handling
   - use extended base receiver capability DPCD
   - Rename DP_PSR_SELECTIVE_UPDATE to better mach eDP spec
   - mst: use khz as link rate during init
   - VCPI fixes for StarTech hub

  ttm:
   - provide tt_shrink file via debugfs
   - warn about freeing pinned BOs
   - fix swapping error handling
   - move page alignment into BO
   - cleanup ttm_agp_backend
   - add ttm_sys_manager
   - don't override vm_ops
   - ttm_bo_mmap removed
   - make ttm_resource base of all managers
   - remove VM_MIXEDMAP usage

  panel:
   - sysfs_emit support
   - simple: runtime PM support
   - simple: power up panel when reading EDID + caching

  bridge:
   - MHDP8546: HDCP support + DT bindings
   - MHDP8546: Register DP AUX channel with userspace
   - TI SN65DSI83 + SN65DSI84: add driver
   - Sil8620: Fix module dependencies
   - dw-hdmi: make CEC driver loading optional
   - Ti-sn65dsi86: refclk fixes, subdrivers, runtime pm
   - It66121: Add driver + DT bindings
   - Adv7511: Support I2S IEC958 encoding
   - Anx7625: fix power-on delay
   - Nwi-dsi: Modesetting fixes; Cleanups
   - lt6911: add missing MODULE_DEVICE_TABLE
   - cdns: fix PM reference leak

  hyperv:
   - add new DRM driver for HyperV graphics

  efifb:
   - non-PCI device handling fixes

  i915:
   - refactor IP/device versioning
   - XeLPD Display IP preperation work
   - ADL-P enablement patches
   - DG1 uAPI behind BROKEN
   - disable mmap ioctl for discerte GPUs
   - start enabling HuC loading for Gen12+
   - major GuC backend rework for new platforms
   - initial TTM support for Discrete GPUs
   - locking rework for TTM prep
   - use correct max source link rate for eDP
   - %p4cc format printing
   - GLK display fixes
   - VLV DSI panel power fixes
   - PSR2 disabled for RKL and ADL-S
   - ACPI _DSM invalid access fixed
   - DMC FW path abstraction
   - ADL-S PCI ID update
   - uAPI headers converted to kerneldoc
   - initial LMEM support for DG1
   - x86/gpu: add Jasperlake to gen11 early quirks

  amdgpu:
   - Aldebaran updates + initial SR-IOV
   - new GPU: Beige Goby and Yellow Carp support
   - more LTTPR display work
   - Vangogh updates
   - SDMA 5.x GCR fixes
   - PCIe ASPM support
   - Renoir TMZ enablement
   - initial multiple eDP panel support
   - use fdinfo to track devices/process info
   - pin/unpin TTM fixes
   - free resource on fence usage query
   - fix fence calculation
   - fix hotunplug/suspend issues
   - GC/MM register access macro cleanup for SR-IOV
   - W=1 fixes
   - ACPI ATCS/ATIF handling rework
   - 16bpc fixed point format support
   - Initial smartshift support
   - RV/PCO power tuning fixes
   - new INFO query for additional vbios info

  amdkfd:
   - SR-IOV aldebaran support
   - HMM SVM support

  radeon:
   - SMU regression fixes
   - Oland flickering fix

  vmwgfx:
   - enable console with fbdev emulation
   - fix cpu updates of coherent multisample surfaces
   - remove reservation semaphore
   - add initial SVGA3 support
   - support arm64

  msm:
   - devcoredump support for display errors
   - dpu/dsi: yaml bindings conversion
   - mdp5: alpha/blend_mode/zpos support
   - a6xx: cached coherent buffer support
   - gpu iova fault improvement
   - a660 support

  rockchip:
   - RK3036 win1 scaling support
   - RK3066/3188 missing register support
   - RK3036/3066/3126/3188 alpha support

  mediatek:
   - MT8167 HDMI support
   - MT8183 DPI dual edge support

  tegra:
   - fixed YUV support/scaling on Tegra186+

  ast:
   - use pcim_iomap
   - fix DP501 EDID

  bochs:
   - screen blanking support

  etnaviv:
   - export more GPU ID values to userspace
   - add HWDB entry for GPU on i.MX8MP
   - rework linear window calcs

  exynos:
   - pm runtime changes

  imx:
   - Annotate dma_fence critical section
   - fix PRG modifiers after drmm conversion
   - Add 8 pixel alignment fix for 1366x768
   - fix YUV advertising
   - add color properties

  ingenic:
   - IPU planes fix

  panfrost:
   - Mediatek MT8183 support + DT bindings
   - export AFBC_FEATURES register to userspace

  simpledrm:
   - %pr for printing resources

  nouveau:
   - pin/unpin TTM fixes

  qxl:
   - unpin shadow BO

  virtio:
   - create dumb BOs as guest blob

  vkms:
   - drmm_universal_plane_alloc
   - add XRGB plane composition
   - overlay support"

* tag 'drm-next-2021-07-01' of git://anongit.freedesktop.org/drm/drm: (1570 commits)
  drm/i915: Reinstate the mmap ioctl for some platforms
  drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc
  Revert "drm/msm/mdp5: provide dynamic bandwidth management"
  drm/msm/mdp5: provide dynamic bandwidth management
  drm/msm/mdp5: add perf blocks for holding fudge factors
  drm/msm/mdp5: switch to standard zpos property
  drm/msm/mdp5: add support for alpha/blend_mode properties
  drm/msm/mdp5: use drm_plane_state for pixel blend mode
  drm/msm/mdp5: use drm_plane_state for storing alpha value
  drm/msm/mdp5: use drm atomic helpers to handle base drm plane state
  drm/msm/dsi: do not enable PHYs when called for the slave DSI interface
  drm/msm: Add debugfs to trigger shrinker
  drm/msm/dpu: Avoid ABBA deadlock between IRQ modules
  drm/msm: devcoredump iommu fault support
  iommu/arm-smmu-qcom: Add stall support
  drm/msm: Improve the a6xx page fault handler
  iommu/arm-smmu-qcom: Add an adreno-smmu-priv callback to get pagefault info
  iommu/arm-smmu: Add support for driver IOMMU fault handlers
  drm/msm: export hangcheck_period in debugfs
  drm/msm/a6xx: add support for Adreno 660 GPU
  ...
parents c288d9cd 8a02ea42
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -11,7 +11,9 @@ maintainers:

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

  reg:
    maxItems: 1
+11 −4
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ properties:

  reg:
    minItems: 1
    maxItems: 2
    maxItems: 3
    items:
      - description:
          Register block of mhdptx apb registers up to PHY mapped area (AUX_CONFIG_P).
@@ -26,13 +26,16 @@ properties:
          included in the associated PHY.
      - description:
          Register block for DSS_EDP0_INTG_CFG_VP registers in case of TI J7 SoCs.
      - description:
          Register block of mhdptx sapb registers.

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

  clocks:
    maxItems: 1
@@ -99,14 +102,18 @@ allOf:
      properties:
        reg:
          minItems: 2
          maxItems: 3
        reg-names:
          minItems: 2
          maxItems: 3
    else:
      properties:
        reg:
          maxItems: 1
          minItems: 1
          maxItems: 2
        reg-names:
          maxItems: 1
          minItems: 1
          maxItems: 2

required:
  - compatible
+82 −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/google,cros-ec-anx7688.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ChromeOS EC ANX7688 HDMI to DP Converter through Type-C Port

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

description: |
  ChromeOS EC ANX7688 is a display bridge that converts HDMI 2.0 to
  DisplayPort 1.3 Ultra-HDi (4096x2160p60). It is an Analogix ANX7688 chip
  which is connected to and operated by the ChromeOS Embedded Controller
  (See google,cros-ec.yaml). It is accessed using I2C tunneling through
  the EC and therefore its node should be a child of an EC I2C tunnel node
  (See google,cros-ec-i2c-tunnel.yaml).

properties:
  compatible:
    const: google,cros-ec-anx7688

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

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description: Video port for HDMI input.

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: USB Type-c connector.

    required:
      - port@0
      - port@1

required:
  - compatible
  - reg
  - ports

additionalProperties: false

examples:
  - |
    i2c_tunnel_b: i2c-tunnel1 {
        compatible = "google,cros-ec-i2c-tunnel";
        google,remote-bus = <1>;
        #address-cells = <1>;
        #size-cells = <0>;

        anx7688: anx7688@2c {
            compatible = "google,cros-ec-anx7688";
            reg = <0x2c>;

            ports {
                #address-cells = <1>;
                #size-cells = <0>;
                port@0 {
                    reg = <0>;
                    anx7688_in: endpoint {
                        remote-endpoint = <&hdmi0_out>;
                    };
                };
                port@1 {
                    reg = <1>;
                    anx7688_out: endpoint {
                        remote-endpoint = <&typec_connector>;
                    };
                };
            };
        };
    };
+124 −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/ite,it66121.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ITE it66121 HDMI bridge Device Tree Bindings

maintainers:
  - Phong LE <ple@baylibre.com>
  - Neil Armstrong <narmstrong@baylibre.com>

description: |
  The IT66121 is a high-performance and low-power single channel HDMI
  transmitter, fully compliant with HDMI 1.3a, HDCP 1.2 and backward compatible
  to DVI 1.0 specifications.

properties:
  compatible:
    const: ite,it66121

  reg:
    maxItems: 1

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

  vrf12-supply:
    description: Regulator for 1.2V analog core power.

  vcn33-supply:
    description: Regulator for 3.3V digital core power.

  vcn18-supply:
    description: Regulator for 1.8V IO core power.

  interrupts:
    maxItems: 1

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/$defs/port-base
        unevaluatedProperties: false
        description: DPI input port.

        properties:
          endpoint:
            $ref: /schemas/graph.yaml#/$defs/endpoint-base
            unevaluatedProperties: false

            properties:
              bus-width:
                description:
                  Endpoint bus width.
                enum:
                  - 12  # 12 data lines connected and dual-edge mode
                  - 24  # 24 data lines connected and single-edge mode
                default: 24

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: HDMI Connector port.

    required:
      - port@0
      - port@1

required:
  - compatible
  - reg
  - reset-gpios
  - vrf12-supply
  - vcn33-supply
  - vcn18-supply
  - interrupts
  - ports

additionalProperties: false

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

        it66121hdmitx: hdmitx@4c {
            compatible = "ite,it66121";
            pinctrl-names = "default";
            pinctrl-0 = <&ite_pins_default>;
            vcn33-supply = <&mt6358_vcn33_wifi_reg>;
            vcn18-supply = <&mt6358_vcn18_reg>;
            vrf12-supply = <&mt6358_vrf12_reg>;
            reset-gpios = <&pio 160 GPIO_ACTIVE_LOW>;
            interrupt-parent = <&pio>;
            interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
            reg = <0x4c>;

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

                port@0 {
                    reg = <0>;
                    it66121_in: endpoint {
                        bus-width = <12>;
                        remote-endpoint = <&display_out>;
                    };
                };

                port@1 {
                    reg = <1>;
                    hdmi_conn_out: endpoint {
                        remote-endpoint = <&hdmi_conn_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/ti,sn65dsi83.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: SN65DSI83 and SN65DSI84 DSI to LVDS bridge chip

maintainers:
  - Marek Vasut <marex@denx.de>

description: |
  Texas Instruments SN65DSI83 1x Single-link MIPI DSI
  to 1x Single-link LVDS
  https://www.ti.com/lit/gpn/sn65dsi83
  Texas Instruments SN65DSI84 1x Single-link MIPI DSI
  to 1x Dual-link or 2x Single-link LVDS
  https://www.ti.com/lit/gpn/sn65dsi84

properties:
  compatible:
    enum:
      - ti,sn65dsi83
      - ti,sn65dsi84

  reg:
    enum:
      - 0x2c
      - 0x2d

  enable-gpios:
    maxItems: 1
    description: GPIO specifier for bridge_en pin (active high).

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description: Video port for MIPI DSI Channel-A input

        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              data-lanes:
                description: array of physical DSI data lane indexes.
                minItems: 1
                maxItems: 4
                items:
                  - const: 1
                  - const: 2
                  - const: 3
                  - const: 4

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: Video port for MIPI DSI Channel-B input

        properties:
          endpoint:
            $ref: /schemas/media/video-interfaces.yaml#
            unevaluatedProperties: false

            properties:
              data-lanes:
                description: array of physical DSI data lane indexes.
                minItems: 1
                maxItems: 4
                items:
                  - const: 1
                  - const: 2
                  - const: 3
                  - const: 4

      port@2:
        $ref: /schemas/graph.yaml#/properties/port
        description: Video port for LVDS Channel-A output (panel or bridge).

      port@3:
        $ref: /schemas/graph.yaml#/properties/port
        description: Video port for LVDS Channel-B output (panel or bridge).

    required:
      - port@0
      - port@2

required:
  - compatible
  - reg
  - enable-gpios
  - ports

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: ti,sn65dsi83
    then:
      properties:
        ports:
          properties:
            port@1: false
            port@3: false

  - if:
      properties:
        compatible:
          contains:
            const: ti,sn65dsi84
    then:
      properties:
        ports:
          properties:
            port@1: false

additionalProperties: false

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

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

        bridge@2d {
            compatible = "ti,sn65dsi83";
            reg = <0x2d>;

            enable-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;

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

                port@0 {
                    reg = <0>;

                    endpoint {
                        remote-endpoint = <&dsi0_out>;
                        data-lanes = <1 2 3 4>;
                    };
                };

                port@2 {
                    reg = <2>;

                    endpoint {
                        remote-endpoint = <&panel_in_lvds>;
                    };
                };
            };
        };
    };
Loading