Commit 19df0cfa authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-next-2022-04-21' of git://anongit.freedesktop.org/drm/drm-misc into drm-next



drm-misc-next for 5.19-rc1

UAPI Changes:

Cross-subsystem Changes:
  - of: Create a platform_device for offb

Core Changes:
  - edid: block read refactoring
  - ttm: Add common debugfs code for resource managers

Driver Changes:
  - bridges:
    - adv7611: Enable DRM_BRIDGE_OP_HPD if there's an interrupt
    - anx7625: Fill ELD if no monitor is connected
    - dw_hdmi: Add General Parallel Audio support
    - icn6211: Add data-lanes DT property
    - new driver: Lontium LT9211
  - nouveau: make some structures static
  - tidss: Reset DISPC on startup
  - solomon: SPI Support and DT bindings improvements

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20220421065948.2pyp3j7acxtl6pz5@houat
parents c54b39a5 40d8d4bd
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -41,10 +41,26 @@ properties:

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

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

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

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description:
+117 −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/lontium,lt9211.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Lontium LT9211 DSI/LVDS/DPI to DSI/LVDS/DPI bridge.

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

description: |
  The LT9211 are bridge devices which convert Single/Dual-Link DSI/LVDS
  or Single DPI to Single/Dual-Link DSI/LVDS or Single DPI.

properties:
  compatible:
    enum:
      - lontium,lt9211

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  reset-gpios:
    maxItems: 1
    description: GPIO connected to active high RESET pin.

  vccio-supply:
    description: Regulator for 1.8V IO power.

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

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Primary MIPI DSI port-1 for MIPI input or
          LVDS port-1 for LVDS input or DPI input.

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Additional MIPI port-2 for MIPI input or LVDS port-2
          for LVDS input. Used in combination with primary
          port-1 to drive higher resolution displays

      port@2:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Primary MIPI DSI port-1 for MIPI output or
          LVDS port-1 for LVDS output or DPI output.

      port@3:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Additional MIPI port-2 for MIPI output or LVDS port-2
          for LVDS output. Used in combination with primary
          port-1 to drive higher resolution displays.

    required:
      - port@0
      - port@2

required:
  - compatible
  - reg
  - vccio-supply
  - ports

additionalProperties: false

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

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

      hdmi-bridge@3b {
        compatible = "lontium,lt9211";
        reg = <0x3b>;

        reset-gpios = <&tlmm 128 GPIO_ACTIVE_HIGH>;
        interrupts-extended = <&tlmm 84 IRQ_TYPE_EDGE_FALLING>;

        vccio-supply = <&lt9211_1v8>;

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

          port@0 {
            reg = <0>;

            endpoint {
              remote-endpoint = <&dsi0_out>;
            };
          };

          port@2 {
            reg = <2>;

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

...
+82 −13
Original line number Diff line number Diff line
@@ -12,11 +12,22 @@ maintainers:

properties:
  compatible:
    enum:
    oneOf:
      # Deprecated compatible strings
      - items:
          - enum:
              - solomon,ssd1305fb-i2c
              - solomon,ssd1306fb-i2c
              - solomon,ssd1307fb-i2c
              - solomon,ssd1309fb-i2c
        deprecated: true
      - items:
          - enum:
              - sinowealth,sh1106
              - solomon,ssd1305
              - solomon,ssd1306
              - solomon,ssd1307
              - solomon,ssd1309

  reg:
    maxItems: 1
@@ -27,9 +38,20 @@ properties:
  reset-gpios:
    maxItems: 1

  # Only required for SPI
  dc-gpios:
    description:
      GPIO connected to the controller's D/C# (Data/Command) pin,
      that is needed for 4-wire SPI to tell the controller if the
      data sent is for a command register or the display data RAM
    maxItems: 1

  vbat-supply:
    description: The supply for VBAT

  # Only required for SPI
  spi-max-frequency: true

  solomon,height:
    $ref: /schemas/types.yaml#/definitions/uint32
    default: 16
@@ -135,7 +157,21 @@ allOf:
      properties:
        compatible:
          contains:
            const: solomon,ssd1305fb-i2c
            const: sinowealth,sh1106
    then:
      properties:
        solomon,dclk-div:
          default: 1
        solomon,dclk-frq:
          default: 5

  - if:
      properties:
        compatible:
          contains:
            enum:
              - solomon,ssd1305-i2c
              - solomon,ssd1305
    then:
      properties:
        solomon,dclk-div:
@@ -147,7 +183,9 @@ allOf:
      properties:
        compatible:
          contains:
            const: solomon,ssd1306fb-i2c
            enum:
              - solomon,ssd1306-i2c
              - solomon,ssd1306
    then:
      properties:
        solomon,dclk-div:
@@ -159,7 +197,9 @@ allOf:
      properties:
        compatible:
          contains:
            const: solomon,ssd1307fb-i2c
            enum:
              - solomon,ssd1307-i2c
              - solomon,ssd1307
    then:
      properties:
        solomon,dclk-div:
@@ -173,7 +213,9 @@ allOf:
      properties:
        compatible:
          contains:
            const: solomon,ssd1309fb-i2c
            enum:
              - solomon,ssd1309-i2c
              - solomon,ssd1309
    then:
      properties:
        solomon,dclk-div:
@@ -189,15 +231,15 @@ examples:
            #address-cells = <1>;
            #size-cells = <0>;

            ssd1307: oled@3c {
                    compatible = "solomon,ssd1307fb-i2c";
            ssd1307_i2c: oled@3c {
                    compatible = "solomon,ssd1307";
                    reg = <0x3c>;
                    pwms = <&pwm 4 3000>;
                    reset-gpios = <&gpio2 7>;
            };

            ssd1306: oled@3d {
                    compatible = "solomon,ssd1306fb-i2c";
            ssd1306_i2c: oled@3d {
                    compatible = "solomon,ssd1306";
                    reg = <0x3c>;
                    pwms = <&pwm 4 3000>;
                    reset-gpios = <&gpio2 7>;
@@ -207,3 +249,30 @@ examples:
                    solomon,lookup-table = /bits/ 8 <0x3f 0x3f 0x3f 0x3f>;
            };
    };
  - |
    spi {
            #address-cells = <1>;
            #size-cells = <0>;

            ssd1307_spi: oled@0 {
                    compatible = "solomon,ssd1307";
                    reg = <0x0>;
                    pwms = <&pwm 4 3000>;
                    reset-gpios = <&gpio2 7>;
                    dc-gpios = <&gpio2 8>;
                    spi-max-frequency = <10000000>;
            };

            ssd1306_spi: oled@1 {
                    compatible = "solomon,ssd1306";
                    reg = <0x1>;
                    pwms = <&pwm 4 3000>;
                    reset-gpios = <&gpio2 7>;
                    dc-gpios = <&gpio2 8>;
                    spi-max-frequency = <10000000>;
                    solomon,com-lrremap;
                    solomon,com-invdir;
                    solomon,com-offset = <32>;
                    solomon,lookup-table = /bits/ 8 <0x3f 0x3f 0x3f 0x3f>;
            };
    };
+2 −0
Original line number Diff line number Diff line
@@ -1130,6 +1130,8 @@ patternProperties:
    description: Sinlinx Electronics Technology Co., LTD
  "^sinovoip,.*":
    description: SinoVoip Co., Ltd
  "^sinowealth,.*":
    description: SINO WEALTH Electronic Ltd.
  "^sipeed,.*":
    description: Shenzhen Sipeed Technology Co., Ltd.
  "^sirf,.*":
+19 −5
Original line number Diff line number Diff line
@@ -216,7 +216,8 @@ static bool dma_buf_poll_add_cb(struct dma_resv *resv, bool write,
	struct dma_fence *fence;
	int r;

	dma_resv_for_each_fence(&cursor, resv, write, fence) {
	dma_resv_for_each_fence(&cursor, resv, dma_resv_usage_rw(write),
				fence) {
		dma_fence_get(fence);
		r = dma_fence_add_callback(fence, &dcb->cb, dma_buf_poll_cb);
		if (!r)
@@ -660,12 +661,24 @@ static struct sg_table * __map_dma_buf(struct dma_buf_attachment *attach,
				       enum dma_data_direction direction)
{
	struct sg_table *sg_table;
	signed long ret;

	sg_table = attach->dmabuf->ops->map_dma_buf(attach, direction);
	if (IS_ERR_OR_NULL(sg_table))
		return sg_table;

	if (!IS_ERR_OR_NULL(sg_table))
		mangle_sg_table(sg_table);
	if (!dma_buf_attachment_is_dynamic(attach)) {
		ret = dma_resv_wait_timeout(attach->dmabuf->resv,
					    DMA_RESV_USAGE_KERNEL, true,
					    MAX_SCHEDULE_TIMEOUT);
		if (ret < 0) {
			attach->dmabuf->ops->unmap_dma_buf(attach, sg_table,
							   direction);
			return ERR_PTR(ret);
		}
	}

	mangle_sg_table(sg_table);
	return sg_table;
}

@@ -1124,7 +1137,8 @@ static int __dma_buf_begin_cpu_access(struct dma_buf *dmabuf,
	long ret;

	/* Wait on any implicit rendering fences */
	ret = dma_resv_wait_timeout(resv, write, true, MAX_SCHEDULE_TIMEOUT);
	ret = dma_resv_wait_timeout(resv, dma_resv_usage_rw(write),
				    true, MAX_SCHEDULE_TIMEOUT);
	if (ret < 0)
		return ret;

Loading