[PATCH v5 1/2] mmc: dw_mmc: silent verbose log when calling from PM context
Shawn Lin
shawn.lin at rock-chips.com
Sun Jan 15 18:43:21 PST 2017
On 2017/1/15 11:50, ayaka wrote:
>
>
> 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.
This patch is intended to prevent the spamming log from pm context but
your firefly-reload board should have a another problem. So IIRC you
still see the spamming log with polling mode, we need to dig that later
but we need this two patches(at least 2/2) merged into 4.10-rc cycle to
fix the boot problem.
>> }
>> }
>>
>
>
>
>
--
Best Regards
Shawn Lin
More information about the Linux-rockchip
mailing list