|
@@ -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;
|