Commit 27bba886 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-next-fixes-2025-06-05' of...

Merge tag 'drm-misc-next-fixes-2025-06-05' of https://gitlab.freedesktop.org/drm/misc/kernel

 into drm-next

drm-misc-fixes for v6.16-rc1:
- Fixes for nt37801 panel
- Fix null deref in HDMI audio helper.
- Fixes for analogix_dp.

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://lore.kernel.org/r/14c2eff8-701d-4699-b187-08862715e1ac@linux.intel.com
parents df9d4941 fd03f82a
Loading
Loading
Loading
Loading
+6 −14
Original line number Diff line number Diff line
@@ -1531,10 +1531,8 @@ analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data)
	}

	dp->reg_base = devm_platform_ioremap_resource(pdev, 0);
	if (IS_ERR(dp->reg_base)) {
		ret = PTR_ERR(dp->reg_base);
		goto err_disable_clk;
	}
	if (IS_ERR(dp->reg_base))
		return ERR_CAST(dp->reg_base);

	dp->force_hpd = of_property_read_bool(dev->of_node, "force-hpd");

@@ -1546,8 +1544,7 @@ analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data)
	if (IS_ERR(dp->hpd_gpiod)) {
		dev_err(dev, "error getting HDP GPIO: %ld\n",
			PTR_ERR(dp->hpd_gpiod));
		ret = PTR_ERR(dp->hpd_gpiod);
		goto err_disable_clk;
		return ERR_CAST(dp->hpd_gpiod);
	}

	if (dp->hpd_gpiod) {
@@ -1567,8 +1564,7 @@ analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data)

	if (dp->irq == -ENXIO) {
		dev_err(&pdev->dev, "failed to get irq\n");
		ret = -ENODEV;
		goto err_disable_clk;
		return ERR_PTR(-ENODEV);
	}

	ret = devm_request_threaded_irq(&pdev->dev, dp->irq,
@@ -1577,7 +1573,7 @@ analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data)
					irq_flags, "analogix-dp", dp);
	if (ret) {
		dev_err(&pdev->dev, "failed to request irq\n");
		goto err_disable_clk;
		return ERR_PTR(ret);
	}

	dp->aux.name = "DP-AUX";
@@ -1590,13 +1586,9 @@ analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data)
	pm_runtime_set_autosuspend_delay(dp->dev, 100);
	ret = devm_pm_runtime_enable(dp->dev);
	if (ret)
		goto err_disable_clk;
		return ERR_PTR(ret);

	return dp;

err_disable_clk:
	clk_disable_unprepare(dp->clock);
	return ERR_PTR(ret);
}
EXPORT_SYMBOL_GPL(analogix_dp_probe);

+2 −1
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ static int drm_connector_hdmi_audio_hook_plugged_cb(struct device *dev,
	connector->hdmi_audio.plugged_cb = fn;
	connector->hdmi_audio.plugged_cb_dev = codec_dev;

	if (fn)
		fn(codec_dev, connector->hdmi_audio.last_state);

	mutex_unlock(&connector->hdmi_audio.lock);
+2 −0
Original line number Diff line number Diff line
@@ -522,6 +522,8 @@ config DRM_PANEL_NOVATEK_NT37801
	depends on OF
	depends on DRM_MIPI_DSI
	depends on BACKLIGHT_CLASS_DEVICE
	select DRM_DISPLAY_DSC_HELPER
	select DRM_DISPLAY_HELPER
	help
	  Say Y here if you want to enable support for Novatek NT37801 (or
	  NT37810) AMOLED DSI Video Mode LCD panel module with 1440x3200
+2 −2
Original line number Diff line number Diff line
@@ -257,8 +257,8 @@ static int novatek_nt37801_probe(struct mipi_dsi_device *dsi)
	ctx = devm_drm_panel_alloc(dev, struct novatek_nt37801, panel,
				   &novatek_nt37801_panel_funcs,
				   DRM_MODE_CONNECTOR_DSI);
	if (!ctx)
		return -ENOMEM;
	if (IS_ERR(ctx))
		return PTR_ERR(ctx);

	ret = devm_regulator_bulk_get_const(dev,
					    ARRAY_SIZE(novatek_nt37801_supplies),