summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeiner Kallweit <hkallweit1@gmail.com>2024-11-01 23:07:14 +0100
committerWolfram Sang <wsa+renesas@sang-engineering.com>2025-01-03 13:21:54 +0100
commit60be800603ff81d43b2fbb3c067bbef49f7d8414 (patch)
tree19691d5251cb908db2417466db069f83f729e9c2
parentfc033cf25e612e840e545f8d5ad2edd6ba613ed5 (diff)
ALSA: ppc: Remove i2c client removal hack
The i2c_driver.clients list is internal to I2C core and is going to be removed. No driver should access it. Unregister the i2c client explicitly before deleting the i2c driver. Reviewed-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
-rw-r--r--sound/ppc/keywest.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/sound/ppc/keywest.c b/sound/ppc/keywest.c
index 3d3513d9def5..4ce81ac7f700 100644
--- a/sound/ppc/keywest.c
+++ b/sound/ppc/keywest.c
@@ -61,12 +61,6 @@ static int keywest_attach_adapter(struct i2c_adapter *adapter)
return -ENODEV;
}
- /*
- * Let i2c-core delete that device on driver removal.
- * This is safe because i2c-core holds the core_lock mutex for us.
- */
- list_add_tail(&keywest_ctx->client->detected,
- &to_i2c_driver(keywest_ctx->client->dev.driver)->clients);
return 0;
}
@@ -99,6 +93,7 @@ static struct i2c_driver keywest_driver = {
void snd_pmac_keywest_cleanup(struct pmac_keywest *i2c)
{
if (keywest_ctx && keywest_ctx == i2c) {
+ i2c_unregister_device(keywest_ctx->client);
i2c_del_driver(&keywest_driver);
keywest_ctx = NULL;
}