* [GIT PATCH] USB fixes for .38 @ 2011-01-31 18:10 Greg KH 2011-01-31 18:12 ` [PATCH 31/42] USB: ehci-fsl: Fix 'have_sysif_regs' detection Greg Kroah-Hartman 0 siblings, 1 reply; 2+ messages in thread From: Greg KH @ 2011-01-31 18:10 UTC (permalink / raw) To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-usb Here are some USB fixes for your .38 tree. Nothing major here, lots of little things and some xhci fixes that are needed to resolve some reported bugs as well as a number of new device ids and usb-storage quirks. Please pull from: master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6.git/ usb-linus All of these patches have been in the linux-next and mm trees for a while. The full patches will be sent to the linux-usb mailing list, if anyone wants to see them. thanks, greg k-h ------------ MAINTAINERS | 6 + drivers/usb/class/cdc-wdm.c | 2 +- drivers/usb/core/endpoint.c | 2 +- drivers/usb/core/hcd-pci.c | 7 +- drivers/usb/core/hub.c | 21 +++ drivers/usb/gadget/Kconfig | 7 +- drivers/usb/gadget/ci13xxx_udc.c | 268 +++++++++++++++++---------------- drivers/usb/gadget/ci13xxx_udc.h | 9 +- drivers/usb/gadget/composite.c | 5 +- drivers/usb/gadget/pch_udc.c | 127 +++++++++------ drivers/usb/gadget/printer.c | 19 +-- drivers/usb/host/ehci-fsl.c | 13 -- drivers/usb/host/ehci-fsl.h | 3 - drivers/usb/host/ehci-hcd.c | 19 ++- drivers/usb/host/ehci-mxc.c | 25 +++- drivers/usb/host/ehci-pci.c | 33 +++-- drivers/usb/host/fsl-mph-dr-of.c | 11 +- drivers/usb/host/xhci-ring.c | 91 ++++++----- drivers/usb/host/xhci.c | 60 +++----- drivers/usb/host/xhci.h | 16 +-- drivers/usb/misc/usbled.c | 2 +- drivers/usb/misc/uss720.c | 1 - drivers/usb/otg/nop-usb-xceiv.c | 2 + drivers/usb/otg/ulpi.c | 2 +- drivers/usb/serial/ch341.c | 10 ++ drivers/usb/serial/cp210x.c | 16 +-- drivers/usb/serial/digi_acceleport.c | 10 -- drivers/usb/serial/ftdi_sio.c | 12 ++- drivers/usb/serial/ftdi_sio_ids.h | 22 ++- drivers/usb/serial/generic.c | 20 +++ drivers/usb/serial/io_tables.h | 1 + drivers/usb/serial/iuu_phoenix.c | 1 + drivers/usb/serial/keyspan.h | 4 + drivers/usb/serial/keyspan_pda.c | 17 -- drivers/usb/serial/moto_modem.c | 1 + drivers/usb/serial/option.c | 23 +++- drivers/usb/serial/oti6858.c | 1 + drivers/usb/serial/pl2303.c | 12 ++ drivers/usb/serial/pl2303.h | 1 + drivers/usb/serial/qcaux.c | 3 + drivers/usb/serial/siemens_mpi.c | 1 + drivers/usb/serial/spcp8x5.c | 7 +- drivers/usb/serial/usb-serial.c | 8 +- drivers/usb/serial/usb_debug.c | 1 + drivers/usb/storage/unusual_cypress.h | 5 + drivers/usb/storage/unusual_devs.h | 18 +++ include/linux/usb/hcd.h | 1 + include/linux/usb/serial.h | 3 + 48 files changed, 568 insertions(+), 381 deletions(-) --------------- Alan Stern (5): USB: usb-storage: unusual_devs entry for CamSport Evo USB: EHCI: fix DMA deallocation bug USB: g_printer: fix bug in unregistration USB: g_printer: fix bug in module parameter definitions USB serial: add missing .usb_driver field in serial drivers Alex He (1): USB: EHCI: ASPM quirk of ISOC on AMD Hudson Andiry Xu (6): xHCI: synchronize irq in xhci_suspend() xHCI: fix queue_trb in isoc transfer xHCI: remove redundant parameter in giveback_first_trb() xHCI: fix cycle bit set in giveback_first_trb() xHCI: replace dev_dbg() with xhci_dbg() xHCI: fix printk_ratelimit() usage Arnaud Patard (1): USB: ehci-mxc: add work-around for efika mx/sb bug Craig Shelley (2): USB: CP210x Add two device IDs USB: CP210x Removed incorrect device ID Dan Williams (1): USB: qcaux: add Pantech UML290 device ID Dario Lombardo (1): drivers: update to pl2303 usb-serial to support Motorola cables David Sterba (1): USB: cdc-wdm: fix misuse of logical operation in place of bitop Eric Bénard (1): USB: unbreak ehci-mxc on otg port of i.MX27 Fabio Estevam (1): usb: otg: Make USB3319 ULPI ID generic Libor Pechacek (1): USB: serial: handle Data Carrier Detect changes Matthew Wilcox (1): xhci: Remove more doorbell-related reads Maulik Mankad (1): usb: gadget: composite: avoid access beyond array max length Melchior FRANZ (1): USB: DL100B webmail notifier: initialize return value Ming Lei (1): usb: otg: nop: fix oops triggered by otg_register_notifier Nicolaus Colberg (1): USB: adding USB support for Cinterion's HC2x, EU3 and PH8 products Pavankumar Kondeti (2): USB: gadget: Fix error path in ci13xxx_udc gadget probe function USB: gadget: Fix endpoint representation in ci13xxx_udc Peter Chen (1): usb: set ep_dev async suspend should be later than device_initialize Peter Tyser (1): USB: ehci-fsl: Fix 'have_sysif_regs' detection Pieter Maes (1): USB: serial: Updated support for ICOM devices Richard Schütz (2): USB: usb-storage: unusual_devs update for Cypress ATACB USB: usb-storage: unusual_devs update for TrekStor DataStation maxi g.u external hard drive enclosure Sarah Sharp (3): xhci: Resume bus on any port status change. usb: Realloc xHCI structures after a hub is verified. xhci: Use GFP_NOIO during device reset. Sergei Shtylyov (1): USB: uss720: remove duplicate USB device Stanislaw Gruszka (1): MAINTAINERS: add ueagle-atm entry Tomoya MORINAGA (1): USB: pch_udc: support new device ML7213 IOH Toshiharu Okada (2): usb: pch_udc: Fixed issue which does not work with g_serial usb: pch_udc: Fix the worning log issue at gadget driver remove Zhang Rui (1): xhci: Do not run xhci_cleanup_msix with irq disabled ^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH 31/42] USB: ehci-fsl: Fix 'have_sysif_regs' detection 2011-01-31 18:10 [GIT PATCH] USB fixes for .38 Greg KH @ 2011-01-31 18:12 ` Greg Kroah-Hartman 0 siblings, 0 replies; 2+ messages in thread From: Greg Kroah-Hartman @ 2011-01-31 18:12 UTC (permalink / raw) To: linux-usb Cc: David Brownell, Greg Kroah-Hartman, Peter Tyser, Anatolij Gustschin, linuxppc-dev From: Peter Tyser <ptyser@xes-inc.com> Previously a check was done on an ID register at the base of a CPU's internal USB registers to determine if system interface regsiters were present. The check looked for an ID register that had the format ID[0:5] == ~ID[8:13] as described in the MPC5121 User's Manual to determine if a MPC5121 or MPC83xx/85xx was being used. There are two issues with this method: - The ID register is not defined on the MPC83xx/85xx CPUs, so its unclear what is being checked on them. - Newer CPUs such as the P4080 also don't document the ID register, but do share the same format as the MPC5121. Thus the previous code did not set 'have_sysif_regs' properly which results in the P4080 not properly initializing its USB ports. Using the device tree 'compatible' node is a cleaner way to determine if 'have_sysif_regs' should be set and resolves the USB initialization issue seen on the P4080. Tested on a P4080-based system and compile tested on mpc512x_defconfig with Freescale EHCI driver enabled. Cc: Anatolij Gustschin <agust@denx.de> Cc: David Brownell <dbrownell@users.sourceforge.net> Cc: Kumar Gala <galak@kernel.crashing.org> Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- drivers/usb/host/ehci-fsl.c | 13 ------------- drivers/usb/host/ehci-fsl.h | 3 --- drivers/usb/host/fsl-mph-dr-of.c | 11 ++++++++--- 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c index 86e4289..5c761df 100644 --- a/drivers/usb/host/ehci-fsl.c +++ b/drivers/usb/host/ehci-fsl.c @@ -52,7 +52,6 @@ static int usb_hcd_fsl_probe(const struct hc_driver *driver, struct resource *res; int irq; int retval; - unsigned int temp; pr_debug("initializing FSL-SOC USB Controller\n"); @@ -126,18 +125,6 @@ static int usb_hcd_fsl_probe(const struct hc_driver *driver, goto err3; } - /* - * Check if it is MPC5121 SoC, otherwise set pdata->have_sysif_regs - * flag for 83xx or 8536 system interface registers. - */ - if (pdata->big_endian_mmio) - temp = in_be32(hcd->regs + FSL_SOC_USB_ID); - else - temp = in_le32(hcd->regs + FSL_SOC_USB_ID); - - if ((temp & ID_MSK) != (~((temp & NID_MSK) >> 8) & ID_MSK)) - pdata->have_sysif_regs = 1; - /* Enable USB controller, 83xx or 8536 */ if (pdata->have_sysif_regs) setbits32(hcd->regs + FSL_SOC_USB_CTRL, 0x4); diff --git a/drivers/usb/host/ehci-fsl.h b/drivers/usb/host/ehci-fsl.h index 2c83537..3fabed3 100644 --- a/drivers/usb/host/ehci-fsl.h +++ b/drivers/usb/host/ehci-fsl.h @@ -19,9 +19,6 @@ #define _EHCI_FSL_H /* offsets for the non-ehci registers in the FSL SOC USB controller */ -#define FSL_SOC_USB_ID 0x0 -#define ID_MSK 0x3f -#define NID_MSK 0x3f00 #define FSL_SOC_USB_ULPIVP 0x170 #define FSL_SOC_USB_PORTSC1 0x184 #define PORT_PTS_MSK (3<<30) diff --git a/drivers/usb/host/fsl-mph-dr-of.c b/drivers/usb/host/fsl-mph-dr-of.c index 574b99e..79a66d6 100644 --- a/drivers/usb/host/fsl-mph-dr-of.c +++ b/drivers/usb/host/fsl-mph-dr-of.c @@ -262,19 +262,24 @@ static void fsl_usb2_mpc5121_exit(struct platform_device *pdev) } } -struct fsl_usb2_platform_data fsl_usb2_mpc5121_pd = { +static struct fsl_usb2_platform_data fsl_usb2_mpc5121_pd = { .big_endian_desc = 1, .big_endian_mmio = 1, .es = 1, + .have_sysif_regs = 0, .le_setup_buf = 1, .init = fsl_usb2_mpc5121_init, .exit = fsl_usb2_mpc5121_exit, }; #endif /* CONFIG_PPC_MPC512x */ +static struct fsl_usb2_platform_data fsl_usb2_mpc8xxx_pd = { + .have_sysif_regs = 1, +}; + static const struct of_device_id fsl_usb2_mph_dr_of_match[] = { - { .compatible = "fsl-usb2-mph", }, - { .compatible = "fsl-usb2-dr", }, + { .compatible = "fsl-usb2-mph", .data = &fsl_usb2_mpc8xxx_pd, }, + { .compatible = "fsl-usb2-dr", .data = &fsl_usb2_mpc8xxx_pd, }, #ifdef CONFIG_PPC_MPC512x { .compatible = "fsl,mpc5121-usb2-dr", .data = &fsl_usb2_mpc5121_pd, }, #endif -- 1.7.1 ^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-01-31 18:14 UTC | newest] Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-01-31 18:10 [GIT PATCH] USB fixes for .38 Greg KH 2011-01-31 18:12 ` [PATCH 31/42] USB: ehci-fsl: Fix 'have_sysif_regs' detection Greg Kroah-Hartman
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.