• Andreas Kemnade's avatar
    regulator: twl: voltage lists for vdd1/2 on twl4030 · 3829100a
    Andreas Kemnade authored
    _opp_supported_by_regulators() wrongly ignored errors from
    regulator_is_supported_voltage(), so it considered errors as
    success. Since
    commit 49820944 ("regulator: core: simplify return value on suported_voltage")
    regulator_is_supported_voltage() returns a real boolean, so
    errors make _opp_supported_by_regulators() return false.
    
    That reveals a problem with the declaration of the VDD1/2
    regulators on twl4030.
    The VDD1/VDD2 regulators on twl4030 are neither defined with
    voltage lists nor with the continuous flag set, so
    regulator_is_supported_voltage() returns false and an error
    before above mentioned commit (which was considered success)
    The result is that after the above mentioned commit cpufreq
    does not work properly e.g. dm3730.
    
    [    2.490997] core: _opp_supported_by_regulators: OPP minuV: 1012500 maxuV: 1012500, not supported by regulator
    [    2.501617] cpu cpu0: _opp_add: OPP not supported by regulators (300000000)
    [    2.509246] core: _opp_supported_by_regulators: OPP minuV: 1200000 maxuV: 1200000, not supported by regulator
    [    2.519775] cpu cpu0: _opp_add: OPP not supported by regulators (600000000)
    [    2.527313] core: _opp_supported_by_regulators: OPP minuV: 1325000 maxuV: 1325000, not supported by regulator
    [    2.537750] cpu cpu0: _opp_add: OPP not supported by regulators (800000000)
    
    The patch fixes declaration of VDD1/2 regulators by
    adding proper voltage lists.
    
    Fixes: 49820944 ("regulator: core: simplify return value on suported_voltage")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarAndreas Kemnade <andreas@kemnade.info>
    Tested-by: Adam Ford <aford173@gmail.com> #logicpd-torpedo-37xx-devkit
    Link: https://lore.kernel.org/r/20190814214319.24087-1-andreas@kemnade.infoSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    3829100a
twl-regulator.c 18.3 KB