1. 14 May, 2020 1 commit
  2. 28 Apr, 2020 1 commit
    • Georg Hartinger's avatar
      CGT000008 QMX6: set range for CMA to the first 2GB of the physical RAM · 1debc3b5
      Georg Hartinger authored
      On systems with more than 2GB RAM allocates the kernel the Contiguous Memory Area (CMA)
      by default above the 2GB boundary. This leads to errors in the graphics driver because
      the iMX6 graphics hardware can access physical memory only in the range between 0 and 2GB.
      
      This is documented in i.MX_Graphics_User's_Guide.pdf
      (Document Number: IMXGRAPHICUG Rev. 2, 04/2019) on page 138
      "14.5 GPU memory base address" (from imx-yocto-L4.14.98_2.0.0_ga.zip)
      
      With this configuration, the CMA is limited to be always below 2GB.
      Signed-off-by: Georg Hartinger's avatarGeorg Hartinger <georg.hartinger@congatec.com>
      1debc3b5
  3. 05 Feb, 2020 7 commits
  4. 18 Apr, 2019 1 commit
    • Peng Fan's avatar
      MLK-21374 mmc: cqhci: clear pending interrupt and halt · 1175b596
      Peng Fan authored
      On i.MX8MM, we are running Dual Linux OS, with 1st Linux using SD Card
      as rootfs storage, 2nd Linux using eMMC as rootfs storage. We let the
      the 1st linux configure power/clock for the 2nd Linux.
      
      When the 2nd Linux is booting into rootfs stage, we let the 1st Linux
      to destroy the 2nd linux, then restart the 1st linux, we met SDHCI dump
      as following, after we clear the pending interrupt and halt CQCTL, issue
      gone.
      
      [ 1.334594] mmc2: Got command interrupt 0x00000001 even though no command operation was in progress.
      [ 1.334595] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========
      [ 1.334599] mmc2: sdhci: Sys addr: 0xa05dcc00 | Version: 0x00000002
      [ 1.340819] lib80211: common routines for IEEE802.11 drivers
      [ 1.345538] mmc2: sdhci: Blk size: 0x00000200 | Blk cnt: 0x00000000
      [ 1.345541] mmc2: sdhci: Argument: 0x00018000 | Trn mode: 0x00000033
      [ 1.345543] mmc2: sdhci: Present: 0x01f88008 | Host ctl: 0x00000031
      [ 1.345547] mmc2: sdhci: Power: 0x00000002 | Blk gap: 0x00000080
      [ 1.357903] mmc2: sdhci: Wake-up: 0x00000008 | Clock: 0x0000003f
      [ 1.357905] mmc2: sdhci: Timeout: 0x0000008f | Int stat: 0x00000000
      [ 1.357908] mmc2: sdhci: Int enab: 0x107f100b | Sig enab: 0x107f100b
      [ 1.357911] mmc2: sdhci: AC12 err: 0x00000000 | Slot int: 0x00000502
      [ 1.370268] mmc2: sdhci: Caps: 0x07eb0000 | Caps_1: 0x0000b400
      [ 1.370270] mmc2: sdhci: Cmd: 0x00000d1a | Max curr: 0x00ffffff
      [ 1.370273] mmc2: sdhci: Resp[0]: 0x00000b00 | Resp[1]: 0xffffffff
      [ 1.370276] mmc2: sdhci: Resp[2]: 0x328f5903 | Resp[3]: 0x00d00f00
      [ 1.382132] mmc2: sdhci: Host ctl2: 0x00000000
      [ 1.382135] mmc2: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0xa2040208
      
      [ 2.060932] mmc2: Unexpected interrupt 0x00004000.
      [ 2.065538] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========
      [ 2.071720] mmc2: sdhci: Sys addr: 0x00000000 | Version: 0x00000002
      [ 2.077902] mmc2: sdhci: Blk size: 0x00000200 | Blk cnt: 0x00000001
      [ 2.084083] mmc2: sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
      [ 2.090264] mmc2: sdhci: Present: 0x01f88009 | Host ctl: 0x00000011
      [ 2.096446] mmc2: sdhci: Power: 0x00000002 | Blk gap: 0x00000080
      [ 2.102627] mmc2: sdhci: Wake-up: 0x00000008 | Clock: 0x000010ff
      [ 2.108809] mmc2: sdhci: Timeout: 0x0000008f | Int stat: 0x00004000
      [ 2.114990] mmc2: sdhci: Int enab: 0x007f1003 | Sig enab: 0x007f1003
      [ 2.121171] mmc2: sdhci: AC12 err: 0x00000000 | Slot int: 0x00000502
      [ 2.127353] mmc2: sdhci: Caps: 0x07eb0000 | Caps_1: 0x0000b400
      [ 2.133534] mmc2: sdhci: Cmd: 0x0000371a | Max curr: 0x00ffffff
      [ 2.139715] mmc2: sdhci: Resp[0]: 0x00000900 | Resp[1]: 0xffffffff
      [ 2.145896] mmc2: sdhci: Resp[2]: 0x328f5903 | Resp[3]: 0x00d00f00
      [ 2.152077] mmc2: sdhci: Host ctl2: 0x00000000
      [ 2.156342] mmc2: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000
      Signed-off-by: default avatarPeng Fan <peng.fan@nxp.com>
      Reviewed-by: default avatarHaibo Chen <haibo.chen@nxp.com>
      1175b596
  5. 15 Apr, 2019 1 commit
  6. 14 Apr, 2019 1 commit
    • Shengjiu Wang's avatar
      MLK-21447: ASoC: fsl_rpmsg_i2s: underrun in m4 for msg delayed · 5d6cbeaf
      Shengjiu Wang authored
      With small buffer size, the resume will be triggered after suspend
      immediately, if we reserve the period done message to be sent with
      the next command, one period time later, it will cause underrun in
      m4 side, for ALSA thought the appl_ptr is updated, but the command
      won't be sent to M4 immediately, M4 don't have enough data to play.
      
      In this patch, we check that if the left size in the buffer is less
      that one period, the work queue will be triggered to send the period
      done message immediately.
      
      Fixes: 348d4769 ("MLK-21307: ASoC: fsl_rpmsg_i2s: optimize
      the message sent to m4")
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      
      (cherry picked from commit 3dfecae40765329c0b7de1157f97ade24ecfce6d)
      5d6cbeaf
  7. 12 Apr, 2019 8 commits
    • Fancy Fang's avatar
      MLK-21380 video: fbdev: mxsfb: fix resume timing for overlay fb · 7a007877
      Fancy Fang authored
      The overlay fb can only be enabled when the LCDIF is not in
      running, otherwise overlay display may look like image shift.
      So during the system resume procedure, the overlay fb should
      be resumed before mxsfb unblank.
      Signed-off-by: default avatarFancy Fang <chen.fang@nxp.com>
      (cherry picked from commit f39662a3a38a2da082d55a006e634766cc85e347)
      7a007877
    • Fugang Duan's avatar
      MLK-21445 serial: fsl_lpuart: do HW reset for communication port · 6c6c6d77
      Fugang Duan authored
      Do HW reset for communication port after the port is registered
      if the UART controller support the feature.
      
      Do partition reset with LPUART's power on, LPUART registers will
      keep the previous status, like on i.MX8QM platform,  which is not
      expected action, so reset the HW is required.
      
      Currently, only i.MX7ULP and i.MX8QM LPUART controllers include
      global register that support HW reset.
      Tested-by: default avatarRobin Gong <yibin.gong@nxp.com>
      Tested-by: default avatarPeng Fan <peng.fan@nxp.com>
      Reviewed-by: default avatarRobby Cai <robby.cai@nxp.com>
      Signed-off-by: default avatarFugang Duan <fugang.duan@nxp.com>
      (cherry picked from commit c2bc1f62ec28981462c9cb5ceac17134931ca19f)
      6c6c6d77
    • Robin Gong's avatar
      MLK-21443: dmaengine: fsl-edma-v3: clear pending irq before request irq · c90b6544
      Robin Gong authored
      edma interrupt maybe happened during reboot or watchdog reset, meanwhile
      gic never power down on i.mx8QM/QXP, thus the unexpect irq will come in
      once edma driver request irq at probe phase. Unfortunately, at that time
      that edma channel's power domain which power-up by customer driver such
      as audio/uart driver may not be ready, so kernel panic triggered once
      touch such edma registers which still not power up in interrupt handler.
      Move request irq from probe to alloc dma channel so that edma channel's
      power domain has already been powered, besides, clear meaningless
      interrupt before request irq.
      Signed-off-by: default avatarRobin Gong <yibin.gong@nxp.com>
      Acked-by: default avatarFugang Duan <fugang.duan@nxp.com>
      (cherry picked from commit 0a0d8f8b)
      c90b6544
    • Shengjiu Wang's avatar
      MLK-21307: ASoC: fsl_rpmsg_i2s: optimize the message sent to m4 · 348d4769
      Shengjiu Wang authored
      M4 complain that there are two much period done message sent to m4, that
      M4 don't have enough time to handle these messages.
      
      The solution for this issue is to reduce the number of period done message.
      We allocate a specific memory for period done message, every time there is
      period done coming, it will be writed to this memory, not write it directly
      to the work queue, that queue will not be overflow, and the old period done
      message will be overwrited.
      
      In the rpmsg_i2s_work, we first check if there is period done message, then
      send it first, after that, send the command in queue.
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      Reviewed-by: default avatarDaniel Baluta <daniel.baluta@nxp.com>
      (cherry picked from commit caabdfa176453cc7c8d6521f7865a670a7265a18)
      348d4769
    • Shengjiu Wang's avatar
      MLK-21440-4: ASoC: imx-cs42888: remove snd_soc_find_dai · d1222a0e
      Shengjiu Wang authored
      Previously we add snd_soc_find_dai to check if the codec is probed or
      not, but this bring kernel dump issue when CONFIG_LOCKDEP=y.
      
      [    2.823379] WARNING: CPU: 2 PID: 1 at sound/soc/soc-core.c:1016 snd_soc_find_dai+0x144/0x150
      [    2.831827] Modules linked in:
      [    2.834907] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.14.78-00007-g524e1b1f0b3f #18
      [    2.842748] Hardware name: FSL i.MX8MM EVK board (DT)
      [    2.847811] task: ffff8000624f0000 task.stack: ffff000008078000
      [    2.853745] PC is at snd_soc_find_dai+0x144/0x150
      [    2.858462] LR is at snd_soc_find_dai+0x140/0x150
      
      ...
      
      [    3.469675] Call trace:
      [    3.472135] Exception stack(0xffff00000807ba40 to 0xffff00000807bb80)
      [    3.478590] ba40: 0000000000000000 00000000ffffffff 0000000000000000 0000000000000002
      [    3.4864333.596564] [<ffff00000883f2a8>] bus_add_driver+0x110/0x230
      [    3.602149] [<ffff0000088412e8>] driver_register+0x68/0x100
      [    3.607735] [<ffff0000088426dc>] __platform_driver_register+0x54/0x60
      [    3.614191] [<ffff0000097e4cc8>] imx_rpmsg_driver_init+0x20/0x28
      [    3.620213] [<ffff0000080844c4>] do_one_initcall+0x44/0x130
      [    3.625801] [<ffff000009760ef8>] kernel_init_freeable+0x1e0/0x280
      [    3.631909] [<ffff00000908c3f8>] kernel_init+0x18/0x110
      [    3.637148] [<ffff000008085a4c>] ret_from_fork+0x10/0x1c
      
      So we could't resolve the warning "snd_soc_register_card failed (-517)".
      
      Fixes: 2bf5f970 ("MLK-19854-1: ASoC: imx-cs42888: fix error when m4
      image is not loaded")
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      
      (cherry picked from commit 58ffdf239288cfa6904640fc8432c182cf56589b)
      d1222a0e
    • Shengjiu Wang's avatar
      MLK-21440-3: ASoC: imx-wm8960: remove snd_soc_find_dai · c54e5cd3
      Shengjiu Wang authored
      Previously we add snd_soc_find_dai to check if the codec is probed or
      not, but this bring kernel dump issue when CONFIG_LOCKDEP=y.
      
      [    2.823379] WARNING: CPU: 2 PID: 1 at sound/soc/soc-core.c:1016 snd_soc_find_dai+0x144/0x150
      [    2.831827] Modules linked in:
      [    2.834907] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.14.78-00007-g524e1b1f0b3f #18
      [    2.842748] Hardware name: FSL i.MX8MM EVK board (DT)
      [    2.847811] task: ffff8000624f0000 task.stack: ffff000008078000
      [    2.853745] PC is at snd_soc_find_dai+0x144/0x150
      [    2.858462] LR is at snd_soc_find_dai+0x140/0x150
      
      ...
      
      [    3.469675] Call trace:
      [    3.472135] Exception stack(0xffff00000807ba40 to 0xffff00000807bb80)
      [    3.478590] ba40: 0000000000000000 00000000ffffffff 0000000000000000 0000000000000002
      [    3.4864333.596564] [<ffff00000883f2a8>] bus_add_driver+0x110/0x230
      [    3.602149] [<ffff0000088412e8>] driver_register+0x68/0x100
      [    3.607735] [<ffff0000088426dc>] __platform_driver_register+0x54/0x60
      [    3.614191] [<ffff0000097e4cc8>] imx_rpmsg_driver_init+0x20/0x28
      [    3.620213] [<ffff0000080844c4>] do_one_initcall+0x44/0x130
      [    3.625801] [<ffff000009760ef8>] kernel_init_freeable+0x1e0/0x280
      [    3.631909] [<ffff00000908c3f8>] kernel_init+0x18/0x110
      [    3.637148] [<ffff000008085a4c>] ret_from_fork+0x10/0x1c
      
      So we could't resolve the warning "snd_soc_register_card failed (-517)".
      
      Fixes: a52c88bc ("MLK-19854-1: ASoC: imx-wm8960: fix error when m4
      image is not loaded")
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      
      (cherry picked from commit f5d9013702e172a243da74a42941a62283bbe4a8)
      c54e5cd3
    • Shengjiu Wang's avatar
      MLK-21440-2: ASoC: imx-rpmsg: Remove snd_soc_find_dai · ebf3fc59
      Shengjiu Wang authored
      Previously we add snd_soc_find_dai to check if the codec is probed or
      not, but this bring kernel dump issue when CONFIG_LOCKDEP=y.
      
      [    2.823379] WARNING: CPU: 2 PID: 1 at sound/soc/soc-core.c:1016 snd_soc_find_dai+0x144/0x150
      [    2.831827] Modules linked in:
      [    2.834907] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.14.78-00007-g524e1b1f0b3f #18
      [    2.842748] Hardware name: FSL i.MX8MM EVK board (DT)
      [    2.847811] task: ffff8000624f0000 task.stack: ffff000008078000
      [    2.853745] PC is at snd_soc_find_dai+0x144/0x150
      [    2.858462] LR is at snd_soc_find_dai+0x140/0x150
      
      ...
      
      [    3.469675] Call trace:
      [    3.472135] Exception stack(0xffff00000807ba40 to 0xffff00000807bb80)
      [    3.478590] ba40: 0000000000000000 00000000ffffffff 0000000000000000 0000000000000002
      [    3.4864333.596564] [<ffff00000883f2a8>] bus_add_driver+0x110/0x230
      [    3.602149] [<ffff0000088412e8>] driver_register+0x68/0x100
      [    3.607735] [<ffff0000088426dc>] __platform_driver_register+0x54/0x60
      [    3.614191] [<ffff0000097e4cc8>] imx_rpmsg_driver_init+0x20/0x28
      [    3.620213] [<ffff0000080844c4>] do_one_initcall+0x44/0x130
      [    3.625801] [<ffff000009760ef8>] kernel_init_freeable+0x1e0/0x280
      [    3.631909] [<ffff00000908c3f8>] kernel_init+0x18/0x110
      [    3.637148] [<ffff000008085a4c>] ret_from_fork+0x10/0x1c
      
      So we could't resolve the warning "snd_soc_register_card failed (-517)".
      
      Fixes: 75632b22 ("MLK-20247: ASoC: imx-rpmsg: fix error when
      m4 image is not loaded")
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      
      (cherry picked from commit bbc1868d1c3ec448301d76606e7199f74aa35581)
      ebf3fc59
    • Shengjiu Wang's avatar
      MLK-21440-1: ASoC: fsl_rpmsg_i2s: init spin lock · 314ef30b
      Shengjiu Wang authored
      With CONFIG_LOCKDEP=y, there will kernel dump
      
      [   55.305563] INFO: trying to register non-static key.
      [   55.310540] the code is fine but needs lockdep annotation.
      [   55.316027] turning off the locking correctness validator.
      [   55.321520] CPU: 0 PID: 32 Comm: kworker/0:1 Tainted: G        W       4.14.78-00007-g524e1b1f0b3f #18
      [   55.330827] Hardware name: FSL i.MX8MM EVK board (DT)
      [   55.335892] Workqueue: events rpmsg_work_handler
      [   55.340515] Call trace:
      [   55.342971] [<ffff00000808c438>] dump_backtrace+0x0/0x270
      [   55.348375] [<ffff00000808c6cc>] show_stack+0x24/0x30
      [   55.353433] [<ffff000009078f38>] dump_stack+0xb8/0xf0
      [   55.358490] [<ffff000008150404>] register_lock_class+0x364/0x548
      [   55.364501] [<ffff000008153544>] __lock_acquire+0x7c/0x18a8
      [   55.370077] [<ffff0000081555e8>] lock_acquire+0xc8/0x290
      [   55.375394] [<ffff00000909422c>] _raw_spin_lock_irqsave+0x54/0x70
      [   55.381493] [<ffff000008d80888>] i2s_rpmsg_cb+0xe8/0x1b0
      [   55.386810] [<ffff000008d01dc4>] rpmsg_recv_done+0x144/0x210
      [   55.392476] [<ffff000008713f44>] vring_interrupt+0x44/0x78
      [   55.397966] [<ffff000008d025d4>] imx_mu_rpmsg_callback+0x6c/0x80
      [   55.403977] [<ffff000008111f44>] notifier_call_chain+0x5c/0x98
      [   55.409813] [<ffff0000081124f8>] __blocking_notifier_call_chain+0x58/0xa0
      [   55.416605] [<ffff00000811257c>] blocking_notifier_call_chain+0x3c/0x50
      [   55.423223] [<ffff000008d029a0>] rpmsg_work_handler+0x88/0xe8
      [   55.428974] [<ffff000008108380>] process_one_work+0x290/0x738
      [   55.434723] [<ffff000008108880>] worker_thread+0x58/0x460
      [   55.440127] [<ffff000008110084>] kthread+0x104/0x130
      [   55.445096] [<ffff000008085a4c>] ret_from_fork+0x10/0x1c
      
      The reason is that the spin lock is not initilized.
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      (cherry picked from commit 0e98ac55)
      314ef30b
  8. 11 Apr, 2019 1 commit
  9. 10 Apr, 2019 5 commits
  10. 29 Mar, 2019 4 commits
  11. 28 Mar, 2019 6 commits
    • Liu Ying's avatar
      MLK-21278 drm/imx: dpu: crtc: Staticize dpu_crtc_get_aux_dpu_crtc() · dbf79d29
      Liu Ying authored
      It isn't used out side of the file for now.
      Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
      (cherry picked from commit 13a0d5c3b15e42834b872b0da904f874ff717500)
      dbf79d29
    • Liu Ying's avatar
      MLK-21269 drm/imx: dpu: crtc: Wait for FG moving after tcon mode switch for non-PC cases · 0cbefeb2
      Liu Ying authored
      Due to TKT320590, we are asked to turn TCON into operation mode later after
      the first dumb frame is generated by DPU.  This makes DPR/PRG be able to
      evade the frame.  However, it turns out we have to set the TCON into operation
      mode first and then wait for Framegen frame counter moving, otherwise, the
      display pipeline cannot be setup correctly sometimes(If pixel combiner is used,
      one of the two display streams is likely broken).  This is a mysterious issue.
      So, we've already taken a workaround for the cases where pixel combiner is used.
      
      It appears that the similar issue is likely to happen for cases where pixel
      combiner is unused.  That is to say, if pixel combiner is unused and prefetch
      engine is used, the first atomic flush after the enablement is likely to fail -
      content shadow load irq doesn't come.  The sequence which the patch takes is
      the same to the one taken by the previous workaround.  Based on tests, it is
      valid for cases with or without pixel combiner.
      Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
      (cherry picked from commit b6126aa9697c77896d2085997eec2a6995509f4b)
      0cbefeb2
    • Liu Ying's avatar
      MLK-20208-4 mxc IPUv3: disp: Avoid division by zero in ipu_init_sync_panel() · a7fcc0ed
      Liu Ying authored
      To avoid potential division by zero in ipu_init_sync_panel(),
      let's check the rounded_pixel_clk rate prior to that.
      
      Detected by CoverityScan, CID#56278 ("Division or modulo by zero")
      Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
      (cherry picked from commit 1523150b71f1aa0610f61ea47a9f3bdbcda92522)
      a7fcc0ed
    • Liu Ying's avatar
      MLK-20208-3 mxc IPUv3: disp: Avoid division by zero in ipu_init_async_panel() · 14cf24b5
      Liu Ying authored
      To avoid potential division by zero in ipu_init_async_panel(),
      let's check the di_clk rate prior to that.
      
      Detected by CoverityScan, CID#56264 ("Division or modulo by zero")
      Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
      (cherry picked from commit d7777247e6ba4ca9fcc313bef6672060859fed19)
      14cf24b5
    • Liu Ying's avatar
      MLK-20208-2 mxc IPUv3: device: Avoid potential out of bounds array access · 78741306
      Liu Ying authored
      To avoid potential out of bounds array access on tbl->used[][],
      let's check the tsk->ipu_id prior to that.  Based on the context,
      this is what we can do to make the coverity happy.
      
      Detected by CoverityScan, CID#17689 ("Derefernece before null check")
      Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
      (cherry picked from commit f5dcf709c54da8e64eb84f1dd7a4452ad8d942cf)
      78741306
    • Liu Ying's avatar
      MLK-20208-1 mxc IPUv3: device: Remove a piece of dead code in ipu_task_thread() · a8452e16
      Liu Ying authored
      The check on !sp_tsk0 is unnecessary in ipu_task_thread(), because the
      beforehand "list_del(&sp_tsk0->node);" within the context implies sp_tsk0
      is not null, otherwise, we'll dereference a null pointer earlier.
      
      Detected by CoverityScan, CID#17842 ("Logically dead code")
      Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
      (cherry picked from commit 9ad5edd076d61bc8bb3a558e523cc7b31f2c3043)
      a8452e16
  12. 27 Mar, 2019 4 commits