From: Bartlomiej Zolnierkiewicz <b.zolnierkie-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org> To: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> Cc: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>, Oliver Schinagl <oliver-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org>, Richard Zhu <Hong-Xing.Zhu-KZfg59tc24xl57MIdRCFDg@public.gmane.org>, Roger Quadros <rogerq-l0cyMroinI0@public.gmane.org>, Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>, linux-ide-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, devicetree <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Subject: Re: [PATCH v7 08/15] ahci-imx: Port to library-ised ahci_platform Date: Tue, 04 Mar 2014 13:04:11 +0100 [thread overview] Message-ID: <24474993.UYuAZ7PBV1@amdc1032> (raw) In-Reply-To: <1393084424-31099-9-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> Hi, On Saturday, February 22, 2014 04:53:37 PM Hans de Goede wrote: > This avoids the ugliness of creating a nested platform device from probe. > > While moving it around anyways, move the mk6q phy init code from probe > to imx_sata_enable, as the phy needs to be re-initialized on resume too, > otherwise the drive won't be recognized after resume. > > Tested on a wandboard i.mx6 quad. > > Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> > --- > .../devicetree/bindings/ata/ahci-platform.txt | 9 +- > drivers/ata/ahci_imx.c | 331 ++++++++------------- > 2 files changed, 134 insertions(+), 206 deletions(-) > > diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt > index 499bfed..d86e854 100644 > --- a/Documentation/devicetree/bindings/ata/ahci-platform.txt > +++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt > @@ -5,8 +5,9 @@ Each SATA controller should have its own node. > > Required properties: > - compatible : compatible list, one of "snps,spear-ahci", > - "snps,exynos5440-ahci", "ibm,476gtr-ahci", or > - "allwinner,sun4i-a10-ahci" > + "snps,exynos5440-ahci", "ibm,476gtr-ahci", > + "allwinner,sun4i-a10-ahci", "fsl,imx53-ahci" or > + "fsl,imx6q-ahci" > - interrupts : <interrupt mapping for SATA IRQ> > - reg : <registers mapping> > > @@ -15,6 +16,10 @@ Optional properties: > - clocks : a list of phandle + clock specifier pairs > - target-supply : regulator for SATA target power > > +"fsl,imx53-ahci", "fsl,imx6q-ahci" required properties: > +- clocks : must contain the sata, sata_ref and ahb clocks > +- clock-names : must contain "ahb" for the ahb clock > + > Examples: > sata@ffe08000 { > compatible = "snps,spear-ahci"; > diff --git a/drivers/ata/ahci_imx.c b/drivers/ata/ahci_imx.c > index dd4d6f7..3cb5d69 100644 > --- a/drivers/ata/ahci_imx.c > +++ b/drivers/ata/ahci_imx.c [...] > +static void ahci_imx_host_stop(struct ata_host *host) > +{ > + struct ahci_host_priv *hpriv = host->private_data; > > - ret = platform_device_add_resources(ahci_pdev, res, 2); > - if (ret) > - goto err_out; > + imx_sata_disable(hpriv); > +} > > - ret = platform_device_add_data(ahci_pdev, pdata, sizeof(*pdata)); > - if (ret) > - goto err_out; > +static int imx_ahci_suspend(struct device *dev) > +{ > + struct ata_host *host = dev_get_drvdata(dev); > + struct ahci_host_priv *hpriv = host->private_data; > + int ret; > > - ret = platform_device_add(ahci_pdev); > - if (ret) { > -err_out: > - platform_device_put(ahci_pdev); > + ret = ahci_platform_suspend_host(dev); > + if (ret) > return ret; > - } > + > + imx_sata_disable(hpriv); > > return 0; > } > > -static int imx_ahci_remove(struct platform_device *pdev) > +static int imx_ahci_resume(struct device *dev) > { > - struct imx_ahci_priv *imxpriv = platform_get_drvdata(pdev); > - struct platform_device *ahci_pdev = imxpriv->ahci_pdev; > + struct ata_host *host = dev_get_drvdata(dev); > + struct ahci_host_priv *hpriv = host->private_data; > + int ret; > > - platform_device_unregister(ahci_pdev); > - return 0; > + ret = imx_sata_enable(hpriv); > + if (ret) > + return ret; > + > + return ahci_platform_resume_host(dev); > } The code above introduces two new warnings for CONFIG_PM_SLEEP=n: drivers/ata/ahci_imx.c:284:12: warning: ‘imx_ahci_suspend’ defined but not used [-Wunused-function] drivers/ata/ahci_imx.c:299:12: warning: ‘imx_ahci_resume’ defined but not used [-Wunused-function] [ There needs to be CONFIG_PM_SLEEP ifdef around imh_ahci_suspend() and imx_ahci_resume(). ] All the rest looks good. > +static SIMPLE_DEV_PM_OPS(ahci_imx_pm_ops, imx_ahci_suspend, imx_ahci_resume); > + > static struct platform_driver imx_ahci_driver = { > .probe = imx_ahci_probe, > - .remove = imx_ahci_remove, > + .remove = ata_platform_remove_one, > .driver = { > .name = "ahci-imx", > .owner = THIS_MODULE, > .of_match_table = imx_ahci_of_match, > + .pm = &ahci_imx_pm_ops, > }, > }; > module_platform_driver(imx_ahci_driver); Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
WARNING: multiple messages have this Message-ID (diff)
From: b.zolnierkie@samsung.com (Bartlomiej Zolnierkiewicz) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v7 08/15] ahci-imx: Port to library-ised ahci_platform Date: Tue, 04 Mar 2014 13:04:11 +0100 [thread overview] Message-ID: <24474993.UYuAZ7PBV1@amdc1032> (raw) In-Reply-To: <1393084424-31099-9-git-send-email-hdegoede@redhat.com> Hi, On Saturday, February 22, 2014 04:53:37 PM Hans de Goede wrote: > This avoids the ugliness of creating a nested platform device from probe. > > While moving it around anyways, move the mk6q phy init code from probe > to imx_sata_enable, as the phy needs to be re-initialized on resume too, > otherwise the drive won't be recognized after resume. > > Tested on a wandboard i.mx6 quad. > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > .../devicetree/bindings/ata/ahci-platform.txt | 9 +- > drivers/ata/ahci_imx.c | 331 ++++++++------------- > 2 files changed, 134 insertions(+), 206 deletions(-) > > diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt > index 499bfed..d86e854 100644 > --- a/Documentation/devicetree/bindings/ata/ahci-platform.txt > +++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt > @@ -5,8 +5,9 @@ Each SATA controller should have its own node. > > Required properties: > - compatible : compatible list, one of "snps,spear-ahci", > - "snps,exynos5440-ahci", "ibm,476gtr-ahci", or > - "allwinner,sun4i-a10-ahci" > + "snps,exynos5440-ahci", "ibm,476gtr-ahci", > + "allwinner,sun4i-a10-ahci", "fsl,imx53-ahci" or > + "fsl,imx6q-ahci" > - interrupts : <interrupt mapping for SATA IRQ> > - reg : <registers mapping> > > @@ -15,6 +16,10 @@ Optional properties: > - clocks : a list of phandle + clock specifier pairs > - target-supply : regulator for SATA target power > > +"fsl,imx53-ahci", "fsl,imx6q-ahci" required properties: > +- clocks : must contain the sata, sata_ref and ahb clocks > +- clock-names : must contain "ahb" for the ahb clock > + > Examples: > sata at ffe08000 { > compatible = "snps,spear-ahci"; > diff --git a/drivers/ata/ahci_imx.c b/drivers/ata/ahci_imx.c > index dd4d6f7..3cb5d69 100644 > --- a/drivers/ata/ahci_imx.c > +++ b/drivers/ata/ahci_imx.c [...] > +static void ahci_imx_host_stop(struct ata_host *host) > +{ > + struct ahci_host_priv *hpriv = host->private_data; > > - ret = platform_device_add_resources(ahci_pdev, res, 2); > - if (ret) > - goto err_out; > + imx_sata_disable(hpriv); > +} > > - ret = platform_device_add_data(ahci_pdev, pdata, sizeof(*pdata)); > - if (ret) > - goto err_out; > +static int imx_ahci_suspend(struct device *dev) > +{ > + struct ata_host *host = dev_get_drvdata(dev); > + struct ahci_host_priv *hpriv = host->private_data; > + int ret; > > - ret = platform_device_add(ahci_pdev); > - if (ret) { > -err_out: > - platform_device_put(ahci_pdev); > + ret = ahci_platform_suspend_host(dev); > + if (ret) > return ret; > - } > + > + imx_sata_disable(hpriv); > > return 0; > } > > -static int imx_ahci_remove(struct platform_device *pdev) > +static int imx_ahci_resume(struct device *dev) > { > - struct imx_ahci_priv *imxpriv = platform_get_drvdata(pdev); > - struct platform_device *ahci_pdev = imxpriv->ahci_pdev; > + struct ata_host *host = dev_get_drvdata(dev); > + struct ahci_host_priv *hpriv = host->private_data; > + int ret; > > - platform_device_unregister(ahci_pdev); > - return 0; > + ret = imx_sata_enable(hpriv); > + if (ret) > + return ret; > + > + return ahci_platform_resume_host(dev); > } The code above introduces two new warnings for CONFIG_PM_SLEEP=n: drivers/ata/ahci_imx.c:284:12: warning: ?imx_ahci_suspend? defined but not used [-Wunused-function] drivers/ata/ahci_imx.c:299:12: warning: ?imx_ahci_resume? defined but not used [-Wunused-function] [ There needs to be CONFIG_PM_SLEEP ifdef around imh_ahci_suspend() and imx_ahci_resume(). ] All the rest looks good. > +static SIMPLE_DEV_PM_OPS(ahci_imx_pm_ops, imx_ahci_suspend, imx_ahci_resume); > + > static struct platform_driver imx_ahci_driver = { > .probe = imx_ahci_probe, > - .remove = imx_ahci_remove, > + .remove = ata_platform_remove_one, > .driver = { > .name = "ahci-imx", > .owner = THIS_MODULE, > .of_match_table = imx_ahci_of_match, > + .pm = &ahci_imx_pm_ops, > }, > }; > module_platform_driver(imx_ahci_driver); Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics
next prev parent reply other threads:[~2014-03-04 12:04 UTC|newest] Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-02-22 15:53 (unknown), Hans de Goede 2014-02-22 15:53 ` No subject Hans de Goede [not found] ` <1393084424-31099-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-02-22 15:53 ` [PATCH v7 01/15] libahci: Allow drivers to override start_engine Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 02/15] ahci-platform: Add support for devices with more then 1 clock Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-03-03 17:40 ` Bartlomiej Zolnierkiewicz 2014-03-03 17:40 ` Bartlomiej Zolnierkiewicz 2014-02-22 15:53 ` [PATCH v7 03/15] ahci-platform: Add support for an optional regulator for sata-target power Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 04/15] ahci-platform: Add enable_ / disable_resources helper functions Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 05/15] ahci-platform: "Library-ise" ahci_probe functionality Hans de Goede 2014-02-22 15:53 ` Hans de Goede [not found] ` <1393084424-31099-6-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-03-03 18:38 ` Bartlomiej Zolnierkiewicz 2014-03-03 18:38 ` Bartlomiej Zolnierkiewicz 2014-02-22 15:53 ` [PATCH v7 06/15] ahci-platform: "Library-ise" suspend / resume functionality Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 07/15] ARM: sunxi: Add support for Allwinner SUNXi SoCs sata to ahci_platform Hans de Goede 2014-02-22 15:53 ` Hans de Goede [not found] ` <1393084424-31099-8-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-02-22 20:40 ` Tejun Heo 2014-02-22 20:40 ` Tejun Heo 2014-02-22 15:53 ` [PATCH v7 08/15] ahci-imx: Port to library-ised ahci_platform Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-28 21:08 ` Russell King - ARM Linux 2014-02-28 21:08 ` Russell King - ARM Linux [not found] ` <20140228210820.GZ21483-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org> 2014-03-01 10:38 ` Hans de Goede 2014-03-01 10:38 ` Hans de Goede 2014-03-01 11:24 ` Russell King - ARM Linux 2014-03-01 11:24 ` Russell King - ARM Linux [not found] ` <20140301112424.GB21483-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org> 2014-03-01 12:54 ` Hans de Goede 2014-03-01 12:54 ` Hans de Goede [not found] ` <1393084424-31099-9-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-03-04 12:04 ` Bartlomiej Zolnierkiewicz [this message] 2014-03-04 12:04 ` Bartlomiej Zolnierkiewicz 2014-02-22 15:53 ` [PATCH v7 09/15] ata: ahci_platform: Add DT compatible for Synopsis DWC AHCI controller Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 10/15] ata: ahci_platform: Update DT compatible list Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 11/15] ata: ahci_platform: Manage SATA PHY Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 12/15] ata: ahci_platform: runtime resume the device before use Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 13/15] ARM: sun4i: dt: Remove grouping + simple-bus compatible for regulators Hans de Goede 2014-02-22 15:53 ` Hans de Goede [not found] ` <1393084424-31099-14-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-02-22 21:44 ` Maxime Ripard 2014-02-22 21:44 ` Maxime Ripard 2014-02-23 8:03 ` Hans de Goede 2014-02-23 8:03 ` Hans de Goede [not found] ` <5309AB64.7010603-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-02-24 9:14 ` Maxime Ripard 2014-02-24 9:14 ` Maxime Ripard 2014-02-22 15:53 ` [PATCH v7 14/15] ARM: sun4i: dt: Add ahci / sata support Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 15:53 ` [PATCH v7 15/15] ARM: sun7i: " Hans de Goede 2014-02-22 15:53 ` Hans de Goede 2014-02-22 16:26 ` [PATCH v7 00/15] ahci: library-ise ahci_platform, add sunxi driver and cleanup imx driver Hans de Goede 2014-02-22 16:26 ` Hans de Goede [not found] ` <5308CFC8.4020400-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2014-02-22 20:37 ` Tejun Heo 2014-02-22 20:37 ` Tejun Heo
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=24474993.UYuAZ7PBV1@amdc1032 \ --to=b.zolnierkie-sze3o3uu22jbdgjk7y7tuq@public.gmane.org \ --cc=Hong-Xing.Zhu-KZfg59tc24xl57MIdRCFDg@public.gmane.org \ --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \ --cc=lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \ --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=linux-ide-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \ --cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \ --cc=oliver-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org \ --cc=rogerq-l0cyMroinI0@public.gmane.org \ --cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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: linkBe 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.