[PATCH] Revert "mmc: dw_mmc-rockchip: add runtime PM support"

Jaehoon Chung jh80.chung at gmail.com
Thu Dec 29 06:04:24 PST 2016


Hi,

On 12/29/2016 09:55 PM, ayaka wrote:
> [    5.849733] rk_gmac-dwmac ff290000.ethernet (unnamed net_device) (uninitialized): Enable RX Mitigation via HW Watchdog Timer
> [    5.944512] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
> [    5.958249] mmc1: new ultra high speed DDR50 SDIO card at address 0001
> [    6.294548] dwmmc_rockchip ff0f0000.dwmmc: Successfully tuned phase to 177
> [    6.301591] mmc2: new HS200 MMC card at address 0001
> [    6.306758] mmc_host mmc0: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0)
> [    6.316830] mmcblk2: mmc2:0001 AGND3R 14.6 GiB
> [    6.321881] mmcblk2boot0: mmc2:0001 AGND3R partition 1 4.00 MiB
> [    6.328331] mmcblk2boot1: mmc2:0001 AGND3R partition 2 4.00 MiB
> [    6.334792] mmcblk2rpmb: mmc2:0001 AGND3R partition 3 4.00 MiB
> [    6.344295]  mmcblk2: p1 p2 p3 p4 p5 p6 p7
> [    6.469892] mmc_host mmc0: Bus speed (slot 0) = 200000Hz (slot req 200000Hz, actual 200000HZ div = 0)
> [    6.621888] mmc_host mmc0: Bus speed (slot 0) = 187500Hz (slot req 100000Hz, actual 93750HZ div = 1)
> [    6.917883] libphy: stmmac: probed
> [    6.921319] rk_gmac-dwmac ff290000.ethernet eth0: PHY ID 001cc915 at 0 IRQ POLL (stmmac-0:00) active
> [    6.930476] rk_gmac-dwmac ff290000.ethernet eth0: PHY ID 001cc915 at 2 IRQ POLL (stmmac-0:02)
> [    6.939757] input: gpio-keys as /devices/platform/gpio-keys/input/input0
> [    6.946937] rtc-hym8563 0-0051: no valid clock/calendar values available
> [    6.953694] rtc-hym8563 0-0051: hctosys: unable to read the hardware clock
> [    6.961262] vcc_sd: disabling
> [    6.964275] dovdd_1v8: disabling
> [    6.967527] dvdd_1v2: disabling
> [    6.971006] vdd10_lcd: disabling
> [    6.974701] vcc18_lcd: disabling
> [    6.978467] ttyS2 - failed to request DMA
> [    7.101883] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
> [    7.253874] mmc_host mmc0: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0)
> [    7.405883] mmc_host mmc0: Bus speed (slot 0) = 200000Hz (slot req 200000Hz, actual 200000HZ div = 0)
> [    7.557885] mmc_host mmc0: Bus speed (slot 0) = 187500Hz (slot req 100000Hz, actual 93750HZ div = 1)
> [    8.037872] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
> [    8.189877] mmc_host mmc0: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0)
> [    8.341881] mmc_host mmc0: Bus speed (slot 0) = 200000Hz (slot req 200000Hz, actual 200000HZ div = 0)
> [    8.493884] mmc_host mmc0: Bus speed (slot 0) = 187500Hz (slot req 100000Hz, actual 93750HZ div = 1)
> [    8.973871] mmc_host mmc0: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
> [    9.125876] mmc_host mmc0: Bus speed (slot 0) = 300000Hz (slot req 300000Hz, actual 300000HZ div = 0)
> [    9.277884] mmc_host mmc0: Bus speed (slot 0) = 200000Hz (slot req 200000Hz, actual 200000HZ div = 0)
> [    9.429882] mmc_host mmc0: Bus speed (slot 0) = 187500Hz (slot req 100000Hz, actual 93750HZ div = 1)
> 
> looping here
> 
> If I revert that patch, there are still lots of Bus speed messages, but finally would enter into system.
> 
Plz..Don't put the comment on the top.

Which kernel did you use?

> 
> On 12/29/2016 06:25 PM, Randy Li wrote:
>>
>>
>> On 12/29/2016 03:25 PM, Shawn Lin wrote:
>>> On 2016/12/29 15:13, Jaehoon Chung wrote:
>>>> On 12/29/2016 12:02 PM, Jaehoon Chung wrote:
>>>>> Hi Randy,
>>>>>
>>>>> On 12/29/2016 12:34 AM, Randy Li wrote:
>>>>>> This reverts commit f90142683f04bcb0729bf0df67a5e29562b725b9.
>>>>>> It is reported that making RK3288 can't boot from eMMC/MMC.
>>>>>
>>>>> Could you explain in more detail?
>>>>> As you mentioned, this patch is making that RK3288 can't boot..then why?
>>>>> Good way should be that finds the main reason and fixes it.
>>>>> Not just revert.
>>>>
>>>> To Shawn,
>>>>
>>>> Could you check this? If you have rk3288..
>>>> If it's not working fine, it needs to revert this patch until finding
>>>> the problem.
>>>>
>>>
>>> Hrmm.....as that patchset was tested based on rk3288 and rk3368, so I
>>> need to know which board Randy are using now and could you share some
>> Sorry, XZY has asked me about this in the morning and I answer him that I would give a feedback at home, so I didn't notice this mail.
>> The board is Firefly reload. but the reporter told me that Firefly release also have the same problem.
>>> log?
>>>
>>> I will have a look at it.
>>>
>>>
>>>> Best Regards,
>>>> Jaehoon Chung
>>>>
>>>>>
>>>>> Best Regards,
>>>>> Jaehoon Chung
>>>>>
>>>>>>
>>>>>> Signed-off-by: Randy Li <ayaka at soulik.info>
>>>>>> ---
>>>>>>  drivers/mmc/host/dw_mmc-rockchip.c | 41
>>>>>> +++-----------------------------------
>>>>>>  1 file changed, 3 insertions(+), 38 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/mmc/host/dw_mmc-rockchip.c
>>>>>> b/drivers/mmc/host/dw_mmc-rockchip.c
>>>>>> index 9a46e46..3189234 100644
>>>>>> --- a/drivers/mmc/host/dw_mmc-rockchip.c
>>>>>> +++ b/drivers/mmc/host/dw_mmc-rockchip.c
>>>>>> @@ -14,7 +14,6 @@
>>>>>>  #include <linux/mmc/dw_mmc.h>
>>>>>>  #include <linux/of_address.h>
>>>>>>  #include <linux/mmc/slot-gpio.h>
>>>>>> -#include <linux/pm_runtime.h>
>>>>>>  #include <linux/slab.h>
>>>>>>
>>>>>>  #include "dw_mmc.h"
>>>>>> @@ -327,7 +326,6 @@ static int dw_mci_rockchip_probe(struct
>>>>>> platform_device *pdev)
>>>>>>  {
>>>>>>      const struct dw_mci_drv_data *drv_data;
>>>>>>      const struct of_device_id *match;
>>>>>> -    int ret;
>>>>>>
>>>>>>      if (!pdev->dev.of_node)
>>>>>>          return -ENODEV;
>>>>>> @@ -335,49 +333,16 @@ static int dw_mci_rockchip_probe(struct
>>>>>> platform_device *pdev)
>>>>>>      match = of_match_node(dw_mci_rockchip_match, pdev->dev.of_node);
>>>>>>      drv_data = match->data;
>>>>>>
>>>>>> -    pm_runtime_get_noresume(&pdev->dev);
>>>>>> -    pm_runtime_set_active(&pdev->dev);
>>>>>> -    pm_runtime_enable(&pdev->dev);
>>>>>> -    pm_runtime_set_autosuspend_delay(&pdev->dev, 50);
>>>>>> -    pm_runtime_use_autosuspend(&pdev->dev);
>>>>>> -
>>>>>> -    ret = dw_mci_pltfm_register(pdev, drv_data);
>>>>>> -    if (ret) {
>>>>>> -        pm_runtime_disable(&pdev->dev);
>>>>>> -        pm_runtime_set_suspended(&pdev->dev);
>>>>>> -        pm_runtime_put_noidle(&pdev->dev);
>>>>>> -        return ret;
>>>>>> -    }
>>>>>> -
>>>>>> -    pm_runtime_put_autosuspend(&pdev->dev);
>>>>>> -
>>>>>> -    return 0;
>>>>>> +    return dw_mci_pltfm_register(pdev, drv_data);
>>>>>>  }
>>>>>>
>>>>>> -static int dw_mci_rockchip_remove(struct platform_device *pdev)
>>>>>> -{
>>>>>> -    pm_runtime_get_sync(&pdev->dev);
>>>>>> -    pm_runtime_disable(&pdev->dev);
>>>>>> -    pm_runtime_put_noidle(&pdev->dev);
>>>>>> -
>>>>>> -    return dw_mci_pltfm_remove(pdev);
>>>>>> -}
>>>>>> -
>>>>>> -static const struct dev_pm_ops dw_mci_rockchip_dev_pm_ops = {
>>>>>> -    SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
>>>>>> -                pm_runtime_force_resume)
>>>>>> -    SET_RUNTIME_PM_OPS(dw_mci_runtime_suspend,
>>>>>> -               dw_mci_runtime_resume,
>>>>>> -               NULL)
>>>>>> -};
>>>>>> -
>>>>>>  static struct platform_driver dw_mci_rockchip_pltfm_driver = {
>>>>>>      .probe        = dw_mci_rockchip_probe,
>>>>>> -    .remove        = dw_mci_rockchip_remove,
>>>>>> +    .remove        = dw_mci_pltfm_remove,
>>>>>>      .driver        = {
>>>>>>          .name        = "dwmmc_rockchip",
>>>>>>          .of_match_table    = dw_mci_rockchip_match,
>>>>>> -        .pm        = &dw_mci_rockchip_dev_pm_ops,
>>>>>> +        .pm        = &dw_mci_pltfm_pmops,
>>>>>>      },
>>>>>>  };
>>>>>>
>>>>>>
>>>>>
>>>>> -- 
>>>>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>>>>> the body of a message to majordomo at vger.kernel.org
>>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>>>
>>>>> .
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
> 



More information about the Linux-rockchip mailing list