usb: phy: move some error messages to debug

Message ID 1390836466-16007-1-git-send-email-balbi@ti.com
State New
Headers show

Commit Message

Felipe Balbi Jan. 27, 2014, 3:27 p.m.
the PHY layer is supposed to be optional,
considering some PHY have no control bus
for SW to poke around.

After commit 1ae5799 (usb: hcd: Initialize
USB phy if needed) any HCD which didn't provide
a PHY driver would emit annoying error messages.

In this patch we're decreasing those messages
to debugging only and we also add a PHY prefix
so we know where they're coming from.

Reported-by: Josh Boyer <jwboyer@fedoraproject.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
---
 drivers/usb/phy/phy.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

Comments

Felipe Balbi Jan. 27, 2014, 7:58 p.m. | #1
Hi,

On Mon, Jan 27, 2014 at 11:44:16PM +0300, Sergei Shtylyov wrote:
> >diff --git a/drivers/usb/phy/phy.c b/drivers/usb/phy/phy.c
> >index e6f61e4..db18011 100644
> >--- a/drivers/usb/phy/phy.c
> >+++ b/drivers/usb/phy/phy.c
> >@@ -130,7 +130,7 @@ struct usb_phy *usb_get_phy(enum usb_phy_type type)
> >
> >  	phy = __usb_find_phy(&phy_list, type);
> >  	if (IS_ERR(phy) || !try_module_get(phy->dev->driver->owner)) {
> >-		pr_err("unable to find transceiver of type %s\n",
> >+		dev_dbg(phy->dev, "unable to find transceiver of type %s\n",
> 
>    'phy' is possibly invalid (error ptr) at this point, you cannot
> dereference it.

right, this one can't be a dev_dbg(), unfortunately.

> >@@ -228,7 +228,7 @@ struct usb_phy *usb_get_phy_dev(struct device *dev, u8 index)
> >
> >  	phy = __usb_find_phy_dev(dev, &phy_bind_list, index);
> >  	if (IS_ERR(phy) || !try_module_get(phy->dev->driver->owner)) {
> >-		pr_err("unable to find transceiver\n");
> >+		dev_dbg(dev, "unable to find transceiver\n");
> 
>    Same here.

here he's using the caller's dev pointer, which is just fine.
Felipe Balbi Jan. 27, 2014, 8 p.m. | #2
On Mon, Jan 27, 2014 at 02:46:40PM -0500, Josh Boyer wrote:
> On Mon, Jan 27, 2014 at 3:44 PM, Sergei Shtylyov
> <sergei.shtylyov@cogentembedded.com> wrote:
> > Hello.
> >
> >
> > On 01/27/2014 10:23 PM, Josh Boyer wrote:
> >
> >> the PHY layer is supposed to be optional,
> >> considering some PHY have no control bus
> >> for SW to poke around.
> >
> >
> >> After commit 1ae5799 (usb: hcd: Initialize
> >> USB phy if needed) any HCD which didn't provide
> >> a PHY driver would emit annoying error messages.
> >
> >
> >> In this patch we're decreasing those messages
> >> to dev_dbg for debugging only and so we know where
> >> they're coming from.
> >
> >
> >> Reported-by: Josh Boyer <jwboyer@fedoraproject.org>
> >> Signed-off-by: Felipe Balbi <balbi@ti.com>
> >> Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
> >> ---
> >
> >
> >> v2: Switch to using dev_dbg
> >
> >
> >>   drivers/usb/phy/phy.c | 8 +++-----
> >>   1 file changed, 3 insertions(+), 5 deletions(-)
> >
> >
> >> diff --git a/drivers/usb/phy/phy.c b/drivers/usb/phy/phy.c
> >> index e6f61e4..db18011 100644
> >> --- a/drivers/usb/phy/phy.c
> >> +++ b/drivers/usb/phy/phy.c
> >> @@ -130,7 +130,7 @@ struct usb_phy *usb_get_phy(enum usb_phy_type type)
> >>
> >>         phy = __usb_find_phy(&phy_list, type);
> >>         if (IS_ERR(phy) || !try_module_get(phy->dev->driver->owner)) {
> >> -               pr_err("unable to find transceiver of type %s\n",
> >> +               dev_dbg(phy->dev, "unable to find transceiver of type
> >> %s\n",
> >
> >
> >    'phy' is possibly invalid (error ptr) at this point, you cannot
> > dereference it.
> 
> Oh, yes.  Duh, I should have spotted that.
> 
> Felipe, can we just go with your original patch?  It avoids having to
> worry about the dev parameter to dev_dbg.

fine by me, no problem. Can I get a Tested-by or Reviewed-by on that ?

(Tested-by gets more points heh)

Patch

diff --git a/drivers/usb/phy/phy.c b/drivers/usb/phy/phy.c
index e6f61e4..29840c2 100644
--- a/drivers/usb/phy/phy.c
+++ b/drivers/usb/phy/phy.c
@@ -130,7 +130,7 @@  struct usb_phy *usb_get_phy(enum usb_phy_type type)
 
 	phy = __usb_find_phy(&phy_list, type);
 	if (IS_ERR(phy) || !try_module_get(phy->dev->driver->owner)) {
-		pr_err("unable to find transceiver of type %s\n",
+		pr_debug("PHY: unable to find transceiver of type %s\n",
 			usb_phy_type_string(type));
 		goto err0;
 	}
@@ -228,7 +228,7 @@  struct usb_phy *usb_get_phy_dev(struct device *dev, u8 index)
 
 	phy = __usb_find_phy_dev(dev, &phy_bind_list, index);
 	if (IS_ERR(phy) || !try_module_get(phy->dev->driver->owner)) {
-		pr_err("unable to find transceiver\n");
+		pr_debug("PHY: unable to find transceiver\n");
 		goto err0;
 	}
 
@@ -424,10 +424,8 @@  int usb_bind_phy(const char *dev_name, u8 index,
 	unsigned long flags;
 
 	phy_bind = kzalloc(sizeof(*phy_bind), GFP_KERNEL);
-	if (!phy_bind) {
-		pr_err("phy_bind(): No memory for phy_bind");
+	if (!phy_bind)
 		return -ENOMEM;
-	}
 
 	phy_bind->dev_name = dev_name;
 	phy_bind->phy_dev_name = phy_dev_name;