[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