lkml.org 
[lkml]   [2022]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 163/545] drm/mipi-dbi: align max_chunk to 2 in spi_transfer
    Date
    From: Yunhao Tian <t123yh.xyz@gmail.com>

    [ Upstream commit 435c249008cba04ed6a7975e9411f3b934620204 ]

    In __spi_validate, there's a validation that no partial transfers
    are accepted (xfer->len % w_size must be zero). When
    max_chunk is not a multiple of bpw (e.g. max_chunk = 65535,
    bpw = 16), the transfer will be rejected.

    This patch aligns max_chunk to 2 bytes (the maximum value of bpw is 16),
    so that no partial transfer will occur.

    Fixes: d23d4d4dac01 ("drm/tinydrm: Move tinydrm_spi_transfer()")

    Signed-off-by: Yunhao Tian <t123yh.xyz@gmail.com>
    Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220510030219.2486687-1-t123yh.xyz@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/drm_mipi_dbi.c | 7 +++++++
    1 file changed, 7 insertions(+)

    diff --git a/drivers/gpu/drm/drm_mipi_dbi.c b/drivers/gpu/drm/drm_mipi_dbi.c
    index 230c4fd7131c..9f132229aed1 100644
    --- a/drivers/gpu/drm/drm_mipi_dbi.c
    +++ b/drivers/gpu/drm/drm_mipi_dbi.c
    @@ -1137,6 +1137,13 @@ int mipi_dbi_spi_transfer(struct spi_device *spi, u32 speed_hz,
    size_t chunk;
    int ret;

    + /* In __spi_validate, there's a validation that no partial transfers
    + * are accepted (xfer->len % w_size must be zero).
    + * Here we align max_chunk to multiple of 2 (16bits),
    + * to prevent transfers from being rejected.
    + */
    + max_chunk = ALIGN_DOWN(max_chunk, 2);
    +
    spi_message_init_with_transfers(&m, &tr, 1);

    while (len) {
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-19 18:07    [W:3.030 / U:0.768 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site