[PATCH v5 1/2] mmc: dw_mmc: silent verbose log when calling from PM context
ayaka
ayaka at soulik.info
Sat Jan 14 19:50:37 PST 2017
On 01/13/2017 10:59 AM, Shawn Lin wrote:
> When deploying runtime PM, it's quite verbose to print the
> log of ios setting. Also it's useless to print it from system
> PM as it should be the same with booting time. We also have
> sysfs to get all these information from ios attribute, so let's
> skip this print from PM context.
>
> Signed-off-by: Shawn Lin <shawn.lin at rock-chips.com>
> ---
>
> Changes in v5: None
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
>
> drivers/mmc/host/dw_mmc.c | 21 ++++++++++++---------
> 1 file changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index 3d213e7..dc58ec3 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -1153,7 +1153,8 @@ static void mci_send_cmd(struct dw_mci_slot *slot, u32 cmd, u32 arg)
> cmd, arg, cmd_status);
> }
>
> -static void dw_mci_setup_bus(struct dw_mci_slot *slot, bool force_clkinit)
> +static void dw_mci_setup_bus(struct dw_mci_slot *slot,
> + bool force_clkinit, bool pm_context)
> {
> struct dw_mci *host = slot->host;
> unsigned int clock = slot->clock;
> @@ -1182,11 +1183,13 @@ static void dw_mci_setup_bus(struct dw_mci_slot *slot, bool force_clkinit)
> if ((clock != slot->__clk_old &&
> !test_bit(DW_MMC_CARD_NEEDS_POLL, &slot->flags)) ||
> 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);
> + /* Silent the verbose log if calling from PM context */
> + if (!pm_context)
> + 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 card is polling, display the message only
> @@ -1434,12 +1437,12 @@ static void dw_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
> }
>
> /* Adjust clock / bus width after power is up */
> - dw_mci_setup_bus(slot, false);
> + dw_mci_setup_bus(slot, false, false);
>
> break;
> case MMC_POWER_OFF:
> /* Turn clock off before power goes down */
> - dw_mci_setup_bus(slot, false);
> + dw_mci_setup_bus(slot, false, false);
>
> if (!IS_ERR(mmc->supply.vmmc))
> mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, 0);
> @@ -3366,7 +3369,7 @@ int dw_mci_runtime_resume(struct device *dev)
> continue;
> if (slot->mmc->pm_flags & MMC_PM_KEEP_POWER) {
> dw_mci_set_ios(slot->mmc, &slot->mmc->ios);
> - dw_mci_setup_bus(slot, true);
> + dw_mci_setup_bus(slot, true, true);
Sadness, it seems not work for firefly reload, maybe there is some
problems with the card detect in that board.
> }
> }
>
More information about the Linux-rockchip
mailing list