mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
ASoC: tas2781-i2c: Drop weird GPIO code
[ Upstream commit c2c0b67dca3cb3b3cea0dd60075a1c5ba77e2fcd ]
The tas2781-i2c driver gets an IRQ from either ACPI or device tree,
then proceeds to check if the IRQ has a corresponding GPIO and in
case it does enforce the GPIO as input and set a label on it.
This is abuse of the API:
- First we cannot guarantee that the numberspaces of the GPIOs and
the IRQs are the same, i.e that an IRQ number corresponds to
a GPIO number like that.
- Second, GPIO chips and IRQ chips should be treated as orthogonal
APIs, the irqchip needs to ascertain that the backing GPIO line
is set to input etc just using the irqchip.
- Third it is using the legacy <linux/gpio.h> API which should not
be used in new code yet this was added just a year ago.
Delete the offending code.
If this creates problems the GPIO and irqchip maintainers can help
to fix the issues.
It *should* not create any problems, because the irq isn't
used anywhere in the driver, it's just obtained and then
left unused.
Fixes: ef3bcde75d
("ASoC: tas2781: Add tas2781 driver")
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://patch.msgid.link/20240807-asoc-tas-gpios-v2-1-bd0f2705d58b@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
ac7976b672
commit
92b53ece5d
5 changed files with 5 additions and 32 deletions
|
@ -710,7 +710,7 @@ static int tas2781_hda_i2c_probe(struct i2c_client *clt)
|
|||
} else
|
||||
return -ENODEV;
|
||||
|
||||
tas_hda->priv->irq_info.irq = clt->irq;
|
||||
tas_hda->priv->irq = clt->irq;
|
||||
ret = tas2781_read_acpi(tas_hda->priv, device_name);
|
||||
if (ret)
|
||||
return dev_err_probe(tas_hda->dev, ret,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue