Linux-mmc Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI
@ 2020-01-21 10:21 Manish Narani
  2020-01-21 10:21 ` [PATCH 1/4] firmware: xilinx: Add ZynqMP Tap Delay setup ioctl to the valid list Manish Narani
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Manish Narani @ 2020-01-21 10:21 UTC (permalink / raw)
  To: michal.simek, adrian.hunter, ulf.hansson, jolly.shah, rajan.vaja,
	nava.manne, manish.narani, tejas.patel
  Cc: linux-arm-kernel, linux-kernel, linux-mmc

This patch series includes:
-> Mark the Tap Delay Node as valid for ioctl calls
-> Add support for DLL reset in firmware driver
-> Add support to reset DLL from Arasan SDHCI driver for ZynqMP platform
-> Fix incorrect base clock reporting issue

Manish Narani (4):
  firmware: xilinx: Add ZynqMP Tap Delay setup ioctl to the valid list
  firmware: xilinx: Add DLL reset support
  mmc: sdhci-of-arasan: Add support for DLL reset for ZynqMP platforms
  sdhci: arasan: Remove quirk for broken base clock

 drivers/firmware/xilinx/zynqmp.c     |  2 +
 drivers/mmc/host/sdhci-of-arasan.c   | 59 +++++++++++++++++++++++++++-
 include/linux/firmware/xlnx-zynqmp.h |  9 ++++-
 3 files changed, 68 insertions(+), 2 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/4] firmware: xilinx: Add ZynqMP Tap Delay setup ioctl to the valid list
  2020-01-21 10:21 [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI Manish Narani
@ 2020-01-21 10:21 ` Manish Narani
  2020-02-04 11:39   ` Michal Simek
  2020-01-21 10:21 ` [PATCH 2/4] firmware: xilinx: Add DLL reset support Manish Narani
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Manish Narani @ 2020-01-21 10:21 UTC (permalink / raw)
  To: michal.simek, adrian.hunter, ulf.hansson, jolly.shah, rajan.vaja,
	nava.manne, manish.narani, tejas.patel
  Cc: linux-arm-kernel, linux-kernel, linux-mmc

The Tap Delay setup ioctl was not added to valid list due to which it
may fail to set Tap Delays for SD. This patch fixes the same.

Signed-off-by: Manish Narani <manish.narani@xilinx.com>
---
 drivers/firmware/xilinx/zynqmp.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
index 75bdfaa08380..89eb198cee5e 100644
--- a/drivers/firmware/xilinx/zynqmp.c
+++ b/drivers/firmware/xilinx/zynqmp.c
@@ -469,6 +469,7 @@ static int zynqmp_pm_clock_getparent(u32 clock_id, u32 *parent_id)
 static inline int zynqmp_is_valid_ioctl(u32 ioctl_id)
 {
 	switch (ioctl_id) {
+	case IOCTL_SET_SD_TAPDELAY:
 	case IOCTL_SET_PLL_FRAC_MODE:
 	case IOCTL_GET_PLL_FRAC_MODE:
 	case IOCTL_SET_PLL_FRAC_DATA:
-- 
2.17.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 2/4] firmware: xilinx: Add DLL reset support
  2020-01-21 10:21 [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI Manish Narani
  2020-01-21 10:21 ` [PATCH 1/4] firmware: xilinx: Add ZynqMP Tap Delay setup ioctl to the valid list Manish Narani
@ 2020-01-21 10:21 ` Manish Narani
  2020-02-04 11:39   ` Michal Simek
  2020-01-21 10:21 ` [PATCH 3/4] mmc: sdhci-of-arasan: Add support for DLL reset for ZynqMP platforms Manish Narani
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Manish Narani @ 2020-01-21 10:21 UTC (permalink / raw)
  To: michal.simek, adrian.hunter, ulf.hansson, jolly.shah, rajan.vaja,
	nava.manne, manish.narani, tejas.patel
  Cc: linux-arm-kernel, linux-kernel, linux-mmc

SD DLL resets are required for some of the operations on ZynqMP platform.
Add DLL reset support in ZynqMP firmware driver for SD DLL reset.

Signed-off-by: Manish Narani <manish.narani@xilinx.com>
---
 drivers/firmware/xilinx/zynqmp.c     | 1 +
 include/linux/firmware/xlnx-zynqmp.h | 9 ++++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
index 89eb198cee5e..165ec0f1e10a 100644
--- a/drivers/firmware/xilinx/zynqmp.c
+++ b/drivers/firmware/xilinx/zynqmp.c
@@ -469,6 +469,7 @@ static int zynqmp_pm_clock_getparent(u32 clock_id, u32 *parent_id)
 static inline int zynqmp_is_valid_ioctl(u32 ioctl_id)
 {
 	switch (ioctl_id) {
+	case IOCTL_SD_DLL_RESET:
 	case IOCTL_SET_SD_TAPDELAY:
 	case IOCTL_SET_PLL_FRAC_MODE:
 	case IOCTL_GET_PLL_FRAC_MODE:
diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h
index e41ad9e37136..01a6d972b8a8 100644
--- a/include/linux/firmware/xlnx-zynqmp.h
+++ b/include/linux/firmware/xlnx-zynqmp.h
@@ -92,7 +92,8 @@ enum pm_ret_status {
 };
 
 enum pm_ioctl_id {
-	IOCTL_SET_SD_TAPDELAY = 7,
+	IOCTL_SD_DLL_RESET = 6,
+	IOCTL_SET_SD_TAPDELAY,
 	IOCTL_SET_PLL_FRAC_MODE,
 	IOCTL_GET_PLL_FRAC_MODE,
 	IOCTL_SET_PLL_FRAC_DATA,
@@ -262,6 +263,12 @@ enum tap_delay_type {
 	PM_TAPDELAY_OUTPUT,
 };
 
+enum dll_reset_type {
+	PM_DLL_RESET_ASSERT,
+	PM_DLL_RESET_RELEASE,
+	PM_DLL_RESET_PULSE,
+};
+
 /**
  * struct zynqmp_pm_query_data - PM query data
  * @qid:	query ID
-- 
2.17.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 3/4] mmc: sdhci-of-arasan: Add support for DLL reset for ZynqMP platforms
  2020-01-21 10:21 [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI Manish Narani
  2020-01-21 10:21 ` [PATCH 1/4] firmware: xilinx: Add ZynqMP Tap Delay setup ioctl to the valid list Manish Narani
  2020-01-21 10:21 ` [PATCH 2/4] firmware: xilinx: Add DLL reset support Manish Narani
@ 2020-01-21 10:21 ` Manish Narani
  2020-02-03 11:31   ` Adrian Hunter
  2020-01-21 10:21 ` [PATCH 4/4] sdhci: arasan: Remove quirk for broken base clock Manish Narani
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Manish Narani @ 2020-01-21 10:21 UTC (permalink / raw)
  To: michal.simek, adrian.hunter, ulf.hansson, jolly.shah, rajan.vaja,
	nava.manne, manish.narani, tejas.patel
  Cc: linux-arm-kernel, linux-kernel, linux-mmc

The DLL resets are required while executing the auto tuning procedure in
ZynqMP. This patch adds code to support the same.

Signed-off-by: Manish Narani <manish.narani@xilinx.com>
---
 drivers/mmc/host/sdhci-of-arasan.c | 46 ++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
index e49b44b4d82e..39176ab5ca1f 100644
--- a/drivers/mmc/host/sdhci-of-arasan.c
+++ b/drivers/mmc/host/sdhci-of-arasan.c
@@ -757,6 +757,50 @@ static const struct clk_ops zynqmp_sampleclk_ops = {
 	.set_phase = sdhci_zynqmp_sampleclk_set_phase,
 };
 
+static void arasan_zynqmp_dll_reset(struct sdhci_host *host, u32 deviceid)
+{
+	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
+	struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
+	struct sdhci_arasan_zynqmp_clk_data *zynqmp_clk_data =
+		sdhci_arasan->clk_data.clk_of_data;
+	const struct zynqmp_eemi_ops *eemi_ops = zynqmp_clk_data->eemi_ops;
+	u16 clk;
+
+	clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL);
+	clk &= ~(SDHCI_CLOCK_CARD_EN | SDHCI_CLOCK_INT_EN);
+	sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL);
+
+	/* Issue DLL Reset */
+	eemi_ops->ioctl(deviceid, IOCTL_SD_DLL_RESET,
+			PM_DLL_RESET_PULSE, 0, NULL);
+
+	clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL);
+
+	sdhci_enable_clk(host, clk);
+}
+
+static int arasan_zynqmp_execute_tuning(struct mmc_host *mmc, u32 opcode)
+{
+	struct sdhci_host *host = mmc_priv(mmc);
+	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
+	struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
+	struct clk_hw *hw = &sdhci_arasan->clk_data.sdcardclk_hw;
+	const char *clk_name = clk_hw_get_name(hw);
+	u32 device_id = !strcmp(clk_name, "clk_out_sd0") ? NODE_SD_0 :
+							   NODE_SD_1;
+	int err;
+
+	arasan_zynqmp_dll_reset(host, device_id);
+
+	err = sdhci_execute_tuning(mmc, opcode);
+	if (err)
+		return err;
+
+	arasan_zynqmp_dll_reset(host, device_id);
+
+	return 0;
+}
+
 /**
  * sdhci_arasan_update_clockmultiplier - Set corecfg_clockmultiplier
  *
@@ -1247,6 +1291,8 @@ static int sdhci_arasan_probe(struct platform_device *pdev)
 
 		zynqmp_clk_data->eemi_ops = eemi_ops;
 		sdhci_arasan->clk_data.clk_of_data = zynqmp_clk_data;
+		host->mmc_host_ops.execute_tuning =
+			arasan_zynqmp_execute_tuning;
 	}
 
 	arasan_dt_parse_clk_phases(&pdev->dev, &sdhci_arasan->clk_data);
-- 
2.17.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 4/4] sdhci: arasan: Remove quirk for broken base clock
  2020-01-21 10:21 [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI Manish Narani
                   ` (2 preceding siblings ...)
  2020-01-21 10:21 ` [PATCH 3/4] mmc: sdhci-of-arasan: Add support for DLL reset for ZynqMP platforms Manish Narani
@ 2020-01-21 10:21 ` Manish Narani
  2020-02-03 11:31   ` Adrian Hunter
  2020-02-03  7:20 ` [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI Manish Narani
  2020-02-13 13:56 ` Ulf Hansson
  5 siblings, 1 reply; 15+ messages in thread
From: Manish Narani @ 2020-01-21 10:21 UTC (permalink / raw)
  To: michal.simek, adrian.hunter, ulf.hansson, jolly.shah, rajan.vaja,
	nava.manne, manish.narani, tejas.patel
  Cc: linux-arm-kernel, linux-kernel, linux-mmc

This patch removes quirk which indicates a broken base clock. This was
making the kernel report wrong base clock of ~187MHz instead of 200MHz
even as the measurement on the hardware was showing 200MHz.

Signed-off-by: Manish Narani <manish.narani@xilinx.com>
State: pending
---
 drivers/mmc/host/sdhci-of-arasan.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
index 39176ab5ca1f..0146d7dd315b 100644
--- a/drivers/mmc/host/sdhci-of-arasan.c
+++ b/drivers/mmc/host/sdhci-of-arasan.c
@@ -358,6 +358,17 @@ static struct sdhci_arasan_of_data sdhci_arasan_data = {
 	.pdata = &sdhci_arasan_pdata,
 };
 
+static const struct sdhci_pltfm_data sdhci_arasan_zynqmp_pdata = {
+	.ops = &sdhci_arasan_ops,
+	.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
+			SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN |
+			SDHCI_QUIRK2_STOP_WITH_TC,
+};
+
+static struct sdhci_arasan_of_data sdhci_arasan_zynqmp_data = {
+	.pdata = &sdhci_arasan_zynqmp_pdata,
+};
+
 static u32 sdhci_arasan_cqhci_irq(struct sdhci_host *host, u32 intmask)
 {
 	int cmd_error = 0;
@@ -553,7 +564,7 @@ static const struct of_device_id sdhci_arasan_of_match[] = {
 	},
 	{
 		.compatible = "xlnx,zynqmp-8.9a",
-		.data = &sdhci_arasan_data,
+		.data = &sdhci_arasan_zynqmp_data,
 	},
 	{ /* sentinel */ }
 };
-- 
2.17.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI
  2020-01-21 10:21 [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI Manish Narani
                   ` (3 preceding siblings ...)
  2020-01-21 10:21 ` [PATCH 4/4] sdhci: arasan: Remove quirk for broken base clock Manish Narani
@ 2020-02-03  7:20 ` Manish Narani
  2020-02-13 13:56 ` Ulf Hansson
  5 siblings, 0 replies; 15+ messages in thread
From: Manish Narani @ 2020-02-03  7:20 UTC (permalink / raw)
  To: Manish Narani, Michal Simek, adrian.hunter, ulf.hansson,
	Jolly Shah, Rajan Vaja, Nava kishore Manne, Tejas Patel
  Cc: linux-arm-kernel, linux-kernel, linux-mmc

Ping!

> -----Original Message-----
> From: Manish Narani <manish.narani@xilinx.com>
> Sent: Tuesday, January 21, 2020 3:52 PM
> To: Michal Simek <michals@xilinx.com>; adrian.hunter@intel.com;
> ulf.hansson@linaro.org; Jolly Shah <JOLLYS@xilinx.com>; Rajan Vaja
> <RAJANV@xilinx.com>; Nava kishore Manne <navam@xilinx.com>; Manish
> Narani <MNARANI@xilinx.com>; Tejas Patel <TEJASP@xilinx.com>
> Cc: linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; linux-
> mmc@vger.kernel.org
> Subject: [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI
> 
> This patch series includes:
> -> Mark the Tap Delay Node as valid for ioctl calls
> -> Add support for DLL reset in firmware driver
> -> Add support to reset DLL from Arasan SDHCI driver for ZynqMP platform
> -> Fix incorrect base clock reporting issue
> 
> Manish Narani (4):
>   firmware: xilinx: Add ZynqMP Tap Delay setup ioctl to the valid list
>   firmware: xilinx: Add DLL reset support
>   mmc: sdhci-of-arasan: Add support for DLL reset for ZynqMP platforms
>   sdhci: arasan: Remove quirk for broken base clock
> 
>  drivers/firmware/xilinx/zynqmp.c     |  2 +
>  drivers/mmc/host/sdhci-of-arasan.c   | 59 +++++++++++++++++++++++++++-
>  include/linux/firmware/xlnx-zynqmp.h |  9 ++++-
>  3 files changed, 68 insertions(+), 2 deletions(-)
> 
> --
> 2.17.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4/4] sdhci: arasan: Remove quirk for broken base clock
  2020-01-21 10:21 ` [PATCH 4/4] sdhci: arasan: Remove quirk for broken base clock Manish Narani
@ 2020-02-03 11:31   ` Adrian Hunter
  2020-02-04 11:42     ` Michal Simek
  0 siblings, 1 reply; 15+ messages in thread
From: Adrian Hunter @ 2020-02-03 11:31 UTC (permalink / raw)
  To: Manish Narani, michal.simek, ulf.hansson, jolly.shah, rajan.vaja,
	nava.manne, tejas.patel
  Cc: linux-arm-kernel, linux-kernel, linux-mmc

On 21/01/20 12:21 pm, Manish Narani wrote:
> This patch removes quirk which indicates a broken base clock. This was
> making the kernel report wrong base clock of ~187MHz instead of 200MHz
> even as the measurement on the hardware was showing 200MHz.
> 
> Signed-off-by: Manish Narani <manish.narani@xilinx.com>
> State: pending

Huh?

Otherwise:

Acked-by: Adrian Hunter <adrian.hunter@intel.com>

> ---
>  drivers/mmc/host/sdhci-of-arasan.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
> index 39176ab5ca1f..0146d7dd315b 100644
> --- a/drivers/mmc/host/sdhci-of-arasan.c
> +++ b/drivers/mmc/host/sdhci-of-arasan.c
> @@ -358,6 +358,17 @@ static struct sdhci_arasan_of_data sdhci_arasan_data = {
>  	.pdata = &sdhci_arasan_pdata,
>  };
>  
> +static const struct sdhci_pltfm_data sdhci_arasan_zynqmp_pdata = {
> +	.ops = &sdhci_arasan_ops,
> +	.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
> +			SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN |
> +			SDHCI_QUIRK2_STOP_WITH_TC,
> +};
> +
> +static struct sdhci_arasan_of_data sdhci_arasan_zynqmp_data = {
> +	.pdata = &sdhci_arasan_zynqmp_pdata,
> +};
> +
>  static u32 sdhci_arasan_cqhci_irq(struct sdhci_host *host, u32 intmask)
>  {
>  	int cmd_error = 0;
> @@ -553,7 +564,7 @@ static const struct of_device_id sdhci_arasan_of_match[] = {
>  	},
>  	{
>  		.compatible = "xlnx,zynqmp-8.9a",
> -		.data = &sdhci_arasan_data,
> +		.data = &sdhci_arasan_zynqmp_data,
>  	},
>  	{ /* sentinel */ }
>  };
> 


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/4] mmc: sdhci-of-arasan: Add support for DLL reset for ZynqMP platforms
  2020-01-21 10:21 ` [PATCH 3/4] mmc: sdhci-of-arasan: Add support for DLL reset for ZynqMP platforms Manish Narani
@ 2020-02-03 11:31   ` Adrian Hunter
  0 siblings, 0 replies; 15+ messages in thread
From: Adrian Hunter @ 2020-02-03 11:31 UTC (permalink / raw)
  To: Manish Narani, michal.simek, ulf.hansson, jolly.shah, rajan.vaja,
	nava.manne, tejas.patel
  Cc: linux-arm-kernel, linux-kernel, linux-mmc

On 21/01/20 12:21 pm, Manish Narani wrote:
> The DLL resets are required while executing the auto tuning procedure in
> ZynqMP. This patch adds code to support the same.
> 
> Signed-off-by: Manish Narani <manish.narani@xilinx.com>

Acked-by: Adrian Hunter <adrian.hunter@intel.com>

> ---
>  drivers/mmc/host/sdhci-of-arasan.c | 46 ++++++++++++++++++++++++++++++
>  1 file changed, 46 insertions(+)
> 
> diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
> index e49b44b4d82e..39176ab5ca1f 100644
> --- a/drivers/mmc/host/sdhci-of-arasan.c
> +++ b/drivers/mmc/host/sdhci-of-arasan.c
> @@ -757,6 +757,50 @@ static const struct clk_ops zynqmp_sampleclk_ops = {
>  	.set_phase = sdhci_zynqmp_sampleclk_set_phase,
>  };
>  
> +static void arasan_zynqmp_dll_reset(struct sdhci_host *host, u32 deviceid)
> +{
> +	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
> +	struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
> +	struct sdhci_arasan_zynqmp_clk_data *zynqmp_clk_data =
> +		sdhci_arasan->clk_data.clk_of_data;
> +	const struct zynqmp_eemi_ops *eemi_ops = zynqmp_clk_data->eemi_ops;
> +	u16 clk;
> +
> +	clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL);
> +	clk &= ~(SDHCI_CLOCK_CARD_EN | SDHCI_CLOCK_INT_EN);
> +	sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL);
> +
> +	/* Issue DLL Reset */
> +	eemi_ops->ioctl(deviceid, IOCTL_SD_DLL_RESET,
> +			PM_DLL_RESET_PULSE, 0, NULL);
> +
> +	clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL);
> +
> +	sdhci_enable_clk(host, clk);
> +}
> +
> +static int arasan_zynqmp_execute_tuning(struct mmc_host *mmc, u32 opcode)
> +{
> +	struct sdhci_host *host = mmc_priv(mmc);
> +	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
> +	struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
> +	struct clk_hw *hw = &sdhci_arasan->clk_data.sdcardclk_hw;
> +	const char *clk_name = clk_hw_get_name(hw);
> +	u32 device_id = !strcmp(clk_name, "clk_out_sd0") ? NODE_SD_0 :
> +							   NODE_SD_1;
> +	int err;
> +
> +	arasan_zynqmp_dll_reset(host, device_id);
> +
> +	err = sdhci_execute_tuning(mmc, opcode);
> +	if (err)
> +		return err;
> +
> +	arasan_zynqmp_dll_reset(host, device_id);
> +
> +	return 0;
> +}
> +
>  /**
>   * sdhci_arasan_update_clockmultiplier - Set corecfg_clockmultiplier
>   *
> @@ -1247,6 +1291,8 @@ static int sdhci_arasan_probe(struct platform_device *pdev)
>  
>  		zynqmp_clk_data->eemi_ops = eemi_ops;
>  		sdhci_arasan->clk_data.clk_of_data = zynqmp_clk_data;
> +		host->mmc_host_ops.execute_tuning =
> +			arasan_zynqmp_execute_tuning;
>  	}
>  
>  	arasan_dt_parse_clk_phases(&pdev->dev, &sdhci_arasan->clk_data);
> 


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/4] firmware: xilinx: Add ZynqMP Tap Delay setup ioctl to the valid list
  2020-01-21 10:21 ` [PATCH 1/4] firmware: xilinx: Add ZynqMP Tap Delay setup ioctl to the valid list Manish Narani
@ 2020-02-04 11:39   ` Michal Simek
  0 siblings, 0 replies; 15+ messages in thread
From: Michal Simek @ 2020-02-04 11:39 UTC (permalink / raw)
  To: Manish Narani, michal.simek, adrian.hunter, ulf.hansson,
	jolly.shah, rajan.vaja, nava.manne, tejas.patel
  Cc: linux-arm-kernel, linux-kernel, linux-mmc

On 21. 01. 20 11:21, Manish Narani wrote:
> The Tap Delay setup ioctl was not added to valid list due to which it
> may fail to set Tap Delays for SD. This patch fixes the same.
> 
> Signed-off-by: Manish Narani <manish.narani@xilinx.com>
> ---
>  drivers/firmware/xilinx/zynqmp.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
> index 75bdfaa08380..89eb198cee5e 100644
> --- a/drivers/firmware/xilinx/zynqmp.c
> +++ b/drivers/firmware/xilinx/zynqmp.c
> @@ -469,6 +469,7 @@ static int zynqmp_pm_clock_getparent(u32 clock_id, u32 *parent_id)
>  static inline int zynqmp_is_valid_ioctl(u32 ioctl_id)
>  {
>  	switch (ioctl_id) {
> +	case IOCTL_SET_SD_TAPDELAY:
>  	case IOCTL_SET_PLL_FRAC_MODE:
>  	case IOCTL_GET_PLL_FRAC_MODE:
>  	case IOCTL_SET_PLL_FRAC_DATA:
> 

Acked-by: Michal Simek <michal.simek@xilinx.com>

Thanks,
Michal

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/4] firmware: xilinx: Add DLL reset support
  2020-01-21 10:21 ` [PATCH 2/4] firmware: xilinx: Add DLL reset support Manish Narani
@ 2020-02-04 11:39   ` Michal Simek
  0 siblings, 0 replies; 15+ messages in thread
From: Michal Simek @ 2020-02-04 11:39 UTC (permalink / raw)
  To: Manish Narani, michal.simek, adrian.hunter, ulf.hansson,
	jolly.shah, rajan.vaja, nava.manne, tejas.patel
  Cc: linux-arm-kernel, linux-kernel, linux-mmc

On 21. 01. 20 11:21, Manish Narani wrote:
> SD DLL resets are required for some of the operations on ZynqMP platform.
> Add DLL reset support in ZynqMP firmware driver for SD DLL reset.
> 
> Signed-off-by: Manish Narani <manish.narani@xilinx.com>
> ---
>  drivers/firmware/xilinx/zynqmp.c     | 1 +
>  include/linux/firmware/xlnx-zynqmp.h | 9 ++++++++-
>  2 files changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
> index 89eb198cee5e..165ec0f1e10a 100644
> --- a/drivers/firmware/xilinx/zynqmp.c
> +++ b/drivers/firmware/xilinx/zynqmp.c
> @@ -469,6 +469,7 @@ static int zynqmp_pm_clock_getparent(u32 clock_id, u32 *parent_id)
>  static inline int zynqmp_is_valid_ioctl(u32 ioctl_id)
>  {
>  	switch (ioctl_id) {
> +	case IOCTL_SD_DLL_RESET:
>  	case IOCTL_SET_SD_TAPDELAY:
>  	case IOCTL_SET_PLL_FRAC_MODE:
>  	case IOCTL_GET_PLL_FRAC_MODE:
> diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h
> index e41ad9e37136..01a6d972b8a8 100644
> --- a/include/linux/firmware/xlnx-zynqmp.h
> +++ b/include/linux/firmware/xlnx-zynqmp.h
> @@ -92,7 +92,8 @@ enum pm_ret_status {
>  };
>  
>  enum pm_ioctl_id {
> -	IOCTL_SET_SD_TAPDELAY = 7,
> +	IOCTL_SD_DLL_RESET = 6,
> +	IOCTL_SET_SD_TAPDELAY,
>  	IOCTL_SET_PLL_FRAC_MODE,
>  	IOCTL_GET_PLL_FRAC_MODE,
>  	IOCTL_SET_PLL_FRAC_DATA,
> @@ -262,6 +263,12 @@ enum tap_delay_type {
>  	PM_TAPDELAY_OUTPUT,
>  };
>  
> +enum dll_reset_type {
> +	PM_DLL_RESET_ASSERT,
> +	PM_DLL_RESET_RELEASE,
> +	PM_DLL_RESET_PULSE,
> +};
> +
>  /**
>   * struct zynqmp_pm_query_data - PM query data
>   * @qid:	query ID
> 

Acked-by: Michal Simek <michal.simek@xilinx.com>

Thanks,
Michal

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4/4] sdhci: arasan: Remove quirk for broken base clock
  2020-02-03 11:31   ` Adrian Hunter
@ 2020-02-04 11:42     ` Michal Simek
  2020-02-04 12:29       ` Ulf Hansson
  0 siblings, 1 reply; 15+ messages in thread
From: Michal Simek @ 2020-02-04 11:42 UTC (permalink / raw)
  To: Adrian Hunter, Manish Narani, michal.simek, ulf.hansson,
	jolly.shah, rajan.vaja, nava.manne, tejas.patel
  Cc: linux-arm-kernel, linux-kernel, linux-mmc

On 03. 02. 20 12:31, Adrian Hunter wrote:
> On 21/01/20 12:21 pm, Manish Narani wrote:
>> This patch removes quirk which indicates a broken base clock. This was
>> making the kernel report wrong base clock of ~187MHz instead of 200MHz
>> even as the measurement on the hardware was showing 200MHz.
>>
>> Signed-off-by: Manish Narani <manish.narani@xilinx.com>
>> State: pending
> 
> Huh?

It shouldn't be here. It is internal patch labeling.
Manish: Please send v2 with all lines you got and remove this above.

> 
> Otherwise:
> 
> Acked-by: Adrian Hunter <adrian.hunter@intel.com>

These patches requires firmware changes. Feel free to take it directly
via your tree. If you want me to take it via arm-soc tree please let me
know.

Thanks,
Michal

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4/4] sdhci: arasan: Remove quirk for broken base clock
  2020-02-04 11:42     ` Michal Simek
@ 2020-02-04 12:29       ` Ulf Hansson
  2020-02-04 12:31         ` Michal Simek
  0 siblings, 1 reply; 15+ messages in thread
From: Ulf Hansson @ 2020-02-04 12:29 UTC (permalink / raw)
  To: Michal Simek, Manish Narani
  Cc: Adrian Hunter, jolly.shah, rajan.vaja, nava.manne, tejas.patel,
	Linux ARM, Linux Kernel Mailing List, linux-mmc

On Tue, 4 Feb 2020 at 12:42, Michal Simek <michal.simek@xilinx.com> wrote:
>
> On 03. 02. 20 12:31, Adrian Hunter wrote:
> > On 21/01/20 12:21 pm, Manish Narani wrote:
> >> This patch removes quirk which indicates a broken base clock. This was
> >> making the kernel report wrong base clock of ~187MHz instead of 200MHz
> >> even as the measurement on the hardware was showing 200MHz.
> >>
> >> Signed-off-by: Manish Narani <manish.narani@xilinx.com>
> >> State: pending
> >
> > Huh?
>
> It shouldn't be here. It is internal patch labeling.
> Manish: Please send v2 with all lines you got and remove this above.

No need for a resend, I can fix this before applying, which will be
when rc1 is out.

>
> >
> > Otherwise:
> >
> > Acked-by: Adrian Hunter <adrian.hunter@intel.com>
>
> These patches requires firmware changes. Feel free to take it directly
> via your tree. If you want me to take it via arm-soc tree please let me
> know.

Thanks, I pick them up via my mmc tree then.

Kind regards
Uffe

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4/4] sdhci: arasan: Remove quirk for broken base clock
  2020-02-04 12:29       ` Ulf Hansson
@ 2020-02-04 12:31         ` Michal Simek
  0 siblings, 0 replies; 15+ messages in thread
From: Michal Simek @ 2020-02-04 12:31 UTC (permalink / raw)
  To: Ulf Hansson, Michal Simek, Manish Narani
  Cc: Adrian Hunter, jolly.shah, rajan.vaja, nava.manne, tejas.patel,
	Linux ARM, Linux Kernel Mailing List, linux-mmc

On 04. 02. 20 13:29, Ulf Hansson wrote:
> On Tue, 4 Feb 2020 at 12:42, Michal Simek <michal.simek@xilinx.com> wrote:
>>
>> On 03. 02. 20 12:31, Adrian Hunter wrote:
>>> On 21/01/20 12:21 pm, Manish Narani wrote:
>>>> This patch removes quirk which indicates a broken base clock. This was
>>>> making the kernel report wrong base clock of ~187MHz instead of 200MHz
>>>> even as the measurement on the hardware was showing 200MHz.
>>>>
>>>> Signed-off-by: Manish Narani <manish.narani@xilinx.com>
>>>> State: pending
>>>
>>> Huh?
>>
>> It shouldn't be here. It is internal patch labeling.
>> Manish: Please send v2 with all lines you got and remove this above.
> 
> No need for a resend, I can fix this before applying, which will be
> when rc1 is out.
> 
>>
>>>
>>> Otherwise:
>>>
>>> Acked-by: Adrian Hunter <adrian.hunter@intel.com>
>>
>> These patches requires firmware changes. Feel free to take it directly
>> via your tree. If you want me to take it via arm-soc tree please let me
>> know.
> 
> Thanks, I pick them up via my mmc tree then.

ok. Please let me know if there is any conflict. It should be simple add.

Thanks,
Michal


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI
  2020-01-21 10:21 [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI Manish Narani
                   ` (4 preceding siblings ...)
  2020-02-03  7:20 ` [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI Manish Narani
@ 2020-02-13 13:56 ` Ulf Hansson
  2020-02-14  6:39   ` Manish Narani
  5 siblings, 1 reply; 15+ messages in thread
From: Ulf Hansson @ 2020-02-13 13:56 UTC (permalink / raw)
  To: Manish Narani
  Cc: Michal Simek, Adrian Hunter, jolly.shah, rajan.vaja, nava.manne,
	tejas.patel, Linux ARM, Linux Kernel Mailing List, linux-mmc

On Tue, 21 Jan 2020 at 11:21, Manish Narani <manish.narani@xilinx.com> wrote:
>
> This patch series includes:
> -> Mark the Tap Delay Node as valid for ioctl calls
> -> Add support for DLL reset in firmware driver
> -> Add support to reset DLL from Arasan SDHCI driver for ZynqMP platform
> -> Fix incorrect base clock reporting issue
>
> Manish Narani (4):
>   firmware: xilinx: Add ZynqMP Tap Delay setup ioctl to the valid list
>   firmware: xilinx: Add DLL reset support
>   mmc: sdhci-of-arasan: Add support for DLL reset for ZynqMP platforms
>   sdhci: arasan: Remove quirk for broken base clock
>
>  drivers/firmware/xilinx/zynqmp.c     |  2 +
>  drivers/mmc/host/sdhci-of-arasan.c   | 59 +++++++++++++++++++++++++++-
>  include/linux/firmware/xlnx-zynqmp.h |  9 ++++-
>  3 files changed, 68 insertions(+), 2 deletions(-)
>
> --
> 2.17.1
>

Applied for next, thanks!

Kind regards
Uffe

^ permalink raw reply	[flat|nested] 15+ messages in thread

* RE: [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI
  2020-02-13 13:56 ` Ulf Hansson
@ 2020-02-14  6:39   ` Manish Narani
  0 siblings, 0 replies; 15+ messages in thread
From: Manish Narani @ 2020-02-14  6:39 UTC (permalink / raw)
  To: Ulf Hansson
  Cc: Michal Simek, Adrian Hunter, Jolly Shah, Rajan Vaja,
	Nava kishore Manne, Tejas Patel, Linux ARM,
	Linux Kernel Mailing List, linux-mmc, git

Hi Uffe,

> -----Original Message-----
> From: Ulf Hansson <ulf.hansson@linaro.org>
> Sent: Thursday, February 13, 2020 7:26 PM
> To: Manish Narani <MNARANI@xilinx.com>
> Cc: Michal Simek <michals@xilinx.com>; Adrian Hunter
> <adrian.hunter@intel.com>; Jolly Shah <JOLLYS@xilinx.com>; Rajan Vaja
> <RAJANV@xilinx.com>; Nava kishore Manne <navam@xilinx.com>; Tejas
> Patel <TEJASP@xilinx.com>; Linux ARM <linux-arm-
> kernel@lists.infradead.org>; Linux Kernel Mailing List <linux-
> kernel@vger.kernel.org>; linux-mmc@vger.kernel.org
> Subject: Re: [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI
> 
> On Tue, 21 Jan 2020 at 11:21, Manish Narani <manish.narani@xilinx.com>
> wrote:
> >
> > This patch series includes:
> > -> Mark the Tap Delay Node as valid for ioctl calls
> > -> Add support for DLL reset in firmware driver
> > -> Add support to reset DLL from Arasan SDHCI driver for ZynqMP platform
> > -> Fix incorrect base clock reporting issue
> >
> > Manish Narani (4):
> >   firmware: xilinx: Add ZynqMP Tap Delay setup ioctl to the valid list
> >   firmware: xilinx: Add DLL reset support
> >   mmc: sdhci-of-arasan: Add support for DLL reset for ZynqMP platforms
> >   sdhci: arasan: Remove quirk for broken base clock
> >
> >  drivers/firmware/xilinx/zynqmp.c     |  2 +
> >  drivers/mmc/host/sdhci-of-arasan.c   | 59
> +++++++++++++++++++++++++++-
> >  include/linux/firmware/xlnx-zynqmp.h |  9 ++++-
> >  3 files changed, 68 insertions(+), 2 deletions(-)
> >
> > --
> > 2.17.1
> >
> 
> Applied for next, thanks!
Thanks a lot!

- Manish

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, back to index

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-21 10:21 [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI Manish Narani
2020-01-21 10:21 ` [PATCH 1/4] firmware: xilinx: Add ZynqMP Tap Delay setup ioctl to the valid list Manish Narani
2020-02-04 11:39   ` Michal Simek
2020-01-21 10:21 ` [PATCH 2/4] firmware: xilinx: Add DLL reset support Manish Narani
2020-02-04 11:39   ` Michal Simek
2020-01-21 10:21 ` [PATCH 3/4] mmc: sdhci-of-arasan: Add support for DLL reset for ZynqMP platforms Manish Narani
2020-02-03 11:31   ` Adrian Hunter
2020-01-21 10:21 ` [PATCH 4/4] sdhci: arasan: Remove quirk for broken base clock Manish Narani
2020-02-03 11:31   ` Adrian Hunter
2020-02-04 11:42     ` Michal Simek
2020-02-04 12:29       ` Ulf Hansson
2020-02-04 12:31         ` Michal Simek
2020-02-03  7:20 ` [PATCH 0/4] Enhancements and Bug Fixes in ZynqMP SDHCI Manish Narani
2020-02-13 13:56 ` Ulf Hansson
2020-02-14  6:39   ` Manish Narani

Linux-mmc Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-mmc/0 linux-mmc/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-mmc linux-mmc/ https://lore.kernel.org/linux-mmc \
		linux-mmc@vger.kernel.org
	public-inbox-index linux-mmc

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-mmc


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git