[Letux-kernel] Strange things happening with latest kernels
H. Nikolaus Schaller
hns at goldelico.com
Thu Jun 13 07:37:46 CEST 2019
Hi Andreas,
great analysis!
Maybe I was lucky with my GTA04A4 where I tried these days.
A theory is that if the opp voltages are not supported, they are not changed and the value initialized
by U-Boot is kept. This will be wrong depending on clock speed.
I remember there was a discussion these days on linux-omap for the DRA7 about similar regulator issues,
but have forgotten the details.
So we should notify Tony about this.
BR and thanks,
Nikolaus
> Am 13.06.2019 um 06:58 schrieb Andreas Kemnade <andreas at kemnade.info>:
>
> On Wed, 12 Jun 2019 23:09:48 +0200
> Andreas Kemnade <andreas at kemnade.info> wrote:
>
>> Hi,
>>
>> On Wed, 12 Jun 2019 20:35:42 +0200
>> Andreas Kemnade <andreas at kemnade.info> wrote:
>>
>>> On Tue, 11 Jun 2019 21:21:22 +0200
>>> "H. Nikolaus Schaller" <hns at goldelico.com> wrote:
>>>
>>>> I think the latest kernels 4.19.49 and 5.4-rc2 have bugs...
>>>>
>>>> A) 4.19.49 seems to make the OMAP3 run ca. 70% of the time
>>>> at 800MHz driving the GTA04A4 hot (have seen 90°) although
>>>> I have only 10% system load and not too many or strange
>>>> interrupts.
>>>>
>>>> Idle modes broken?
>>>>
>>>> B) 5.2-rc4 seems to have broken cpufreq-info (also GTA04A4)
>>>>
>>> That looks interesting
>>>
>>> [ 3.140655] core: _opp_supported_by_regulators: OPP minuV: 1012500 maxuV: 1012500, not supported by regulator
>>> [ 3.152709] cpu cpu0: _opp_add: OPP not supported by regulators (300000000)
>>> [ 3.160278] core: _opp_supported_by_regulators: OPP minuV: 1200000 maxuV: 1200000, not supported by regulator
>>> [ 3.171142] cpu cpu0: _opp_add: OPP not supported by regulators (600000000)
>>> [ 3.178710] core: _opp_supported_by_regulators: OPP minuV: 1325000 maxuV: 1325000, not supported by regulator
>>> [ 3.189483] cpu cpu0: _opp_add: OPP not supported by regulators (800000000)
>>>
>>> letux-5.2-rc4 does not fully boot here, neither on gta04a5 nor on
>>> letux3704, still investigating.
>>>
>>
>> in
>> int regulator_is_supported_voltage(struct regulator *regulator,
>> int min_uV, int max_uV)
>>
>> the following if fails:
>> /* Any voltage within constrains range is fine? */
>> if (rdev->desc->continuous_voltage_range) {
>>
>>
>> this did the trick:
>>
>> diff --git a/drivers/regulator/twl-regulator.c b/drivers/regulator/twl-regulator.c
>> index 6fa15b2d6fb3..f7bfdf53701d 100644
>> --- a/drivers/regulator/twl-regulator.c
>> +++ b/drivers/regulator/twl-regulator.c
>> @@ -478,6 +478,7 @@ static const struct twlreg_info TWL4030_INFO_##label = { \
>> .type = REGULATOR_VOLTAGE, \
>> .owner = THIS_MODULE, \
>> .enable_time = turnon_delay, \
>> + .continuous_voltage_range = true, \
>> .of_map_mode = twl4030reg_map_mode, \
>> }, \
>> }
>>
>> I am not sure if it is really ok, but seems to work.
>>
> analyzed a bit further:
> last ok: next-20190503
> first fail: next-20190506
>
> Did for some
>
>> Regards,
>> Andreas
>> _______________________________________________
>> http://projects.goldelico.com/p/gta04-kernel/
>> Letux-kernel mailing list
>> Letux-kernel at openphoenux.org
>> http://lists.goldelico.com/mailman/listinfo.cgi/letux-kernel
> _______________________________________________
> http://projects.goldelico.com/p/gta04-kernel/
> Letux-kernel mailing list
> Letux-kernel at openphoenux.org
> http://lists.goldelico.com/mailman/listinfo.cgi/letux-kernel
More information about the Letux-kernel
mailing list