usb: use assign_bit() where applicable
Commit Message
From: Peng Fan <peng.fan@nxp.com>
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>
---
drivers/usb/core/hub.c | 5 +----
drivers/usb/core/sysfs.c | 5 +----
drivers/usb/gadget/function/f_midi.c | 5 +----
drivers/usb/host/ehci-sysfs.c | 5 +----
drivers/usb/host/ohci-hub.c | 7 ++-----
drivers/usb/host/uhci-hcd.c | 6 ++----
drivers/usb/musb/sunxi.c | 5 +----
7 files changed, 9 insertions(+), 29 deletions(-)
@@ -902,10 +902,7 @@ int usb_hub_set_port_power(struct usb_device *hdev, struct usb_hub *hub,
if (ret)
return ret;
- if (set)
- set_bit(port1, hub->power_bits);
- else
- clear_bit(port1, hub->power_bits);
+ assign_bit(port1, hub->power_bits, set);
return 0;
}
@@ -1032,10 +1032,7 @@ static ssize_t interface_authorized_default_store(struct device *dev,
if (kstrtobool(buf, &val) != 0)
return -EINVAL;
- if (val)
- set_bit(HCD_FLAG_INTF_AUTHORIZED, &hcd->flags);
- else
- clear_bit(HCD_FLAG_INTF_AUTHORIZED, &hcd->flags);
+ assign_bit(HCD_FLAG_INTF_AUTHORIZED, &hcd->flags, val);
return rc;
}
@@ -769,10 +769,7 @@ static void f_midi_out_trigger(struct snd_rawmidi_substream *substream, int up)
VDBG(midi, "%s()\n", __func__);
- if (up)
- set_bit(substream->number, &midi->out_triggered);
- else
- clear_bit(substream->number, &midi->out_triggered);
+ assign_bit(substream->number, &midi->out_triggered, up);
}
static const struct snd_rawmidi_ops gmidi_in_ops = {
@@ -48,10 +48,7 @@ static ssize_t companion_store(struct device *dev,
if (portnum <= 0 || portnum > HCS_N_PORTS(ehci->hcs_params))
return -ENOENT;
portnum--;
- if (new_owner)
- set_bit(portnum, &ehci->companion_ports);
- else
- clear_bit(portnum, &ehci->companion_ports);
+ assign_bit(portnum, &ehci->companion_ports, new_owner);
set_owner(ehci, portnum, new_owner);
return count;
}
@@ -518,11 +518,8 @@ int ohci_hub_status_data(struct usb_hcd *hcd, char *buf)
}
}
- if (ohci_root_hub_state_changes(ohci, changed,
- any_connected, rhsc_status))
- set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
- else
- clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
+ assign_bit(HCD_FLAG_POLL_RH, &hcd->flags,
+ ohci_root_hub_state_changes(ohci, changed, any_connected, rhsc_status));
done:
@@ -376,10 +376,8 @@ __acquires(uhci->lock)
* doesn't work, then we won't get an interrupt when a wakeup event
* occurs. Thus the suspended root hub needs to be polled.
*/
- if (wakeup_enable && (!int_enable || !egsm_enable))
- set_bit(HCD_FLAG_POLL_RH, &uhci_to_hcd(uhci)->flags);
- else
- clear_bit(HCD_FLAG_POLL_RH, &uhci_to_hcd(uhci)->flags);
+ assign_bit(HCD_FLAG_POLL_RH, &uhci_to_hcd(uhci)->flags,
+ wakeup_enable && (!int_enable || !egsm_enable));
uhci_scan_schedule(uhci);
uhci_fsbr_off(uhci);
@@ -208,10 +208,7 @@ static int sunxi_musb_host_notifier(struct notifier_block *nb,
{
struct sunxi_glue *glue = container_of(nb, struct sunxi_glue, host_nb);
- if (event)
- set_bit(SUNXI_MUSB_FL_HOSTMODE, &glue->flags);
- else
- clear_bit(SUNXI_MUSB_FL_HOSTMODE, &glue->flags);
+ assign_bit(SUNXI_MUSB_FL_HOSTMODE, &glue->flags, event);
set_bit(SUNXI_MUSB_FL_HOSTMODE_PEND, &glue->flags);
schedule_work(&glue->work);