Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e532b3a authored by Thierry Reding's avatar Thierry Reding
Browse files

drm/tegra: dpaux: Disable interrupt when detached



When the DPAUX isn't attached to an SOR the interrupts are not useful.
This also prevents a race that could potentially cause a crash on driver
removal.

Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent 3227166c
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -352,6 +352,8 @@ static int tegra_dpaux_probe(struct platform_device *pdev)
		return err;
	}

	disable_irq(dpaux->irq);

	dpaux->aux.transfer = tegra_dpaux_transfer;
	dpaux->aux.dev = &pdev->dev;

@@ -468,8 +470,10 @@ int tegra_dpaux_attach(struct tegra_dpaux *dpaux, struct tegra_output *output)
		enum drm_connector_status status;

		status = tegra_dpaux_detect(dpaux);
		if (status == connector_status_connected)
		if (status == connector_status_connected) {
			enable_irq(dpaux->irq);
			return 0;
		}

		usleep_range(1000, 2000);
	}
@@ -482,6 +486,8 @@ int tegra_dpaux_detach(struct tegra_dpaux *dpaux)
	unsigned long timeout;
	int err;

	disable_irq(dpaux->irq);

	err = regulator_disable(dpaux->vdd);
	if (err < 0)
		return err;