All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pramod Gurav <pramod.gurav@smartplayin.com>
To: balbi@ti.com, Pramod Gurav <pramod.gurav.etc@gmail.com>
Cc: Andy Gross <agross@codeaurora.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Kishon Vijay Abraham I <kishon@ti.com>,
	Jack Pham <jackp@codeaurora.org>,
	Kumar Gala <galak@codeaurora.org>,
	linux-arm-msm <linux-arm-msm@vger.kernel.org>,
	linux-usb@vger.kernel.org, "Ivan T. Ivanov" <iivanov@mm-sol.com>,
	Bjorn Andersson <bjorn.andersson@sonymobile.com>
Subject: Re: [Patch v9 2/3] usb: dwc3: Add Qualcomm DWC3 glue layer driver
Date: Sat, 13 Sep 2014 01:55:50 +0530	[thread overview]
Message-ID: <541356CE.1020902@smartplayin.com> (raw)
In-Reply-To: <20140912202008.GB25500@saruman.home>

Hi Felipe,

On 13-09-2014 01:50 AM, Felipe Balbi wrote:
> On Sat, Sep 13, 2014 at 01:44:25AM +0530, Pramod Gurav wrote:
>> Andy,
>> Couple of minor comments.
>>
>> On Sat, Sep 13, 2014 at 12:58 AM, Andy Gross <agross@codeaurora.org> wrote:
>>
>>> From: "Ivan T. Ivanov" <iivanov@mm-sol.com>
>>>
>>> DWC3 glue layer is hardware layer around Synopsys DesignWare
>>> USB3 core. Its purpose is to supply Synopsys IP with required
>>> clocks, voltages and interface it with the rest of the SoC.
>>>
>>> Signed-off-by: Ivan T. Ivanov <iivanov@mm-sol.com>
>>> Signed-off-by: Andy Gross <agross@codeaurora.org>
>>> ---
>>>  drivers/usb/dwc3/Kconfig     |    8 +++
>>>  drivers/usb/dwc3/Makefile    |    1 +
>>>  drivers/usb/dwc3/dwc3-qcom.c |  131
>>> ++++++++++++++++++++++++++++++++++++++++++
>>>  3 files changed, 140 insertions(+)
>>>  create mode 100644 drivers/usb/dwc3/dwc3-qcom.c
>>>
>>>
>> <..>
>>
>>
>>> +#include <linux/platform_device.h>
>>> +
>>> +struct dwc3_qcom {
>>> +       struct device           *dev;
>>> +
>>>
>> Extra new line here.
> 
> that's not an issue however.
> 
>>> +       struct clk              *core_clk;
>>> +       struct clk              *iface_clk;
>>> +       struct clk              *sleep_clk;
>>> +};
>>> +
>>> +static int dwc3_qcom_probe(struct platform_device *pdev)
>>> +{
>>> +       struct device_node *node = pdev->dev.of_node;
>>> +       struct dwc3_qcom *qdwc;
>>> +       int ret = 0;
>>>
>> Initialization not required.
> 
> I'll fix this one as I'm already applying this patch.
> 
>>> +
>>> +       qdwc = devm_kzalloc(&pdev->dev, sizeof(*qdwc), GFP_KERNEL);
>>> +       if (!qdwc)
>>> +               return -ENOMEM;
>>> +
>>> +       platform_set_drvdata(pdev, qdwc);
>>> +
>>> +       qdwc->dev = &pdev->dev;
>>> +
>>> +       qdwc->core_clk = devm_clk_get(qdwc->dev, "core");
>>> +       if (IS_ERR(qdwc->core_clk)) {
>>> +               dev_err(qdwc->dev, "failed to get core clock\n");
>>> +               return PTR_ERR(qdwc->core_clk);
>>> +       }
>>> +
>>> +       qdwc->iface_clk = devm_clk_get(qdwc->dev, "iface");
>>> +       if (IS_ERR(qdwc->iface_clk)) {
>>> +               dev_dbg(qdwc->dev, "failed to get optional iface clock\n");
>>> +               qdwc->iface_clk = NULL;
>>> +       }
>>> +
>>> +       qdwc->sleep_clk = devm_clk_get(qdwc->dev, "sleep");
>>> +       if (IS_ERR(qdwc->sleep_clk)) {
>>> +               dev_dbg(qdwc->dev, "failed to get optional sleep clock\n");
>>> +               qdwc->sleep_clk = NULL;
>>> +       }
>>> +
>>> +       ret = clk_prepare_enable(qdwc->core_clk);
>>> +       if (ret) {
>>> +               dev_err(qdwc->dev, "failed to enable core clock\n");
>>> +               goto err_core;
>>> +       }
>>> +
>>> +       ret = clk_prepare_enable(qdwc->iface_clk);
>>>
>> Should not we check if  qdwc->iface_clk is valid?
> 
> read the sources luke.
Now I read that its initialized to NULL in fail case but should we call
prepare_enable at all if its NULL?
> 
>>> +err_clks:
>>> +       clk_disable_unprepare(qdwc->sleep_clk);
>>>
>> IS_ERR check before above statement not needed as we have continued with
>> probe even after failure og devm_clk_get?
> 
> read more carefully, there's a detail which you're missing.
> 

WARNING: multiple messages have this Message-ID (diff)
From: pramod.gurav@smartplayin.com (Pramod Gurav)
To: linux-arm-kernel@lists.infradead.org
Subject: [Patch v9 2/3] usb: dwc3: Add Qualcomm DWC3 glue layer driver
Date: Sat, 13 Sep 2014 01:55:50 +0530	[thread overview]
Message-ID: <541356CE.1020902@smartplayin.com> (raw)
In-Reply-To: <20140912202008.GB25500@saruman.home>

Hi Felipe,

On 13-09-2014 01:50 AM, Felipe Balbi wrote:
> On Sat, Sep 13, 2014 at 01:44:25AM +0530, Pramod Gurav wrote:
>> Andy,
>> Couple of minor comments.
>>
>> On Sat, Sep 13, 2014 at 12:58 AM, Andy Gross <agross@codeaurora.org> wrote:
>>
>>> From: "Ivan T. Ivanov" <iivanov@mm-sol.com>
>>>
>>> DWC3 glue layer is hardware layer around Synopsys DesignWare
>>> USB3 core. Its purpose is to supply Synopsys IP with required
>>> clocks, voltages and interface it with the rest of the SoC.
>>>
>>> Signed-off-by: Ivan T. Ivanov <iivanov@mm-sol.com>
>>> Signed-off-by: Andy Gross <agross@codeaurora.org>
>>> ---
>>>  drivers/usb/dwc3/Kconfig     |    8 +++
>>>  drivers/usb/dwc3/Makefile    |    1 +
>>>  drivers/usb/dwc3/dwc3-qcom.c |  131
>>> ++++++++++++++++++++++++++++++++++++++++++
>>>  3 files changed, 140 insertions(+)
>>>  create mode 100644 drivers/usb/dwc3/dwc3-qcom.c
>>>
>>>
>> <..>
>>
>>
>>> +#include <linux/platform_device.h>
>>> +
>>> +struct dwc3_qcom {
>>> +       struct device           *dev;
>>> +
>>>
>> Extra new line here.
> 
> that's not an issue however.
> 
>>> +       struct clk              *core_clk;
>>> +       struct clk              *iface_clk;
>>> +       struct clk              *sleep_clk;
>>> +};
>>> +
>>> +static int dwc3_qcom_probe(struct platform_device *pdev)
>>> +{
>>> +       struct device_node *node = pdev->dev.of_node;
>>> +       struct dwc3_qcom *qdwc;
>>> +       int ret = 0;
>>>
>> Initialization not required.
> 
> I'll fix this one as I'm already applying this patch.
> 
>>> +
>>> +       qdwc = devm_kzalloc(&pdev->dev, sizeof(*qdwc), GFP_KERNEL);
>>> +       if (!qdwc)
>>> +               return -ENOMEM;
>>> +
>>> +       platform_set_drvdata(pdev, qdwc);
>>> +
>>> +       qdwc->dev = &pdev->dev;
>>> +
>>> +       qdwc->core_clk = devm_clk_get(qdwc->dev, "core");
>>> +       if (IS_ERR(qdwc->core_clk)) {
>>> +               dev_err(qdwc->dev, "failed to get core clock\n");
>>> +               return PTR_ERR(qdwc->core_clk);
>>> +       }
>>> +
>>> +       qdwc->iface_clk = devm_clk_get(qdwc->dev, "iface");
>>> +       if (IS_ERR(qdwc->iface_clk)) {
>>> +               dev_dbg(qdwc->dev, "failed to get optional iface clock\n");
>>> +               qdwc->iface_clk = NULL;
>>> +       }
>>> +
>>> +       qdwc->sleep_clk = devm_clk_get(qdwc->dev, "sleep");
>>> +       if (IS_ERR(qdwc->sleep_clk)) {
>>> +               dev_dbg(qdwc->dev, "failed to get optional sleep clock\n");
>>> +               qdwc->sleep_clk = NULL;
>>> +       }
>>> +
>>> +       ret = clk_prepare_enable(qdwc->core_clk);
>>> +       if (ret) {
>>> +               dev_err(qdwc->dev, "failed to enable core clock\n");
>>> +               goto err_core;
>>> +       }
>>> +
>>> +       ret = clk_prepare_enable(qdwc->iface_clk);
>>>
>> Should not we check if  qdwc->iface_clk is valid?
> 
> read the sources luke.
Now I read that its initialized to NULL in fail case but should we call
prepare_enable at all if its NULL?
> 
>>> +err_clks:
>>> +       clk_disable_unprepare(qdwc->sleep_clk);
>>>
>> IS_ERR check before above statement not needed as we have continued with
>> probe even after failure og devm_clk_get?
> 
> read more carefully, there's a detail which you're missing.
> 

  reply	other threads:[~2014-09-12 20:26 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-12 19:28 [Patch v9 0/3] DWC3 USB support for Qualcomm platform Andy Gross
2014-09-12 19:28 ` Andy Gross
2014-09-12 19:28 ` Andy Gross
2014-09-12 19:28 ` [Patch v9 1/3] usb: dwc3: qcom: Add device tree binding Andy Gross
2014-09-12 19:28   ` Andy Gross
2014-09-12 19:28   ` Andy Gross
2014-09-16 18:15   ` Jack Pham
2014-09-16 18:15     ` Jack Pham
2014-09-16 18:29     ` Felipe Balbi
2014-09-16 18:29       ` Felipe Balbi
2014-09-16 18:29       ` Felipe Balbi
2014-09-12 19:28 ` [Patch v9 2/3] usb: dwc3: Add Qualcomm DWC3 glue layer driver Andy Gross
2014-09-12 19:28   ` Andy Gross
     [not found]   ` <CAMf-jSm2fPPstFD2h4-gG=MCDty34f-O0ooizDEKyQUd3+CxGQ@mail.gmail.com>
2014-09-12 20:20     ` Felipe Balbi
2014-09-12 20:20       ` Felipe Balbi
2014-09-12 20:20       ` Felipe Balbi
2014-09-12 20:25       ` Pramod Gurav [this message]
2014-09-12 20:25         ` Pramod Gurav
2014-09-12 20:29         ` Felipe Balbi
2014-09-12 20:29           ` Felipe Balbi
2014-09-12 20:29           ` Felipe Balbi
     [not found]           ` <20140912202942.GC25500-HgARHv6XitL9zxVx7UNMDg@public.gmane.org>
2014-09-12 20:33             ` Pramod Gurav
2014-09-12 20:33               ` Pramod Gurav
2014-09-12 20:33               ` Pramod Gurav
2014-09-12 19:28 ` [Patch v9 3/3] phy: Add Qualcomm DWC3 HS/SS PHY driver Andy Gross
2014-09-12 19:28   ` Andy Gross
2014-09-13  6:46   ` Kishon Vijay Abraham I
2014-09-13  6:46     ` Kishon Vijay Abraham I
2014-09-13  6:46     ` Kishon Vijay Abraham I
2014-09-14  2:24     ` Felipe Balbi
2014-09-14  2:24       ` Felipe Balbi
2014-09-14  2:24       ` Felipe Balbi
2014-09-15  6:37       ` Kishon Vijay Abraham I
2014-09-15  6:37         ` Kishon Vijay Abraham I
2014-09-15  6:37         ` Kishon Vijay Abraham I
2014-09-16 18:27   ` Jack Pham
2014-09-16 18:27     ` Jack Pham
     [not found]     ` <20140916182752.GB19101-NjF/qFWh7jSrUKQWM4GlyCPyLMyjRtWwAL8bYrjMMd8@public.gmane.org>
2014-09-16 20:39       ` Andy Gross
2014-09-16 20:39         ` Andy Gross
2014-09-16 20:39         ` Andy Gross
     [not found]   ` <1410550088-8754-4-git-send-email-agross-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-01-22 18:59     ` Jack Pham
2015-01-22 18:59       ` Jack Pham
2015-01-22 18:59       ` Jack Pham
2015-01-22 21:44       ` Andy Gross
2015-01-22 21:44         ` Andy Gross

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=541356CE.1020902@smartplayin.com \
    --to=pramod.gurav@smartplayin.com \
    --cc=agross@codeaurora.org \
    --cc=balbi@ti.com \
    --cc=bjorn.andersson@sonymobile.com \
    --cc=devicetree@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=iivanov@mm-sol.com \
    --cc=jackp@codeaurora.org \
    --cc=kishon@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=pramod.gurav.etc@gmail.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.