Commit fa649344 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-fixes-2025-01-15' of...

Merge tag 'drm-misc-fixes-2025-01-15' of https://gitlab.freedesktop.org/drm/misc/kernel

 into drm-fixes

drm-misc-fixes for v6.13:

- itee-it6263 error handling fix.
- Fix warn when unloading v3d.
- Fix W=1 build for kunit tests.
- Fix backlight regression for macbooks 5,1 in nouveau.
- Handle YCbCr420 better in bridge code, with tests.
- Fix cross-device fence handling in nouveau.
- Fix BO reservation handling in vmwgfx.

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/a89adcd5-2042-4e7f-93f4-2b299bb1ef17@linux.intel.com
parents 5bc55a33 ef84aee1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -845,7 +845,7 @@ static int it6263_probe(struct i2c_client *client)
	it->lvds_i2c = devm_i2c_new_dummy_device(dev, client->adapter,
						 LVDS_INPUT_CTRL_I2C_ADDR);
	if (IS_ERR(it->lvds_i2c))
		dev_err_probe(it->dev, PTR_ERR(it->lvds_i2c),
		return dev_err_probe(it->dev, PTR_ERR(it->lvds_i2c),
				     "failed to allocate I2C device for LVDS\n");

	it->lvds_regmap = devm_regmap_init_i2c(it->lvds_i2c,
+6 −2
Original line number Diff line number Diff line
@@ -459,7 +459,10 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
	if (connector_type == DRM_MODE_CONNECTOR_Unknown)
		return ERR_PTR(-EINVAL);

	if (bridge_connector->bridge_hdmi)
	if (bridge_connector->bridge_hdmi) {
		if (!connector->ycbcr_420_allowed)
			supported_formats &= ~BIT(HDMI_COLORSPACE_YUV420);

		ret = drmm_connector_hdmi_init(drm, connector,
					       bridge_connector->bridge_hdmi->vendor,
					       bridge_connector->bridge_hdmi->product,
@@ -468,10 +471,11 @@ struct drm_connector *drm_bridge_connector_init(struct drm_device *drm,
					       connector_type, ddc,
					       supported_formats,
					       max_bpc);
	else
	} else {
		ret = drmm_connector_init(drm, connector,
					  &drm_bridge_connector_funcs,
					  connector_type, ddc);
	}
	if (ret)
		return ERR_PTR(ret);

+4 −0
Original line number Diff line number Diff line
@@ -207,6 +207,10 @@ void drm_bridge_add(struct drm_bridge *bridge)
{
	mutex_init(&bridge->hpd_mutex);

	if (bridge->ops & DRM_BRIDGE_OP_HDMI)
		bridge->ycbcr_420_allowed = !!(bridge->supported_formats &
					       BIT(HDMI_COLORSPACE_YUV420));

	mutex_lock(&bridge_lock);
	list_add_tail(&bridge->list, &bridge_list);
	mutex_unlock(&bridge_lock);
+3 −0
Original line number Diff line number Diff line
@@ -507,6 +507,9 @@ int drmm_connector_hdmi_init(struct drm_device *dev,
	if (!supported_formats || !(supported_formats & BIT(HDMI_COLORSPACE_RGB)))
		return -EINVAL;

	if (connector->ycbcr_420_allowed != !!(supported_formats & BIT(HDMI_COLORSPACE_YUV420)))
		return -EINVAL;

	if (!(max_bpc == 8 || max_bpc == 10 || max_bpc == 12))
		return -EINVAL;

+4 −2
Original line number Diff line number Diff line
@@ -387,10 +387,12 @@ nouveau_fence_sync(struct nouveau_bo *nvbo, struct nouveau_channel *chan,
			if (f) {
				struct nouveau_channel *prev;
				bool must_wait = true;
				bool local;

				rcu_read_lock();
				prev = rcu_dereference(f->channel);
				if (prev && (prev == chan ||
				local = prev && prev->cli->drm == chan->cli->drm;
				if (local && (prev == chan ||
					      fctx->sync(f, prev, chan) == 0))
					must_wait = false;
				rcu_read_unlock();
Loading