Hi Arnaud, On 12/20/10 17:48, Arnaud Patard (Rtp) wrote: > Current code doesn't handle setting CHRGVBUS when enabling vbus. > Add support for it > > > > Signed-off-by: Arnaud Patard <arnaud.patard@xxxxxxxxxxx> > Index: tst-usb/drivers/usb/otg/ulpi.c > =================================================================== > --- tst-usb.orig/drivers/usb/otg/ulpi.c 2010-12-20 15:38:41.000000000 +0100 > +++ tst-usb/drivers/usb/otg/ulpi.c 2010-12-20 15:38:57.000000000 +0100 > @@ -234,7 +234,8 @@ > { > unsigned int flags = otg_io_read(otg, ULPI_OTG_CTRL); > > - flags &= ~(ULPI_OTG_CTRL_DRVVBUS | ULPI_OTG_CTRL_DRVVBUS_EXT); > + flags &= ~(ULPI_OTG_CTRL_DRVVBUS | ULPI_OTG_CTRL_DRVVBUS_EXT | > + ULPI_OTG_CTRL_CHRGVBUS); > > if (on) { > if (otg->flags & ULPI_OTG_DRVVBUS) > @@ -242,6 +243,9 @@ > > if (otg->flags & ULPI_OTG_DRVVBUS_EXT) > flags |= ULPI_OTG_CTRL_DRVVBUS_EXT; > + > + if (otg->flags & ULPI_OTG_CHRGVBUS) > + flags |= ULPI_OTG_CTRL_CHRGVBUS; > } > > return otg_io_write(otg, flags, ULPI_OTG_CTRL); I think this is a wrong place to set the ChrgVbus bit. As for ULPI spec. 1.1: "3.8.7.1 Session Request Protocol (SRP) ULPI provides full SRP support. The Link uses the ChrgVbus and DischrgVbus bits in the OTG Control register to begin and end a session." So it is used for SRP. May be it is better to implement int (*start_srp)(struct otg_transceiver *otg); method for setting this bit? > > -- > 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 > > -- Regards, Igor. -- 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