ALSA/ASoC: use assign_bit() where applicable

Convert open-coded if/else with set_bit/clear_bit and their
non-atomic __set_bit/__clear_bit variants to the assign_bit/__assign_bit
API.

Done with Coccinelle semantic patch:
    // set_bit -> clear_bit => assign_bit

    @@
    expression cond, bit, addr;
    @@

    -if (cond)
    -        set_bit(bit, addr);
    -else
    -        clear_bit(bit, addr);
    +assign_bit(bit, addr, cond);

    // clear_bit -> set_bit => assign_bit

    @@
    expression cond, bit, addr;
    @@

    -if (cond)
    -        clear_bit(bit, addr);
    -else
    -        set_bit(bit, addr);
    +assign_bit(bit, addr, !cond);

    // __set_bit -> __clear_bit => __assign_bit

    @@
    expression cond, bit, addr;
    @@

    -if (cond)
    -        __set_bit(bit, addr);
    -else
    -        __clear_bit(bit, addr);
    +__assign_bit(bit, addr, cond);

    // __clear_bit -> __set_bit => __assign_bit

    @@
    expression cond, bit, addr;
    @@

    -if (cond)
    -        __clear_bit(bit, addr);
    -else
    -        __set_bit(bit, addr);
    +__assign_bit(bit, addr, !cond);

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20260918141532.3022761-1-peng.fan@oss.nxp.com
This commit is contained in:
Peng Fan 2026-09-18 22:15:20 +08:00 committed by Takashi Iwai
parent 3109ede2c3
commit fc6b1d74ff
5 changed files with 7 additions and 28 deletions

View File

@ -183,10 +183,7 @@ static void snd_serial_generic_input_trigger(struct snd_rawmidi_substream *subst
{
struct snd_serial_generic *drvdata = substream->rmidi->card->private_data;
if (up)
set_bit(SERIAL_MODE_INPUT_TRIGGERED, &drvdata->filemode);
else
clear_bit(SERIAL_MODE_INPUT_TRIGGERED, &drvdata->filemode);
assign_bit(SERIAL_MODE_INPUT_TRIGGERED, &drvdata->filemode, up);
}
static int snd_serial_generic_output_open(struct snd_rawmidi_substream *substream)
@ -230,10 +227,7 @@ static void snd_serial_generic_output_trigger(struct snd_rawmidi_substream *subs
{
struct snd_serial_generic *drvdata = substream->rmidi->card->private_data;
if (up)
set_bit(SERIAL_MODE_OUTPUT_TRIGGERED, &drvdata->filemode);
else
clear_bit(SERIAL_MODE_OUTPUT_TRIGGERED, &drvdata->filemode);
assign_bit(SERIAL_MODE_OUTPUT_TRIGGERED, &drvdata->filemode, up);
if (up)
snd_serial_generic_tx_wakeup(drvdata);

View File

@ -70,10 +70,7 @@ void snd_hdac_display_power(struct hdac_bus *bus, unsigned int idx, bool enable)
dev_dbg(bus->dev, "display power %s\n", str_enable_disable(enable));
guard(mutex)(&bus->lock);
if (enable)
set_bit(idx, &bus->display_power_status);
else
clear_bit(idx, &bus->display_power_status);
assign_bit(idx, &bus->display_power_status, enable);
if (!acomp || !acomp->ops)
return;

View File

@ -781,9 +781,6 @@ EXPORT_SYMBOL_GPL(snd_hdac_bus_free_stream_pages);
*/
void snd_hdac_bus_link_power(struct hdac_device *codec, bool enable)
{
if (enable)
set_bit(codec->addr, &codec->bus->codec_powered);
else
clear_bit(codec->addr, &codec->bus->codec_powered);
assign_bit(codec->addr, &codec->bus->codec_powered, enable);
}
EXPORT_SYMBOL_GPL(snd_hdac_bus_link_power);

View File

@ -1379,10 +1379,7 @@ static int tas675x_mute_stream(struct snd_soc_dai *dai, int mute, int direction)
int ret;
if (direction == SNDRV_PCM_STREAM_CAPTURE) {
if (mute)
clear_bit(dai->id, &tas->active_capture_dais);
else
set_bit(dai->id, &tas->active_capture_dais);
assign_bit(dai->id, &tas->active_capture_dais, !mute);
return 0;
}
@ -1391,10 +1388,7 @@ static int tas675x_mute_stream(struct snd_soc_dai *dai, int mute, int direction)
* The TAS675x has two playback DAIs (main audio and LLP).
* Only transition to SLEEP when ALL are muted.
*/
if (mute)
clear_bit(dai->id, &tas->active_playback_dais);
else
set_bit(dai->id, &tas->active_playback_dais);
assign_bit(dai->id, &tas->active_playback_dais, !mute);
/* Last playback stream */
if (mute && !READ_ONCE(tas->active_playback_dais)) {

View File

@ -1280,10 +1280,7 @@ static void snd_usbmidi_input_trigger(struct snd_rawmidi_substream *substream,
{
struct snd_usb_midi *umidi = substream->rmidi->private_data;
if (up)
set_bit(substream->number, &umidi->input_triggered);
else
clear_bit(substream->number, &umidi->input_triggered);
assign_bit(substream->number, &umidi->input_triggered, up);
}
static const struct snd_rawmidi_ops snd_usbmidi_output_ops = {