diff for duplicates of <358d9bc4c1dc38c326256727e21daa1c@mail.gmail.com> diff --git a/a/1.txt b/N1/1.txt index 70d971d..c71767c 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -5,11 +5,11 @@ Sunil Matange -----Original Message----- -From: Munegowda, Keshava [mailto:keshava_mgowda@ti.com] +From: Munegowda, Keshava [mailto:keshava_mgowda at ti.com] Sent: Monday, June 18, 2012 1:59 PM To: Samuel Ortiz -Cc: Dill, Russ; linux-omap@vger.kernel.org; -linux-arm-kernel@lists.infradead.org; Balbi, Felipe; Partha Basak; Igor +Cc: Dill, Russ; linux-omap at vger.kernel.org; +linux-arm-kernel at lists.infradead.org; Balbi, Felipe; Partha Basak; Igor Grinberg; Setty, Sapna; Russ Dill; Mantesh Sarashetti; Sunil Matange; Nishant Kamat; Linux USB Devel Subject: Re: [PATCH v3] ARM: OMAP3: USB: Fix the EHCI ULPI PHY reset fix @@ -17,15 +17,15 @@ issues. On Fri, Jun 15, 2012 at 12:36 AM, Sarashetti, Mantesh <mantesh@ti.com> wrote: -> 'Acked-by: mantesh@ti.com' -> 'Tested-by: mantesh@ti.com' +> 'Acked-by: mantesh at ti.com' +> 'Tested-by: mantesh at ti.com' > > Regards, > Mantesh > -----Original Message----- -> From: Russ Dill [mailto:russ.dill@gmail.com] On Behalf Of Dill, Russ +> From: Russ Dill [mailto:russ.dill at gmail.com] On Behalf Of Dill, Russ > Sent: Thursday, June 14, 2012 11:24 AM -> To: linux-omap@vger.kernel.org; linux-arm-kernel@lists.infradead.org +> To: linux-omap at vger.kernel.org; linux-arm-kernel at lists.infradead.org > Cc: Balbi, Felipe; Munegowda, Keshava; Partha Basak; Igor Grinberg; Samuel Ortiz; Sarashetti, Mantesh; Setty, Sapna; Russ Dill > Subject: [PATCH v3] ARM: OMAP3: USB: Fix the EHCI ULPI PHY reset fix @@ -60,171 +60,171 @@ issues. > the 3430 sdp and OMAP5 guys before getting this merged. > > v3 - Brown paper bag its too early in the morning actually run -> git commit amend fix +> ? ? git commit amend fix > v2 - Put cansleep gpiolib call outside of spinlock > > Signed-off-by: Russ Dill <Russ.Dill@gmail.com> > --- -> drivers/mfd/omap-usb-host.c | 48 +> ?drivers/mfd/omap-usb-host.c ?| ? 48 +++++++++++++++++++++++++++++++++++++++++- -> drivers/usb/host/ehci-omap.c | 18 +++++++--------- -> 2 files changed, 55 insertions(+), 11 deletions(-) +> ?drivers/usb/host/ehci-omap.c | ? 18 +++++++--------- +> ?2 files changed, 55 insertions(+), 11 deletions(-) > > diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c > index 7e96bb2..41088ec 100644 > --- a/drivers/mfd/omap-usb-host.c > +++ b/drivers/mfd/omap-usb-host.c > @@ -25,6 +25,7 @@ -> #include <linux/clk.h> -> #include <linux/dma-mapping.h> -> #include <linux/spinlock.h> +> ?#include <linux/clk.h> +> ?#include <linux/dma-mapping.h> +> ?#include <linux/spinlock.h> > +#include <linux/gpio.h> -> #include <plat/cpu.h> -> #include <plat/usb.h> -> #include <linux/pm_runtime.h> +> ?#include <plat/cpu.h> +> ?#include <plat/usb.h> +> ?#include <linux/pm_runtime.h> > @@ -500,8 +501,21 @@ static void omap_usbhs_init(struct device *dev) -> dev_dbg(dev, "starting TI HSUSB Controller\n"); +> ? ? ? ?dev_dbg(dev, "starting TI HSUSB Controller\n"); > -> pm_runtime_get_sync(dev); -> - spin_lock_irqsave(&omap->lock, flags); +> ? ? ? ?pm_runtime_get_sync(dev); +> - ? ? ? spin_lock_irqsave(&omap->lock, flags); > -> + if (pdata->ehci_data->phy_reset) { -> + if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0])) +> + ? ? ? if (pdata->ehci_data->phy_reset) { +> + ? ? ? ? ? ? ? if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0])) > + gpio_request_one(pdata->ehci_data->reset_gpio_port[0], -> + GPIOF_OUT_INIT_LOW, "USB1 PHY +> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?GPIOF_OUT_INIT_LOW, "USB1 PHY reset"); > + -> + if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1])) +> + ? ? ? ? ? ? ? if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1])) > + gpio_request_one(pdata->ehci_data->reset_gpio_port[1], -> + GPIOF_OUT_INIT_LOW, "USB2 PHY +> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?GPIOF_OUT_INIT_LOW, "USB2 PHY reset"); > + -> + /* Hold the PHY in RESET for enough time till DIR is +> + ? ? ? ? ? ? ? /* Hold the PHY in RESET for enough time till DIR is high */ -> + udelay(10); -> + } +> + ? ? ? ? ? ? ? udelay(10); +> + ? ? ? } > + -> + spin_lock_irqsave(&omap->lock, flags); -> omap->usbhs_rev = usbhs_read(omap->uhh_base, OMAP_UHH_REVISION); -> dev_dbg(dev, "OMAP UHH_REVISION 0x%x\n", omap->usbhs_rev); +> + ? ? ? spin_lock_irqsave(&omap->lock, flags); +> ? ? ? ?omap->usbhs_rev = usbhs_read(omap->uhh_base, OMAP_UHH_REVISION); +> ? ? ? ?dev_dbg(dev, "OMAP UHH_REVISION 0x%x\n", omap->usbhs_rev); > > @@ -581,9 +595,39 @@ static void omap_usbhs_init(struct device *dev) -> } +> ? ? ? ?} > -> spin_unlock_irqrestore(&omap->lock, flags); +> ? ? ? ?spin_unlock_irqrestore(&omap->lock, flags); > + -> + if (pdata->ehci_data->phy_reset) { -> + /* Hold the PHY in RESET for enough time till -> + * PHY is settled and ready -> + */ -> + udelay(10); +> + ? ? ? if (pdata->ehci_data->phy_reset) { +> + ? ? ? ? ? ? ? /* Hold the PHY in RESET for enough time till +> + ? ? ? ? ? ? ? ?* PHY is settled and ready +> + ? ? ? ? ? ? ? ?*/ +> + ? ? ? ? ? ? ? udelay(10); > + -> + if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0])) -> + gpio_set_value_cansleep -> + (pdata->ehci_data->reset_gpio_port[0], +> + ? ? ? ? ? ? ? if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0])) +> + ? ? ? ? ? ? ? ? ? ? ? gpio_set_value_cansleep +> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (pdata->ehci_data->reset_gpio_port[0], 1); > + -> + if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1])) -> + gpio_set_value_cansleep -> + (pdata->ehci_data->reset_gpio_port[1], +> + ? ? ? ? ? ? ? if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1])) +> + ? ? ? ? ? ? ? ? ? ? ? gpio_set_value_cansleep +> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (pdata->ehci_data->reset_gpio_port[1], 1); -> + } +> + ? ? ? } > + -> pm_runtime_put_sync(dev); -> } +> ? ? ? ?pm_runtime_put_sync(dev); +> ?} > > +static void omap_usbhs_deinit(struct device *dev) > +{ -> + struct usbhs_hcd_omap *omap = dev_get_drvdata(dev); -> + struct usbhs_omap_platform_data *pdata = &omap->platdata; +> + ? ? ? struct usbhs_hcd_omap ? ? ? ? ? *omap = dev_get_drvdata(dev); +> + ? ? ? struct usbhs_omap_platform_data *pdata = &omap->platdata; > + -> + if (pdata->ehci_data->phy_reset) { -> + if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0])) -> + gpio_free(pdata->ehci_data->reset_gpio_port[0]); +> + ? ? ? if (pdata->ehci_data->phy_reset) { +> + ? ? ? ? ? ? ? if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0])) +> + ? ? ? ? ? ? ? ? ? ? ? gpio_free(pdata->ehci_data->reset_gpio_port[0]); > + -> + if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1])) -> + gpio_free(pdata->ehci_data->reset_gpio_port[1]); -> + } +> + ? ? ? ? ? ? ? if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1])) +> + ? ? ? ? ? ? ? ? ? ? ? gpio_free(pdata->ehci_data->reset_gpio_port[1]); +> + ? ? ? } > +} > + > -> /** -> * usbhs_omap_probe - initialize TI-based HCDs +> ?/** +> ?* usbhs_omap_probe - initialize TI-based HCDs > @@ -767,6 +811,7 @@ static int __devinit usbhs_omap_probe(struct platform_device *pdev) -> goto end_probe; +> ? ? ? ?goto end_probe; > -> err_alloc: -> + omap_usbhs_deinit(&pdev->dev); -> iounmap(omap->tll_base); +> ?err_alloc: +> + ? ? ? omap_usbhs_deinit(&pdev->dev); +> ? ? ? ?iounmap(omap->tll_base); > -> err_tll: +> ?err_tll: > @@ -818,6 +863,7 @@ static int __devexit usbhs_omap_remove(struct platform_device *pdev) -> { -> struct usbhs_hcd_omap *omap = platform_get_drvdata(pdev); +> ?{ +> ? ? ? ?struct usbhs_hcd_omap *omap = platform_get_drvdata(pdev); > -> + omap_usbhs_deinit(&pdev->dev); -> iounmap(omap->tll_base); -> iounmap(omap->uhh_base); -> clk_put(omap->init_60m_fclk); +> + ? ? ? omap_usbhs_deinit(&pdev->dev); +> ? ? ? ?iounmap(omap->tll_base); +> ? ? ? ?iounmap(omap->uhh_base); +> ? ? ? ?clk_put(omap->init_60m_fclk); > diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c > index a44294d..d0815b6 100644 > --- a/drivers/usb/host/ehci-omap.c > +++ b/drivers/usb/host/ehci-omap.c > @@ -192,14 +192,13 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev) -> } -> } -> -> + /* Hold PHYs in reset while initializing EHCI controller */ -> if (pdata->phy_reset) { -> if (gpio_is_valid(pdata->reset_gpio_port[0])) -> - gpio_request_one(pdata->reset_gpio_port[0], -> - GPIOF_OUT_INIT_LOW, "USB1 PHY +> ? ? ? ? ? ? ? ?} +> ? ? ? ?} +> +> + ? ? ? /* Hold PHYs in reset while initializing EHCI controller */ +> ? ? ? ?if (pdata->phy_reset) { +> ? ? ? ? ? ? ? ?if (gpio_is_valid(pdata->reset_gpio_port[0])) +> - ? ? ? ? ? ? ? ? ? ? ? gpio_request_one(pdata->reset_gpio_port[0], +> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?GPIOF_OUT_INIT_LOW, "USB1 PHY reset"); > + gpio_set_value_cansleep(pdata->reset_gpio_port[0], 0); > -> if (gpio_is_valid(pdata->reset_gpio_port[1])) -> - gpio_request_one(pdata->reset_gpio_port[1], -> - GPIOF_OUT_INIT_LOW, "USB2 PHY +> ? ? ? ? ? ? ? ?if (gpio_is_valid(pdata->reset_gpio_port[1])) +> - ? ? ? ? ? ? ? ? ? ? ? gpio_request_one(pdata->reset_gpio_port[1], +> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?GPIOF_OUT_INIT_LOW, "USB2 PHY reset"); > + gpio_set_value_cansleep(pdata->reset_gpio_port[1], 0); > -> /* Hold the PHY in RESET for enough time till DIR is high +> ? ? ? ? ? ? ? ?/* Hold the PHY in RESET for enough time till DIR is high */ -> udelay(10); +> ? ? ? ? ? ? ? ?udelay(10); > @@ -241,6 +240,11 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev) -> omap_ehci->hcs_params = readl(&omap_ehci->caps->hcs_params); +> ? ? ? ?omap_ehci->hcs_params = readl(&omap_ehci->caps->hcs_params); > -> ehci_reset(omap_ehci); -> + ret = usb_add_hcd(hcd, irq, IRQF_SHARED); -> + if (ret) { -> + dev_err(dev, "failed to add hcd with err %d\n", ret); -> + goto err_add_hcd; -> + } +> ? ? ? ?ehci_reset(omap_ehci); +> + ? ? ? ret = usb_add_hcd(hcd, irq, IRQF_SHARED); +> + ? ? ? if (ret) { +> + ? ? ? ? ? ? ? dev_err(dev, "failed to add hcd with err %d\n", ret); +> + ? ? ? ? ? ? ? goto err_add_hcd; +> + ? ? ? } > -> if (pdata->phy_reset) { -> /* Hold the PHY in RESET for enough time till +> ? ? ? ?if (pdata->phy_reset) { +> ? ? ? ? ? ? ? ?/* Hold the PHY in RESET for enough time till > @@ -255,12 +259,6 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev) > - gpio_set_value_cansleep(pdata->reset_gpio_port[1], 1); -> } +?gpio_set_value_cansleep(pdata->reset_gpio_port[1], 1); +> ? ? ? ?} > -> - ret = usb_add_hcd(hcd, irq, IRQF_SHARED); -> - if (ret) { -> - dev_err(dev, "failed to add hcd with err %d\n", ret); -> - goto err_add_hcd; -> - } +> - ? ? ? ret = usb_add_hcd(hcd, irq, IRQF_SHARED); +> - ? ? ? if (ret) { +> - ? ? ? ? ? ? ? dev_err(dev, "failed to add hcd with err %d\n", ret); +> - ? ? ? ? ? ? ? goto err_add_hcd; +> - ? ? ? } > - -> /* root ports should always stay powered */ -> ehci_port_power(omap_ehci, 1); +> ? ? ? ?/* root ports should always stay powered */ +> ? ? ? ?ehci_port_power(omap_ehci, 1); > > -- > 1.7.10.4 @@ -239,7 +239,3 @@ Tested-by: Keshava Munegowda <keshava_mgowda@ti.com> regards keshava --- -To unsubscribe from this list: send the line "unsubscribe linux-omap" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/a/content_digest b/N1/content_digest index 221c482..42c9cfa 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,22 +1,10 @@ "ref\01339691061-12778-1-git-send-email-Russ.Dill@ti.com\0" "ref\0393884FF03A1CE4A86A02FC97D0954E73E91B6EC@DBDE01.ent.ti.com\0" "ref\0CAP05o4Lna51bZHKSNLy9zK49dAf1k1UY_sSXRwPGYcgKtPmzkQ@mail.gmail.com\0" - "From\0Sunil Matange <smatange@ti.com>\0" - "Subject\0RE: [PATCH v3] ARM: OMAP3: USB: Fix the EHCI ULPI PHY reset fix issues.\0" + "From\0smatange@ti.com (Sunil Matange)\0" + "Subject\0[PATCH v3] ARM: OMAP3: USB: Fix the EHCI ULPI PHY reset fix issues.\0" "Date\0Mon, 18 Jun 2012 18:30:05 +0530\0" - "To\0Keshava Munegowda <keshava_mgowda@ti.com>" - " Samuel Ortiz <sameo@linux.intel.com>\0" - "Cc\0Russ Dill <russ.dill@ti.com>" - linux-omap@vger.kernel.org - linux-arm-kernel@lists.infradead.org - Felipe Balbi <balbi@ti.com> - Partha Basak <parthab@india.ti.com> - Igor Grinberg <grinberg@compulab.co.il> - Sapna Setty <s-sapna1@ti.com> - Russ Dill <Russ.Dill@gmail.com> - Mantesh Sarashetti <mantesh@ti.com> - Nishant Kamat <nskamat@ti.com> - " Linux USB Devel <linux-usb@vger.kernel.org>\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "Thanks Keshava.\n" @@ -26,11 +14,11 @@ "\n" "\n" "-----Original Message-----\n" - "From: Munegowda, Keshava [mailto:keshava_mgowda@ti.com]\n" + "From: Munegowda, Keshava [mailto:keshava_mgowda at ti.com]\n" "Sent: Monday, June 18, 2012 1:59 PM\n" "To: Samuel Ortiz\n" - "Cc: Dill, Russ; linux-omap@vger.kernel.org;\n" - "linux-arm-kernel@lists.infradead.org; Balbi, Felipe; Partha Basak; Igor\n" + "Cc: Dill, Russ; linux-omap at vger.kernel.org;\n" + "linux-arm-kernel at lists.infradead.org; Balbi, Felipe; Partha Basak; Igor\n" "Grinberg; Setty, Sapna; Russ Dill; Mantesh Sarashetti; Sunil Matange;\n" "Nishant Kamat; Linux USB Devel\n" "Subject: Re: [PATCH v3] ARM: OMAP3: USB: Fix the EHCI ULPI PHY reset fix\n" @@ -38,15 +26,15 @@ "\n" "On Fri, Jun 15, 2012 at 12:36 AM, Sarashetti, Mantesh <mantesh@ti.com>\n" "wrote:\n" - "> 'Acked-by: mantesh@ti.com'\n" - "> 'Tested-by: mantesh@ti.com'\n" + "> 'Acked-by: mantesh at ti.com'\n" + "> 'Tested-by: mantesh at ti.com'\n" ">\n" "> Regards,\n" "> Mantesh\n" "> -----Original Message-----\n" - "> From: Russ Dill [mailto:russ.dill@gmail.com] On Behalf Of Dill, Russ\n" + "> From: Russ Dill [mailto:russ.dill at gmail.com] On Behalf Of Dill, Russ\n" "> Sent: Thursday, June 14, 2012 11:24 AM\n" - "> To: linux-omap@vger.kernel.org; linux-arm-kernel@lists.infradead.org\n" + "> To: linux-omap at vger.kernel.org; linux-arm-kernel at lists.infradead.org\n" "> Cc: Balbi, Felipe; Munegowda, Keshava; Partha Basak; Igor Grinberg;\n" "Samuel Ortiz; Sarashetti, Mantesh; Setty, Sapna; Russ Dill\n" "> Subject: [PATCH v3] ARM: OMAP3: USB: Fix the EHCI ULPI PHY reset fix\n" @@ -81,171 +69,171 @@ "> the 3430 sdp and OMAP5 guys before getting this merged.\n" ">\n" "> v3 - Brown paper bag its too early in the morning actually run\n" - "> \302\240 \302\240 git commit amend fix\n" + "> ? ? git commit amend fix\n" "> v2 - Put cansleep gpiolib call outside of spinlock\n" ">\n" "> Signed-off-by: Russ Dill <Russ.Dill@gmail.com>\n" "> ---\n" - "> \302\240drivers/mfd/omap-usb-host.c \302\240| \302\240 48\n" + "> ?drivers/mfd/omap-usb-host.c ?| ? 48\n" "+++++++++++++++++++++++++++++++++++++++++-\n" - "> \302\240drivers/usb/host/ehci-omap.c | \302\240 18 +++++++---------\n" - "> \302\2402 files changed, 55 insertions(+), 11 deletions(-)\n" + "> ?drivers/usb/host/ehci-omap.c | ? 18 +++++++---------\n" + "> ?2 files changed, 55 insertions(+), 11 deletions(-)\n" ">\n" "> diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c\n" "> index 7e96bb2..41088ec 100644\n" "> --- a/drivers/mfd/omap-usb-host.c\n" "> +++ b/drivers/mfd/omap-usb-host.c\n" "> @@ -25,6 +25,7 @@\n" - "> \302\240#include <linux/clk.h>\n" - "> \302\240#include <linux/dma-mapping.h>\n" - "> \302\240#include <linux/spinlock.h>\n" + "> ?#include <linux/clk.h>\n" + "> ?#include <linux/dma-mapping.h>\n" + "> ?#include <linux/spinlock.h>\n" "> +#include <linux/gpio.h>\n" - "> \302\240#include <plat/cpu.h>\n" - "> \302\240#include <plat/usb.h>\n" - "> \302\240#include <linux/pm_runtime.h>\n" + "> ?#include <plat/cpu.h>\n" + "> ?#include <plat/usb.h>\n" + "> ?#include <linux/pm_runtime.h>\n" "> @@ -500,8 +501,21 @@ static void omap_usbhs_init(struct device *dev)\n" - "> \302\240 \302\240 \302\240 \302\240dev_dbg(dev, \"starting TI HSUSB Controller\\n\");\n" + "> ? ? ? ?dev_dbg(dev, \"starting TI HSUSB Controller\\n\");\n" ">\n" - "> \302\240 \302\240 \302\240 \302\240pm_runtime_get_sync(dev);\n" - "> - \302\240 \302\240 \302\240 spin_lock_irqsave(&omap->lock, flags);\n" + "> ? ? ? ?pm_runtime_get_sync(dev);\n" + "> - ? ? ? spin_lock_irqsave(&omap->lock, flags);\n" ">\n" - "> + \302\240 \302\240 \302\240 if (pdata->ehci_data->phy_reset) {\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0]))\n" + "> + ? ? ? if (pdata->ehci_data->phy_reset) {\n" + "> + ? ? ? ? ? ? ? if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0]))\n" "> +\n" "gpio_request_one(pdata->ehci_data->reset_gpio_port[0],\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240GPIOF_OUT_INIT_LOW, \"USB1 PHY\n" + "> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?GPIOF_OUT_INIT_LOW, \"USB1 PHY\n" "reset\");\n" "> +\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1]))\n" + "> + ? ? ? ? ? ? ? if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1]))\n" "> +\n" "gpio_request_one(pdata->ehci_data->reset_gpio_port[1],\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240GPIOF_OUT_INIT_LOW, \"USB2 PHY\n" + "> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?GPIOF_OUT_INIT_LOW, \"USB2 PHY\n" "reset\");\n" "> +\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 /* Hold the PHY in RESET for enough time till DIR is\n" + "> + ? ? ? ? ? ? ? /* Hold the PHY in RESET for enough time till DIR is\n" "high */\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 udelay(10);\n" - "> + \302\240 \302\240 \302\240 }\n" + "> + ? ? ? ? ? ? ? udelay(10);\n" + "> + ? ? ? }\n" "> +\n" - "> + \302\240 \302\240 \302\240 spin_lock_irqsave(&omap->lock, flags);\n" - "> \302\240 \302\240 \302\240 \302\240omap->usbhs_rev = usbhs_read(omap->uhh_base, OMAP_UHH_REVISION);\n" - "> \302\240 \302\240 \302\240 \302\240dev_dbg(dev, \"OMAP UHH_REVISION 0x%x\\n\", omap->usbhs_rev);\n" + "> + ? ? ? spin_lock_irqsave(&omap->lock, flags);\n" + "> ? ? ? ?omap->usbhs_rev = usbhs_read(omap->uhh_base, OMAP_UHH_REVISION);\n" + "> ? ? ? ?dev_dbg(dev, \"OMAP UHH_REVISION 0x%x\\n\", omap->usbhs_rev);\n" ">\n" "> @@ -581,9 +595,39 @@ static void omap_usbhs_init(struct device *dev)\n" - "> \302\240 \302\240 \302\240 \302\240}\n" + "> ? ? ? ?}\n" ">\n" - "> \302\240 \302\240 \302\240 \302\240spin_unlock_irqrestore(&omap->lock, flags);\n" + "> ? ? ? ?spin_unlock_irqrestore(&omap->lock, flags);\n" "> +\n" - "> + \302\240 \302\240 \302\240 if (pdata->ehci_data->phy_reset) {\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 /* Hold the PHY in RESET for enough time till\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240* PHY is settled and ready\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240*/\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 udelay(10);\n" + "> + ? ? ? if (pdata->ehci_data->phy_reset) {\n" + "> + ? ? ? ? ? ? ? /* Hold the PHY in RESET for enough time till\n" + "> + ? ? ? ? ? ? ? ?* PHY is settled and ready\n" + "> + ? ? ? ? ? ? ? ?*/\n" + "> + ? ? ? ? ? ? ? udelay(10);\n" "> +\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0]))\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 gpio_set_value_cansleep\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 (pdata->ehci_data->reset_gpio_port[0],\n" + "> + ? ? ? ? ? ? ? if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0]))\n" + "> + ? ? ? ? ? ? ? ? ? ? ? gpio_set_value_cansleep\n" + "> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (pdata->ehci_data->reset_gpio_port[0],\n" "1);\n" "> +\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1]))\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 gpio_set_value_cansleep\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 (pdata->ehci_data->reset_gpio_port[1],\n" + "> + ? ? ? ? ? ? ? if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1]))\n" + "> + ? ? ? ? ? ? ? ? ? ? ? gpio_set_value_cansleep\n" + "> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (pdata->ehci_data->reset_gpio_port[1],\n" "1);\n" - "> + \302\240 \302\240 \302\240 }\n" + "> + ? ? ? }\n" "> +\n" - "> \302\240 \302\240 \302\240 \302\240pm_runtime_put_sync(dev);\n" - "> \302\240}\n" + "> ? ? ? ?pm_runtime_put_sync(dev);\n" + "> ?}\n" ">\n" "> +static void omap_usbhs_deinit(struct device *dev)\n" "> +{\n" - "> + \302\240 \302\240 \302\240 struct usbhs_hcd_omap \302\240 \302\240 \302\240 \302\240 \302\240 *omap = dev_get_drvdata(dev);\n" - "> + \302\240 \302\240 \302\240 struct usbhs_omap_platform_data *pdata = &omap->platdata;\n" + "> + ? ? ? struct usbhs_hcd_omap ? ? ? ? ? *omap = dev_get_drvdata(dev);\n" + "> + ? ? ? struct usbhs_omap_platform_data *pdata = &omap->platdata;\n" "> +\n" - "> + \302\240 \302\240 \302\240 if (pdata->ehci_data->phy_reset) {\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0]))\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 gpio_free(pdata->ehci_data->reset_gpio_port[0]);\n" + "> + ? ? ? if (pdata->ehci_data->phy_reset) {\n" + "> + ? ? ? ? ? ? ? if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[0]))\n" + "> + ? ? ? ? ? ? ? ? ? ? ? gpio_free(pdata->ehci_data->reset_gpio_port[0]);\n" "> +\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1]))\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 gpio_free(pdata->ehci_data->reset_gpio_port[1]);\n" - "> + \302\240 \302\240 \302\240 }\n" + "> + ? ? ? ? ? ? ? if (gpio_is_valid(pdata->ehci_data->reset_gpio_port[1]))\n" + "> + ? ? ? ? ? ? ? ? ? ? ? gpio_free(pdata->ehci_data->reset_gpio_port[1]);\n" + "> + ? ? ? }\n" "> +}\n" "> +\n" ">\n" - "> \302\240/**\n" - "> \302\240* usbhs_omap_probe - initialize TI-based HCDs\n" + "> ?/**\n" + "> ?* usbhs_omap_probe - initialize TI-based HCDs\n" "> @@ -767,6 +811,7 @@ static int __devinit usbhs_omap_probe(struct\n" "platform_device *pdev)\n" - "> \302\240 \302\240 \302\240 \302\240goto end_probe;\n" + "> ? ? ? ?goto end_probe;\n" ">\n" - "> \302\240err_alloc:\n" - "> + \302\240 \302\240 \302\240 omap_usbhs_deinit(&pdev->dev);\n" - "> \302\240 \302\240 \302\240 \302\240iounmap(omap->tll_base);\n" + "> ?err_alloc:\n" + "> + ? ? ? omap_usbhs_deinit(&pdev->dev);\n" + "> ? ? ? ?iounmap(omap->tll_base);\n" ">\n" - "> \302\240err_tll:\n" + "> ?err_tll:\n" "> @@ -818,6 +863,7 @@ static int __devexit usbhs_omap_remove(struct\n" "platform_device *pdev)\n" - "> \302\240{\n" - "> \302\240 \302\240 \302\240 \302\240struct usbhs_hcd_omap *omap = platform_get_drvdata(pdev);\n" + "> ?{\n" + "> ? ? ? ?struct usbhs_hcd_omap *omap = platform_get_drvdata(pdev);\n" ">\n" - "> + \302\240 \302\240 \302\240 omap_usbhs_deinit(&pdev->dev);\n" - "> \302\240 \302\240 \302\240 \302\240iounmap(omap->tll_base);\n" - "> \302\240 \302\240 \302\240 \302\240iounmap(omap->uhh_base);\n" - "> \302\240 \302\240 \302\240 \302\240clk_put(omap->init_60m_fclk);\n" + "> + ? ? ? omap_usbhs_deinit(&pdev->dev);\n" + "> ? ? ? ?iounmap(omap->tll_base);\n" + "> ? ? ? ?iounmap(omap->uhh_base);\n" + "> ? ? ? ?clk_put(omap->init_60m_fclk);\n" "> diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c\n" "> index a44294d..d0815b6 100644\n" "> --- a/drivers/usb/host/ehci-omap.c\n" "> +++ b/drivers/usb/host/ehci-omap.c\n" "> @@ -192,14 +192,13 @@ static int ehci_hcd_omap_probe(struct\n" "platform_device *pdev)\n" - "> \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240}\n" - "> \302\240 \302\240 \302\240 \302\240}\n" - ">\n" - "> + \302\240 \302\240 \302\240 /* Hold PHYs in reset while initializing EHCI controller */\n" - "> \302\240 \302\240 \302\240 \302\240if (pdata->phy_reset) {\n" - "> \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240if (gpio_is_valid(pdata->reset_gpio_port[0]))\n" - "> - \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 gpio_request_one(pdata->reset_gpio_port[0],\n" - "> - \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240GPIOF_OUT_INIT_LOW, \"USB1 PHY\n" + "> ? ? ? ? ? ? ? ?}\n" + "> ? ? ? ?}\n" + ">\n" + "> + ? ? ? /* Hold PHYs in reset while initializing EHCI controller */\n" + "> ? ? ? ?if (pdata->phy_reset) {\n" + "> ? ? ? ? ? ? ? ?if (gpio_is_valid(pdata->reset_gpio_port[0]))\n" + "> - ? ? ? ? ? ? ? ? ? ? ? gpio_request_one(pdata->reset_gpio_port[0],\n" + "> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?GPIOF_OUT_INIT_LOW, \"USB1 PHY\n" "reset\");\n" "> +\n" "gpio_set_value_cansleep(pdata->reset_gpio_port[0], 0);\n" ">\n" - "> \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240if (gpio_is_valid(pdata->reset_gpio_port[1]))\n" - "> - \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 gpio_request_one(pdata->reset_gpio_port[1],\n" - "> - \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240GPIOF_OUT_INIT_LOW, \"USB2 PHY\n" + "> ? ? ? ? ? ? ? ?if (gpio_is_valid(pdata->reset_gpio_port[1]))\n" + "> - ? ? ? ? ? ? ? ? ? ? ? gpio_request_one(pdata->reset_gpio_port[1],\n" + "> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?GPIOF_OUT_INIT_LOW, \"USB2 PHY\n" "reset\");\n" "> +\n" "gpio_set_value_cansleep(pdata->reset_gpio_port[1], 0);\n" ">\n" - "> \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240/* Hold the PHY in RESET for enough time till DIR is high\n" + "> ? ? ? ? ? ? ? ?/* Hold the PHY in RESET for enough time till DIR is high\n" "*/\n" - "> \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240udelay(10);\n" + "> ? ? ? ? ? ? ? ?udelay(10);\n" "> @@ -241,6 +240,11 @@ static int ehci_hcd_omap_probe(struct\n" "platform_device *pdev)\n" - "> \302\240 \302\240 \302\240 \302\240omap_ehci->hcs_params = readl(&omap_ehci->caps->hcs_params);\n" + "> ? ? ? ?omap_ehci->hcs_params = readl(&omap_ehci->caps->hcs_params);\n" ">\n" - "> \302\240 \302\240 \302\240 \302\240ehci_reset(omap_ehci);\n" - "> + \302\240 \302\240 \302\240 ret = usb_add_hcd(hcd, irq, IRQF_SHARED);\n" - "> + \302\240 \302\240 \302\240 if (ret) {\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 dev_err(dev, \"failed to add hcd with err %d\\n\", ret);\n" - "> + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 goto err_add_hcd;\n" - "> + \302\240 \302\240 \302\240 }\n" + "> ? ? ? ?ehci_reset(omap_ehci);\n" + "> + ? ? ? ret = usb_add_hcd(hcd, irq, IRQF_SHARED);\n" + "> + ? ? ? if (ret) {\n" + "> + ? ? ? ? ? ? ? dev_err(dev, \"failed to add hcd with err %d\\n\", ret);\n" + "> + ? ? ? ? ? ? ? goto err_add_hcd;\n" + "> + ? ? ? }\n" ">\n" - "> \302\240 \302\240 \302\240 \302\240if (pdata->phy_reset) {\n" - "> \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240/* Hold the PHY in RESET for enough time till\n" + "> ? ? ? ?if (pdata->phy_reset) {\n" + "> ? ? ? ? ? ? ? ?/* Hold the PHY in RESET for enough time till\n" "> @@ -255,12 +259,6 @@ static int ehci_hcd_omap_probe(struct\n" "platform_device *pdev)\n" ">\n" - "\302\240gpio_set_value_cansleep(pdata->reset_gpio_port[1], 1);\n" - "> \302\240 \302\240 \302\240 \302\240}\n" + "?gpio_set_value_cansleep(pdata->reset_gpio_port[1], 1);\n" + "> ? ? ? ?}\n" ">\n" - "> - \302\240 \302\240 \302\240 ret = usb_add_hcd(hcd, irq, IRQF_SHARED);\n" - "> - \302\240 \302\240 \302\240 if (ret) {\n" - "> - \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 dev_err(dev, \"failed to add hcd with err %d\\n\", ret);\n" - "> - \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 goto err_add_hcd;\n" - "> - \302\240 \302\240 \302\240 }\n" + "> - ? ? ? ret = usb_add_hcd(hcd, irq, IRQF_SHARED);\n" + "> - ? ? ? if (ret) {\n" + "> - ? ? ? ? ? ? ? dev_err(dev, \"failed to add hcd with err %d\\n\", ret);\n" + "> - ? ? ? ? ? ? ? goto err_add_hcd;\n" + "> - ? ? ? }\n" "> -\n" - "> \302\240 \302\240 \302\240 \302\240/* root ports should always stay powered */\n" - "> \302\240 \302\240 \302\240 \302\240ehci_port_power(omap_ehci, 1);\n" + "> ? ? ? ?/* root ports should always stay powered */\n" + "> ? ? ? ?ehci_port_power(omap_ehci, 1);\n" ">\n" "> --\n" "> 1.7.10.4\n" @@ -259,10 +247,6 @@ "Tested-by: Keshava Munegowda <keshava_mgowda@ti.com>\n" "\n" "regards\n" - "keshava\n" - "--\n" - "To unsubscribe from this list: send the line \"unsubscribe linux-omap\" in\n" - "the body of a message to majordomo@vger.kernel.org\n" - More majordomo info at http://vger.kernel.org/majordomo-info.html + keshava -c9234a3a717336cdf95404a564704913ab5b767ff37d341206a8aa643f88d1f8 +a2cc81fd55f3c4cd2fa5cf90f4e990d1c1361cbd4187e96b56170d598a9c444f
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.