Merge tag 'drm-next-2020-08-06' of git://anongit.freedesktop.org/drm/drm
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 6 Aug 2020 02:50:06 +0000 (19:50 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 6 Aug 2020 02:50:06 +0000 (19:50 -0700)
Pull drm updates from Dave Airlie:
 "New xilinx displayport driver, AMD support for two new GPUs (more
  header files), i915 initial support for RocketLake and some work on
  their DG1 (discrete chip).

  The core also grew some lockdep annotations to try and constrain what
  drivers do with dma-fences, and added some documentation on why the
  idea of indefinite fences doesn't work.

  The long list is below.

  I do have some fixes trees outstanding, but I'll follow up with those
  later.

  core:
   - add user def flag to cmd line modes
   - dma_fence_wait added might_sleep
   - dma-fence lockdep annotations
   - indefinite fences are bad documentation
   - gem CMA functions used in more drivers
   - struct mutex removal
   - more drm_ debug macro usage
   - set/drop master api fixes
   - fix for drm/mm hole size comparison
   - drm/mm remove invalid entry optimization
   - optimise drm/mm hole handling
   - VRR debugfs added
   - uncompressed AFBC modifier support
   - multiple display id blocks in EDID
   - multiple driver sg handling fixes
   - __drm_atomic_helper_crtc_reset in all drivers
   - managed vram helpers

  ttm:
   - ttm_mem_reg handling cleanup
   - remove bo offset field
   - drop CMA memtype flag
   - drop mappable flag

  xilinx:
   - New Xilinx ZynqMP DisplayPort Subsystem driver

  nouveau:
   - add CRC support
   - start using NVIDIA published class header files
   - convert all push buffer emission to new macros
   - Proper push buffer space management for EVO/NVD channels.
   - firmware loading fixes
   - 2MiB system memory pages support on Pascal and newer

  vkms:
   - larger cursor support

  i915:
   - Rocketlake platform enablement
   - Early DG1 enablement
   - Numerous GEM refactorings
   - DP MST fixes
   - FBC, PSR, Cursor, Color, Gamma fixes
   - TGL, RKL, EHL workaround updates
   - TGL 8K display support fixes
   - SDVO/HDMI/DVI fixes

  amdgpu:
   - Initial support for Sienna Cichlid GPU
   - Initial support for Navy Flounder GPU
   - SI UVD/VCE support
   - expose rotation property
   - Add support for unique id on Arcturus
   - Enable runtime PM on vega10 boards that support BACO
   - Skip BAR resizing if the bios already did id
   - Major swSMU code cleanup
   - Fixes for DCN bandwidth calculations

  amdkfd:
   - Track SDMA usage per process
   - SMI events interface

  radeon:
   - Default to on chip GART for AGP boards on all arches
   - Runtime PM reference count fixes

  msm:
   - headers regenerated causing churn
   - a650/a640 display and GPU enablement
   - dpu dither support for 6bpc panels
   - dpu cursor fix
   - dsi/mdp5 enablement for sdm630/sdm636/sdm66

  tegra:
   - video capture prep support
   - reflection support

  mediatek:
   - convert mtk_dsi to bridge API

  meson:
   - FBC support

  sun4i:
   - iommu support

  rockchip:
   - register locking fix
   - per-pixel alpha support PX30 VOP

  mgag200:
   - ported to simple and shmem helpers
   - device init cleanups
   - use managed pci functions
   - dropped hw cursor support

  ast:
   - use managed pci functions
   - use managed VRAM helpers
   - rework cursor support

  malidp:
   - dev_groups support

  hibmc:
   - refactor hibmc_drv_vdac:

  vc4:
   - create TXP CRTC

  imx:
   - error path fixes and cleanups

  etnaviv:
   - clock handling and error handling cleanups
   - use pin_user_pages"

* tag 'drm-next-2020-08-06' of git://anongit.freedesktop.org/drm/drm: (1747 commits)
  drm/msm: use kthread_create_worker instead of kthread_run
  drm/msm/mdp5: Add MDP5 configuration for SDM636/660
  drm/msm/dsi: Add DSI configuration for SDM660
  drm/msm/mdp5: Add MDP5 configuration for SDM630
  drm/msm/dsi: Add phy configuration for SDM630/636/660
  drm/msm/a6xx: add A640/A650 hwcg
  drm/msm/a6xx: hwcg tables in gpulist
  drm/msm/dpu: add SM8250 to hw catalog
  drm/msm/dpu: add SM8150 to hw catalog
  drm/msm/dpu: intf timing path for displayport
  drm/msm/dpu: set missing flush bits for INTF_2 and INTF_3
  drm/msm/dpu: don't use INTF_INPUT_CTRL feature on sdm845
  drm/msm/dpu: move some sspp caps to dpu_caps
  drm/msm/dpu: update UBWC config for sm8150 and sm8250
  drm/msm/dpu: use right setup_blend_config for sm8150 and sm8250
  drm/msm/a6xx: set ubwc config for A640 and A650
  drm/msm/adreno: un-open-code some packets
  drm/msm: sync generated headers
  drm/msm/a6xx: add build_bw_table for A640/A650
  drm/msm/a6xx: fix crashstate capture for A650
  ...

33 files changed:
1  2 
Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml
Documentation/devicetree/bindings/vendor-prefixes.yaml
Documentation/driver-api/dmaengine/client.rst
Documentation/driver-api/dmaengine/provider.rst
Documentation/gpu/drm-mm.rst
MAINTAINERS
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/bochs/bochs_kms.c
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
drivers/gpu/drm/bridge/nwl-dsi.c
drivers/gpu/drm/bridge/sil-sii8620.c
drivers/gpu/drm/drm_edid.c
drivers/gpu/drm/drm_fb_helper.c
drivers/gpu/drm/drm_gem.c
drivers/gpu/drm/drm_mipi_dbi.c
drivers/gpu/drm/drm_of.c
drivers/gpu/drm/i915/display/intel_fbc.c
drivers/gpu/drm/i915/gt/intel_lrc.c
drivers/gpu/drm/i915/intel_uncore.c
drivers/gpu/drm/mediatek/mtk_drm_crtc.c
drivers/gpu/drm/nouveau/dispnv50/disp.c
drivers/gpu/drm/nouveau/nouveau_display.c
drivers/gpu/drm/nouveau/nouveau_dmem.c
drivers/gpu/drm/nouveau/nouveau_fbcon.c
drivers/gpu/drm/nouveau/nouveau_svm.c
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp100.c
drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
drivers/gpu/drm/panel/panel-simple.c
drivers/of/property.c
drivers/video/fbdev/Kconfig
drivers/video/fbdev/Makefile
include/drm/drm_mode_config.h

index 0000000000000000000000000000000000000000,be10e8cf31e11997d70246631a5f4a024e8a384f..f8622bd0f61ee62d232af4e5417f30e8fb564d61
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,293 +1,293 @@@
 -  http://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=sn65dsi86&fileType=pdf
+ # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+ %YAML 1.2
+ ---
+ $id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi86.yaml#
+ $schema: http://devicetree.org/meta-schemas/core.yaml#
+ title: SN65DSI86 DSI to eDP bridge chip
+ maintainers:
+   - Sandeep Panda <spanda@codeaurora.org>
+ description: |
+   The Texas Instruments SN65DSI86 bridge takes MIPI DSI in and outputs eDP.
++  https://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=sn65dsi86&fileType=pdf
+ properties:
+   compatible:
+     const: ti,sn65dsi86
+   reg:
+     const: 0x2d
+   enable-gpios:
+     maxItems: 1
+     description: GPIO specifier for bridge_en pin (active high).
+   suspend-gpios:
+     maxItems: 1
+     description: GPIO specifier for GPIO1 pin on bridge (active low).
+   no-hpd:
+     type: boolean
+     description:
+       Set if the HPD line on the bridge isn't hooked up to anything or is
+       otherwise unusable.
+   vccio-supply:
+     description: A 1.8V supply that powers the digital IOs.
+   vpll-supply:
+     description: A 1.8V supply that powers the DisplayPort PLL.
+   vcca-supply:
+     description: A 1.2V supply that powers the analog circuits.
+   vcc-supply:
+     description: A 1.2V supply that powers the digital core.
+   interrupts:
+     maxItems: 1
+   clocks:
+     maxItems: 1
+     description:
+       Clock specifier for input reference clock. The reference clock rate must
+       be 12 MHz, 19.2 MHz, 26 MHz, 27 MHz or 38.4 MHz.
+   clock-names:
+     const: refclk
+   gpio-controller: true
+   '#gpio-cells':
+     const: 2
+     description:
+       First cell is pin number, second cell is flags.  GPIO pin numbers are
+       1-based to match the datasheet.  See ../../gpio/gpio.txt for more
+       information.
+   '#pwm-cells':
+     const: 1
+     description: See ../../pwm/pwm.yaml for description of the cell formats.
+   ports:
+     type: object
+     additionalProperties: false
+     properties:
+       "#address-cells":
+         const: 1
+       "#size-cells":
+         const: 0
+       port@0:
+         type: object
+         additionalProperties: false
+         description:
+           Video port for MIPI DSI input
+         properties:
+           reg:
+             const: 0
+           endpoint:
+             type: object
+             additionalProperties: false
+             properties:
+               remote-endpoint: true
+         required:
+           - reg
+       port@1:
+         type: object
+         additionalProperties: false
+         description:
+           Video port for eDP output (panel or connector).
+         properties:
+           reg:
+             const: 1
+           endpoint:
+             type: object
+             additionalProperties: false
+             properties:
+               remote-endpoint: true
+               data-lanes:
+                 oneOf:
+                   - minItems: 1
+                     maxItems: 1
+                     uniqueItems: true
+                     items:
+                       enum:
+                         - 0
+                         - 1
+                     description:
+                       If you have 1 logical lane the bridge supports routing
+                       to either port 0 or port 1.  Port 0 is suggested.
+                       See ../../media/video-interface.txt for details.
+                   - minItems: 2
+                     maxItems: 2
+                     uniqueItems: true
+                     items:
+                       enum:
+                         - 0
+                         - 1
+                     description:
+                       If you have 2 logical lanes the bridge supports
+                       reordering but only on physical ports 0 and 1.
+                       See ../../media/video-interface.txt for details.
+                   - minItems: 4
+                     maxItems: 4
+                     uniqueItems: true
+                     items:
+                       enum:
+                         - 0
+                         - 1
+                         - 2
+                         - 3
+                     description:
+                       If you have 4 logical lanes the bridge supports
+                       reordering in any way.
+                       See ../../media/video-interface.txt for details.
+               lane-polarities:
+                 minItems: 1
+                 maxItems: 4
+                 items:
+                   enum:
+                     - 0
+                     - 1
+                 description: See ../../media/video-interface.txt
+             dependencies:
+               lane-polarities: [data-lanes]
+         required:
+           - reg
+     required:
+       - "#address-cells"
+       - "#size-cells"
+       - port@0
+       - port@1
+ required:
+   - compatible
+   - reg
+   - enable-gpios
+   - vccio-supply
+   - vpll-supply
+   - vcca-supply
+   - vcc-supply
+   - ports
+ additionalProperties: false
+ examples:
+   - |
+     #include <dt-bindings/clock/qcom,rpmh.h>
+     #include <dt-bindings/gpio/gpio.h>
+     #include <dt-bindings/interrupt-controller/irq.h>
+     i2c {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       bridge@2d {
+         compatible = "ti,sn65dsi86";
+         reg = <0x2d>;
+         interrupt-parent = <&tlmm>;
+         interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
+         enable-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
+         vpll-supply = <&src_pp1800_s4a>;
+         vccio-supply = <&src_pp1800_s4a>;
+         vcca-supply = <&src_pp1200_l2a>;
+         vcc-supply = <&src_pp1200_l2a>;
+         clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
+         clock-names = "refclk";
+         no-hpd;
+         ports {
+           #address-cells = <1>;
+           #size-cells = <0>;
+           port@0 {
+             reg = <0>;
+             endpoint {
+               remote-endpoint = <&dsi0_out>;
+             };
+           };
+           port@1 {
+             reg = <1>;
+             endpoint {
+               remote-endpoint = <&panel_in_edp>;
+             };
+           };
+         };
+       };
+     };
+   - |
+     #include <dt-bindings/clock/qcom,rpmh.h>
+     #include <dt-bindings/gpio/gpio.h>
+     #include <dt-bindings/interrupt-controller/irq.h>
+     i2c {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       bridge@2d {
+         compatible = "ti,sn65dsi86";
+         reg = <0x2d>;
+         enable-gpios = <&msmgpio 33 GPIO_ACTIVE_HIGH>;
+         suspend-gpios = <&msmgpio 34 GPIO_ACTIVE_LOW>;
+         interrupts-extended = <&gpio3 4 IRQ_TYPE_EDGE_FALLING>;
+         vccio-supply = <&pm8916_l17>;
+         vcca-supply = <&pm8916_l6>;
+         vpll-supply = <&pm8916_l17>;
+         vcc-supply = <&pm8916_l6>;
+         clock-names = "refclk";
+         clocks = <&input_refclk>;
+         ports {
+           #address-cells = <1>;
+           #size-cells = <0>;
+           port@0 {
+             reg = <0>;
+             edp_bridge_in: endpoint {
+               remote-endpoint = <&dsi_out>;
+             };
+           };
+           port@1 {
+             reg = <1>;
+             edp_bridge_out: endpoint {
+               data-lanes = <2 1 3 0>;
+               lane-polarities = <0 1 0 1>;
+               remote-endpoint = <&edp_panel_in>;
+             };
+           };
+         };
+       };
+     };
Simple merge
diff --cc MAINTAINERS
index bff045cf1670ba05a9267ee1c77214058f4e0197,2c669c07fa3522f41a82a126cb07bf20ef27ceb6..0e249ae61e9215867d45a7e712df8852b10e3fee
@@@ -18938,15 -18864,15 +18943,24 @@@ F:        Documentation/devicetree/bindings/me
  F:    drivers/media/platform/xilinx/
  F:    include/uapi/linux/xilinx-v4l2-controls.h
  
+ XILINX ZYNQMP DPDMA DRIVER
+ M:    Hyun Kwon <hyun.kwon@xilinx.com>
+ M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+ L:    dmaengine@vger.kernel.org
+ S:    Supported
+ F:    Documentation/devicetree/bindings/dma/xilinx/xlnx,zynqmp-dpdma.yaml
+ F:    drivers/dma/xilinx/xilinx_dpdma.c
+ F:    include/dt-bindings/dma/xlnx-zynqmp-dpdma.h
 +XILINX ZYNQMP PSGTR PHY DRIVER
 +M:    Anurag Kumar Vulisha <anurag.kumar.vulisha@xilinx.com>
 +M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
 +L:    linux-kernel@vger.kernel.org
 +S:    Supported
 +T:    git https://github.com/Xilinx/linux-xlnx.git
 +F:    Documentation/devicetree/bindings/phy/xlnx,zynqmp-psgtr.yaml
 +F:    drivers/phy/xilinx/phy-zynqmp.c
 +
  XILLYBUS DRIVER
  M:    Eli Billauer <eli.billauer@gmail.com>
  L:    linux-kernel@vger.kernel.org
Simple merge
index 648eb23d078481069e54fa30ed42433b4f749464,f45cdca9cce57106fcf2628b43102e94e5d97310..a0d392c338da5241744835e0ed3d89ba14440e8b
@@@ -1223,8 -1280,9 +1280,10 @@@ static int adv7511_probe(struct i2c_cli
                goto err_unregister_cec;
  
        adv7511->bridge.funcs = &adv7511_bridge_funcs;
+       adv7511->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID
+                           | DRM_BRIDGE_OP_HPD;
        adv7511->bridge.of_node = dev->of_node;
 +      adv7511->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
  
        drm_bridge_add(&adv7511->bridge);
  
Simple merge
Simple merge
index b98fa573e7069e061a3d6851cc6ace096f591c85,f6c72390420440338e1c56a92364d04944b5c86e..6840f0530a38963ab3d939c3a7d8768fe93b0837
@@@ -3051,7 -3093,8 +3093,8 @@@ static int drm_cvt_modes(struct drm_con
        const u8 empty[3] = { 0, 0, 0 };
  
        for (i = 0; i < 4; i++) {
 -              int uninitialized_var(width), height;
 +              int width, height;
                cvt = &(timing->data.other_data.data.cvt[i]);
  
                if (!memcmp(cvt->code, empty, 3))
Simple merge
index ee2058ad482c492f08c2b2655ebfde8c06bb6359,a57f5379fc08000fb071308490be4996e6557d56..d4e7c8370565ed12b3ec6ca8542457707e11b6bb
@@@ -901,9 -913,7 +909,9 @@@ drm_gem_open_ioctl(struct drm_device *d
        args->handle = handle;
        args->size = obj->size;
  
 -      return 0;
 +err:
-       drm_gem_object_put_unlocked(obj);
++      drm_gem_object_put(obj);
 +      return ret;
  }
  
  /**
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge