Commit 062fd0a6 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-fixes-2024-08-08' of...

Merge tag 'drm-misc-fixes-2024-08-08' of https://gitlab.freedesktop.org/drm/misc/kernel

 into drm-fixes

A fix for drm/client to prevent a null pointer dereference, a fix for a
double-free in drm/bridge-connector, a fix for a gem shmem test, and a
fix for async flips updates.

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

From: Maxime Ripard <mripard@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240808-debonair-smoky-mustang-8b6b3f@houat
parents de9c2c66 929725bd
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -17,9 +17,12 @@ properties:
    oneOf:
      # Samsung 13.3" FHD (1920x1080 pixels) eDP AMOLED panel
      - const: samsung,atna33xc20
      # Samsung 14.5" WQXGA+ (2880x1800 pixels) eDP AMOLED panel
      - items:
          - const: samsung,atna45af01
        - enum:
          # Samsung 14.5" WQXGA+ (2880x1800 pixels) eDP AMOLED panel
          - samsung,atna45af01
          # Samsung 14.5" 3K (2944x1840 pixels) eDP AMOLED panel
          - samsung,atna45dc02
        - const: samsung,atna33xc20

  enable-gpios: true
+4 −11
Original line number Diff line number Diff line
@@ -1071,23 +1071,16 @@ int drm_atomic_set_property(struct drm_atomic_state *state,
		}

		if (async_flip &&
		    prop != config->prop_fb_id &&
		    (plane_state->plane->type != DRM_PLANE_TYPE_PRIMARY ||
		     (prop != config->prop_fb_id &&
		      prop != config->prop_in_fence_fd &&
		    prop != config->prop_fb_damage_clips) {
		      prop != config->prop_fb_damage_clips))) {
			ret = drm_atomic_plane_get_property(plane, plane_state,
							    prop, &old_val);
			ret = drm_atomic_check_prop_changes(ret, old_val, prop_value, prop);
			break;
		}

		if (async_flip && plane_state->plane->type != DRM_PLANE_TYPE_PRIMARY) {
			drm_dbg_atomic(prop->dev,
				       "[OBJECT:%d] Only primary planes can be changed during async flip\n",
				       obj->id);
			ret = -EINVAL;
			break;
		}

		ret = drm_atomic_plane_set_property(plane,
				plane_state, file_priv,
				prop, prop_value);
+2 −6
Original line number Diff line number Diff line
@@ -443,10 +443,8 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
			panel_bridge = bridge;
	}

	if (connector_type == DRM_MODE_CONNECTOR_Unknown) {
		kfree(bridge_connector);
	if (connector_type == DRM_MODE_CONNECTOR_Unknown)
		return ERR_PTR(-EINVAL);
	}

	if (bridge_connector->bridge_hdmi)
		ret = drmm_connector_hdmi_init(drm, connector,
@@ -461,10 +459,8 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
		ret = drmm_connector_init(drm, connector,
					  &drm_bridge_connector_funcs,
					  connector_type, ddc);
	if (ret) {
		kfree(bridge_connector);
	if (ret)
		return ERR_PTR(ret);
	}

	drm_connector_helper_add(connector, &drm_bridge_connector_helper_funcs);

+5 −0
Original line number Diff line number Diff line
@@ -880,6 +880,11 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width,

			kfree(modeset->mode);
			modeset->mode = drm_mode_duplicate(dev, mode);
			if (!modeset->mode) {
				ret = -ENOMEM;
				break;
			}

			drm_connector_get(connector);
			modeset->connectors[modeset->num_connectors++] = connector;
			modeset->x = offset->x;
+1 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
config DRM_OMAP
	tristate "OMAP DRM"
	depends on MMU
	depends on DRM && OF
	depends on ARCH_OMAP2PLUS || (COMPILE_TEST && PAGE_SIZE_LESS_THAN_64KB)
	select DRM_KMS_HELPER
Loading