forked from Minki/linux
drm/i2c: tda998x: always disable and clear interrupts at probe
Always disable and clear interrupts at probe time to ensure that the TDA998x is in a sane state. This ensures that the interrupt line, which is also the CEC clock calibration signal, is always deasserted. Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
101e996b8d
commit
ba8975f15b
@ -1546,6 +1546,15 @@ static int tda998x_create(struct i2c_client *client, struct tda998x_priv *priv)
|
||||
cec_write(priv, REG_CEC_FRO_IM_CLK_CTRL,
|
||||
CEC_FRO_IM_CLK_CTRL_GHOST_DIS | CEC_FRO_IM_CLK_CTRL_IMCLK_SEL);
|
||||
|
||||
/* ensure interrupts are disabled */
|
||||
cec_write(priv, REG_CEC_RXSHPDINTENA, 0);
|
||||
|
||||
/* clear pending interrupts */
|
||||
cec_read(priv, REG_CEC_RXSHPDINT);
|
||||
reg_read(priv, REG_INT_FLAGS_0);
|
||||
reg_read(priv, REG_INT_FLAGS_1);
|
||||
reg_read(priv, REG_INT_FLAGS_2);
|
||||
|
||||
/* initialize the optional IRQ */
|
||||
if (client->irq) {
|
||||
unsigned long irq_flags;
|
||||
@ -1553,11 +1562,6 @@ static int tda998x_create(struct i2c_client *client, struct tda998x_priv *priv)
|
||||
/* init read EDID waitqueue and HDP work */
|
||||
init_waitqueue_head(&priv->wq_edid);
|
||||
|
||||
/* clear pending interrupts */
|
||||
reg_read(priv, REG_INT_FLAGS_0);
|
||||
reg_read(priv, REG_INT_FLAGS_1);
|
||||
reg_read(priv, REG_INT_FLAGS_2);
|
||||
|
||||
irq_flags =
|
||||
irqd_get_trigger_type(irq_get_irq_data(client->irq));
|
||||
irq_flags |= IRQF_SHARED | IRQF_ONESHOT;
|
||||
|
Loading…
Reference in New Issue
Block a user