[lvc-project] [PATCH 1/2] media: dvb-usb-v2: core: use clear_and_wake_up_bit() where appropriate
Dmitry Antipov
dmantipov at yandex.ru
Thu Oct 1 14:44:56 MSK 2026
Simplify dvb_usb_stop_feed(), dvb_usb_fe_init(), and dvb_usb_fe_sleep()
by using the convenient clear_and_wake_up_bit().
Signed-off-by: Dmitry Antipov <dmantipov at yandex.ru>
---
drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
index bd86d250433d..1f933adae46c 100644
--- a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
+++ b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c
@@ -376,9 +376,7 @@ static int dvb_usb_stop_feed(struct dvb_demux_feed *dvbdmxfeed)
usb_urb_killv2(&adap->stream);
/* clear 'streaming' status bit */
- clear_bit(ADAP_STREAMING, &adap->state_bits);
- smp_mb__after_atomic();
- wake_up_bit(&adap->state_bits, ADAP_STREAMING);
+ clear_and_wake_up_bit(ADAP_STREAMING, &adap->state_bits);
skip_feed_stop:
if (ret)
@@ -580,11 +578,8 @@ static int dvb_usb_fe_init(struct dvb_frontend *fe)
goto err;
}
err:
- if (!adap->suspend_resume_active) {
- clear_bit(ADAP_INIT, &adap->state_bits);
- smp_mb__after_atomic();
- wake_up_bit(&adap->state_bits, ADAP_INIT);
- }
+ if (!adap->suspend_resume_active)
+ clear_and_wake_up_bit(ADAP_INIT, &adap->state_bits);
dev_dbg(&d->udev->dev, "%s: ret=%d\n", __func__, ret);
return ret;
@@ -621,9 +616,7 @@ static int dvb_usb_fe_sleep(struct dvb_frontend *fe)
err:
if (!adap->suspend_resume_active) {
adap->active_fe = -1;
- clear_bit(ADAP_SLEEP, &adap->state_bits);
- smp_mb__after_atomic();
- wake_up_bit(&adap->state_bits, ADAP_SLEEP);
+ clear_and_wake_up_bit(ADAP_SLEEP, &adap->state_bits);
}
dev_dbg(&d->udev->dev, "%s: ret=%d\n", __func__, ret);
--
2.55.0
More information about the lvc-project
mailing list