FAILED: patch "[PATCH] ALSA: aoa: Skip devices with no codecs in i2sbus_resume()" failed to apply to 6.12-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 6.12-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.12.y
git checkout FETCH_HEAD
git cherry-pick -x fd7df93013c5118812e63a52635dc6c3a805a1de
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026050120-trustless-overcome-452a@gregkh' --subject-prefix 'PATCH 6.12.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From fd7df93013c5118812e63a52635dc6c3a805a1de Mon Sep 17 00:00:00 2001
From: Thorsten Blum <[email protected]>
Date: Tue, 10 Mar 2026 11:29:20 +0100
Subject: [PATCH] ALSA: aoa: Skip devices with no codecs in i2sbus_resume()
In i2sbus_resume(), skip devices with an empty codec list, which avoids using an uninitialized 'sysclock_factor' in the 32-bit format path in i2sbus_pcm_prepare().
In i2sbus_pcm_prepare(), replace two list_for_each_entry() loops with a single list_first_entry() now that the codec list is guaranteed to be non-empty by all callers.
sound/aoa/soundbus/i2sbus/core.c +3 -0
@@ -405,6 +405,9 @@ static int i2sbus_resume(struct macio_dev* dev)int err, ret =0 ;list_for_each_entry (i2sdev, &control->list, item) { +if (list_empty (&i2sdev->sound.codec_list)) +continue ; +/* reset i2s bus format etc. */ i2sbus_pcm_prepare_both (i2sdev);
sound/aoa/soundbus/i2sbus/pcm.c +5 -11
@@ -383,6 +383,9 @@ static int i2sbus_pcm_prepare(struct i2sbus_dev *i2sdev, int in)/* set stop command */ command->command =cpu_to_le16 (DBDMA_STOP ); + cii =list_first_entry (&i2sdev->sound.codec_list, + struct codec_info_item, list); +/* ok, let's set the serial format and stuff */ switch (runtime->format) {/* 16 bit formats */
@@ -390,13 +393,7 @@ static int i2sbus_pcm_prepare(struct i2sbus_dev *i2sdev, int in)case SNDRV_PCM_FORMAT_U16_BE :/* FIXME: if we add different bus factors we need to * do more here!! */ - bi.bus_factor =0 ; -list_for_each_entry (cii, &i2sdev->sound.codec_list, list) { - bi.bus_factor = cii->codec->bus_factor; -break ; - } -if (!bi.bus_factor) -return -ENODEV ; + bi.bus_factor = cii->codec->bus_factor; input_16bit =1 ;break ;case SNDRV_PCM_FORMAT_S32_BE :
@@ -410,10 +407,7 @@ static int i2sbus_pcm_prepare(struct i2sbus_dev *i2sdev, int in)return -EINVAL ; }/* we assume all sysclocks are the same! */ -list_for_each_entry (cii, &i2sdev->sound.codec_list, list) { - bi.sysclock_factor = cii->codec->sysclock_factor; -break ; - } + bi.sysclock_factor = cii->codec->sysclock_factor; if (clock_and_divisors(bi.sysclock_factor, bi.bus_factor,
Sasha Levin
maintainerPATCH 1/2 ALSA: aoa: Use guard() for mutex locks
From: Takashi Iwai <[email protected]>
[ Upstream commit 1cb6ecbb372002ef9e531c5377e5f60122411e40 ]
Replace the manual mutex lock/unlock pairs with guard() for code simplification.
Only code refactoring, and no behavior change.
Stable-dep-of: fd7df93013c5 ("ALSA: aoa: Skip devices with no codecs in i2sbus_resume()")
--- sound/aoa/codecs/onyx.c | 104 +++++++++-------------------- sound/aoa/codecs/tas.c | 113 +++++++++++--------------------- sound/aoa/core/gpio-feature.c | 20 ++---- sound/aoa/core/gpio-pmf.c | 26 +++----- sound/aoa/soundbus/i2sbus/pcm.c | 76 +++++++-------------- 5 files changed, 112 insertions(+), 227 deletions(-)
sound/aoa/codecs/onyx.c +32 -72
@@ -122,10 +122,9 @@ static int onyx_snd_vol_get(struct snd_kcontrol *kcontrol,struct onyx *onyx =snd_kcontrol_chip (kcontrol);s8 l, r; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);onyx_read_register (onyx,ONYX_REG_DAC_ATTEN_LEFT , &l);onyx_read_register (onyx,ONYX_REG_DAC_ATTEN_RIGHT , &r); -mutex_unlock (&onyx->mutex); ucontrol->value.integer.value[0 ] = l +VOLUME_RANGE_SHIFT ; ucontrol->value.integer.value[1 ] = r +VOLUME_RANGE_SHIFT ;
@@ -146,15 +145,13 @@ static int onyx_snd_vol_put(struct snd_kcontrol *kcontrol, ucontrol->value.integer.value[1] > -1 + VOLUME_RANGE_SHIFT)return -EINVAL ; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);onyx_read_register (onyx,ONYX_REG_DAC_ATTEN_LEFT , &l);onyx_read_register (onyx,ONYX_REG_DAC_ATTEN_RIGHT , &r);if (l +VOLUME_RANGE_SHIFT == ucontrol->value.integer.value[0 ] && - r +VOLUME_RANGE_SHIFT == ucontrol->value.integer.value[1 ]) { -mutex_unlock (&onyx->mutex); + r +VOLUME_RANGE_SHIFT == ucontrol->value.integer.value[1 ])return 0 ; - }onyx_write_register (onyx,ONYX_REG_DAC_ATTEN_LEFT , ucontrol->value.integer.value[0]
@@ -162,7 +159,6 @@ static int onyx_snd_vol_put(struct snd_kcontrol *kcontrol,onyx_write_register (onyx,ONYX_REG_DAC_ATTEN_RIGHT , ucontrol->value.integer.value[1 ] -VOLUME_RANGE_SHIFT ); -mutex_unlock (&onyx->mutex);return 1 ; }
@@ -198,9 +194,8 @@ static int onyx_snd_inputgain_get(struct snd_kcontrol *kcontrol,struct onyx *onyx =snd_kcontrol_chip (kcontrol);u8 ig; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);onyx_read_register (onyx,ONYX_REG_ADC_CONTROL , &ig); -mutex_unlock (&onyx->mutex); ucontrol->value.integer.value[0 ] = (ig &ONYX_ADC_PGA_GAIN_MASK ) +INPUTGAIN_RANGE_SHIFT ;
@@ -217,14 +212,13 @@ static int onyx_snd_inputgain_put(struct snd_kcontrol *kcontrol,if (ucontrol->value.integer.value[0 ] <3 +INPUTGAIN_RANGE_SHIFT || ucontrol->value.integer.value[0 ] >28 +INPUTGAIN_RANGE_SHIFT )return -EINVAL ; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);onyx_read_register (onyx,ONYX_REG_ADC_CONTROL , &v); n = v; n &= ~ONYX_ADC_PGA_GAIN_MASK ; n |= (ucontrol->value.integer.value[0 ] -INPUTGAIN_RANGE_SHIFT ) &ONYX_ADC_PGA_GAIN_MASK ;onyx_write_register (onyx,ONYX_REG_ADC_CONTROL , n); -mutex_unlock (&onyx->mutex);return n != v; }
@@ -252,9 +246,8 @@ static int onyx_snd_capture_source_get(struct snd_kcontrol *kcontrol,struct onyx *onyx =snd_kcontrol_chip (kcontrol);s8 v; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);onyx_read_register (onyx,ONYX_REG_ADC_CONTROL , &v); -mutex_unlock (&onyx->mutex); ucontrol->value.enumerated.item[0 ] = !!(v&ONYX_ADC_INPUT_MIC );
@@ -265,13 +258,12 @@ static void onyx_set_capture_source(struct onyx *onyx, int mic) {s8 v; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);onyx_read_register (onyx,ONYX_REG_ADC_CONTROL , &v); v &= ~ONYX_ADC_INPUT_MIC ;if (mic) v |=ONYX_ADC_INPUT_MIC ;onyx_write_register (onyx,ONYX_REG_ADC_CONTROL , v); -mutex_unlock (&onyx->mutex); } static int onyx_snd_capture_source_put(struct snd_kcontrol *kcontrol,
@@ -312,9 +304,8 @@ static int onyx_snd_mute_get(struct snd_kcontrol *kcontrol,struct onyx *onyx =snd_kcontrol_chip (kcontrol);u8 c; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);onyx_read_register (onyx,ONYX_REG_DAC_CONTROL , &c); -mutex_unlock (&onyx->mutex); ucontrol->value.integer.value[0 ] = !(c &ONYX_MUTE_LEFT ); ucontrol->value.integer.value[1 ] = !(c &ONYX_MUTE_RIGHT );
@@ -329,9 +320,9 @@ static int onyx_snd_mute_put(struct snd_kcontrol *kcontrol,u8 v =0 , c =0 ;int err = -EBUSY ; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);if (onyx->analog_locked) - goto out_unlock; +return -EBUSY ;onyx_read_register (onyx,ONYX_REG_DAC_CONTROL , &v); c = v;
@@ -342,9 +333,6 @@ static int onyx_snd_mute_put(struct snd_kcontrol *kcontrol, c |=ONYX_MUTE_RIGHT ; err =onyx_write_register (onyx,ONYX_REG_DAC_CONTROL , c); - out_unlock: -mutex_unlock (&onyx->mutex); -return !err ? (v != c) : err; }
@@ -373,9 +361,8 @@ static int onyx_snd_single_bit_get(struct snd_kcontrol *kcontrol,u8 address = (pv >>8 ) &0xff ;u8 mask = pv &0xff ; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);onyx_read_register (onyx, address, &c); -mutex_unlock (&onyx->mutex); ucontrol->value.integer.value[0 ] = !!(c & mask) ^ polarity;
@@ -394,11 +381,10 @@ static int onyx_snd_single_bit_put(struct snd_kcontrol *kcontrol,u8 address = (pv >>8 ) &0xff ;u8 mask = pv &0xff ; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);if (spdiflock && onyx->spdif_locked) {/* even if alsamixer doesn't care.. */ - err = -EBUSY ; - goto out_unlock; +return -EBUSY ; }onyx_read_register (onyx, address, &v); c = v;
@@ -407,9 +393,6 @@ static int onyx_snd_single_bit_put(struct snd_kcontrol *kcontrol, c |= mask; err =onyx_write_register (onyx, address, c); - out_unlock: -mutex_unlock (&onyx->mutex); -return !err ? (v != c) : err; }
@@ -490,7 +473,7 @@ static int onyx_spdif_get(struct snd_kcontrol *kcontrol,struct onyx *onyx =snd_kcontrol_chip (kcontrol);u8 v; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);onyx_read_register (onyx,ONYX_REG_DIG_INFO1 , &v); ucontrol->value.iec958.status[0 ] = v &0x3e ;
@@ -502,7 +485,6 @@ static int onyx_spdif_get(struct snd_kcontrol *kcontrol,onyx_read_register (onyx,ONYX_REG_DIG_INFO4 , &v); ucontrol->value.iec958.status[4 ] = v &0x0f ; -mutex_unlock (&onyx->mutex);return 0 ; }
@@ -513,7 +495,7 @@ static int onyx_spdif_put(struct snd_kcontrol *kcontrol,struct onyx *onyx =snd_kcontrol_chip (kcontrol);u8 v; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);onyx_read_register (onyx,ONYX_REG_DIG_INFO1 , &v); v = (v & ~0x3e ) | (ucontrol->value.iec958.status[0 ] &0x3e );onyx_write_register (onyx,ONYX_REG_DIG_INFO1 , v);
@@ -528,7 +510,6 @@ static int onyx_spdif_put(struct snd_kcontrol *kcontrol,onyx_read_register (onyx,ONYX_REG_DIG_INFO4 , &v); v = (v & ~0x0f ) | (ucontrol->value.iec958.status[4 ] &0x0f );onyx_write_register (onyx,ONYX_REG_DIG_INFO4 , v); -mutex_unlock (&onyx->mutex);return 1 ; }
@@ -673,14 +654,13 @@ static int onyx_usable(struct codec_info_item *cii,struct onyx *onyx = cii->codec_data;int spdif_enabled, analog_enabled; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);onyx_read_register (onyx,ONYX_REG_DIG_INFO4 , &v); spdif_enabled = !!(v &ONYX_SPDIF_ENABLE );onyx_read_register (onyx,ONYX_REG_DAC_CONTROL , &v); analog_enabled = (v & (ONYX_MUTE_RIGHT |ONYX_MUTE_LEFT )) != (ONYX_MUTE_RIGHT |ONYX_MUTE_LEFT ); -mutex_unlock (&onyx->mutex);switch (ti->tag) {case 0 :return 1 ;
@@ -696,9 +676,8 @@ static int onyx_prepare(struct codec_info_item *cii, {u8 v;struct onyx *onyx = cii->codec_data; -int err = -EBUSY ; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);#ifdef SNDRV_PCM_FMTBIT_COMPRESSED_16BE if (substream->runtime->format ==SNDRV_PCM_FMTBIT_COMPRESSED_16BE ) {
@@ -707,10 +686,9 @@ static int onyx_prepare(struct codec_info_item *cii,if (onyx_write_register (onyx,ONYX_REG_DAC_CONTROL , v |ONYX_MUTE_RIGHT |ONYX_MUTE_LEFT )) - goto out_unlock; +return -EBUSY ; onyx->analog_locked =1 ; - err =0 ; - goto out_unlock; + return 0; }#endif switch (substream->runtime->rate) {
@@ -720,8 +698,7 @@ static int onyx_prepare(struct codec_info_item *cii,/* these rates are ok for all outputs */ /* FIXME: program spdif channel control bits here so that * userspace doesn't have to if it only plays pcm! */ - err =0 ; - goto out_unlock; +return 0 ;default :/* got some rate that the digital output can't do, * so disable and lock it */
@@ -729,16 +706,12 @@ static int onyx_prepare(struct codec_info_item *cii,if (onyx_write_register (onyx,ONYX_REG_DIG_INFO4 , v & ~ONYX_SPDIF_ENABLE )) - goto out_unlock; +return -EBUSY ; onyx->spdif_locked =1 ; - err =0 ; - goto out_unlock; +return 0 ; } - out_unlock: -mutex_unlock (&onyx->mutex); - -return err; +return -EBUSY ; } static int onyx_open(struct codec_info_item *cii,
@@ -746,9 +719,8 @@ static int onyx_open(struct codec_info_item *cii, {struct onyx *onyx = cii->codec_data; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex); onyx->open_count++; -mutex_unlock (&onyx->mutex);return 0 ; }
@@ -758,11 +730,10 @@ static int onyx_close(struct codec_info_item *cii, {struct onyx *onyx = cii->codec_data; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex); onyx->open_count--;if (!onyx->open_count) onyx->spdif_locked = onyx->analog_locked =0 ; -mutex_unlock (&onyx->mutex);return 0 ; }
@@ -772,7 +743,7 @@ static int onyx_switch_clock(struct codec_info_item *cii, {struct onyx *onyx = cii->codec_data; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);/* this *MUST* be more elaborate later... */ switch (what) {case CLOCK_SWITCH_PREPARE_SLAVE :
@@ -784,7 +755,6 @@ static int onyx_switch_clock(struct codec_info_item *cii,default :/* silence warning */ break ; } -mutex_unlock (&onyx->mutex);return 0 ; }
@@ -795,27 +765,21 @@ static int onyx_suspend(struct codec_info_item *cii, pm_message_t state) {struct onyx *onyx = cii->codec_data;u8 v; -int err = -ENXIO ; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);if (onyx_read_register (onyx,ONYX_REG_CONTROL , &v)) - goto out_unlock; +return -ENXIO ;onyx_write_register (onyx,ONYX_REG_CONTROL , v |ONYX_ADPSV |ONYX_DAPSV );/* Apple does a sleep here but the datasheet says to do it on resume */ - err =0 ; - out_unlock: -mutex_unlock (&onyx->mutex); - -return err; +return 0 ; }static int onyx_resume (struct codec_info_item *cii) {struct onyx *onyx = cii->codec_data;u8 v; -int err = -ENXIO ; -mutex_lock (&onyx->mutex); +guard (mutex)(&onyx->mutex);/* reset codec */ onyx->codec.gpio->methods->set_hw_reset (onyx->codec.gpio,0 );
@@ -827,17 +791,13 @@ static int onyx_resume(struct codec_info_item *cii)/* take codec out of suspend (if it still is after reset) */ if (onyx_read_register (onyx,ONYX_REG_CONTROL , &v)) - goto out_unlock; +return -ENXIO ;onyx_write_register (onyx,ONYX_REG_CONTROL , v & ~(ONYX_ADPSV |ONYX_DAPSV ));/* FIXME: should divide by sample rate, but 8k is the lowest we go */ msleep (2205000 /8000 );/* reset all values */ onyx_register_init (onyx); - err =0 ; - out_unlock: -mutex_unlock (&onyx->mutex); - - return err; + return 0; }#endif /* CONFIG_PM */
sound/aoa/codecs/tas.c +39 -74
303 lines not on this page · raw message
sound/aoa/core/gpio-feature.c +7 -13
@@ -212,10 +212,9 @@ static void ftr_handle_notify(struct work_struct *work)struct gpio_notification *notif = container_of(work, struct gpio_notification, work.work); -mutex_lock (¬if->mutex); +guard (mutex)(¬if->mutex);if (notif->notify) notif->notify (notif->data); -mutex_unlock (¬if->mutex); }static void gpio_enable_dual_edge (int gpio)
@@ -341,19 +340,17 @@ static int ftr_set_notify(struct gpio_runtime *rt,if (!irq)return -ENODEV ; -mutex_lock (¬if->mutex); +guard (mutex)(¬if->mutex); old = notif->notify; -if (!old && !notify) { - err =0 ; - goto out_unlock; - } +if (!old && !notify) +return 0 ;if (old && notify) {if (old == notify && notif->data == data) err =0 ; - goto out_unlock; +return err; }if (old && !notify)
@@ -362,16 +359,13 @@ static int ftr_set_notify(struct gpio_runtime *rt,if (!old && notify) { err =request_irq (irq, ftr_handle_notify_irq,0 , name, notif);if (err) - goto out_unlock; +return err; } notif->notify = notify; notif->data = data; - err =0 ; - out_unlock: -mutex_unlock (¬if->mutex); -return err; +return 0 ; } static int ftr_get_detect(struct gpio_runtime *rt,
sound/aoa/core/gpio-pmf.c +9 -17
@@ -74,10 +74,9 @@ static void pmf_handle_notify(struct work_struct *work)struct gpio_notification *notif = container_of(work, struct gpio_notification, work.work); -mutex_lock (¬if->mutex); +guard (mutex)(¬if->mutex);if (notif->notify) notif->notify (notif->data); -mutex_unlock (¬if->mutex); }static void pmf_gpio_init (struct gpio_runtime *rt)
@@ -154,19 +153,17 @@ static int pmf_set_notify(struct gpio_runtime *rt,return -EINVAL ; } -mutex_lock (¬if->mutex); +guard (mutex)(¬if->mutex); old = notif->notify; -if (!old && !notify) { - err =0 ; - goto out_unlock; - } +if (!old && !notify) +return 0 ;if (old && notify) {if (old == notify && notif->data == data) err =0 ; - goto out_unlock; +return err; }if (old && !notify) {
@@ -178,10 +175,8 @@ static int pmf_set_notify(struct gpio_runtime *rt,if (!old && notify) { irq_client =kzalloc (sizeof (struct pmf_irq_client ),GFP_KERNEL ); -if (!irq_client) { - err = -ENOMEM ; - goto out_unlock; - } +if (!irq_client) +return -ENOMEM ; irq_client->data = notif; irq_client->handler = pmf_handle_notify_irq; irq_client->owner =THIS_MODULE ;
@@ -192,17 +187,14 @@ static int pmf_set_notify(struct gpio_runtime *rt,printk (KERN_ERR "snd-aoa: gpio layer failed to" " register %s irq (%d)\n" , name, err);kfree (irq_client); - goto out_unlock; +return err; } notif->gpio_private = irq_client; } notif->notify = notify; notif->data = data; - err =0 ; - out_unlock: -mutex_unlock (¬if->mutex); -return err; +return 0 ; } static int pmf_get_detect(struct gpio_runtime *rt,
sound/aoa/soundbus/i2sbus/pcm.c +25 -51
184 lines not on this page · raw message
Signature · 1 line
2.53.0
Sasha Levin
maintainerPATCH 2/2 ALSA: aoa: Skip devices with no codecs in i2sbus_resume()
From: Thorsten Blum <[email protected]>
[ Upstream commit fd7df93013c5118812e63a52635dc6c3a805a1de ]
In i2sbus_resume(), skip devices with an empty codec list, which avoids using an uninitialized 'sysclock_factor' in the 32-bit format path in i2sbus_pcm_prepare().
In i2sbus_pcm_prepare(), replace two list_for_each_entry() loops with a single list_first_entry() now that the codec list is guaranteed to be non-empty by all callers.
--- sound/aoa/soundbus/i2sbus/core.c | 3 +++ sound/aoa/soundbus/i2sbus/pcm.c | 16 +++++----------- 2 files changed, 8 insertions(+), 11 deletions(-)
sound/aoa/soundbus/i2sbus/core.c +3 -0
@@ -407,6 +407,9 @@ static int i2sbus_resume(struct macio_dev* dev)int err, ret =0 ;list_for_each_entry (i2sdev, &control->list, item) { +if (list_empty (&i2sdev->sound.codec_list)) +continue ; +/* reset i2s bus format etc. */ i2sbus_pcm_prepare_both (i2sdev);
sound/aoa/soundbus/i2sbus/pcm.c +5 -11
@@ -383,6 +383,9 @@ static int i2sbus_pcm_prepare(struct i2sbus_dev *i2sdev, int in)/* set stop command */ command->command =cpu_to_le16 (DBDMA_STOP ); + cii =list_first_entry (&i2sdev->sound.codec_list, + struct codec_info_item, list); +/* ok, let's set the serial format and stuff */ switch (runtime->format) {/* 16 bit formats */
@@ -390,13 +393,7 @@ static int i2sbus_pcm_prepare(struct i2sbus_dev *i2sdev, int in)case SNDRV_PCM_FORMAT_U16_BE :/* FIXME: if we add different bus factors we need to * do more here!! */ - bi.bus_factor =0 ; -list_for_each_entry (cii, &i2sdev->sound.codec_list, list) { - bi.bus_factor = cii->codec->bus_factor; -break ; - } -if (!bi.bus_factor) -return -ENODEV ; + bi.bus_factor = cii->codec->bus_factor; input_16bit =1 ;break ;case SNDRV_PCM_FORMAT_S32_BE :
@@ -410,10 +407,7 @@ static int i2sbus_pcm_prepare(struct i2sbus_dev *i2sdev, int in)return -EINVAL ; }/* we assume all sysclocks are the same! */ -list_for_each_entry (cii, &i2sdev->sound.codec_list, list) { - bi.sysclock_factor = cii->codec->sysclock_factor; -break ; - } + bi.sysclock_factor = cii->codec->sysclock_factor; if (clock_and_divisors(bi.sysclock_factor, bi.bus_factor,
Signature · 1 line
2.53.0