All of lore.kernel.org
 help / color / mirror / Atom feed
From: Valentine <valentine.barshak@cogentembedded.com>
To: linux-sh@vger.kernel.org
Subject: Re: [PATCH] usb: phy: Move R-Car Gen2 driver registration to postcore_inictall
Date: Tue, 29 Oct 2013 17:19:09 +0000	[thread overview]
Message-ID: <526FEE0D.3090500@cogentembedded.com> (raw)
In-Reply-To: <1383063666-4291-1-git-send-email-valentine.barshak@cogentembedded.com>

On 10/29/2013 09:00 PM, Laurent Pinchart wrote:
> Hi Valentine,
>
> Thank you for the patch.
>
> On Tuesday 29 October 2013 20:21:06 Valentine Barshak wrote:
>> USB phy controls USB channels 0 and 2 which are shared between
>> PCI USB host controllers and USBHS/USBSS respectively.
>>
>> This Initializes USB phy driver earlier because we need it
>> before PCI USB host controllers are initialized.
>
> Can't you use deferred probing ?

No, unfortunately this doesn't work with PCI.
We need the USB PHY set up before the PCI driver starts.
PCI controllers should be initialized via subsys_initcall and can't be built as a module.
Deferred probing is done at late_initcall and that's far too late in this case.

The MXS USB phy uses the similar approach, initializing the driver via postcore_initcall.
I haven't observed any issues with it on R-Car Gen2 phy as well.

Thanks,
Val.

>
>> Signed-off-by: Valentine Barshak <valentine.barshak@cogentembedded.com>
>> ---
>>   drivers/usb/phy/phy-rcar-gen2-usb.c | 12 +++++++++++-
>>   1 file changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/usb/phy/phy-rcar-gen2-usb.c
>> b/drivers/usb/phy/phy-rcar-gen2-usb.c index db3ab34..32c8847 100644
>> --- a/drivers/usb/phy/phy-rcar-gen2-usb.c
>> +++ b/drivers/usb/phy/phy-rcar-gen2-usb.c
>> @@ -241,7 +241,17 @@ static struct platform_driver rcar_gen2_usb_phy_driver
>> = { .remove = rcar_gen2_usb_phy_remove,
>>   };
>>
>> -module_platform_driver(rcar_gen2_usb_phy_driver);
>> +static int __init rcar_gen2_usb_phy_mod_init(void)
>> +{
>> +	return platform_driver_register(&rcar_gen2_usb_phy_driver);
>> +}
>> +postcore_initcall(rcar_gen2_usb_phy_mod_init);
>> +
>> +static void __exit rcar_gen2_usb_phy_mod_exit(void)
>> +{
>> +	platform_driver_unregister(&rcar_gen2_usb_phy_driver);
>> +}
>> +module_exit(rcar_gen2_usb_phy_mod_exit);
>>
>>   MODULE_LICENSE("GPL v2");
>>   MODULE_DESCRIPTION("Renesas R-Car Gen2 USB phy");


  parent reply	other threads:[~2013-10-29 17:19 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-29 16:21 [PATCH] usb: phy: Move R-Car Gen2 driver registration to postcore_inictall Valentine Barshak
2013-10-29 16:59 ` Laurent Pinchart
2013-10-29 17:19 ` Valentine [this message]
2013-10-29 23:57 ` Greg KH
2013-10-30  9:56 ` Valentine
2013-10-30 14:12 ` Greg KH
2013-10-30 23:36 ` Valentine
2013-10-31 11:43 ` Valentine
2013-10-31 16:12 ` Ulrich Hecht
2013-10-31 16:29 ` Valentine
2013-10-31 16:54 ` Alan Stern
2013-11-01 13:59 ` Valentine
2013-11-01 14:17 ` Alan Stern
2013-11-01 14:32 ` Greg KH
2013-11-01 15:04 ` Valentine
2013-11-01 15:26 ` Valentine
2013-11-01 15:30 ` Greg KH
2013-11-01 15:33 ` Greg KH
2013-11-01 15:55 ` Alan Stern
2013-11-05 19:57 ` Valentine

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=526FEE0D.3090500@cogentembedded.com \
    --to=valentine.barshak@cogentembedded.com \
    --cc=linux-sh@vger.kernel.org \
    /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.