lkml.org 
[lkml]   [2018]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.18 080/145] mfd: hi655x: Fix regmap area declared size for hi655x
    Date
    4.18-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Rafael David Tinoco <rafael.tinoco@linaro.org>

    commit 6afebb70ee7a4bde106dc1a875e7ac7997248f84 upstream.

    Fixes https://bugs.linaro.org/show_bug.cgi?id=3903

    LTP Functional tests have caused a bad paging request when triggering
    the regmap_read_debugfs() logic of the device PMIC Hi6553 (reading
    regmap/f8000000.pmic/registers file during read_all test):

    Unable to handle kernel paging request at virtual address ffff0
    [ffff00000984e000] pgd=0000000077ffe803, pud=0000000077ffd803,0
    Internal error: Oops: 96000007 [#1] SMP
    ...
    Hardware name: HiKey Development Board (DT)
    ...
    Call trace:
    regmap_mmio_read8+0x24/0x40
    regmap_mmio_read+0x48/0x70
    _regmap_bus_reg_read+0x38/0x48
    _regmap_read+0x68/0x170
    regmap_read+0x50/0x78
    regmap_read_debugfs+0x1a0/0x308
    regmap_map_read_file+0x48/0x58
    full_proxy_read+0x68/0x98
    __vfs_read+0x48/0x80
    vfs_read+0x94/0x150
    SyS_read+0x6c/0xd8
    el0_svc_naked+0x30/0x34
    Code: aa1e03e0 d503201f f9400280 8b334000 (39400000)

    Investigations have showed that, when triggered by debugfs read()
    handler, the mmio regmap logic was reading a bigger (16k) register area
    than the one mapped by devm_ioremap_resource() during hi655x-pmic probe
    time (4k).

    This commit changes hi655x's max register, according to HW specs, to be
    the same as the one declared in the pmic device in hi6220's dts, fixing
    the issue.

    Cc: <stable@vger.kernel.org> #v4.9 #v4.14 #v4.16 #v4.17
    Signed-off-by: Rafael David Tinoco <rafael.tinoco@linaro.org>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/mfd/hi655x-pmic.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/mfd/hi655x-pmic.c
    +++ b/drivers/mfd/hi655x-pmic.c
    @@ -49,7 +49,7 @@ static struct regmap_config hi655x_regma
    .reg_bits = 32,
    .reg_stride = HI655X_STRIDE,
    .val_bits = 8,
    - .max_register = HI655X_BUS_ADDR(0xFFF),
    + .max_register = HI655X_BUS_ADDR(0x400) - HI655X_STRIDE,
    };

    static struct resource pwrkey_resources[] = {

    \
     
     \ /
      Last update: 2018-09-07 23:19    [W:4.068 / U:1.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site