Modify

Opened 5 years ago

Last modified 5 years ago

#12745 new defect

CONFIG_USB_OHCI_HCD_PLATFORM=y causes USB to stop working on some platforms

Reported by: anonymous Owned by: developers
Priority: normal Milestone: Chaos Calmer 15.05
Component: kernel Version: Trunk
Keywords: Cc:

Description

CONFIG_USB_OHCI_HCD_PLATFORM is enabled by default trunk/package/kernel/modules/usb.mk

It causes the generic platform driver to be built instead of the platform-specific OHCI driver.

One of the possible solutions is to patch the kernel driver so it builds the generic driver when CONFIG_USB_OHCI_HCD_PLATFORM is enabled but PLATFORM_DRIVER is not defined.

Attachments (0)

Change History (2)

comment:1 Changed 5 years ago by nbd

what platforms are affected?

comment:2 Changed 5 years ago by anonymous

All platforms that don't use the generic OHCI platform driver are affected. This means that the usb module won't work unless CONFIG_USB_OHCI_HCD_PLATFORM=y is removed from package/kernel/modules/usb.mk.

Have a look at drivers/usb/host/ohci-hcd.c
For some platforms the correct driver file inclusion is based on ARCH define:

#ifdef CONFIG_ARCH_EP93XX
#include "ohci-ep93xx.c"
#define PLATFORM_DRIVER		ohci_hcd_ep93xx_driver
#endif

#ifdef CONFIG_ARCH_AT91
#include "ohci-at91.c"
#define PLATFORM_DRIVER		ohci_hcd_at91_driver
#endif

But if CONFIG_USB_OHCI_HCD_PLATFORM is enabled, then PLATFORM_DRIVER is overriden by the generic driver:

#ifdef CONFIG_USB_OHCI_HCD_PLATFORM
#include "ohci-platform.c"
#define PLATFORM_DRIVER		ohci_platform_driver
#endif

Add Comment

Modify Ticket

Action
as new .
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.