USB: otg/ulpi.c : fix register write
authorEric Bénard <eric@eukrea.com>
Thu, 15 Jul 2010 07:20:19 +0000 (09:20 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 10 Aug 2010 21:35:40 +0000 (14:35 -0700)
ulpi_set_vbus and ulpi_set_flags are using ULPI_SET(register) to write
to the PHY's registers, which means we can only set bits in the PHY's
register and not clear them.
By directly using the address of the register without any offset, we
now get the expected behaviour for these functions.

Signed-off-by: Eric Bénard <eric@eukrea.com>
Cc: Daniel Mack <daniel@caiaq.de>
Cc: linux-arm-kernel@lists.infradead.org
Cc: Sascha Hauer <kernel@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/otg/ulpi.c

index d331b222ad214cdd43e815761eb08a3c300e8196..10a1df628f8c3fe33332f71624b11e7270c9a3a7 100644 (file)
@@ -54,7 +54,7 @@ static int ulpi_set_flags(struct otg_transceiver *otg)
        if (otg->flags & USB_OTG_EXT_VBUS_INDICATOR)
                flags |= ULPI_OTG_CTRL_EXTVBUSIND;
 
-       return otg_io_write(otg, flags, ULPI_SET(ULPI_OTG_CTRL));
+       return otg_io_write(otg, flags, ULPI_OTG_CTRL);
 }
 
 static int ulpi_init(struct otg_transceiver *otg)
@@ -95,7 +95,7 @@ static int ulpi_set_vbus(struct otg_transceiver *otg, bool on)
                        flags |= ULPI_OTG_CTRL_DRVVBUS_EXT;
        }
 
-       return otg_io_write(otg, flags, ULPI_SET(ULPI_OTG_CTRL));
+       return otg_io_write(otg, flags, ULPI_OTG_CTRL);
 }
 
 struct otg_transceiver *