mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
drm/bridge: maxim-max96745: Drop the irq_enabled flag
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com> Change-Id: If5dbf78e69b25979dfb9dc90466433a5a03e952f
This commit is contained in:
@@ -35,7 +35,6 @@ struct max96745_bridge {
|
||||
struct {
|
||||
struct gpio_desc *gpio;
|
||||
int irq;
|
||||
bool irq_enabled;
|
||||
atomic_t triggered;
|
||||
} lock;
|
||||
struct extcon_dev *extcon;
|
||||
@@ -97,13 +96,8 @@ static int max96745_bridge_attach(struct drm_bridge *bridge,
|
||||
else
|
||||
ser->status = connector_status_disconnected;
|
||||
|
||||
if (max96745_bridge_vid_tx_active(ser)) {
|
||||
extcon_set_state(ser->extcon, EXTCON_JACK_VIDEO_OUT, true);
|
||||
enable_irq(ser->lock.irq);
|
||||
ser->lock.irq_enabled = true;
|
||||
} else {
|
||||
extcon_set_state(ser->extcon, EXTCON_JACK_VIDEO_OUT, false);
|
||||
}
|
||||
extcon_set_state(ser->extcon, EXTCON_JACK_VIDEO_OUT,
|
||||
max96745_bridge_vid_tx_active(ser));
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -124,22 +118,12 @@ static void max96745_bridge_enable(struct drm_bridge *bridge)
|
||||
drm_panel_enable(ser->panel);
|
||||
|
||||
extcon_set_state_sync(ser->extcon, EXTCON_JACK_VIDEO_OUT, true);
|
||||
|
||||
if (!ser->lock.irq_enabled) {
|
||||
enable_irq(ser->lock.irq);
|
||||
ser->lock.irq_enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
static void max96745_bridge_disable(struct drm_bridge *bridge)
|
||||
{
|
||||
struct max96745_bridge *ser = to_max96745_bridge(bridge);
|
||||
|
||||
if (ser->lock.irq_enabled) {
|
||||
disable_irq(ser->lock.irq);
|
||||
ser->lock.irq_enabled = false;
|
||||
}
|
||||
|
||||
extcon_set_state_sync(ser->extcon, EXTCON_JACK_VIDEO_OUT, false);
|
||||
|
||||
if (ser->panel)
|
||||
@@ -168,7 +152,7 @@ max96745_bridge_detect(struct drm_bridge *bridge)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (ser->lock.irq_enabled) {
|
||||
if (extcon_get_state(ser->extcon, EXTCON_JACK_VIDEO_OUT)) {
|
||||
u32 dprx_trn_status2;
|
||||
|
||||
if (atomic_cmpxchg(&ser->lock.triggered, 1, 0)) {
|
||||
@@ -231,7 +215,8 @@ static irqreturn_t max96745_bridge_lock_irq_handler(int irq, void *arg)
|
||||
{
|
||||
struct max96745_bridge *ser = arg;
|
||||
|
||||
atomic_set(&ser->lock.triggered, 1);
|
||||
if (extcon_get_state(ser->extcon, EXTCON_JACK_VIDEO_OUT))
|
||||
atomic_set(&ser->lock.triggered, 1);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
@@ -272,7 +257,6 @@ static int max96745_bridge_probe(struct platform_device *pdev)
|
||||
if (ser->lock.irq < 0)
|
||||
return ser->lock.irq;
|
||||
|
||||
irq_set_status_flags(ser->lock.irq, IRQ_NOAUTOEN);
|
||||
ret = devm_request_threaded_irq(dev, ser->lock.irq, NULL,
|
||||
max96745_bridge_lock_irq_handler,
|
||||
IRQF_TRIGGER_RISING | IRQF_ONESHOT,
|
||||
|
||||
Reference in New Issue
Block a user