* [PATCH] mmc: dw_mmc: fix the spamming log message
@ 2016-09-22 5:12 ` Jaehoon Chung
2016-09-22 5:14 ` Jaehoon Chung
2016-09-22 9:39 ` Ulf Hansson
0 siblings, 2 replies; 3+ messages in thread
From: Jaehoon Chung @ 2016-09-22 5:12 UTC (permalink / raw)
To: linux-mmc; +Cc: ulf.hansson, Jaehoon Chung
When there is no Card which is set to "broken-cd", it's displayed a clock
information continuously. Because it's polling for detecting card.
This patch is fixed this problem.
Fixed 'commit 65257a0deed5
("mmc: dw_mmc: remove UBSAN warning in dw_mci_setup_bus()")'
Reported-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
---
drivers/mmc/host/dw_mmc.c | 14 +++++++++-----
drivers/mmc/host/dw_mmc.h | 3 +++
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index 32380d5..767af20 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -1112,11 +1112,12 @@ static void dw_mci_setup_bus(struct dw_mci_slot *slot, bool force_clkinit)
div = (host->bus_hz != clock) ? DIV_ROUND_UP(div, 2) : 0;
- dev_info(&slot->mmc->class_dev,
- "Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ div = %d)\n",
- slot->id, host->bus_hz, clock,
- div ? ((host->bus_hz / div) >> 1) :
- host->bus_hz, div);
+ if (clock != slot->__clk_old || force_clkinit)
+ dev_info(&slot->mmc->class_dev,
+ "Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ div = %d)\n",
+ slot->id, host->bus_hz, clock,
+ div ? ((host->bus_hz / div) >> 1) :
+ host->bus_hz, div);
/* disable clock */
mci_writel(host, CLKENA, 0);
@@ -1139,6 +1140,9 @@ static void dw_mci_setup_bus(struct dw_mci_slot *slot, bool force_clkinit)
/* inform CIU */
mci_send_cmd(slot, sdmmc_cmd_bits, 0);
+
+ /* keep the last clock value that was requested from core */
+ slot->__clk_old = clock;
}
host->current_speed = clock;
diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
index 9e740bc..e8cd2de 100644
--- a/drivers/mmc/host/dw_mmc.h
+++ b/drivers/mmc/host/dw_mmc.h
@@ -249,6 +249,8 @@ extern int dw_mci_resume(struct dw_mci *host);
* @queue_node: List node for placing this node in the @queue list of
* &struct dw_mci.
* @clock: Clock rate configured by set_ios(). Protected by host->lock.
+ * @__clk_old: The last clock value that was requested from core.
+ * Keeping track of this helps us to avoid spamming the console.
* @flags: Random state bits associated with the slot.
* @id: Number of this slot.
* @sdio_id: Number of this slot in the SDIO interrupt registers.
@@ -263,6 +265,7 @@ struct dw_mci_slot {
struct list_head queue_node;
unsigned int clock;
+ unsigned int __clk_old;
unsigned long flags;
#define DW_MMC_CARD_PRESENT 0
--
1.9.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] mmc: dw_mmc: fix the spamming log message
2016-09-22 5:12 ` [PATCH] mmc: dw_mmc: fix the spamming log message Jaehoon Chung
@ 2016-09-22 5:14 ` Jaehoon Chung
2016-09-22 9:39 ` Ulf Hansson
1 sibling, 0 replies; 3+ messages in thread
From: Jaehoon Chung @ 2016-09-22 5:14 UTC (permalink / raw)
To: linux-mmc; +Cc: ulf.hansson
Dear Ulf,
On 09/22/2016 02:12 PM, Jaehoon Chung wrote:
> When there is no Card which is set to "broken-cd", it's displayed a clock
> information continuously. Because it's polling for detecting card.
> This patch is fixed this problem.
Could you pick this on your fixes branch? (Is it too late?)
Best Regards,
Jaehoon Chung
>
> Fixed 'commit 65257a0deed5
> ("mmc: dw_mmc: remove UBSAN warning in dw_mci_setup_bus()")'
>
> Reported-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> ---
> drivers/mmc/host/dw_mmc.c | 14 +++++++++-----
> drivers/mmc/host/dw_mmc.h | 3 +++
> 2 files changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index 32380d5..767af20 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -1112,11 +1112,12 @@ static void dw_mci_setup_bus(struct dw_mci_slot *slot, bool force_clkinit)
>
> div = (host->bus_hz != clock) ? DIV_ROUND_UP(div, 2) : 0;
>
> - dev_info(&slot->mmc->class_dev,
> - "Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ div = %d)\n",
> - slot->id, host->bus_hz, clock,
> - div ? ((host->bus_hz / div) >> 1) :
> - host->bus_hz, div);
> + if (clock != slot->__clk_old || force_clkinit)
> + dev_info(&slot->mmc->class_dev,
> + "Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ div = %d)\n",
> + slot->id, host->bus_hz, clock,
> + div ? ((host->bus_hz / div) >> 1) :
> + host->bus_hz, div);
>
> /* disable clock */
> mci_writel(host, CLKENA, 0);
> @@ -1139,6 +1140,9 @@ static void dw_mci_setup_bus(struct dw_mci_slot *slot, bool force_clkinit)
>
> /* inform CIU */
> mci_send_cmd(slot, sdmmc_cmd_bits, 0);
> +
> + /* keep the last clock value that was requested from core */
> + slot->__clk_old = clock;
> }
>
> host->current_speed = clock;
> diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
> index 9e740bc..e8cd2de 100644
> --- a/drivers/mmc/host/dw_mmc.h
> +++ b/drivers/mmc/host/dw_mmc.h
> @@ -249,6 +249,8 @@ extern int dw_mci_resume(struct dw_mci *host);
> * @queue_node: List node for placing this node in the @queue list of
> * &struct dw_mci.
> * @clock: Clock rate configured by set_ios(). Protected by host->lock.
> + * @__clk_old: The last clock value that was requested from core.
> + * Keeping track of this helps us to avoid spamming the console.
> * @flags: Random state bits associated with the slot.
> * @id: Number of this slot.
> * @sdio_id: Number of this slot in the SDIO interrupt registers.
> @@ -263,6 +265,7 @@ struct dw_mci_slot {
> struct list_head queue_node;
>
> unsigned int clock;
> + unsigned int __clk_old;
>
> unsigned long flags;
> #define DW_MMC_CARD_PRESENT 0
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] mmc: dw_mmc: fix the spamming log message
2016-09-22 5:12 ` [PATCH] mmc: dw_mmc: fix the spamming log message Jaehoon Chung
2016-09-22 5:14 ` Jaehoon Chung
@ 2016-09-22 9:39 ` Ulf Hansson
1 sibling, 0 replies; 3+ messages in thread
From: Ulf Hansson @ 2016-09-22 9:39 UTC (permalink / raw)
To: Jaehoon Chung; +Cc: linux-mmc
On 22 September 2016 at 07:12, Jaehoon Chung <jh80.chung@samsung.com> wrote:
> When there is no Card which is set to "broken-cd", it's displayed a clock
> information continuously. Because it's polling for detecting card.
> This patch is fixed this problem.
>
> Fixed 'commit 65257a0deed5
> ("mmc: dw_mmc: remove UBSAN warning in dw_mci_setup_bus()")'
>
> Reported-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Thanks, applied for fixes!
I added a formal fixes tag from above.
Fixes: 65257a0deed5 ("mmc: dw_mmc: remove UBSAN warning in dw_mci_setup_bus()")
Kind regards
Uffe
> ---
> drivers/mmc/host/dw_mmc.c | 14 +++++++++-----
> drivers/mmc/host/dw_mmc.h | 3 +++
> 2 files changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index 32380d5..767af20 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -1112,11 +1112,12 @@ static void dw_mci_setup_bus(struct dw_mci_slot *slot, bool force_clkinit)
>
> div = (host->bus_hz != clock) ? DIV_ROUND_UP(div, 2) : 0;
>
> - dev_info(&slot->mmc->class_dev,
> - "Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ div = %d)\n",
> - slot->id, host->bus_hz, clock,
> - div ? ((host->bus_hz / div) >> 1) :
> - host->bus_hz, div);
> + if (clock != slot->__clk_old || force_clkinit)
> + dev_info(&slot->mmc->class_dev,
> + "Bus speed (slot %d) = %dHz (slot req %dHz, actual %dHZ div = %d)\n",
> + slot->id, host->bus_hz, clock,
> + div ? ((host->bus_hz / div) >> 1) :
> + host->bus_hz, div);
>
> /* disable clock */
> mci_writel(host, CLKENA, 0);
> @@ -1139,6 +1140,9 @@ static void dw_mci_setup_bus(struct dw_mci_slot *slot, bool force_clkinit)
>
> /* inform CIU */
> mci_send_cmd(slot, sdmmc_cmd_bits, 0);
> +
> + /* keep the last clock value that was requested from core */
> + slot->__clk_old = clock;
> }
>
> host->current_speed = clock;
> diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
> index 9e740bc..e8cd2de 100644
> --- a/drivers/mmc/host/dw_mmc.h
> +++ b/drivers/mmc/host/dw_mmc.h
> @@ -249,6 +249,8 @@ extern int dw_mci_resume(struct dw_mci *host);
> * @queue_node: List node for placing this node in the @queue list of
> * &struct dw_mci.
> * @clock: Clock rate configured by set_ios(). Protected by host->lock.
> + * @__clk_old: The last clock value that was requested from core.
> + * Keeping track of this helps us to avoid spamming the console.
> * @flags: Random state bits associated with the slot.
> * @id: Number of this slot.
> * @sdio_id: Number of this slot in the SDIO interrupt registers.
> @@ -263,6 +265,7 @@ struct dw_mci_slot {
> struct list_head queue_node;
>
> unsigned int clock;
> + unsigned int __clk_old;
>
> unsigned long flags;
> #define DW_MMC_CARD_PRESENT 0
> --
> 1.9.1
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-09-22 9:39 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <CGME20160922051213epcas1p23484f9ac7e16656922b9f91028c565ff@epcas1p2.samsung.com>
2016-09-22 5:12 ` [PATCH] mmc: dw_mmc: fix the spamming log message Jaehoon Chung
2016-09-22 5:14 ` Jaehoon Chung
2016-09-22 9:39 ` Ulf Hansson
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.