* [PATCH v4 0/2] ?hci-platform: Add support for controllers with more then one reset line
@ 2016-02-27 16:58 Hans de Goede
[not found] ` <1456592339-31767-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 11+ messages in thread
From: Hans de Goede @ 2016-02-27 16:58 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Roger Quadros, Alan Stern, Tony Prisk, Florian Fainelli,
Maxime Ripard, Arnd Bergmann, linux-usb,
linux-sunxi-/JYPxA39Uh5TLH3MbocFFw,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree
Hi All,
Here is a new version of my patch-set to support usb controllers which
have multiple resets. These patches apply on top of the related
reset-controller patches which have just been merged here:
git://git.pengutronix.de/git/pza/linux.git reset/next
Changes in v2:
-Switch to now shared reset_[de]assert functions
Changes in v3:
-Adjust for changes to shared-reset reset-controller functions
Changes in v4:
-Fix Ugly continuation line
-Add Acked-by: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>
Regards,
Hans
^ permalink raw reply [flat|nested] 11+ messages in thread[parent not found: <1456592339-31767-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* [PATCH v4 1/2] ehci-platform: Add support for controllers with multiple reset lines [not found] ` <1456592339-31767-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2016-02-27 16:58 ` Hans de Goede [not found] ` <1456592339-31767-2-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2016-02-27 16:58 ` [PATCH v4 2/2] ohci-platform: " Hans de Goede 1 sibling, 1 reply; 11+ messages in thread From: Hans de Goede @ 2016-02-27 16:58 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Roger Quadros, Alan Stern, Tony Prisk, Florian Fainelli, Maxime Ripard, Arnd Bergmann, linux-usb, linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree, Reinder de Haan, Hans de Goede From: Reinder de Haan <patchesrdh-I1/eAgTnXDYAvxtiuMwx3w@public.gmane.org> At least the EHCI/OHCI found on the Allwinnner H3 SoC needs multiple reset lines, the controller will not initialize while the reset for its companion is still asserted, which means we need to de-assert 2 resets for the controller to work. Signed-off-by: Reinder de Haan <patchesrdh-I1/eAgTnXDYAvxtiuMwx3w@public.gmane.org> Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> Acked-by: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org> --- Changes in v2: -Use the new reset_control_[de]assert_shared reset-controller functions Changes in v3: -Adjust for changes to shared-reset reset-controller functions Changes in v4: -Fix Ugly continuation line --- Documentation/devicetree/bindings/usb/usb-ehci.txt | 2 +- drivers/usb/host/ehci-platform.c | 41 ++++++++++++---------- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/usb-ehci.txt b/Documentation/devicetree/bindings/usb/usb-ehci.txt index a12d601..0701812 100644 --- a/Documentation/devicetree/bindings/usb/usb-ehci.txt +++ b/Documentation/devicetree/bindings/usb/usb-ehci.txt @@ -18,7 +18,7 @@ Optional properties: - clocks : a list of phandle + clock specifier pairs - phys : phandle + phy specifier pair - phy-names : "usb" - - resets : phandle + reset specifier pair + - resets : a list of phandle + reset specifier pairs Example (Sequoia 440EPx): ehci@e0000300 { diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c index bd7082f2..5ca749c 100644 --- a/drivers/usb/host/ehci-platform.c +++ b/drivers/usb/host/ehci-platform.c @@ -39,11 +39,12 @@ #define DRIVER_DESC "EHCI generic platform driver" #define EHCI_MAX_CLKS 3 +#define EHCI_MAX_RESETS 2 #define hcd_to_ehci_priv(h) ((struct ehci_platform_priv *)hcd_to_ehci(h)->priv) struct ehci_platform_priv { struct clk *clks[EHCI_MAX_CLKS]; - struct reset_control *rst; + struct reset_control *resets[EHCI_MAX_RESETS]; struct phy **phys; int num_phys; bool reset_on_resume; @@ -149,7 +150,7 @@ static int ehci_platform_probe(struct platform_device *dev) struct usb_ehci_pdata *pdata = dev_get_platdata(&dev->dev); struct ehci_platform_priv *priv; struct ehci_hcd *ehci; - int err, irq, phy_num, clk = 0; + int err, irq, phy_num, clk = 0, rst = 0; if (usb_disabled()) return -ENODEV; @@ -232,18 +233,22 @@ static int ehci_platform_probe(struct platform_device *dev) break; } } - } - priv->rst = devm_reset_control_get_optional(&dev->dev, NULL); - if (IS_ERR(priv->rst)) { - err = PTR_ERR(priv->rst); - if (err == -EPROBE_DEFER) - goto err_put_clks; - priv->rst = NULL; - } else { - err = reset_control_deassert(priv->rst); - if (err) - goto err_put_clks; + for (rst = 0; rst < EHCI_MAX_RESETS; rst++) { + priv->resets[rst] = + devm_reset_control_get_shared_by_index( + &dev->dev, rst); + if (IS_ERR(priv->resets[rst])) { + err = PTR_ERR(priv->resets[rst]); + if (err == -EPROBE_DEFER) + goto err_reset; + priv->resets[rst] = NULL; + break; + } + err = reset_control_deassert(priv->resets[rst]); + if (err) + goto err_reset; + } } if (pdata->big_endian_desc) @@ -300,8 +305,8 @@ err_power: if (pdata->power_off) pdata->power_off(dev); err_reset: - if (priv->rst) - reset_control_assert(priv->rst); + while (--rst >= 0) + reset_control_assert(priv->resets[rst]); err_put_clks: while (--clk >= 0) clk_put(priv->clks[clk]); @@ -319,15 +324,15 @@ static int ehci_platform_remove(struct platform_device *dev) struct usb_hcd *hcd = platform_get_drvdata(dev); struct usb_ehci_pdata *pdata = dev_get_platdata(&dev->dev); struct ehci_platform_priv *priv = hcd_to_ehci_priv(hcd); - int clk; + int clk, rst; usb_remove_hcd(hcd); if (pdata->power_off) pdata->power_off(dev); - if (priv->rst) - reset_control_assert(priv->rst); + for (rst = 0; rst < EHCI_MAX_RESETS && priv->resets[rst]; rst++) + reset_control_assert(priv->resets[rst]); for (clk = 0; clk < EHCI_MAX_CLKS && priv->clks[clk]; clk++) clk_put(priv->clks[clk]); -- 2.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 11+ messages in thread
[parent not found: <1456592339-31767-2-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH v4 1/2] ehci-platform: Add support for controllers with multiple reset lines [not found] ` <1456592339-31767-2-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2016-03-03 22:13 ` Rob Herring 2016-03-04 4:35 ` Greg Kroah-Hartman 2016-03-05 22:45 ` kbuild test robot 2 siblings, 0 replies; 11+ messages in thread From: Rob Herring @ 2016-03-03 22:13 UTC (permalink / raw) To: Hans de Goede Cc: Greg Kroah-Hartman, Roger Quadros, Alan Stern, Tony Prisk, Florian Fainelli, Maxime Ripard, Arnd Bergmann, linux-usb, linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree, Reinder de Haan On Sat, Feb 27, 2016 at 05:58:58PM +0100, Hans de Goede wrote: > From: Reinder de Haan <patchesrdh-I1/eAgTnXDYAvxtiuMwx3w@public.gmane.org> > > At least the EHCI/OHCI found on the Allwinnner H3 SoC needs multiple > reset lines, the controller will not initialize while the reset for > its companion is still asserted, which means we need to de-assert > 2 resets for the controller to work. > > Signed-off-by: Reinder de Haan <patchesrdh-I1/eAgTnXDYAvxtiuMwx3w@public.gmane.org> > Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> > Acked-by: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org> > --- > Changes in v2: > -Use the new reset_control_[de]assert_shared reset-controller functions > Changes in v3: > -Adjust for changes to shared-reset reset-controller functions > Changes in v4: > -Fix Ugly continuation line > --- > Documentation/devicetree/bindings/usb/usb-ehci.txt | 2 +- Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > drivers/usb/host/ehci-platform.c | 41 ++++++++++++---------- > 2 files changed, 24 insertions(+), 19 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 1/2] ehci-platform: Add support for controllers with multiple reset lines [not found] ` <1456592339-31767-2-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2016-03-03 22:13 ` Rob Herring @ 2016-03-04 4:35 ` Greg Kroah-Hartman [not found] ` <20160304043559.GA21743-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> 2016-03-05 22:45 ` kbuild test robot 2 siblings, 1 reply; 11+ messages in thread From: Greg Kroah-Hartman @ 2016-03-04 4:35 UTC (permalink / raw) To: Hans de Goede Cc: Roger Quadros, Alan Stern, Tony Prisk, Florian Fainelli, Maxime Ripard, Arnd Bergmann, linux-usb, linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree, Reinder de Haan On Sat, Feb 27, 2016 at 05:58:58PM +0100, Hans de Goede wrote: > From: Reinder de Haan <patchesrdh-I1/eAgTnXDYAvxtiuMwx3w@public.gmane.org> > > At least the EHCI/OHCI found on the Allwinnner H3 SoC needs multiple > reset lines, the controller will not initialize while the reset for > its companion is still asserted, which means we need to de-assert > 2 resets for the controller to work. > > Signed-off-by: Reinder de Haan <patchesrdh-I1/eAgTnXDYAvxtiuMwx3w@public.gmane.org> > Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> > Acked-by: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org> > Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > --- > Changes in v2: > -Use the new reset_control_[de]assert_shared reset-controller functions > Changes in v3: > -Adjust for changes to shared-reset reset-controller functions > Changes in v4: > -Fix Ugly continuation line This breaks the build horribly :( As does patch 2/2, ugh. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <20160304043559.GA21743-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>]
* Re: Re: [PATCH v4 1/2] ehci-platform: Add support for controllers with multiple reset lines [not found] ` <20160304043559.GA21743-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> @ 2016-03-04 7:27 ` Hans de Goede [not found] ` <56D938DE.10409-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 11+ messages in thread From: Hans de Goede @ 2016-03-04 7:27 UTC (permalink / raw) To: Greg Kroah-Hartman, Philipp Zabel Cc: Alan Stern, Tony Prisk, Florian Fainelli, Maxime Ripard, Arnd Bergmann, linux-usb, linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree, Reinder de Haan Hi, On 04-03-16 05:35, Greg Kroah-Hartman wrote: > On Sat, Feb 27, 2016 at 05:58:58PM +0100, Hans de Goede wrote: >> From: Reinder de Haan <patchesrdh-I1/eAgTnXDYAvxtiuMwx3w@public.gmane.org> >> >> At least the EHCI/OHCI found on the Allwinnner H3 SoC needs multiple >> reset lines, the controller will not initialize while the reset for >> its companion is still asserted, which means we need to de-assert >> 2 resets for the controller to work. >> >> Signed-off-by: Reinder de Haan <patchesrdh-I1/eAgTnXDYAvxtiuMwx3w@public.gmane.org> >> Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> >> Acked-by: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org> >> Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >> --- >> Changes in v2: >> -Use the new reset_control_[de]assert_shared reset-controller functions >> Changes in v3: >> -Adjust for changes to shared-reset reset-controller functions >> Changes in v4: >> -Fix Ugly continuation line > > This breaks the build horribly :( > > As does patch 2/2, ugh. As said in the cover letter: "These patches apply on top of the related reset-controller patches which have just been merged here: git://git.pengutronix.de/git/pza/linux.git reset/next" I guess I should have done s/apply on top of/depend on/ in the above bit. These patches apply fine without those changes, but indeed they will not build. You may want to ask Philipp Zabel (added to the To: list) to create a topic branch for this which you can merge into your tree. Regards, Hans ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <56D938DE.10409-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: Re: [PATCH v4 1/2] ehci-platform: Add support for controllers with multiple reset lines [not found] ` <56D938DE.10409-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2016-03-05 20:02 ` Greg Kroah-Hartman [not found] ` <20160305200250.GA24790-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 11+ messages in thread From: Greg Kroah-Hartman @ 2016-03-05 20:02 UTC (permalink / raw) To: Hans de Goede Cc: Philipp Zabel, Alan Stern, Tony Prisk, Florian Fainelli, Maxime Ripard, Arnd Bergmann, linux-usb, linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree, Reinder de Haan On Fri, Mar 04, 2016 at 08:27:26AM +0100, Hans de Goede wrote: > Hi, > > On 04-03-16 05:35, Greg Kroah-Hartman wrote: > >On Sat, Feb 27, 2016 at 05:58:58PM +0100, Hans de Goede wrote: > >>From: Reinder de Haan <patchesrdh-I1/eAgTnXDYAvxtiuMwx3w@public.gmane.org> > >> > >>At least the EHCI/OHCI found on the Allwinnner H3 SoC needs multiple > >>reset lines, the controller will not initialize while the reset for > >>its companion is still asserted, which means we need to de-assert > >>2 resets for the controller to work. > >> > >>Signed-off-by: Reinder de Haan <patchesrdh-I1/eAgTnXDYAvxtiuMwx3w@public.gmane.org> > >>Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> > >>Acked-by: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org> > >>Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > >>--- > >>Changes in v2: > >>-Use the new reset_control_[de]assert_shared reset-controller functions > >>Changes in v3: > >>-Adjust for changes to shared-reset reset-controller functions > >>Changes in v4: > >>-Fix Ugly continuation line > > > >This breaks the build horribly :( > > > >As does patch 2/2, ugh. > > As said in the cover letter: > > "These patches apply on top of the related > reset-controller patches which have just been merged here: > > git://git.pengutronix.de/git/pza/linux.git reset/next" > > I guess I should have done s/apply on top of/depend on/ > in the above bit. These patches apply fine without those > changes, but indeed they will not build. Then I can't take them, you know this :( > You may want to ask Philipp Zabel (added to the To: list) > to create a topic branch for this which you can merge into > your tree. If you all want me to do that, fine, otherwise just resend them after 4.6-rc1 is out and the build will not break at that time. thanks, greg k-h ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <20160305200250.GA24790-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>]
* Re: [linux-sunxi] Re: [PATCH v4 1/2] ehci-platform: Add support for controllers with multiple reset lines [not found] ` <20160305200250.GA24790-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> @ 2016-03-08 10:53 ` Hans de Goede 0 siblings, 0 replies; 11+ messages in thread From: Hans de Goede @ 2016-03-08 10:53 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Philipp Zabel, Alan Stern, Tony Prisk, Florian Fainelli, Maxime Ripard, Arnd Bergmann, linux-usb, linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree, Reinder de Haan Hi, On 05-03-16 21:02, Greg Kroah-Hartman wrote: > On Fri, Mar 04, 2016 at 08:27:26AM +0100, Hans de Goede wrote: >> Hi, >> >> On 04-03-16 05:35, Greg Kroah-Hartman wrote: >>> On Sat, Feb 27, 2016 at 05:58:58PM +0100, Hans de Goede wrote: >>>> From: Reinder de Haan <patchesrdh-I1/eAgTnXDYAvxtiuMwx3w@public.gmane.org> >>>> >>>> At least the EHCI/OHCI found on the Allwinnner H3 SoC needs multiple >>>> reset lines, the controller will not initialize while the reset for >>>> its companion is still asserted, which means we need to de-assert >>>> 2 resets for the controller to work. >>>> >>>> Signed-off-by: Reinder de Haan <patchesrdh-I1/eAgTnXDYAvxtiuMwx3w@public.gmane.org> >>>> Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> >>>> Acked-by: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org> >>>> Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> >>>> --- >>>> Changes in v2: >>>> -Use the new reset_control_[de]assert_shared reset-controller functions >>>> Changes in v3: >>>> -Adjust for changes to shared-reset reset-controller functions >>>> Changes in v4: >>>> -Fix Ugly continuation line >>> >>> This breaks the build horribly :( >>> >>> As does patch 2/2, ugh. >> >> As said in the cover letter: >> >> "These patches apply on top of the related >> reset-controller patches which have just been merged here: >> >> git://git.pengutronix.de/git/pza/linux.git reset/next" >> >> I guess I should have done s/apply on top of/depend on/ >> in the above bit. These patches apply fine without those >> changes, but indeed they will not build. > > Then I can't take them, you know this :( > >> You may want to ask Philipp Zabel (added to the To: list) >> to create a topic branch for this which you can merge into >> your tree. > > If you all want me to do that, fine, otherwise just resend them after > 4.6-rc1 is out and the build will not break at that time. Ok I will resend these after 4.6-rc1 Regards, Hans -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 1/2] ehci-platform: Add support for controllers with multiple reset lines [not found] ` <1456592339-31767-2-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2016-03-03 22:13 ` Rob Herring 2016-03-04 4:35 ` Greg Kroah-Hartman @ 2016-03-05 22:45 ` kbuild test robot 2 siblings, 0 replies; 11+ messages in thread From: kbuild test robot @ 2016-03-05 22:45 UTC (permalink / raw) Cc: kbuild-all-JC7UmRfGjtg, Greg Kroah-Hartman, Roger Quadros, Alan Stern, Tony Prisk, Florian Fainelli, Maxime Ripard, Arnd Bergmann, linux-usb, linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree, Reinder de Haan, Hans de Goede [-- Attachment #1: Type: text/plain, Size: 2010 bytes --] Hi Reinder, [auto build test ERROR on robh/for-next] [also build test ERROR on v4.5-rc6 next-20160304] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Hans-de-Goede/hci-platform-Add-support-for-controllers-with-more-then-one-reset-line/20160228-010130 base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux for-next config: x86_64-randconfig-s5-03060621 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers/usb/host/ehci-platform.c: In function 'ehci_platform_probe': >> drivers/usb/host/ehci-platform.c:239:5: error: implicit declaration of function 'devm_reset_control_get_shared_by_index' [-Werror=implicit-function-declaration] devm_reset_control_get_shared_by_index( ^ drivers/usb/host/ehci-platform.c:238:22: warning: assignment makes pointer from integer without a cast [-Wint-conversion] priv->resets[rst] = ^ cc1: some warnings being treated as errors vim +/devm_reset_control_get_shared_by_index +239 drivers/usb/host/ehci-platform.c 233 break; 234 } 235 } 236 237 for (rst = 0; rst < EHCI_MAX_RESETS; rst++) { 238 priv->resets[rst] = > 239 devm_reset_control_get_shared_by_index( 240 &dev->dev, rst); 241 if (IS_ERR(priv->resets[rst])) { 242 err = PTR_ERR(priv->resets[rst]); --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/d/optout. [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 29486 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v4 2/2] ohci-platform: Add support for controllers with multiple reset lines [not found] ` <1456592339-31767-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2016-02-27 16:58 ` [PATCH v4 1/2] ehci-platform: Add support for controllers with multiple reset lines Hans de Goede @ 2016-02-27 16:58 ` Hans de Goede [not found] ` <1456592339-31767-3-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 1 sibling, 1 reply; 11+ messages in thread From: Hans de Goede @ 2016-02-27 16:58 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Roger Quadros, Alan Stern, Tony Prisk, Florian Fainelli, Maxime Ripard, Arnd Bergmann, linux-usb, linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree, Hans de Goede At least the EHCI/OHCI found on the Allwinnner H3 SoC needs multiple reset lines, the controller will not initialize while the reset for its companion is still asserted, which means we need to de-assert 2 resets for the controller to work. Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> Acked-by: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org> --- Changes in v2: -New patch in v2 of this patch-set, to complement the identical patch for the ehci-platform code Changes in v3: -Adjust for changes to shared-reset reset-controller functions Changes in v4: -Fix Ugly continuation line --- Documentation/devicetree/bindings/usb/usb-ohci.txt | 2 +- drivers/usb/host/ohci-platform.c | 43 ++++++++++++---------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/usb-ohci.txt b/Documentation/devicetree/bindings/usb/usb-ohci.txt index 19233b7..9df4569 100644 --- a/Documentation/devicetree/bindings/usb/usb-ohci.txt +++ b/Documentation/devicetree/bindings/usb/usb-ohci.txt @@ -14,7 +14,7 @@ Optional properties: - clocks : a list of phandle + clock specifier pairs - phys : phandle + phy specifier pair - phy-names : "usb" -- resets : phandle + reset specifier pair +- resets : a list of phandle + reset specifier pairs Example: diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c index c2669f18..85f5c9a 100644 --- a/drivers/usb/host/ohci-platform.c +++ b/drivers/usb/host/ohci-platform.c @@ -33,11 +33,12 @@ #define DRIVER_DESC "OHCI generic platform driver" #define OHCI_MAX_CLKS 3 +#define OHCI_MAX_RESETS 2 #define hcd_to_ohci_priv(h) ((struct ohci_platform_priv *)hcd_to_ohci(h)->priv) struct ohci_platform_priv { struct clk *clks[OHCI_MAX_CLKS]; - struct reset_control *rst; + struct reset_control *resets[OHCI_MAX_RESETS]; struct phy **phys; int num_phys; }; @@ -117,7 +118,7 @@ static int ohci_platform_probe(struct platform_device *dev) struct usb_ohci_pdata *pdata = dev_get_platdata(&dev->dev); struct ohci_platform_priv *priv; struct ohci_hcd *ohci; - int err, irq, phy_num, clk = 0; + int err, irq, phy_num, clk = 0, rst = 0; if (usb_disabled()) return -ENODEV; @@ -195,19 +196,21 @@ static int ohci_platform_probe(struct platform_device *dev) break; } } - - } - - priv->rst = devm_reset_control_get_optional(&dev->dev, NULL); - if (IS_ERR(priv->rst)) { - err = PTR_ERR(priv->rst); - if (err == -EPROBE_DEFER) - goto err_put_clks; - priv->rst = NULL; - } else { - err = reset_control_deassert(priv->rst); - if (err) - goto err_put_clks; + for (rst = 0; rst < OHCI_MAX_RESETS; rst++) { + priv->resets[rst] = + devm_reset_control_get_shared_by_index( + &dev->dev, rst); + if (IS_ERR(priv->resets[rst])) { + err = PTR_ERR(priv->resets[rst]); + if (err == -EPROBE_DEFER) + goto err_reset; + priv->resets[rst] = NULL; + break; + } + err = reset_control_deassert(priv->resets[rst]); + if (err) + goto err_reset; + } } if (pdata->big_endian_desc) @@ -265,8 +268,8 @@ err_power: if (pdata->power_off) pdata->power_off(dev); err_reset: - if (priv->rst) - reset_control_assert(priv->rst); + while (--rst >= 0) + reset_control_assert(priv->resets[rst]); err_put_clks: while (--clk >= 0) clk_put(priv->clks[clk]); @@ -284,15 +287,15 @@ static int ohci_platform_remove(struct platform_device *dev) struct usb_hcd *hcd = platform_get_drvdata(dev); struct usb_ohci_pdata *pdata = dev_get_platdata(&dev->dev); struct ohci_platform_priv *priv = hcd_to_ohci_priv(hcd); - int clk; + int clk, rst; usb_remove_hcd(hcd); if (pdata->power_off) pdata->power_off(dev); - if (priv->rst) - reset_control_assert(priv->rst); + for (rst = 0; rst < OHCI_MAX_RESETS && priv->resets[rst]; rst++) + reset_control_assert(priv->resets[rst]); for (clk = 0; clk < OHCI_MAX_CLKS && priv->clks[clk]; clk++) clk_put(priv->clks[clk]); -- 2.7.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 11+ messages in thread
[parent not found: <1456592339-31767-3-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH v4 2/2] ohci-platform: Add support for controllers with multiple reset lines [not found] ` <1456592339-31767-3-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2016-03-03 22:14 ` Rob Herring 2016-03-05 22:58 ` kbuild test robot 1 sibling, 0 replies; 11+ messages in thread From: Rob Herring @ 2016-03-03 22:14 UTC (permalink / raw) To: Hans de Goede Cc: Greg Kroah-Hartman, Roger Quadros, Alan Stern, Tony Prisk, Florian Fainelli, Maxime Ripard, Arnd Bergmann, linux-usb, linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree On Sat, Feb 27, 2016 at 05:58:59PM +0100, Hans de Goede wrote: > At least the EHCI/OHCI found on the Allwinnner H3 SoC needs multiple > reset lines, the controller will not initialize while the reset for > its companion is still asserted, which means we need to de-assert > 2 resets for the controller to work. > > Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> > Acked-by: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org> > --- > Changes in v2: > -New patch in v2 of this patch-set, to complement the identical patch for > the ehci-platform code > Changes in v3: > -Adjust for changes to shared-reset reset-controller functions > Changes in v4: > -Fix Ugly continuation line > --- > Documentation/devicetree/bindings/usb/usb-ohci.txt | 2 +- Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> > drivers/usb/host/ohci-platform.c | 43 ++++++++++++---------- > 2 files changed, 24 insertions(+), 21 deletions(-) ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v4 2/2] ohci-platform: Add support for controllers with multiple reset lines [not found] ` <1456592339-31767-3-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2016-03-03 22:14 ` Rob Herring @ 2016-03-05 22:58 ` kbuild test robot 1 sibling, 0 replies; 11+ messages in thread From: kbuild test robot @ 2016-03-05 22:58 UTC (permalink / raw) Cc: kbuild-all-JC7UmRfGjtg, Greg Kroah-Hartman, Roger Quadros, Alan Stern, Tony Prisk, Florian Fainelli, Maxime Ripard, Arnd Bergmann, linux-usb, linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree, Hans de Goede [-- Attachment #1: Type: text/plain, Size: 2034 bytes --] Hi Hans, [auto build test ERROR on robh/for-next] [also build test ERROR on v4.5-rc6 next-20160304] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Hans-de-Goede/hci-platform-Add-support-for-controllers-with-more-then-one-reset-line/20160228-010130 base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux for-next config: x86_64-randconfig-s5-03060621 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers/usb/host/ohci-platform.c: In function 'ohci_platform_probe': >> drivers/usb/host/ohci-platform.c:201:5: error: implicit declaration of function 'devm_reset_control_get_shared_by_index' [-Werror=implicit-function-declaration] devm_reset_control_get_shared_by_index( ^ drivers/usb/host/ohci-platform.c:200:22: warning: assignment makes pointer from integer without a cast [-Wint-conversion] priv->resets[rst] = ^ cc1: some warnings being treated as errors vim +/devm_reset_control_get_shared_by_index +201 drivers/usb/host/ohci-platform.c 195 priv->clks[clk] = NULL; 196 break; 197 } 198 } 199 for (rst = 0; rst < OHCI_MAX_RESETS; rst++) { 200 priv->resets[rst] = > 201 devm_reset_control_get_shared_by_index( 202 &dev->dev, rst); 203 if (IS_ERR(priv->resets[rst])) { 204 err = PTR_ERR(priv->resets[rst]); --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/d/optout. [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 29486 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2016-03-08 10:53 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-27 16:58 [PATCH v4 0/2] ?hci-platform: Add support for controllers with more then one reset line Hans de Goede
[not found] ` <1456592339-31767-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-27 16:58 ` [PATCH v4 1/2] ehci-platform: Add support for controllers with multiple reset lines Hans de Goede
[not found] ` <1456592339-31767-2-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-03-03 22:13 ` Rob Herring
2016-03-04 4:35 ` Greg Kroah-Hartman
[not found] ` <20160304043559.GA21743-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2016-03-04 7:27 ` Hans de Goede
[not found] ` <56D938DE.10409-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-03-05 20:02 ` Greg Kroah-Hartman
[not found] ` <20160305200250.GA24790-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2016-03-08 10:53 ` [linux-sunxi] " Hans de Goede
2016-03-05 22:45 ` kbuild test robot
2016-02-27 16:58 ` [PATCH v4 2/2] ohci-platform: " Hans de Goede
[not found] ` <1456592339-31767-3-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-03-03 22:14 ` Rob Herring
2016-03-05 22:58 ` kbuild test robot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox