Commit 42e0a73b authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-fixes-2025-09-03' of...

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

 into drm-fixes

Two nouveau interrupt handling fixes, one race fix for ivpu, a race fix
for drm_sched, and a clock fix for ti-sn65dsi86.

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

From: Maxime Ripard <mripard@redhat.com>
Link: https://lore.kernel.org/r/qc2rd7bskgufjtyspbjflyjpswcnhyja6s7nm2yb67j7hezyey@yfn2w6n5trff
parents b320789d bdd5a14e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -7820,7 +7820,7 @@ Q: https://patchwork.freedesktop.org/project/nouveau/
Q:	https://gitlab.freedesktop.org/drm/nouveau/-/merge_requests
B:	https://gitlab.freedesktop.org/drm/nouveau/-/issues
C:	irc://irc.oftc.net/nouveau
T:	git https://gitlab.freedesktop.org/drm/nouveau.git
T:	git https://gitlab.freedesktop.org/drm/misc/kernel.git
F:	drivers/gpu/drm/nouveau/
F:	include/uapi/drm/nouveau_drm.h
+1 −1
Original line number Diff line number Diff line
@@ -677,7 +677,7 @@ static void ivpu_bo_unbind_all_user_contexts(struct ivpu_device *vdev)
static void ivpu_dev_fini(struct ivpu_device *vdev)
{
	ivpu_jobs_abort_all(vdev);
	ivpu_pm_cancel_recovery(vdev);
	ivpu_pm_disable_recovery(vdev);
	ivpu_pm_disable(vdev);
	ivpu_prepare_for_reset(vdev);
	ivpu_shutdown(vdev);
+2 −2
Original line number Diff line number Diff line
@@ -417,10 +417,10 @@ void ivpu_pm_init(struct ivpu_device *vdev)
	ivpu_dbg(vdev, PM, "Autosuspend delay = %d\n", delay);
}

void ivpu_pm_cancel_recovery(struct ivpu_device *vdev)
void ivpu_pm_disable_recovery(struct ivpu_device *vdev)
{
	drm_WARN_ON(&vdev->drm, delayed_work_pending(&vdev->pm->job_timeout_work));
	cancel_work_sync(&vdev->pm->recovery_work);
	disable_work_sync(&vdev->pm->recovery_work);
}

void ivpu_pm_enable(struct ivpu_device *vdev)
+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ struct ivpu_pm_info {
void ivpu_pm_init(struct ivpu_device *vdev);
void ivpu_pm_enable(struct ivpu_device *vdev);
void ivpu_pm_disable(struct ivpu_device *vdev);
void ivpu_pm_cancel_recovery(struct ivpu_device *vdev);
void ivpu_pm_disable_recovery(struct ivpu_device *vdev);

int ivpu_pm_suspend_cb(struct device *dev);
int ivpu_pm_resume_cb(struct device *dev);
+11 −0
Original line number Diff line number Diff line
@@ -392,6 +392,17 @@ static int __maybe_unused ti_sn65dsi86_resume(struct device *dev)

	gpiod_set_value_cansleep(pdata->enable_gpio, 1);

	/*
	 * After EN is deasserted and an external clock is detected, the bridge
	 * will sample GPIO3:1 to determine its frequency. The driver will
	 * overwrite this setting in ti_sn_bridge_set_refclk_freq(). But this is
	 * racy. Thus we have to wait a couple of us. According to the datasheet
	 * the GPIO lines has to be stable at least 5 us (td5) but it seems that
	 * is not enough and the refclk frequency value is still lost or
	 * overwritten by the bridge itself. Waiting for 20us seems to work.
	 */
	usleep_range(20, 30);

	/*
	 * If we have a reference clock we can enable communication w/ the
	 * panel (including the aux channel) w/out any need for an input clock
Loading