Commit 0cef83a5 authored by YoungJun Cho's avatar YoungJun Cho Committed by Inki Dae
Browse files

drm/exynos: dsi: set TE GPIO IRQ status as IRQ_NOAUTOEN



The exynos_dsi_te_irq_handler() works only dsi(DPMS) is on.
So it is enough to enable and disable TE GPIO IRQ in
exynos_dsi_enable(disable)_irq() like DSI IRQ.

Signed-off-by: default avatarYoungJun Cho <yj44.cho@samsung.com>
Acked-by: default avatarInki Dae <inki.dae@samsung.com&gt;a>
Acked-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
parent ecb84157
Loading
Loading
Loading
Loading
+5 −8
Original line number Diff line number Diff line
@@ -1155,6 +1155,7 @@ static int exynos_dsi_init(struct exynos_dsi *dsi)
static int exynos_dsi_register_te_irq(struct exynos_dsi *dsi)
{
	int ret;
	int te_gpio_irq;

	dsi->te_gpio = of_get_named_gpio(dsi->panel_node, "te-gpios", 0);
	if (!gpio_is_valid(dsi->te_gpio)) {
@@ -1169,14 +1170,10 @@ static int exynos_dsi_register_te_irq(struct exynos_dsi *dsi)
		goto out;
	}

	/*
	 * This TE GPIO IRQ should not be set to IRQ_NOAUTOEN, because panel
	 * calls drm_panel_init() first then calls mipi_dsi_attach() in probe().
	 * It means that te_gpio is invalid when exynos_dsi_enable_irq() is
	 * called by drm_panel_init() before panel is attached.
	 */
	ret = request_threaded_irq(gpio_to_irq(dsi->te_gpio),
					exynos_dsi_te_irq_handler, NULL,
	te_gpio_irq = gpio_to_irq(dsi->te_gpio);

	irq_set_status_flags(te_gpio_irq, IRQ_NOAUTOEN);
	ret = request_threaded_irq(te_gpio_irq, exynos_dsi_te_irq_handler, NULL,
					IRQF_TRIGGER_RISING, "TE", dsi);
	if (ret) {
		dev_err(dsi->dev, "request interrupt failed with %d\n", ret);