30 Aug, 2017

2 commits

  • g2d code has different parameter setting about stride parameter.
    For compatibility with all cases of using PxP, we need add this
    improved feature.

    Signed-off-by: Guoniu.Zhou
    Reviewed-by: Robby Cai
    Reviewed-by: Fancy Fang

    Guoniu.Zhou
     
  • If pxp use crop x/y valuse as the upper left coordinate in
    out buffer, pxp driver only need to write out buffer base
    address to pxp out_buf register. If pxp driver use zero as
    ps_ulc register value, pxp out_buf register need an offset
    added with out buffer base address.

    Signed-off-by: Guoniu.Zhou
    Reviewed-by: Robby Cai
    Reviewed-by: Fancy Fang

    Guoniu.Zhou
     

29 Aug, 2017

2 commits


18 Aug, 2017

1 commit


17 Aug, 2017

1 commit

  • set WFE (WFE_A on imx7d, and WFE_B on imx6ull/imx6sll) input address to
    framebuffer start address, and set left/top coordinate since the framebuffer is
    the original source of WFE (i.e., not from PXP output) when bypass legacy mode.
    The patch also limits the condition to bypass legacy mode when not use
    EPDC_FLAG_USE_ALT_BUFFER.

    Signed-off-by: Robby Cai
    (cherry picked from commit 7f19940705902623166777c675f5e10c9e7fc477)

    Robby Cai
     

15 Aug, 2017

1 commit


08 Aug, 2017

1 commit

  • when gpu memory is from virtual system pool, the physical address
    will become invalid, driver should enable mmu mapping accordingly.

    but current kernel driver return the zero address with default value,
    this mistake will cause gpu write into the wrong memory from zero.

    this fix mark the invalid address for the virtual memory.

    Date: Aug 06, 2017
    Signed-off-by: Xianzhong
    Reviewed-by: Yuchou Gan
    Reviewed-by: Yong Gan
    Tested-by: Jason Liu

    Xianzhong
     

07 Aug, 2017

1 commit


04 Aug, 2017

1 commit

  • For HannStar (HSD100PXN1 Rev: 1-A00C11 F/W:0634) LVDS touch screen,
    it has a special request for the EETI touch controller. The host
    needs to trigger I2C event to device FW at booting first, and then
    the FW can switch to I2C interface. Otherwise, the FW can’t work
    with I2C interface, and can't generate any interrupt when touch
    the screen.

    This patch send an I2C command before the device wake up, make sure
    the device switch to I2C interface first.

    Signed-off-by: Haibo Chen
    Reviewed-by: Andy Duan
    (cherry picked from commit 037f88c1b9566008748d54b9d4feb647c38c6153)

    Haibo Chen
     

26 Jul, 2017

1 commit


25 Jul, 2017

3 commits


20 Jul, 2017

1 commit

  • After the chipidea driver introduce extcon for id and vbus, it's able
    to wakeup from another irq source, in case the system with extcon ID
    cable, wakeup from usb ID cable and device removal, the usb device
    disconnect irq may come firstly before the extcon notifier while system
    resume, so we will get 2 "wakeup" irq, one for usb device disconnect;
    and one for extcon ID cable change(real wakeup event), current driver
    treat them as 2 successive wakeup irq so can't handle it correctly, then
    finially the usb irq can't be enabled. This patch adds a check to bypass
    further usb events before controller resume finished to fix it.

    Reviewed-by: Peter Chen
    Signed-off-by: Li Jun

    Li Jun
     

19 Jul, 2017

2 commits


18 Jul, 2017

1 commit


14 Jul, 2017

2 commits


13 Jul, 2017

1 commit


12 Jul, 2017

2 commits


07 Jul, 2017

2 commits

  • This fixes commit 9982b452c61e ("MLK15034: ARM: cpuidle imx7d: Check
    IPIs manually before LPI").

    Signed-off-by: Leonard Crestez
    Reviewed-by: Anson Huang

    Leonard Crestez
     
  • mxc_mipi_dsi_samsung 30760000.mipi-dsi: MIPI DSI dispdrv inited!
    mxsfb 30730000.lcdif: registered mxc display driver mipi_dsi_samsung
    mxc_mipi_dsi_samsung 30760000.mipi-dsi: failed to reset device: -517
    mxsfb 30730000.lcdif: failed to enable dispdrv:mipi_dsi_samsung

    due to the commit e188cbf7564fba80e8339b9406e8740f3e495c63
    "gpio: mxc: shift gpio_mxc_init() to subsys_initcall level", and
    gpio_reset uses arch_initcall level, the gpio driver is not yet
    ready when call device_reset() thus return -EPROBE_DEFER. But the caller
    of device_reset(), mipi_dsi_enable() has no defer strategy.
    use of_reset_control_get() function in init() function, which will be called
    in probe function in mxsfb driver, to workaround the defer case.

    Acked-by: Fang Chen
    Acked-by: Cristina-mihaela Ciocan
    Signed-off-by: Robby Cai
    (cherry picked from commit 5e90ffe698d08010b52104431409b2c45dcbca52)

    Robby Cai
     

06 Jul, 2017

4 commits

  • Low power idle exit latency is much longer than declared, in the
    milisecond range.

    Signed-off-by: Anson Huang
    Signed-off-by: Leonard Crestez
    Reviewed-by: Anson Huang

    Leonard Crestez
     
  • The GPC will wake us on peripheral interrupts but not IPIs. So check
    them manually by reading the GIC's GICD_SPENDSGIR* registers and
    aborting idle if something is pending.

    We do this only for the last cpu and after taking the required locks.
    We know that at this stage the other cpu is in WFI itself or waiting for
    the imx_pen_lock and can't trigger any additional IPIs. This means that
    the check is not racy.

    This fixes occasional lost IPIs causing tasks to get stuck in the
    TASK_WAKING 'W' state for long periods. This eventually manifested as
    rcu stalls.

    Signed-off-by: Leonard Crestez

    Leonard Crestez
     
  • This makes the code much easier to reason about. In particular it o
    makes sure the imx7d cpuidle driver respects the requirements for
    cpu_cluster_pm_enter/exit:

    * cpu_cluster_pm_enter must be called after cpu_pm_enter has been called
    on all cpus in the power domain, and before cpu_pm_exit has been called
    on any cpu in the power domain.
    * cpu_cluster_pm_exit must be called after cpu_pm_enter has been called
    on all cpus in the power domain, and before cpu_pm_exit has been called
    on any cpu in the power domain.

    This fixes interrupts sometimes getting "stuck" because of improper
    save/restore of GIC DIST registers.

    Signed-off-by: Anson Huang
    Signed-off-by: Leonard Crestez
    Reviewed-by: Anson Huang

    Leonard Crestez
     
  • Using a lower FLL out frequency seems to fix the sound distortion we hear
    during playback of the second audio file from the command:
    aplay -Dhw:0 -d 1 audio96k16b2c.wav audio96k24b2c.wav

    Because the new frequency is half of the old one the existing BLCK compute
    formula from wm8962 codec driver is still correct, it can derive the new
    FLL output frequency.

    Signed-off-by: Mihai Serban
    Reviewed-by: Daniel Baluta
    (cherry picked from commit 943149fc45dd937daafde6ab27f7cc5eb2b0cecb)

    Mihai Serban
     

05 Jul, 2017

2 commits

  • CAAM aes modes share descriptors, because of this CAAM requires an IV
    for ECB. ECB does not need an IV and users do not have to pass valid
    IV vectors. To allow correct usage with minimum impact to the driver a
    zero IV is provided by the driver for ECB operations that need it.

    Signed-off-by: Radu Solea

    Radu Solea
     
  • This patch fixes build warning that 2 variables may be used uninitialized
    in the pxp_fetch_config() function in drivers/dma/pxp/pxp_dma_v3.c .

    The variables in_fmt and out_fmt are passed as parameters to
    pxp_fetch_shift_calc() only if shift_bypass is false. This flag cannot be
    false unless changed in a code block that also assigns in_fmt and out_fmt.

    Since the compiler cannot detect this flow, it shows a warning that in_fmt
    and out_fmt are not initialized. Fix this by changing the code flow such
    that in_fmt and out_fmt are sent as parameters in the same code block where
    they are assigned.

    Signed-off-by: Cristina Ciocan
    (cherry picked from commit e710b061ef292402045b30ccb56bcdcd343d43c5)

    Cristina Ciocan
     

30 Jun, 2017

1 commit

  • It is possible for an irq triggered by channel0 to be received later,
    after clks are disabled. If that happens then clearing them by writing
    to SDMA_H_INTR won't work and the system will hang processing infinite
    interrupts. Actually, don't need interrupt triggered on channel0 since
    it's pollling to know channel0 done rather than interrupt in current
    code, just clear BD setting to disable channel0 interrupt to avoid the
    above case.

    Reported-by: Leonard Crestez
    Signed-off-by: Robin Gong
    (cherry picked from commit ed3bbe18323565b0c07f836fbf53401ffa887bf2)

    Robin Gong
     

28 Jun, 2017

1 commit


27 Jun, 2017

1 commit


22 Jun, 2017

1 commit

  • Using a higher bitclk then expected doesn't always work.
    Here is an example:

    aplay -Dhw:0,0 -d 5 -r 48000 -f S24_LE -c 2 audio48k24b2c.wav

    In this case, the required bitclk is 48000 * 24 * 2 = 2304000
    but the closest bitclk that can be derived is 3072000.

    Now, for format S24_LE, SAI will use slot_width = 24, but since
    the clock is faster than expected, it will start to send bytes
    from the next channel so the sound will be corrupted.

    Thus, remove bitclk relaxation condition which was added mostly
    for supporting S20_3LE format which was removed from SAI in
    commit 739e6d654b5c0a ("MLK-14870: ASoC: fsl_sai: Remove support
    for S20_3LE").

    Signed-off-by: Daniel Baluta
    Reviewed-by: Shengjiu Wang

    Daniel Baluta
     

21 Jun, 2017

2 commits


20 Jun, 2017

3 commits

  • The DCP driver does not obey cryptlen, when doing CTS this results in
    passing to hardware input stream lengths which are not multiple of
    block size. This causes the hw to misbehave. Also not honoring
    cryptlen makes CTS fail. A check was introduced to prevent future
    erroneous stream lengths from reaching the hardware. Code which is
    splitting the input stream in internal DCP pages was changed to obey
    cryptlen.

    Signed-off-by: Radu Solea

    Radu Solea
     
  • On imx6sl and imx6ull DCP writes at least 32 bytes in the output
    buffer instead of hash length as documented. Add intermediate buffer
    to prevent write out of bounds.

    When requested to produce null hashes DCP fails to produce valid
    output. Add software workaround to bypass hardware and return valid output.

    Signed-off-by: Radu Solea

    Radu Solea
     
  • A side effect of commit 5555277e693a7 ("MLK-13574-1: ASoC: imx-wm8960:
    remove the gpr dependency") is that a warning was printed for boards
    without gpr. This can be confusing.

    imx7d boards do not have a gpr setting, so use imx7d-evk-wm8960
    compatible string to avoid printing the warning.

    Signed-off-by: Daniel Baluta

    Daniel Baluta