From: Alan Stern <stern@rowland.harvard.edu> To: Anoop P <anoop.pa@gmail.com> Cc: Ralf Baechle <ralf@linux-mips.org>, <gregkh@suse.de>, <dbrownell@users.sourceforge.net>, <sarah.a.sharp@linux.intel.com>, <andiry.xu@amd.com>, <agust@denx.de>, <ddaney@caviumnetworks.com>, <gadiyar@ti.com>, <linux-mips@linux-mips.org>, <linux-kernel@vger.kernel.org>, <linux-usb@vger.kernel.org> Subject: Re: [PATCH] EHCI support for on-chip PMC MSP USB controller. Date: Tue, 21 Dec 2010 11:00:02 -0500 (EST) [thread overview] Message-ID: <Pine.LNX.4.44L0.1012211050470.31667-100000@netrider.rowland.org> (raw) In-Reply-To: <1292929580-5829-1-git-send-email-anoop.pa@gmail.com> On Tue, 21 Dec 2010, Anoop P wrote: > From: Anoop P A <anoop.pa@gmail.com> > > This patch includes. > > 1. USB host driver for MSP71xx family SoC on-chip USB controller. > 2. Platform support for USB controller. It also contains changes to the core USB hub driver code. You should mention things like that in the patch description. ... > diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c > index 27115b4..f2a45ba 100644 > --- a/drivers/usb/core/hub.c > +++ b/drivers/usb/core/hub.c > @@ -3377,12 +3377,43 @@ static void hub_events(void) > } > > if (portchange & USB_PORT_STAT_C_OVERCURRENT) { > +#ifdef CONFIG_USB_EHCI_HCD_PMC_MSP > +#define OVER_CURR_DELAY 100 What happens if CONFIG_USB_EHCI_HCD_PMC_MSP is defined, but an overcurrent status is detected on an external hub instead of the root hub? > + /* clear OCC bit */ > + clear_port_feature(hdev, i, > + USB_PORT_FEAT_C_OVER_CURRENT); > + > + /* This step is required to toggle the PP bit > + * to 0 and 1 (by hub_power_on) in order the > + * CSC bit to be transitioned > + * properly for device hotplug > + */ > + /* clear PP bit */ > + clear_port_feature(hdev, i, > + USB_PORT_FEAT_POWER); > + > + /* resume power */ > + hub_power_on(hub, true); > + > + /* delay 100 usec */ > + udelay(OVER_CURR_DELAY); > + > + /* read OCA bit */ > + if (portstatus & > + (1<<USB_PORT_FEAT_OVER_CURRENT)) { > + /* declare overcurrent */ > + dev_err(hub_dev, > + "over-current change on port %d\n", > + i); > + } > +#else > dev_err (hub_dev, > "over-current change on port %d\n", > i); > clear_port_feature(hdev, i, > USB_PORT_FEAT_C_OVER_CURRENT); > hub_power_on(hub, true); > +#endif > } "#ifdef" inside code like this is strongly discouraged. This should be written using a separate subroutine. ... > diff --git a/drivers/usb/host/ehci-pmcmsp.c b/drivers/usb/host/ehci-pmcmsp.c > new file mode 100644 > index 0000000..b1b4f21 > --- /dev/null > +++ b/drivers/usb/host/ehci-pmcmsp.c > +static const struct hc_driver ehci_msp_hc_driver = { > + .description = hcd_name, > + .product_desc = "PMC MSP EHCI", > + .hcd_priv_size = sizeof(struct ehci_hcd), > + > + /* > + * generic hardware linkage > + */ > +#ifdef CONFIG_MSP_HAS_DUAL_USB > + .irq = ehci_msp_irq, > +#else > + .irq = ehci_irq, > +#endif > + .flags = HCD_MEMORY | HCD_USB2, > + > + /* > + * basic lifecycle operations > + */ > + .reset = ehci_msp_setup, > + .start = ehci_run, > +#ifdef CONFIG_PM > + .suspend = ehci_msp_suspend, > + .resume = ehci_msp_resume, > +#endif /*CONFIG_PM*/ > + .stop = ehci_stop, > + > + /* > + * managing i/o requests and associated device resources > + */ > + .urb_enqueue = ehci_urb_enqueue, > + .urb_dequeue = ehci_urb_dequeue, > + .endpoint_disable = ehci_endpoint_disable, > + > + /* > + * scheduling support > + */ > + .get_frame_number = ehci_get_frame, > + > + /* > + * root hub support > + */ > + .hub_status_data = ehci_hub_status_data, > + .hub_control = ehci_hub_control, > +}; This appears to have been copied from a really old version of ehci-pci.c. You should start with the most up-to-date code. Alan Stern
WARNING: multiple messages have this Message-ID (diff)
From: Alan Stern <stern@rowland.harvard.edu> To: Anoop P <anoop.pa@gmail.com> Cc: Ralf Baechle <ralf@linux-mips.org>, gregkh@suse.de, dbrownell@users.sourceforge.net, sarah.a.sharp@linux.intel.com, andiry.xu@amd.com, agust@denx.de, ddaney@caviumnetworks.com, gadiyar@ti.com, linux-mips@linux-mips.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Subject: Re: [PATCH] EHCI support for on-chip PMC MSP USB controller. Date: Tue, 21 Dec 2010 11:00:02 -0500 (EST) [thread overview] Message-ID: <Pine.LNX.4.44L0.1012211050470.31667-100000@netrider.rowland.org> (raw) Message-ID: <20101221160002.5f7PDhvvB2vRUvDfwFXLwe9Xf6WBtZUpjo_RYqKjTP4@z> (raw) In-Reply-To: <1292929580-5829-1-git-send-email-anoop.pa@gmail.com> On Tue, 21 Dec 2010, Anoop P wrote: > From: Anoop P A <anoop.pa@gmail.com> > > This patch includes. > > 1. USB host driver for MSP71xx family SoC on-chip USB controller. > 2. Platform support for USB controller. It also contains changes to the core USB hub driver code. You should mention things like that in the patch description. ... > diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c > index 27115b4..f2a45ba 100644 > --- a/drivers/usb/core/hub.c > +++ b/drivers/usb/core/hub.c > @@ -3377,12 +3377,43 @@ static void hub_events(void) > } > > if (portchange & USB_PORT_STAT_C_OVERCURRENT) { > +#ifdef CONFIG_USB_EHCI_HCD_PMC_MSP > +#define OVER_CURR_DELAY 100 What happens if CONFIG_USB_EHCI_HCD_PMC_MSP is defined, but an overcurrent status is detected on an external hub instead of the root hub? > + /* clear OCC bit */ > + clear_port_feature(hdev, i, > + USB_PORT_FEAT_C_OVER_CURRENT); > + > + /* This step is required to toggle the PP bit > + * to 0 and 1 (by hub_power_on) in order the > + * CSC bit to be transitioned > + * properly for device hotplug > + */ > + /* clear PP bit */ > + clear_port_feature(hdev, i, > + USB_PORT_FEAT_POWER); > + > + /* resume power */ > + hub_power_on(hub, true); > + > + /* delay 100 usec */ > + udelay(OVER_CURR_DELAY); > + > + /* read OCA bit */ > + if (portstatus & > + (1<<USB_PORT_FEAT_OVER_CURRENT)) { > + /* declare overcurrent */ > + dev_err(hub_dev, > + "over-current change on port %d\n", > + i); > + } > +#else > dev_err (hub_dev, > "over-current change on port %d\n", > i); > clear_port_feature(hdev, i, > USB_PORT_FEAT_C_OVER_CURRENT); > hub_power_on(hub, true); > +#endif > } "#ifdef" inside code like this is strongly discouraged. This should be written using a separate subroutine. ... > diff --git a/drivers/usb/host/ehci-pmcmsp.c b/drivers/usb/host/ehci-pmcmsp.c > new file mode 100644 > index 0000000..b1b4f21 > --- /dev/null > +++ b/drivers/usb/host/ehci-pmcmsp.c > +static const struct hc_driver ehci_msp_hc_driver = { > + .description = hcd_name, > + .product_desc = "PMC MSP EHCI", > + .hcd_priv_size = sizeof(struct ehci_hcd), > + > + /* > + * generic hardware linkage > + */ > +#ifdef CONFIG_MSP_HAS_DUAL_USB > + .irq = ehci_msp_irq, > +#else > + .irq = ehci_irq, > +#endif > + .flags = HCD_MEMORY | HCD_USB2, > + > + /* > + * basic lifecycle operations > + */ > + .reset = ehci_msp_setup, > + .start = ehci_run, > +#ifdef CONFIG_PM > + .suspend = ehci_msp_suspend, > + .resume = ehci_msp_resume, > +#endif /*CONFIG_PM*/ > + .stop = ehci_stop, > + > + /* > + * managing i/o requests and associated device resources > + */ > + .urb_enqueue = ehci_urb_enqueue, > + .urb_dequeue = ehci_urb_dequeue, > + .endpoint_disable = ehci_endpoint_disable, > + > + /* > + * scheduling support > + */ > + .get_frame_number = ehci_get_frame, > + > + /* > + * root hub support > + */ > + .hub_status_data = ehci_hub_status_data, > + .hub_control = ehci_hub_control, > +}; This appears to have been copied from a really old version of ehci-pci.c. You should start with the most up-to-date code. Alan Stern
next prev parent reply other threads:[~2010-12-21 16:00 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-12-21 11:06 [PATCH] EHCI support for on-chip PMC MSP USB controller Anoop P 2010-12-21 16:00 ` Alan Stern [this message] 2010-12-21 16:00 ` Alan Stern 2010-12-21 17:59 ` Greg KH 2010-12-22 14:34 ` [PATCH V2 0/2] " Anoop P.A 2010-12-22 14:36 ` [PATCH V2 1/2] " Anoop P.A 2010-12-22 14:58 ` Anoop P A 2010-12-24 9:44 ` Shane McDonald 2011-01-27 11:28 ` [PATCH v3] EHCI bus glue " Anoop P.A 2011-02-04 19:56 ` Greg KH 2011-02-09 14:12 ` Anoop P A 2011-02-09 17:20 ` Greg KH 2011-02-09 15:10 ` Matthieu CASTET 2011-02-09 15:44 ` Anoop P A 2011-02-15 10:43 ` [PATCH v4] " Anoop P.A 2011-02-15 17:44 ` Matthieu CASTET 2011-02-22 15:35 ` [PATCH v5] " Anoop P.A 2011-02-22 15:35 ` Anoop P.A 2011-02-22 20:04 ` Dan Carpenter 2011-02-22 20:04 ` Dan Carpenter 2011-02-23 13:22 ` Anoop P A 2011-02-23 13:22 ` Anoop P A 2011-02-23 17:02 ` Dan Carpenter 2011-02-23 17:02 ` Dan Carpenter 2011-02-24 10:19 ` Anoop P A 2011-02-24 10:19 ` Anoop P A 2011-02-24 11:28 ` Dan Carpenter 2011-02-24 11:28 ` Dan Carpenter 2011-02-24 13:56 ` [PATCH] " Anoop P.A 2011-02-24 13:56 ` Anoop P.A 2010-12-22 14:36 ` [PATCH V2 2/2] MSP onchip root hub over current quirk Anoop P.A 2010-12-23 2:18 ` Alan Stern 2010-12-23 2:18 ` Alan Stern 2010-12-23 9:29 ` Anoop P A 2010-12-23 16:08 ` Alan Stern 2010-12-23 16:08 ` Alan Stern
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=Pine.LNX.4.44L0.1012211050470.31667-100000@netrider.rowland.org \ --to=stern@rowland.harvard.edu \ --cc=agust@denx.de \ --cc=andiry.xu@amd.com \ --cc=anoop.pa@gmail.com \ --cc=dbrownell@users.sourceforge.net \ --cc=ddaney@caviumnetworks.com \ --cc=gadiyar@ti.com \ --cc=gregkh@suse.de \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mips@linux-mips.org \ --cc=linux-usb@vger.kernel.org \ --cc=ralf@linux-mips.org \ --cc=sarah.a.sharp@linux.intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.