Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c5537ea5 authored by Sebastian Andrzej Siewior's avatar Sebastian Andrzej Siewior Committed by Felipe Balbi
Browse files

usb: dwc3: debugfs: hold the lock in during mode change



The read and write operation is atomic and we need no locking around
this operations. What we need however is a lock that is held which
ensures that the content of the DWC3_GCTL has not been changed. With
this, the conten may have been change changed after the first but before
our write back.

Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 7ae4fc4d
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -451,7 +451,6 @@ static ssize_t dwc3_mode_write(struct file *file,

	spin_lock_irqsave(&dwc->lock, flags);
	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
	spin_unlock_irqrestore(&dwc->lock, flags);

	reg &= ~(DWC3_GCTL_PRTCAPDIR(DWC3_GCTL_PRTCAP_OTG));

@@ -464,7 +463,6 @@ static ssize_t dwc3_mode_write(struct file *file,
	if (!strncmp(buf, "otg", 3))
		reg |= DWC3_GCTL_PRTCAP(DWC3_GCTL_PRTCAP_OTG);

	spin_lock_irqsave(&dwc->lock, flags);
	dwc3_writel(dwc->regs, DWC3_GCTL, reg);
	spin_unlock_irqrestore(&dwc->lock, flags);