mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 10:20:17 -04:00
staging: typec: tcpci: register port before request irq
With that we can clear any pending events and the port is registered so driver can be ready to handle typec events once we request irq. Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Signed-off-by: Peter Chen <peter.chen@nxp.com> Signed-off-by: Li Jun <jun.li@nxp.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d3a4c916a9
commit
b28d9be6ce
@@ -537,24 +537,27 @@ static int tcpci_probe(struct i2c_client *client,
|
||||
if (IS_ERR(chip->data.regmap))
|
||||
return PTR_ERR(chip->data.regmap);
|
||||
|
||||
i2c_set_clientdata(client, chip);
|
||||
|
||||
/* Disable chip interrupts before requesting irq */
|
||||
err = regmap_raw_write(chip->data.regmap, TCPC_ALERT_MASK, &val,
|
||||
sizeof(u16));
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
err = devm_request_threaded_irq(&client->dev, client->irq, NULL,
|
||||
_tcpci_irq,
|
||||
IRQF_ONESHOT | IRQF_TRIGGER_LOW,
|
||||
dev_name(&client->dev), chip);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
chip->tcpci = tcpci_register_port(&client->dev, &chip->data);
|
||||
if (IS_ERR(chip->tcpci))
|
||||
return PTR_ERR(chip->tcpci);
|
||||
|
||||
i2c_set_clientdata(client, chip);
|
||||
err = devm_request_threaded_irq(&client->dev, client->irq, NULL,
|
||||
_tcpci_irq,
|
||||
IRQF_ONESHOT | IRQF_TRIGGER_LOW,
|
||||
dev_name(&client->dev), chip);
|
||||
if (err < 0) {
|
||||
tcpci_unregister_port(chip->tcpci);
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user