lkml.org 
[lkml]   [2020]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 56/74] regulator: ab8500: Remove AB8505 USB regulator
    Date
    From: Stephan Gerhold <stephan@gerhold.net>

    commit 99c4f70df3a6446c56ca817c2d0f9c12d85d4e7c upstream.

    The USB regulator was removed for AB8500 in
    commit 41a06aa738ad ("regulator: ab8500: Remove USB regulator").
    It was then added for AB8505 in
    commit 547f384f33db ("regulator: ab8500: add support for ab8505").

    However, there was never an entry added for it in
    ab8505_regulator_match. This causes all regulators after it
    to be initialized with the wrong device tree data, eventually
    leading to an out-of-bounds array read.

    Given that it is not used anywhere in the kernel, it seems
    likely that similar arguments against supporting it exist for
    AB8505 (it is controlled by hardware).

    Therefore, simply remove it like for AB8500 instead of adding
    an entry in ab8505_regulator_match.

    Fixes: 547f384f33db ("regulator: ab8500: add support for ab8505")
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Link: https://lore.kernel.org/r/20191106173125.14496-1-stephan@gerhold.net
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/regulator/ab8500.c | 17 -----------------
    include/linux/regulator/ab8500.h | 1 -
    2 files changed, 18 deletions(-)

    --- a/drivers/regulator/ab8500.c
    +++ b/drivers/regulator/ab8500.c
    @@ -1099,23 +1099,6 @@ static struct ab8500_regulator_info
    .update_val_idle = 0x82,
    .update_val_normal = 0x02,
    },
    - [AB8505_LDO_USB] = {
    - .desc = {
    - .name = "LDO-USB",
    - .ops = &ab8500_regulator_mode_ops,
    - .type = REGULATOR_VOLTAGE,
    - .id = AB8505_LDO_USB,
    - .owner = THIS_MODULE,
    - .n_voltages = 1,
    - .volt_table = fixed_3300000_voltage,
    - },
    - .update_bank = 0x03,
    - .update_reg = 0x82,
    - .update_mask = 0x03,
    - .update_val = 0x01,
    - .update_val_idle = 0x03,
    - .update_val_normal = 0x01,
    - },
    [AB8505_LDO_AUDIO] = {
    .desc = {
    .name = "LDO-AUDIO",
    --- a/include/linux/regulator/ab8500.h
    +++ b/include/linux/regulator/ab8500.h
    @@ -38,7 +38,6 @@ enum ab8505_regulator_id {
    AB8505_LDO_AUX6,
    AB8505_LDO_INTCORE,
    AB8505_LDO_ADC,
    - AB8505_LDO_USB,
    AB8505_LDO_AUDIO,
    AB8505_LDO_ANAMIC1,
    AB8505_LDO_ANAMIC2,

    \
     
     \ /
      Last update: 2020-01-07 22:40    [W:5.366 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site