Re: [PATCH V2 1/2] clk: qcom: gdsc: Add support for gdscs with HW control

From: Rajendra Nayak
Date: Mon Jan 09 2017 - 23:48:47 EST


[]..

>> static int gdsc_toggle_logic(struct gdsc *sc, bool en)
>> {
>> int ret;
>> @@ -164,16 +171,28 @@ static int gdsc_enable(struct generic_pm_domain *domain)
>> */
>> udelay(1);
>>
>> + /* Turn on HW trigger mode if supported */
>> + if (sc->flags & HW_CTRL)
>> + return gdsc_hwctrl(sc, true);
>> +
>> return 0;
>> }
>>
>> static int gdsc_disable(struct generic_pm_domain *domain)
>> {
>> struct gdsc *sc = domain_to_gdsc(domain);
>> + int ret;
>>
>> if (sc->pwrsts == PWRSTS_ON)
>> return gdsc_assert_reset(sc);
>>
>> + /* Turn off HW trigger mode if supported */
>> + if (sc->flags & HW_CTRL) {
>> + ret = gdsc_hwctrl(sc, false);
>
> Looking in the downstream implementation the disabling of the hw control
> bit shouldn't be enough.
>
> After disabling hw control bit we must have a 1us delay and polling for
> enabled PWR_ON bit with timeout of 100us, only then we should continue
> with disabling the GDSC in software controlled mode.

Stan, thats right. I will send a patch to fix this up right-away.

--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation