Commit 407baae3 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'du-next-20211007' of git://linuxtv.org/pinchartl/media into drm-next



R-Car DU improvements & enhancements to misc drivers

Most notably,

- Non-contiguous buffer import support for rcar-du
- r8a779a0 support preparation for rcar-du
- COMPILE_TEST fixes for omapdrm and sti

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

From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/YV5jfi+/qjTJKeb3@pendragon.ideasonboard.com
parents 1e394457 b291fdcf
Loading
Loading
Loading
Loading
+51 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ properties:
      - renesas,du-r8a77980 # for R-Car V3H compatible DU
      - renesas,du-r8a77990 # for R-Car E3 compatible DU
      - renesas,du-r8a77995 # for R-Car D3 compatible DU
      - renesas,du-r8a779a0 # for R-Car V3U compatible DU

  reg:
    maxItems: 1
@@ -773,6 +774,56 @@ allOf:
        - reset-names
        - renesas,vsps

  - if:
      properties:
        compatible:
          contains:
            enum:
              - renesas,du-r8a779a0
    then:
      properties:
        clocks:
          items:
            - description: Functional clock

        clock-names:
          maxItems: 1
          items:
            - const: du.0

        interrupts:
          maxItems: 2

        resets:
          maxItems: 1

        reset-names:
          items:
            - const: du.0

        ports:
          properties:
            port@0:
              description: DSI 0
            port@1:
              description: DSI 1
            port@2: false
            port@3: false

          required:
            - port@0
            - port@1

        renesas,vsps:
          minItems: 2

      required:
        - clock-names
        - interrupts
        - resets
        - reset-names
        - renesas,vsps

additionalProperties: false

examples:
+3 −6
Original line number Diff line number Diff line
@@ -127,8 +127,7 @@ struct drm_property *drm_property_create(struct drm_device *dev,
	property->num_values = num_values;
	INIT_LIST_HEAD(&property->enum_list);

	strncpy(property->name, name, DRM_PROP_NAME_LEN);
	property->name[DRM_PROP_NAME_LEN-1] = '\0';
	strscpy_pad(property->name, name, DRM_PROP_NAME_LEN);

	list_add_tail(&property->head, &dev->mode_config.property_list);

@@ -421,8 +420,7 @@ int drm_property_add_enum(struct drm_property *property,
	if (!prop_enum)
		return -ENOMEM;

	strncpy(prop_enum->name, name, DRM_PROP_NAME_LEN);
	prop_enum->name[DRM_PROP_NAME_LEN-1] = '\0';
	strscpy_pad(prop_enum->name, name, DRM_PROP_NAME_LEN);
	prop_enum->value = value;

	property->values[index] = value;
@@ -475,8 +473,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
	if (!property)
		return -ENOENT;

	strncpy(out_resp->name, property->name, DRM_PROP_NAME_LEN);
	out_resp->name[DRM_PROP_NAME_LEN-1] = 0;
	strscpy_pad(out_resp->name, property->name, DRM_PROP_NAME_LEN);
	out_resp->flags = property->flags;

	value_count = property->num_values;
+1 −1
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
config DRM_OMAP
	tristate "OMAP DRM"
	depends on DRM
	depends on DRM && OF
	depends on ARCH_OMAP2PLUS || ARCH_MULTIPLATFORM
	select DRM_KMS_HELPER
	select VIDEOMODE_HELPERS
+2 −2
Original line number Diff line number Diff line
@@ -2094,7 +2094,7 @@ static int dsi_vc_send_long(struct dsi_data *dsi, int vc,
	u8 b1, b2, b3, b4;

	if (dsi->debug_write)
		DSSDBG("dsi_vc_send_long, %d bytes\n", msg->tx_len);
		DSSDBG("dsi_vc_send_long, %zu bytes\n", msg->tx_len);

	/* len + header */
	if (dsi->vc[vc].tx_fifo_size * 32 * 4 < msg->tx_len + 4) {
@@ -2390,7 +2390,7 @@ static int dsi_vc_generic_read(struct omap_dss_device *dssdev, int vc,

	return 0;
err:
	DSSERR("%s(vc %d, reqlen %d) failed\n", __func__,  vc, msg->tx_len);
	DSSERR("%s(vc %d, reqlen %zu) failed\n", __func__,  vc, msg->tx_len);
	return r;
}

+1 −1
Original line number Diff line number Diff line
@@ -572,7 +572,7 @@ static int omapdrm_init(struct omap_drm_private *priv, struct device *dev)
	priv->dss->mgr_ops_priv = priv;

	soc = soc_device_match(omapdrm_soc_devices);
	priv->omaprev = soc ? (unsigned int)soc->data : 0;
	priv->omaprev = soc ? (uintptr_t)soc->data : 0;
	priv->wq = alloc_ordered_workqueue("omapdrm", 0);

	mutex_init(&priv->list_lock);
Loading