Re: [PATCH v3] USB: PHY: Re-organize Tegra USB PHY driver

From: ABRAHAM, KISHON VIJAY
Date: Mon Sep 24 2012 - 02:18:38 EST


Hi,

On Sat, Sep 22, 2012 at 2:08 PM, Venu Byravarasu <vbyravarasu@xxxxxxxxxx> wrote:
>> -----Original Message-----
>> From: Stephen Warren [mailto:swarren@xxxxxxxxxxxxx]
>> Sent: Friday, September 21, 2012 9:45 PM
>> To: ABRAHAM, KISHON VIJAY
>> Cc: Venu Byravarasu; balbi@xxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx; linux-
>> kernel@xxxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx
>> Subject: Re: [PATCH v3] USB: PHY: Re-organize Tegra USB PHY driver
>>
>> On 09/21/2012 07:09 AM, ABRAHAM, KISHON VIJAY wrote:
>> > Hi,
>> >
>> > On Fri, Sep 21, 2012 at 5:50 PM, Venu Byravarasu
>> <vbyravarasu@xxxxxxxxxx> wrote:
>> >> NVIDIA produces several Tegra SoCs viz Tegra20, Tegra30 etc.
>> >> In order to support USB PHY drivers on these SoCs, existing
>> >> PHY driver is split into SoC agnostic common USB PHY driver
>> >> and Tegra20-specific USB phy driver. This will facilitate
>> >> easy addition and deletion of phy drivers for Tegra SoCs.
>>
>> >> @@ -618,6 +618,9 @@ static int tegra_ehci_probe(struct platform_device
>> *pdev)
>> ...
>> >> pdata = pdev->dev.platform_data;
>> >> if (!pdata) {
>>
>> Some missing lines of context are:
>>
>> dev_err(&pdev->dev, "Platform data missing\n");
>> return -EINVAL;
>> }
>>
>> ...
>> >> + params.mode = TEGRA_USB_PHY_MODE_HOST;
>> >> + params.config = pdata->phy_config;
>> >
>> > I fail to understand how pdata is not NULL in dt boot. I know i've
>> > already given this comment and you replied that you dint see any
>> > crash. But I'd like to know where and how pdata gets populated.
>>
>> In practice, the platform uses AUXDATA to provide platform data to the
>> driver even when it's instantiated using device tree; see
>> arch/arm/mach-tegra/board-dt-tegra20.c variables tegra_ehci*_pdata and
>> tegra20_auxdata_lookup[].
>>
>> In the slightly (very very slightly, hopefully) longer term, I would
>> like to completely remove the AUXDATA setup from board-dt-tegra20.c;
>> tegra_ehci_probe() should do something like:
>>
>> pdata = pdev->dev.platform_data
>> if (!pdata)
>> pdata = parse_pdata_from_dt();
>> /* user didn't specify any in DT either */
>> if (!pdata)
>> pdata = default_pdata_for_port();
>>
>> ... where perhaps the use of defaults could be folded into
>> parse_pdata_from_dt().
>
>
> Thanks Stephen for the detailed explanation.
>
> Kishon / Felipe,
> Do you have any more questions in this related, before patch can be applied?

I don't have any further comments.

Thanks
Kishon
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/