Skip to content
  • Krzysztof Kozlowski's avatar
    spi: spi-fsl-dspi: Fix imprecise abort on VF500 during probe · dc9a7dd5
    Krzysztof Kozlowski authored
    commit d8ffee2f upstream.
    
    Registers of DSPI should not be accessed before enabling its clock.  On
    Toradex Colibri VF50 on Iris carrier board this could be seen during
    bootup as imprecise abort:
    
        Unhandled fault: imprecise external abort (0x1c06) at 0x00000000
        Internal error: : 1c06 [#1] ARM
        Modules linked in:
        CPU: 0 PID: 1 Comm: swapper Not tainted 4.14.39-dirty #97
        Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
        Backtrace:
        [<804166a8>] (regmap_write) from [<80466b5c>] (dspi_probe+0x1f0/0x8dc)
        [<8046696c>] (dspi_probe) from [<8040107c>] (platform_drv_probe+0x54/0xb8)
        [<80401028>] (platform_drv_probe) from [<803ff53c>] (driver_probe_device+0x280/0x2f8)
        [<803ff2bc>] (driver_probe_device) from [<803ff674>] (__driver_attach+0xc0/0xc4)
        [<803ff5b4>] (__driver_attach) from [<803fd818>] (bus_for_each_dev+0x70/0xa4)
        [<803fd7a8>] (bus_for_each_dev) from [<803fee74>] (driver_attach+0x24/0x28)
        [<803fee50>] (driver_attach) from [<803fe980>] (bus_add_driver+0x1a0/0x218)
        [<803fe7e0>] (bus_add_driver) from [<803fffe8>] (driver_register+0x80/0x100)
        [<803fff68>] (driver_register) from [<80400fdc>] (__platform_driver_register+0x48/0x50)
        [<80400f94>] (__platform_driver_register) from [<8091cf7c>] (fsl_dspi_driver_init+0x1c/0x20)
        [<8091cf60>] (fsl_dspi_driver_init) from [<8010195c>] (do_one_initcall+0x4c/0x174)
        [<80101910>] (do_one_initcall) from [<80900e8c>] (kernel_init_freeable+0x144/0x1d8)
        [<80900d48>] (kernel_init_freeable) from [<805ff6a8>] (kernel_init+0x10/0x114)
        [<805ff698>] (kernel_init) from [<80107be8>] (ret_from_fork+0x14/0x2c)
    
    Cc: <stable@vger.kernel.org>
    Fixes: 5ee67b58
    
     ("spi: dspi: clear SPI_SR before enable interrupt")
    Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    dc9a7dd5