Message ID | 1399947567-18958-1-git-send-email-peter.chen@freescale.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, May 13, 2014 at 10:19:27AM +0800, Peter Chen wrote: > the user should only select it when the board supports HNP and SRP, > it should NOT be selected if the board only supports dual-role > switch through ID pin. > > There is a discussion for it: > http://marc.info/?l=linux-arm-kernel&m=139994896101516&w=2 > http://marc.info/?l=linux-usb&m=139994881701504&w=2 > > Signed-off-by: Peter Chen <peter.chen@freescale.com> > --- > drivers/usb/core/Kconfig | 12 +++++++----- > 1 files changed, 7 insertions(+), 5 deletions(-) > > diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig > index cb8e991..158048b 100644 > --- a/drivers/usb/core/Kconfig > +++ b/drivers/usb/core/Kconfig > @@ -54,13 +54,15 @@ config USB_OTG > default n > help > The most notable feature of USB OTG is support for a > - "Dual-Role" device, which can act as either a device > - or a host. The initial role is decided by the type of > - plug inserted and can be changed later when two dual > - role devices talk to each other. > + otg device, which can act as either a device or a host. > + The initial role is decided by the type of plug inserted > + and can be changed using HNP (Host Negotiation Protocol) > + later when two otg devices talk to each other. > > Select this only if your board has Mini-AB/Micro-AB > - connector. > + connector and supports HNP and SRP (Session Request Protocol). > + If the board only supports dual-role switch through ID > + pin, this configuration should not be selected. That's really lame. What happened to our "all modconfig should work" goal? Why can't you dynamically detect that this is not a config that works and handle it? And this is just the OTG "core", not any specific hardware, so why should it matter? greg k-h
On Tue, May 13, 2014 at 01:11:44PM +0200, Greg KH wrote: > On Tue, May 13, 2014 at 10:19:27AM +0800, Peter Chen wrote: > > the user should only select it when the board supports HNP and SRP, > > it should NOT be selected if the board only supports dual-role > > switch through ID pin. > > > > There is a discussion for it: > > http://marc.info/?l=linux-arm-kernel&m=139994896101516&w=2 > > http://marc.info/?l=linux-usb&m=139994881701504&w=2 > > > > Signed-off-by: Peter Chen <peter.chen@freescale.com> > > --- > > drivers/usb/core/Kconfig | 12 +++++++----- > > 1 files changed, 7 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig > > index cb8e991..158048b 100644 > > --- a/drivers/usb/core/Kconfig > > +++ b/drivers/usb/core/Kconfig > > @@ -54,13 +54,15 @@ config USB_OTG > > default n > > help > > The most notable feature of USB OTG is support for a > > - "Dual-Role" device, which can act as either a device > > - or a host. The initial role is decided by the type of > > - plug inserted and can be changed later when two dual > > - role devices talk to each other. > > + otg device, which can act as either a device or a host. > > + The initial role is decided by the type of plug inserted > > + and can be changed using HNP (Host Negotiation Protocol) > > + later when two otg devices talk to each other. > > > > Select this only if your board has Mini-AB/Micro-AB > > - connector. > > + connector and supports HNP and SRP (Session Request Protocol). > > + If the board only supports dual-role switch through ID > > + pin, this configuration should not be selected. > > That's really lame. What happened to our "all modconfig should work" > goal? Why can't you dynamically detect that this is not a config that > works and handle it? > > And this is just the OTG "core", not any specific hardware, so why > should it matter? yeah, I'm with Greg here... we should find a better way to sort this out.
> > On Tue, May 13, 2014 at 01:11:44PM +0200, Greg KH wrote: > > On Tue, May 13, 2014 at 10:19:27AM +0800, Peter Chen wrote: > > > the user should only select it when the board supports HNP and SRP, > > > it should NOT be selected if the board only supports dual-role > > > switch through ID pin. > > > > > > There is a discussion for it: > > > http://marc.info/?l=linux-arm-kernel&m=139994896101516&w=2 > > > http://marc.info/?l=linux-usb&m=139994881701504&w=2 > > > > > > Signed-off-by: Peter Chen <peter.chen@freescale.com> > > > --- > > > drivers/usb/core/Kconfig | 12 +++++++----- > > > 1 files changed, 7 insertions(+), 5 deletions(-) > > > > > > diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig > > > index cb8e991..158048b 100644 > > > --- a/drivers/usb/core/Kconfig > > > +++ b/drivers/usb/core/Kconfig > > > @@ -54,13 +54,15 @@ config USB_OTG > > > default n > > > help > > > The most notable feature of USB OTG is support for a > > > - "Dual-Role" device, which can act as either a device > > > - or a host. The initial role is decided by the type of > > > - plug inserted and can be changed later when two dual > > > - role devices talk to each other. > > > + otg device, which can act as either a device or a host. > > > + The initial role is decided by the type of plug inserted > > > + and can be changed using HNP (Host Negotiation Protocol) > > > + later when two otg devices talk to each other. > > > > > > Select this only if your board has Mini-AB/Micro-AB > > > - connector. > > > + connector and supports HNP and SRP (Session Request Protocol). > > > + If the board only supports dual-role switch through ID > > > + pin, this configuration should not be selected. > > > > That's really lame. What happened to our "all modconfig should work" > > goal? Why can't you dynamically detect that this is not a config that > > works and handle it? > > If CONFIG_USB_OTG and CONFIG_USB_OTG_WHITELIST are set, most of usb devices will not work when connect to host for current code. So, we need a feature flag for hcd and gadget, and set this OTG feature flag if the platform supports it (using dtb or platform data). Peter > > And this is just the OTG "core", not any specific hardware, so why > > should it matter? > > yeah, I'm with Greg here... we should find a better way to sort this out. > > -- > balbi
On Wed, May 14, 2014 at 06:24:51AM +0000, Peter Chen wrote: > > > > > On Tue, May 13, 2014 at 01:11:44PM +0200, Greg KH wrote: > > > On Tue, May 13, 2014 at 10:19:27AM +0800, Peter Chen wrote: > > > > the user should only select it when the board supports HNP and SRP, > > > > it should NOT be selected if the board only supports dual-role > > > > switch through ID pin. > > > > > > > > There is a discussion for it: > > > > http://marc.info/?l=linux-arm-kernel&m=139994896101516&w=2 > > > > http://marc.info/?l=linux-usb&m=139994881701504&w=2 > > > > > > > > Signed-off-by: Peter Chen <peter.chen@freescale.com> > > > > --- > > > > drivers/usb/core/Kconfig | 12 +++++++----- > > > > 1 files changed, 7 insertions(+), 5 deletions(-) > > > > > > > > diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig > > > > index cb8e991..158048b 100644 > > > > --- a/drivers/usb/core/Kconfig > > > > +++ b/drivers/usb/core/Kconfig > > > > @@ -54,13 +54,15 @@ config USB_OTG > > > > default n > > > > help > > > > The most notable feature of USB OTG is support for a > > > > - "Dual-Role" device, which can act as either a device > > > > - or a host. The initial role is decided by the type of > > > > - plug inserted and can be changed later when two dual > > > > - role devices talk to each other. > > > > + otg device, which can act as either a device or a host. > > > > + The initial role is decided by the type of plug inserted > > > > + and can be changed using HNP (Host Negotiation Protocol) > > > > + later when two otg devices talk to each other. > > > > > > > > Select this only if your board has Mini-AB/Micro-AB > > > > - connector. > > > > + connector and supports HNP and SRP (Session Request Protocol). > > > > + If the board only supports dual-role switch through ID > > > > + pin, this configuration should not be selected. > > > > > > That's really lame. What happened to our "all modconfig should work" > > > goal? Why can't you dynamically detect that this is not a config that > > > works and handle it? > > > > > If CONFIG_USB_OTG and CONFIG_USB_OTG_WHITELIST are set, most of usb devices > will not work when connect to host for current code. > > So, we need a feature flag for hcd and gadget, and set this OTG feature flag > if the platform supports it (using dtb or platform data). Sounds reasonable, and much nicer than just trying to point to a help configuration file that no one will ever read :) greg k-h
On Wed, May 14, 2014 at 04:08:30PM +0200, Greg KH wrote: > On Wed, May 14, 2014 at 06:24:51AM +0000, Peter Chen wrote: > > > > > > > > On Tue, May 13, 2014 at 01:11:44PM +0200, Greg KH wrote: > > > > On Tue, May 13, 2014 at 10:19:27AM +0800, Peter Chen wrote: > > > > > the user should only select it when the board supports HNP and SRP, > > > > > it should NOT be selected if the board only supports dual-role > > > > > switch through ID pin. > > > > > > > > > > There is a discussion for it: > > > > > http://marc.info/?l=linux-arm-kernel&m=139994896101516&w=2 > > > > > http://marc.info/?l=linux-usb&m=139994881701504&w=2 > > > > > > > > > > Signed-off-by: Peter Chen <peter.chen@freescale.com> > > > > > --- > > > > > drivers/usb/core/Kconfig | 12 +++++++----- > > > > > 1 files changed, 7 insertions(+), 5 deletions(-) > > > > > > > > > > diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig > > > > > index cb8e991..158048b 100644 > > > > > --- a/drivers/usb/core/Kconfig > > > > > +++ b/drivers/usb/core/Kconfig > > > > > @@ -54,13 +54,15 @@ config USB_OTG > > > > > default n > > > > > help > > > > > The most notable feature of USB OTG is support for a > > > > > - "Dual-Role" device, which can act as either a device > > > > > - or a host. The initial role is decided by the type of > > > > > - plug inserted and can be changed later when two dual > > > > > - role devices talk to each other. > > > > > + otg device, which can act as either a device or a host. > > > > > + The initial role is decided by the type of plug inserted > > > > > + and can be changed using HNP (Host Negotiation Protocol) > > > > > + later when two otg devices talk to each other. > > > > > > > > > > Select this only if your board has Mini-AB/Micro-AB > > > > > - connector. > > > > > + connector and supports HNP and SRP (Session Request Protocol). > > > > > + If the board only supports dual-role switch through ID > > > > > + pin, this configuration should not be selected. > > > > > > > > That's really lame. What happened to our "all modconfig should work" > > > > goal? Why can't you dynamically detect that this is not a config that > > > > works and handle it? > > > > > > > > If CONFIG_USB_OTG and CONFIG_USB_OTG_WHITELIST are set, most of usb devices > > will not work when connect to host for current code. > > > > So, we need a feature flag for hcd and gadget, and set this OTG feature flag > > if the platform supports it (using dtb or platform data). > > Sounds reasonable, and much nicer than just trying to point to a help > configuration file that no one will ever read :) yeah, the way OTG Whitelist was implemented is pretty brain dead because it prevents anybody from e.g. making an accessory to a smartphone and shipping a driver together with an app. That part of the code needs a complete rewrite, what we need is to use the bus match to notify that a device is compatible, then everytime a new driver is installed, that new device will just work.
diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig index cb8e991..158048b 100644 --- a/drivers/usb/core/Kconfig +++ b/drivers/usb/core/Kconfig @@ -54,13 +54,15 @@ config USB_OTG default n help The most notable feature of USB OTG is support for a - "Dual-Role" device, which can act as either a device - or a host. The initial role is decided by the type of - plug inserted and can be changed later when two dual - role devices talk to each other. + otg device, which can act as either a device or a host. + The initial role is decided by the type of plug inserted + and can be changed using HNP (Host Negotiation Protocol) + later when two otg devices talk to each other. Select this only if your board has Mini-AB/Micro-AB - connector. + connector and supports HNP and SRP (Session Request Protocol). + If the board only supports dual-role switch through ID + pin, this configuration should not be selected. config USB_OTG_WHITELIST bool "Rely on OTG Targeted Peripherals List"
the user should only select it when the board supports HNP and SRP, it should NOT be selected if the board only supports dual-role switch through ID pin. There is a discussion for it: http://marc.info/?l=linux-arm-kernel&m=139994896101516&w=2 http://marc.info/?l=linux-usb&m=139994881701504&w=2 Signed-off-by: Peter Chen <peter.chen@freescale.com> --- drivers/usb/core/Kconfig | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-)