summaryrefslogtreecommitdiffstats
path: root/sound/aoa/soundbus
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2022-11-25 19:15:32 +0000
committerMark Brown <broonie@kernel.org>2022-11-25 19:15:32 +0000
commit0b21b4dc9a2204fba599a248f5c7ed7822f56154 (patch)
treede1cf656290c3e8085e4b00a6b9cee4eff627270 /sound/aoa/soundbus
parentc4b02c92d9673ef4704fd0c8f008fec183517b64 (diff)
parentf0c4d9fc9cc9462659728d168387191387e903cc (diff)
downloadlinux-0b21b4dc9a2204fba599a248f5c7ed7822f56154.tar.bz2
Merge tag 'v6.1-rc4' into regulator-6.2
Linux 6.1-rc4 which should get my CI working on RPi3s again.
Diffstat (limited to 'sound/aoa/soundbus')
-rw-r--r--sound/aoa/soundbus/i2sbus/core.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sound/aoa/soundbus/i2sbus/core.c b/sound/aoa/soundbus/i2sbus/core.c
index faf6b03131ee..51ed2f34b276 100644
--- a/sound/aoa/soundbus/i2sbus/core.c
+++ b/sound/aoa/soundbus/i2sbus/core.c
@@ -147,6 +147,7 @@ static int i2sbus_get_and_fixup_rsrc(struct device_node *np, int index,
return rc;
}
+/* Returns 1 if added, 0 for otherwise; don't return a negative value! */
/* FIXME: look at device node refcounting */
static int i2sbus_add_dev(struct macio_dev *macio,
struct i2sbus_control *control,
@@ -213,7 +214,7 @@ static int i2sbus_add_dev(struct macio_dev *macio,
* either as the second one in that case is just a modem. */
if (!ok) {
kfree(dev);
- return -ENODEV;
+ return 0;
}
mutex_init(&dev->lock);
@@ -302,6 +303,10 @@ static int i2sbus_add_dev(struct macio_dev *macio,
if (soundbus_add_one(&dev->sound)) {
printk(KERN_DEBUG "i2sbus: device registration error!\n");
+ if (dev->sound.ofdev.dev.kobj.state_initialized) {
+ soundbus_dev_put(&dev->sound);
+ return 0;
+ }
goto err;
}