All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
To: Kevin Hilman <khilman@kernel.org>, Sekhar Nori <nsekhar@ti.com>,
	Patrick Titiano <ptitiano@baylibre.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Tejun Heo <tj@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Russell King <linux@armlinux.org.uk>,
	David Lechner <david@lechnology.com>
Cc: linux-ide@vger.kernel.org,
	Bartosz Golaszewski <bgolaszewski@baylibre.com>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org
Subject: [PATCH v6 04/14] sata: ahci-da850: get the sata clock using a connection id
Date: Mon, 23 Jan 2017 18:00:46 +0100	[thread overview]
Message-ID: <1485190856-4711-5-git-send-email-bgolaszewski@baylibre.com> (raw)
In-Reply-To: <1485190856-4711-1-git-send-email-bgolaszewski@baylibre.com>

In preparation for using two clocks in the driver (the sysclk2-based
clock and the external REFCLK), check if we got a functional clock
after calling ahci_platform_get_resources(). If not, retry calling
clk_get() with con_id specified.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Tejun Heo <tj@kernel.org>
---
 drivers/ata/ahci_da850.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/ata/ahci_da850.c b/drivers/ata/ahci_da850.c
index 267a3d3..8cfdc86 100644
--- a/drivers/ata/ahci_da850.c
+++ b/drivers/ata/ahci_da850.c
@@ -71,12 +71,28 @@ static int ahci_da850_probe(struct platform_device *pdev)
 	struct ahci_host_priv *hpriv;
 	struct resource *res;
 	void __iomem *pwrdn_reg;
+	struct clk *clk;
 	int rc;
 
 	hpriv = ahci_platform_get_resources(pdev);
 	if (IS_ERR(hpriv))
 		return PTR_ERR(hpriv);
 
+	/*
+	 * Internally ahci_platform_get_resources() calls clk_get(dev, NULL)
+	 * when trying to obtain the first clock. This SATA controller uses
+	 * two clocks for which we specify two connection ids. If we don't
+	 * have a clock at this point - call clk_get() again with
+	 * con_id = "sata".
+	 */
+	if (!hpriv->clks[0]) {
+		clk = clk_get(dev, "sata");
+		if (IS_ERR(clk))
+			return PTR_ERR(clk);
+
+		hpriv->clks[0] = clk;
+	}
+
 	rc = ahci_platform_enable_resources(hpriv);
 	if (rc)
 		return rc;
-- 
2.9.3

WARNING: multiple messages have this Message-ID (diff)
From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
To: Kevin Hilman <khilman@kernel.org>, Sekhar Nori <nsekhar@ti.com>,
	Patrick Titiano <ptitiano@baylibre.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Tejun Heo <tj@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Russell King <linux@armlinux.org.uk>,
	David Lechner <david@lechnology.com>
Cc: linux-ide@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	Bartosz Golaszewski <bgolaszewski@baylibre.com>
Subject: [PATCH v6 04/14] sata: ahci-da850: get the sata clock using a connection id
Date: Mon, 23 Jan 2017 18:00:46 +0100	[thread overview]
Message-ID: <1485190856-4711-5-git-send-email-bgolaszewski@baylibre.com> (raw)
In-Reply-To: <1485190856-4711-1-git-send-email-bgolaszewski@baylibre.com>

In preparation for using two clocks in the driver (the sysclk2-based
clock and the external REFCLK), check if we got a functional clock
after calling ahci_platform_get_resources(). If not, retry calling
clk_get() with con_id specified.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Tejun Heo <tj@kernel.org>
---
 drivers/ata/ahci_da850.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/ata/ahci_da850.c b/drivers/ata/ahci_da850.c
index 267a3d3..8cfdc86 100644
--- a/drivers/ata/ahci_da850.c
+++ b/drivers/ata/ahci_da850.c
@@ -71,12 +71,28 @@ static int ahci_da850_probe(struct platform_device *pdev)
 	struct ahci_host_priv *hpriv;
 	struct resource *res;
 	void __iomem *pwrdn_reg;
+	struct clk *clk;
 	int rc;
 
 	hpriv = ahci_platform_get_resources(pdev);
 	if (IS_ERR(hpriv))
 		return PTR_ERR(hpriv);
 
+	/*
+	 * Internally ahci_platform_get_resources() calls clk_get(dev, NULL)
+	 * when trying to obtain the first clock. This SATA controller uses
+	 * two clocks for which we specify two connection ids. If we don't
+	 * have a clock at this point - call clk_get() again with
+	 * con_id = "sata".
+	 */
+	if (!hpriv->clks[0]) {
+		clk = clk_get(dev, "sata");
+		if (IS_ERR(clk))
+			return PTR_ERR(clk);
+
+		hpriv->clks[0] = clk;
+	}
+
 	rc = ahci_platform_enable_resources(hpriv);
 	if (rc)
 		return rc;
-- 
2.9.3

WARNING: multiple messages have this Message-ID (diff)
From: bgolaszewski@baylibre.com (Bartosz Golaszewski)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v6 04/14] sata: ahci-da850: get the sata clock using a connection id
Date: Mon, 23 Jan 2017 18:00:46 +0100	[thread overview]
Message-ID: <1485190856-4711-5-git-send-email-bgolaszewski@baylibre.com> (raw)
In-Reply-To: <1485190856-4711-1-git-send-email-bgolaszewski@baylibre.com>

In preparation for using two clocks in the driver (the sysclk2-based
clock and the external REFCLK), check if we got a functional clock
after calling ahci_platform_get_resources(). If not, retry calling
clk_get() with con_id specified.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Acked-by: Tejun Heo <tj@kernel.org>
---
 drivers/ata/ahci_da850.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/ata/ahci_da850.c b/drivers/ata/ahci_da850.c
index 267a3d3..8cfdc86 100644
--- a/drivers/ata/ahci_da850.c
+++ b/drivers/ata/ahci_da850.c
@@ -71,12 +71,28 @@ static int ahci_da850_probe(struct platform_device *pdev)
 	struct ahci_host_priv *hpriv;
 	struct resource *res;
 	void __iomem *pwrdn_reg;
+	struct clk *clk;
 	int rc;
 
 	hpriv = ahci_platform_get_resources(pdev);
 	if (IS_ERR(hpriv))
 		return PTR_ERR(hpriv);
 
+	/*
+	 * Internally ahci_platform_get_resources() calls clk_get(dev, NULL)
+	 * when trying to obtain the first clock. This SATA controller uses
+	 * two clocks for which we specify two connection ids. If we don't
+	 * have a clock at this point - call clk_get() again with
+	 * con_id = "sata".
+	 */
+	if (!hpriv->clks[0]) {
+		clk = clk_get(dev, "sata");
+		if (IS_ERR(clk))
+			return PTR_ERR(clk);
+
+		hpriv->clks[0] = clk;
+	}
+
 	rc = ahci_platform_enable_resources(hpriv);
 	if (rc)
 		return rc;
-- 
2.9.3

  parent reply	other threads:[~2017-01-23 17:00 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-23 17:00 [PATCH v6 00/14] ARM: da850-lcdk: add SATA support Bartosz Golaszewski
2017-01-23 17:00 ` Bartosz Golaszewski
2017-01-23 17:00 ` Bartosz Golaszewski
2017-01-23 17:00 ` [PATCH v6 01/14] devicetree: bindings: add bindings for ahci-da850 Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-27 20:58   ` Rob Herring
2017-01-27 20:58     ` Rob Herring
2017-01-23 17:00 ` [PATCH v6 02/14] ARM: davinci_all_defconfig: enable SATA modules Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00 ` [PATCH v6 03/14] ARM: davinci: add a clock lookup entry for the SATA clock Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00 ` Bartosz Golaszewski [this message]
2017-01-23 17:00   ` [PATCH v6 04/14] sata: ahci-da850: get the sata clock using a connection id Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00 ` [PATCH v6 05/14] ARM: davinci: da850: add con_id for the SATA clock Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-26 16:56   ` Grygorii Strashko
2017-01-26 16:56     ` Grygorii Strashko
2017-01-26 16:56     ` Grygorii Strashko
2017-01-26 17:40     ` Sekhar Nori
2017-01-26 17:40       ` Sekhar Nori
2017-01-26 17:40       ` Sekhar Nori
     [not found]       ` <645778dd-6727-abd0-3dd9-a7e0d5aa4983-l0cyMroinI0@public.gmane.org>
2017-01-27  9:55         ` Bartosz Golaszewski
2017-01-27  9:55           ` Bartosz Golaszewski
2017-01-27  9:55           ` Bartosz Golaszewski
2017-01-27  9:58           ` Sekhar Nori
2017-01-27  9:58             ` Sekhar Nori
2017-01-27  9:58             ` Sekhar Nori
2017-01-23 17:00 ` [PATCH v6 06/14] ARM: davinci: da850: model the SATA refclk Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00 ` [PATCH v6 07/14] sata: ahci-da850: add device tree match table Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00 ` [PATCH v6 08/14] sata: ahci-da850: implement a workaround for the softreset quirk Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00 ` [PATCH v6 09/14] sata: ahci: export ahci_do_hardreset() locally Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00 ` [PATCH v6 10/14] sata: ahci-da850: add a workaround for controller instability Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00 ` [PATCH v6 11/14] sata: ahci-da850: un-hardcode the MPY bits Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00 ` [PATCH v6 12/14] ARM: davinci: remove BUG_ON() from da850_register_sata() Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
2017-01-23 17:00 ` [PATCH v6 13/14] ARM: dts: da850: add the SATA node Bartosz Golaszewski
2017-01-23 17:00   ` Bartosz Golaszewski
     [not found] ` <1485190856-4711-1-git-send-email-bgolaszewski-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>
2017-01-23 17:00   ` [PATCH v6 14/14] ARM: dts: da850-lcdk: enable " Bartosz Golaszewski
2017-01-23 17:00     ` Bartosz Golaszewski
2017-01-23 17:00     ` Bartosz Golaszewski

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=1485190856-4711-5-git-send-email-bgolaszewski@baylibre.com \
    --to=bgolaszewski@baylibre.com \
    --cc=david@lechnology.com \
    --cc=devicetree@vger.kernel.org \
    --cc=khilman@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=mturquette@baylibre.com \
    --cc=nsekhar@ti.com \
    --cc=ptitiano@baylibre.com \
    --cc=robh+dt@kernel.org \
    --cc=tj@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.