• Thomas Petazzoni's avatar
    spi: orion: fix incorrect handling of cell-index DT property · e06871cd
    Thomas Petazzoni authored
    In commit f814f9ac ("spi/orion: add device tree binding"), Device
    Tree support was added to the spi-orion driver. However, this commit
    reads the "cell-index" property, without taking into account the fact
    that DT properties are big-endian encoded.
    
    Since most of the platforms using spi-orion with DT have apparently
    not used anything but cell-index = <0>, the problem was not
    visible. But as soon as one starts using cell-index = <1>, the problem
    becomes clearly visible, as the master->bus_num gets a wrong value
    (actually it gets the value 0, which conflicts with the first bus that
    has cell-index = <0>).
    
    This commit fixes that by using of_property_read_u32() to read the
    property value, which does the appropriate endianness conversion when
    needed.
    
    Fixes: f814f9ac ("spi/orion: add device tree binding")
    Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Acked-by: default avatarSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
    Signed-off-by: default avatarMark Brown <broonie@linaro.org>
    Cc: <stable@vger.kernel.org> # v3.6+
    e06871cd
spi-orion.c 9.94 KB