All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kamil Debski <k.debski@samsung.com>
To: "'Vivek Gautam'" <gautamvivek1987@gmail.com>
Cc: linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
	"'Linux USB Mailing List'" <linux-usb@vger.kernel.org>,
	devicetree@vger.kernel.org, linux-arm@vger.kernel.org,
	"'Kyungmin Park'" <kyungmin.park@samsung.com>,
	"'kishon'" <kishon@ti.com>, Tomasz Figa <t.figa@samsung.com>,
	Sylwester Nawrocki <s.nawrocki@samsung.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	"'Vivek Gautam'" <gautam.vivek@samsung.com>,
	mat.krawczuk@gmail.com
Subject: RE: [PATCH 4/5] usb: ehci-s5p: Change to use phy provided by the generic phy framework
Date: Mon, 28 Oct 2013 14:53:03 +0100	[thread overview]
Message-ID: <025f01ced3e5$0660ecf0$1322c6d0$%debski@samsung.com> (raw)
In-Reply-To: <CAFp+6iExOPunF=ND7_17PZXA217K_4im4ZJvR=mW2Ym_gnA0GQ@mail.gmail.com>

Hi Vivek,

> From: Vivek Gautam [mailto:gautamvivek1987@gmail.com]
> Sent: Saturday, October 26, 2013 11:41 AM
> 
> Hi Kamil,
> 
> 
> On Fri, Oct 25, 2013 at 7:45 PM, Kamil Debski <k.debski@samsung.com>
> wrote:
> > Change the phy provider used from the old usb phy specific to a new
> > one using the generic phy framework.
> >
> > Signed-off-by: Kamil Debski <k.debski@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > ---
> >  drivers/usb/host/ehci-s5p.c |   21 +++++++++++----------
> >  1 file changed, 11 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/usb/host/ehci-s5p.c b/drivers/usb/host/ehci-
> s5p.c
> > index 7cc26e6..76606ff 100644
> > --- a/drivers/usb/host/ehci-s5p.c
> > +++ b/drivers/usb/host/ehci-s5p.c
> > @@ -19,6 +19,7 @@
> >  #include <linux/module.h>
> >  #include <linux/of.h>
> >  #include <linux/of_gpio.h>
> > +#include <linux/phy/phy.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/platform_data/usb-ehci-s5p.h>
> >  #include <linux/usb/phy.h>
> > @@ -45,7 +46,7 @@ static struct hc_driver __read_mostly
> > s5p_ehci_hc_driver;
> >
> >  struct s5p_ehci_hcd {
> >         struct clk *clk;
> > -       struct usb_phy *phy;
> > +       struct phy *phy;
> >         struct usb_otg *otg;
> >         struct s5p_ehci_platdata *pdata;  }; @@ -77,10 +78,11 @@
> > static int s5p_ehci_probe(struct platform_device *pdev)  {
> >         struct s5p_ehci_platdata *pdata = pdev->dev.platform_data;
> >         struct s5p_ehci_hcd *s5p_ehci;
> > +       struct phy *phy;
> 
> just a nit here:
> Lets keep the pointer to 'phy' and 'phy_name' together ?
> and move this above phy_name ?

Thanks for pointing this out.
 
> >         struct usb_hcd *hcd;
> >         struct ehci_hcd *ehci;
> >         struct resource *res;
> > -       struct usb_phy *phy;
> > +       const char *phy_name;
> >         int irq;
> >         int err;
> >
> > @@ -103,14 +105,14 @@ static int s5p_ehci_probe(struct
> platform_device *pdev)
> >                 return -ENOMEM;
> >         }
> >         s5p_ehci = to_s5p_ehci(hcd);
> > -
> > +       phy_name = of_get_property(pdev->dev.of_node, "phy-names",
> NULL);
> > +       phy =  devm_phy_get(&pdev->dev, phy_name);
> 
> Below check for exynos5440 was supposed to skip any request phy.
> So shouldn't we place above two assignments to the original place where
> devm_usb_get_phy() was called ?
> May be i am not getting you intention of changing the place.

Hm... You are right - if we want to leave this check and skip phy request
for
5450 then I should leave the order as it was. And if we want to use the new
phy driver for 5450 then the check to skip phy requesting should be simply
removed.

> 
> >         if (of_device_is_compatible(pdev->dev.of_node,
> >                                         "samsung,exynos5440-ehci")) {
> >                 s5p_ehci->pdata = &empty_platdata;
> >                 goto skip_phy;
> >         }
> >
> > -       phy = devm_usb_get_phy(&pdev->dev, USB_PHY_TYPE_USB2);
> >         if (IS_ERR(phy)) {
> >                 /* Fallback to pdata */
> >                 if (!pdata) {
> > @@ -122,7 +124,6 @@ static int s5p_ehci_probe(struct platform_device
> *pdev)
> >                 }
> >         } else {
> >                 s5p_ehci->phy = phy;
> > -               s5p_ehci->otg = phy->otg;
> >         }
> >
> >  skip_phy:
> > @@ -166,7 +167,7 @@ skip_phy:
> >                 s5p_ehci->otg->set_host(s5p_ehci->otg, &hcd->self);
> 
> Lets remove this line and similar calls to 'set_host()' in the driver,
> since we don't have s5p_ehci->otg anymore after the same is removed
> above.
> Anyways this was helping the old phy-samsung-usb2 driver, and not
> needed now.

Ok, I will.

> 
> >
> >         if (s5p_ehci->phy)
> > -               usb_phy_init(s5p_ehci->phy);
> > +               phy_power_on(s5p_ehci->phy);
> >         else if (s5p_ehci->pdata->phy_init)
> >                 s5p_ehci->pdata->phy_init(pdev, USB_PHY_TYPE_HOST);
> >
> > @@ -188,7 +189,7 @@ skip_phy:
> >
> >  fail_add_hcd:
> >         if (s5p_ehci->phy)
> > -               usb_phy_shutdown(s5p_ehci->phy);
> > +               phy_power_off(s5p_ehci->phy);
> >         else if (s5p_ehci->pdata->phy_exit)
> >                 s5p_ehci->pdata->phy_exit(pdev, USB_PHY_TYPE_HOST);
> >  fail_io:
> > @@ -209,7 +210,7 @@ static int s5p_ehci_remove(struct platform_device
> *pdev)
> >                 s5p_ehci->otg->set_host(s5p_ehci->otg, &hcd->self);
> 
> ditto
> 
> >
> >         if (s5p_ehci->phy)
> > -               usb_phy_shutdown(s5p_ehci->phy);
> > +               phy_power_off(s5p_ehci->phy);
> >         else if (s5p_ehci->pdata->phy_exit)
> >                 s5p_ehci->pdata->phy_exit(pdev, USB_PHY_TYPE_HOST);
> >
> > @@ -244,7 +245,7 @@ static int s5p_ehci_suspend(struct device *dev)
> >                 s5p_ehci->otg->set_host(s5p_ehci->otg, &hcd->self);
> ditto
> 
> >
> >         if (s5p_ehci->phy)
> > -               usb_phy_shutdown(s5p_ehci->phy);
> > +               phy_power_off(s5p_ehci->phy);
> >         else if (s5p_ehci->pdata->phy_exit)
> >                 s5p_ehci->pdata->phy_exit(pdev, USB_PHY_TYPE_HOST);
> >
> > @@ -265,7 +266,7 @@ static int s5p_ehci_resume(struct device *dev)
> >                 s5p_ehci->otg->set_host(s5p_ehci->otg, &hcd->self);
> ditto
> 
> >
> >         if (s5p_ehci->phy)
> > -               usb_phy_init(s5p_ehci->phy);
> > +               phy_power_on(s5p_ehci->phy);
> >         else if (s5p_ehci->pdata->phy_init)
> >                 s5p_ehci->pdata->phy_init(pdev, USB_PHY_TYPE_HOST);
> >
> [..] Rest looks good. :-)
> 

Thank you!

Best wishes,
-- 
Kamil Debski
Samsung R&D Institute Poland



  reply	other threads:[~2013-10-28 13:53 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-25 14:15 [PATCH 0/5] phy: Add new Exynos USB PHY driver Kamil Debski
2013-10-25 14:15 ` Kamil Debski
2013-10-25 14:15 ` [PATCH v2 1/5] " Kamil Debski
2013-10-25 14:15   ` Kamil Debski
2013-10-25 15:39   ` Kishon Vijay Abraham I
2013-10-25 15:39     ` Kishon Vijay Abraham I
2013-10-28 13:52     ` Kamil Debski
2013-10-28 13:52       ` Kamil Debski
2013-10-28 20:00       ` Tomasz Figa
2013-10-29 10:16         ` Kamil Debski
2013-10-29  9:52       ` Kishon Vijay Abraham I
2013-10-29  9:52         ` Kishon Vijay Abraham I
2013-10-25 21:36   ` Kumar Gala
2013-10-25 21:36     ` Kumar Gala
2013-10-28 13:52     ` Kamil Debski
2013-10-25 14:15 ` [RFC PATCH 2/5] phy: Add WIP Exynos 5250 support to the " Kamil Debski
2013-10-25 15:43   ` Kishon Vijay Abraham I
2013-10-25 15:43     ` Kishon Vijay Abraham I
2013-10-28 13:52     ` Kamil Debski
2013-10-28 13:52       ` Kamil Debski
2013-10-28 14:41     ` Vivek Gautam
2013-10-28 14:41       ` Vivek Gautam
2013-10-29  9:55       ` Kishon Vijay Abraham I
2013-10-29  9:55         ` Kishon Vijay Abraham I
2013-10-29 10:14         ` Kamil Debski
2013-10-29 10:51           ` Kishon Vijay Abraham I
2013-10-29 10:51             ` Kishon Vijay Abraham I
2013-10-25 14:15 ` [PATCH 3/5] phy: Add support for S5PV210 " Kamil Debski
2013-10-25 15:50   ` Kishon Vijay Abraham I
2013-10-25 15:50     ` Kishon Vijay Abraham I
2013-10-26  1:40     ` Jingoo Han
2013-10-26  1:40       ` Jingoo Han
2013-10-25 14:15 ` [PATCH 4/5] usb: ehci-s5p: Change to use phy provided by the generic phy framework Kamil Debski
2013-10-25 15:52   ` Kishon Vijay Abraham I
2013-10-25 15:52     ` Kishon Vijay Abraham I
2013-10-26  1:27   ` Jingoo Han
2013-10-28 13:52     ` Kamil Debski
2013-10-28 13:52       ` Kamil Debski
2013-10-26  9:41   ` Vivek Gautam
2013-10-26  9:41     ` Vivek Gautam
2013-10-28 13:53     ` Kamil Debski [this message]
2013-10-28 14:36       ` Vivek Gautam
2013-10-28 14:36         ` Vivek Gautam
2013-10-25 14:15 ` [PATCH 5/5] usb: s3c-hsotg: Use the new Exynos USB phy driver with " Kamil Debski
2013-10-25 15:53   ` Kishon Vijay Abraham I
2013-10-25 15:53     ` Kishon Vijay Abraham I

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='025f01ced3e5$0660ecf0$1322c6d0$%debski@samsung.com' \
    --to=k.debski@samsung.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gautam.vivek@samsung.com \
    --cc=gautamvivek1987@gmail.com \
    --cc=kishon@ti.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-arm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=mat.krawczuk@gmail.com \
    --cc=s.nawrocki@samsung.com \
    --cc=t.figa@samsung.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: link
Be 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.