Re: [PATCH v10 00/11] Add USB OTG HNP and SRP support on Chipidea usb driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 14, 2014 at 08:45:13PM +0800, Peter Chen wrote:
> On Mon, Apr 14, 2014 at 10:22:32AM +0800, Li Jun wrote:
> > On Mon, Apr 14, 2014 at 09:37:50AM +0800, Li Jun wrote:
> > > From: Li Jun <b47624@xxxxxxxxxxxxx>
> > > 
> > > This patchset adds USB OTG HNP and SRP support on chipidea usb driver,
> > > existing OTG port role swtich function by ID pin status kept unchanged,
> > > based on that, if select CONFIG_USB_OTG_FSM, OTG HNP and SRP will be
> > > supported.
> > > 
> > > Reference to:
> > > "On-The-Go and Embedded Host Supplement to the USB Revision 2.0 Specification July 27, 2012
> > > Revision 2.0 version 1.1a"
> > > 
> > > Changes since v9:
> > > - Move xxx_fsm_start to be after request irq since xxx_fsm_work need call to
> > >   disable_irq_nosync(ci->irq).
> 
> Then, the interrupt will be on during the host initialization, it may
> have unexpected interrupt.
> 
 
Maybe for some devices which need not vbus from host, the enum will start when
host init. one possible solution is split the current fsm_start into 2 parts,
the first part is put into fsm_init(thus before request_irq), the 2nd part is
put into fsm_start, any idea? if no objection, I can go in this way.

Li Jun

> > > - Add fsm handling in xxx_fsm_work for regsiter gadget driver with vbus on, instead
> > >   of rely on B_SE0_SRP timer(which is not directly linked to this case and need wait
> > >   1s).
> 
> The B_SE0_SRP timer still will queue otg fsm work or not? If it is, any
> side effects?
> 

yes, still queue otg fsm work, but no side effects, as B-device is already queue
one fsm work before B_SE0_SRP timer time out, then the later one will just try to
change state but do nothing.

> > > - Add comments on a_idle to a_wait_vrise due to ID change, which is out of OTG spec
> > >   but make sense for user experience.
> > > - Remove blank line introduced in v9.
> > >  
> > Sorry, missed one update in v10 changes summary:
> > - Clear ID interrupt status before enable ID irq in ci_hdrc_probe().
> 
> At ci_get_otg_capable, it will clear all otg interrupt status.
> 

I do still find there is one ID change irq pending there when power up with ID is low.
if I need rework the fsm start and put host init before request irq, this problem
will not exist.

> Peter
> > 
> > Li Jun
> > > Li Jun (11):
> > >   usb: chipidea: usb OTG fsm initialization.
> > >   usb: chipidea: host: vbus control change for OTG HNP.
> > >   usb: chipidea: host: init otg port number.
> > >   usb: chipidea: udc: driver update for OTG HNP.
> > >   usb: chipidea: add OTG fsm operation functions implemenation.
> > >   usb: chipidea: OTG fsm timers initialization.
> > >   usb: chipidea: OTG HNP and SRP fsm implementation.
> > >   usb: chipidea: add sys inputs for OTG fsm input.
> > >   usb: chipidea: debug: add debug file for OTG variables
> > >   Documentation: ABI: usb: sysfs Description for chipidea USB OTG HNP
> > >     and SRP
> > >   Documentation: usb: add chipidea.txt for how to demo usb OTG HNP and
> > >     SRP
> > > 
> > >  .../ABI/testing/sysfs-platform-chipidea-usb-otg    |   56 ++
> > >  Documentation/usb/chipidea.txt                     |   71 ++
> > >  drivers/usb/chipidea/Makefile                      |    1 +
> > >  drivers/usb/chipidea/bits.h                        |   10 +
> > >  drivers/usb/chipidea/ci.h                          |   19 +
> > >  drivers/usb/chipidea/core.c                        |   25 +-
> > >  drivers/usb/chipidea/debug.c                       |   84 ++
> > >  drivers/usb/chipidea/host.c                        |   21 +-
> > >  drivers/usb/chipidea/otg.c                         |   15 +-
> > >  drivers/usb/chipidea/otg_fsm.c                     |  864 ++++++++++++++++++++
> > >  drivers/usb/chipidea/otg_fsm.h                     |  129 +++
> > >  drivers/usb/chipidea/udc.c                         |   19 +-
> > >  12 files changed, 1300 insertions(+), 14 deletions(-)
> > >  create mode 100644 Documentation/ABI/testing/sysfs-platform-chipidea-usb-otg
> > >  create mode 100644 Documentation/usb/chipidea.txt
> > >  create mode 100644 drivers/usb/chipidea/otg_fsm.c
> > >  create mode 100644 drivers/usb/chipidea/otg_fsm.h
> > > 
> > > -- 
> > > 1.7.9.5
> > > 
> > > 
> > 
> 
> -- 
> 
> 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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux