23 Feb, 2021

1 commit


21 Feb, 2021

3 commits


04 Feb, 2021

2 commits


02 Feb, 2021

1 commit

  • Mailbox driver needs to wait and read all the words in response to a
    SCFW API call, else the protocol gets messed up and results in kernel hang.
    When the responses are longer than 3 words its possible that SCFW will
    take some time to fill up the rest of the words in the MU, a timeout of
    100us is arbritrary and too short. While waiting for Linux to consume the
    first 3 words of the response SCFW can be busy doing other stuff and hence
    Linux needs to wait for the rest of the words.
    Similar restriction applies when writing messages that are longer than
    3 words.
    This patch increases the timeout to 5secs while waiting for response
    or writing long messages to SCFW.

    Signed-off-by: Ranjani Vaidyanathan

    Ranjani Vaidyanathan
     

30 Jan, 2021

2 commits

  • Add a new member jpeg_parse_error in mxc_jpeg_src_buf, to indicate
    an error while parsing the input jpeg stream.
    Do not run the decoder when the source buffer is marked with
    jpeg_parse_error, instead mark both the source and destination
    buffer with VB2_BUF_STATE_ERROR. This will prevent an application
    getting stuck waiting to dequeue the destination buffer.

    Signed-off-by: Mirela Rabulea

    Mirela Rabulea
     
  • End of buffer was not properly detected in case of an invalid
    buffer stream, such as a stream of null bytes, for example.
    This was leading to a kernel oups.
    Let get_byte return type be int, so it can return an error for
    reaching end of stream.

    While at it, replace 0 with NULL, for null pointer initialization.

    Fixes: 36649dec0eb7 ("mxc-jpeg: Fix result independent of operands")
    Signed-off-by: Mirela Rabulea

    Mirela Rabulea
     

29 Jan, 2021

2 commits

  • For normal case, userspace should call streamon/streamoff balance, but
    for some special case, the process will be killed or terminated and the
    streamoff ioctl will be ignored. So driver need to handle the case.

    Signed-off-by: Guoniu.zhou
    Reviewed-by: Robby Cai

    Guoniu.zhou
     
  • For some tough multi channels test, the default priority of channel0 may
    not be scheduled in 500us so that channel context can't be loaded as the
    below warning, hence sdma channel transfer will be failed. So raise up
    channel0 to the highest one since context load is important to all
    channels. Besides, enlarge 500us to 5ms for safe since many highest channel
    also may run at the same time like asrc/easrc tough test(8 channel run).

    "imx-sdma 30e10000.dma-controller: Timeout waiting for CH0 ready"

    Signed-off-by: Robin Gong
    Reviewed-by: Peng Zhang

    Robin Gong
     

28 Jan, 2021

5 commits

  • The latest batch of RM67191 panels have an issue that the panel display
    will get blurred and have no response to later display actions when read
    data from panel through DSI interface.

    And decrease the pixel clock rate to 121MHz which means decrease the
    panel's frame rate from 60.02Hz to 55.02Hz can solve this issue, so
    do this change to make RM67191 display more stable.

    Signed-off-by: Fancy Fang
    Reviewed-by: Robby Cai

    Fancy Fang
     
  • According to the .transfer function definition in mipi_dsi_host_ops,
    on success it shall return the number of bytes transmitted for write
    packets or the number of bytes received for read packets. So correct
    the return value in sec_mipi_dsim_host_transfer() implementation.

    Signed-off-by: Fancy Fang
    Reviewed-by: Robby Cai

    Fancy Fang
     
  • Fix a Coverity issue in fm: extra argument to printf format specifier for dma_max_watchdog

    Signed-off-by: Florinel Iordache

    Florinel Iordache
     
  • This reverts commit cd74693870fb748d812867ba49af733d689a3604.

    This is a workaround for allowing dm-crypt crypto operations to be
    offloaded to caam crypto accelerator.
    It's needed because crypto algorithms registered by caam are marked with
    CRYPTO_ALG_ALLOCATES_MEMORY flag.

    Background:
    Red Hat reported possible allocation issues in dm-crypt, dm-integrity:
    Link: https://lore.kernel.org/linux-crypto/alpine.LRH.2.02.2006091259250.30590@file01.intranet.prod.int.rdu2.redhat.com
    The solution found was a mechanism to let dm-crypt, dm-integrity avoid
    using crypto algorithms that allocate memory "at runtime" - by specifying
    the CRYPTO_ALG_ALLOCATES_MEMORY flag introduced in
    commit fbb6cda44190 ("crypto: algapi - introduce the flag CRYPTO_ALG_ALLOCATES_MEMORY")

    Signed-off-by: Horia Geantă
    Reviewed-by: Manish Tomar

    Horia Geantă
     
  • The ls-extirq driver doesn't implement the irq_set_wake()
    callback, while being wake-up capable. This results in
    ugly behaviours across suspend/resume cycles.

    Advertise this by adding IRQCHIP_SKIP_SET_WAKE to
    the irqchip flags

    Signed-off-by: Biwen Li

    Biwen Li
     

27 Jan, 2021

2 commits


26 Jan, 2021

8 commits


25 Jan, 2021

2 commits


22 Jan, 2021

9 commits


21 Jan, 2021

3 commits

  • In case no job rings are available, secure memory structures are not
    initialized, since caam_jr_probe()->init_misc_func()->caam_sm_startup()
    is not called.
    This could happen if all job ring devices bind to the jr uio driver
    instead of the caam/jr driver.
    Running sm_test in this case will lead to a crash.

    Add a check to verify that SM has been initialized - if not the tests
    will be skipped.

    Reported-by: Gaurav Jain
    Signed-off-by: Horia Geantă
    Reviewed-by: Gaurav Jain

    Horia Geantă
     
  • Introduction
    ===

    Currently we are facing some limitations in the caam/jr module lifecycle.
    There are some discussion in upstream:
    Link: https://lore.kernel.org/linux-crypto/20190904023515.7107-13-andrew.smirnov@gmail.com
    Link: https://lore.kernel.org/linux-crypto/20191105151353.6522-1-andrew.smirnov@gmail.com
    but in the end it all seems to get down to implementations not being able
    to gracefully unregister crypto algorithms from crypto API while there are
    users / allocated tfms (cra_refcnt > 1).

    [*] OTOH functionalities in caam/jr that don't interact with crypto API
    (like Secure Memory or black keys / blobs generation) don't face this
    limitation.

    Issue at hand
    ===

    When unloading the caam_jr module, the .remove callback for the last JR
    device exits with -EBUSY (see "Introduction" above) and doesn't perform
    the clean-up (crypto algorithms unregistering etc.).

    One side effect of this is leeding to an oops, which occurs due to a
    corruption in the linked list of "misc devices"
    (drivers/char/misc.c - misc_list):
    1. caam_jr module is unloaded without calling unregister_algs()->
    caam_keygen_exit()->misc_deregister() for the last job ring device;
    this leaves a dangling entry in the misc_list double-linked list
    2. rng_core module is unloaded and calls misc_deregister(); this implies
    removing the corresponding entry in the misc_list; while doing this the
    dangling entry is accessed - which leads to an oops since the address is
    no longer valid (address points to the caam_jr module address space,
    but caam_jr has been previously unloaded).

    Fix this by moving the clean-up of non-crypto related functionalities [*]
    before crypto related ones.

    Fixes: 3af836d4b311 ("MLK-24420-3 crypto: caam - add ioctl calls for black keys and blobs generation")
    Signed-off-by: Horia Geantă
    Reviewed-by: Gaurav Jain

    Horia Geantă
     
  • In case of long format of qDMA command descriptor, there are one frame
    descriptor, three entries in the frame list and two data entries. So the
    size of dma_pool_create for these three fields should be the same with
    the total size of entries respectively, or the contents may be overwritten
    by the next allocated descriptor.

    Signed-off-by: Guanhua Gao

    Guanhua Gao