On Wed, Aug 07, 2013 at 11:11:10AM +0200, Sascha Hauer wrote: > On Wed, Aug 07, 2013 at 01:34:37PM +0800, Peter Chen wrote: > > - > > - reg = usbmisc->base + MX25_USB_PHY_CTRL_OFFSET; > > - > > - if (usbdev->evdo) { > > - spin_lock_irqsave(&usbmisc->lock, flags); > > - val = readl(reg); > > - writel(val | MX25_BM_EXTERNAL_VBUS_DIVIDER, reg); > > - spin_unlock_irqrestore(&usbmisc->lock, flags); > > + if (data->evdo) { > > + spin_lock_irqsave(&data->lock, flags); > > + regmap_read(data->non_core_base_addr, > > + MX25_USB_PHY_CTRL_OFFSET, &val); > > + regmap_write(data->non_core_base_addr, > > + MX25_USB_PHY_CTRL_OFFSET, > > + val | MX25_BM_EXTERNAL_VBUS_DIVIDER); > > + spin_unlock_irqrestore(&data->lock, flags); > > Have a look at regmap_update_bits. You won't need this spinlock anymore. Thanks. -- Best Regards, Peter Chen -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html