Skip to content
Snippets Groups Projects
  1. Sep 08, 2021
    • Robby Cai's avatar
      LF-4297 Fix Coverity Issue:17320543 Uninitialized scalar variable · 9d1a5baf
      Robby Cai authored
      
      The variable 'ext_temp' presenting the external temperature is expected to be
      used when call with DEFAULT_TEMP_INDEX and overridden by new value if read out
      successfully from the PMIC. For some reason sometimes the temperature value from
      PMIC is not correct on MX8ULP (e.g., read out as '0'), disable it temporarily.
      As a consequence, it causes the variable 'ext_temp' might be uninitialized
      and then set a wrong temperature index to register.
      
      This patch fixed this Uninitialized problem by setting to DEFAULT_TEMP.
      
      Current logic is the driver will use DEFAULT_TEMP unless the user assigns
      different value. To revisit PMIC temperature driver to restore previous logic.
      
      Signed-off-by: default avatarRobby Cai <robby.cai@nxp.com>
      Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
      9d1a5baf
  2. Sep 03, 2021
    • Jacky Bai's avatar
      LF-4521-02 soc: imx: Fix section mismatch build warning due to __init · deadc1cd
      Jacky Bai authored
      
      Fix below section mismatch build warning:
      
      WARNING: modpost: vmlinux.o(.text+0x6b20b8): Section mismatch in reference
      from the function imx8_soc_info() to the function .init.text:imx8mq_noc_init()
      The function imx8_soc_info() references
      the function __init imx8mq_noc_init().
      This is often because imx8_soc_info lacks a __init
      annotation or the annotation of imx8mq_noc_init is wrong.
      
      Signed-off-by: default avatarJacky Bai <ping.bai@nxp.com>
      Reviewed-by: default avatarPeng Fan <peng.fan@nxp.com>
      Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
      deadc1cd
    • Jacky Bai's avatar
      LF-4521-01 clk: imx: Fix section mismatch build warning due to __init · b786cdd5
      Jacky Bai authored
      
      Fix below section mismatch build warning in imx8mm/mn/mq clock driver:
      
      WARNING: modpost: vmlinux.o(.text+0x667618): Section mismatch in reference
      from the function imx8mm_clocks_probe() to the function .init.text:imx_clk_init_on.isra.0()
      The function imx8mm_clocks_probe() references
      the function __init imx_clk_init_on.isra.0().
      This is often because imx8mm_clocks_probe lacks a __init
      annotation or the annotation of imx_clk_init_on.isra.0 is wrong.
      
      WARNING: modpost: vmlinux.o(.text+0x66a034): Section mismatch in reference
      from the function imx8mn_clocks_probe() to the function .init.text:imx_clk_init_on.isra.0()
      The function imx8mn_clocks_probe() references
      the function __init imx_clk_init_on.isra.0().
      This is often because imx8mn_clocks_probe lacks a __init
      annotation or the annotation of imx_clk_init_on.isra.0 is wrong.
      
      WARNING: modpost: vmlinux.o(.text+0x6713f8): Section mismatch in reference
      from the function imx8mq_clocks_probe() to the function .init.text:imx_clk_init_on.isra.0()
      The function imx8mq_clocks_probe() references
      the function __init imx_clk_init_on.isra.0().
      This is often because imx8mq_clocks_probe lacks a __init
      annotation or the annotation of imx_clk_init_on.isra.0 is wrong.
      
      Signed-off-by: default avatarJacky Bai <ping.bai@nxp.com>
      Reviewed-by: default avatarPeng Fan <peng.fan@nxp.com>
      Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
      b786cdd5
    • Jacky Bai's avatar
      LF-4511 arm64: dts: freescale: Correct the cpu supply on imx8mn ddr3l evk board · cf1322f3
      Jacky Bai authored
      
      For i.MX8MN DDR3L EVK board, it uses a 11x11 package that VDD_ARM & VDD_SOC
      is combined together, the 'cpu-supply' should be buck1, so correct it.
      
      Signed-off-by: default avatarJacky Bai <ping.bai@nxp.com>
      Reviewed-by: default avatarYe Li <ye.li@nxp.com>
      Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
      cf1322f3
  3. Sep 02, 2021
    • Gaurav Jain's avatar
      LF-4488: arm64: imx_v8_defconfig: enable AF_ALG interface to Kernel crypto. · 294b973f
      Gaurav Jain authored
      
      Enable configs for AF_ALG socket based interface to Kernel cryptography
      CONFIG_CRYPTO_USER_API_HASH
      CONFIG_CRYPTO_USER_API_SKCIPHER
      CONFIG_CRYPTO_USER_API_AEAD
      
      Signed-off-by: default avatarGaurav Jain <gaurav.jain@nxp.com>
      Reviewed-by: default avatarVarun Sethi <v.sethi@nxp.com>
      Reviewed-by: default avatarSilvano Di Ninno <silvano.dininno@nxp.com>
      294b973f
    • Robin Gong's avatar
      LF-4435: dmaengine: imx-sdma: fix kernel dump during MP3 decoding · d751c3d6
      Robin Gong authored
      
      update base_bd_ptr for channel0 after bd0 descriptor allocated again.
      Otherwise, sdma may hang if the stale/wrong bd0 data touched by channel0
      as below:
      
      [  221.334360] imx-sdma 30e10000.dma-controller: Timeout waiting for CH0 ready
      [  221.341333] imx-sdma 30e10000.dma-controller: save context error!
      [  221.347437] PM: dpm_run_callback(): sdma_suspend+0x0/0x160 returns -110
      [  221.354054] PM: Device 30e10000.dma-controller failed to suspend late: error -110
      [  221.361937] PM: late suspend of devices failed
      [  221.370127] ------------[ cut here ]------------
      [  221.374745] lcdif_pixel_clk already disabled
      [  221.379050] WARNING: CPU: 0 PID: 4510 at drivers/clk/clk.c:952 clk_core_disable+0xa4/0xb0
      [  221.387222] Modules linked in: snvs_ui(O) fsl_jr_uio caam_jr caamkeyblob_desc caamhash_desc caamalg_desc crypto_engine rng_core authenc libdes crct10dif_ce imx8_media_dev(C) flexcan can_dev caam secvio error fuse [last unloaded: snvs_ui]
      [  221.408283] CPU: 0 PID: 4510 Comm: rtc_wakeup.sh Tainted: G         C O      5.10.52-lts-5.10.y+g5788c4507376 #1
      [  221.418451] Hardware name: NXP i.MX8MPlus EVK board (DT)
      [  221.423761] pstate: 40000085 (nZcv daIf -PAN -UAO -TCO BTYPE=--)
      [  221.429764] pc : clk_core_disable+0xa4/0xb0
      [  221.433943] lr : clk_core_disable+0xa4/0xb0
      [  221.438122] sp : ffff800012fdb820
      [  221.441433] x29: ffff800012fdb820 x28: 0000000000000000
      [  221.446743] x27: 0000000000000008 x26: ffff800011621f60
      [  221.452053] x25: ffff0000c4b7f000 x24: ffff80001128d138
      [  221.457364] x23: 0000000000000038 x22: ffff0000c18fea00
      [  221.462674] x21: ffff800011d0ba70 x20: ffff0000c1873a00
      [  221.467984] x19: ffff0000c1873a00 x18: 0000000000000030
      [  221.473294] x17: 0000000000000000 x16: 0000000000000000
      [  221.478604] x15: ffff0000c48d12b8 x14: ffffffffffffffff
      [  221.483913] x13: ffff800011b51780 x12: 000000000000095a
      [  221.489223] x11: 000000000000031e x10: ffff800011ba9780
      [  221.494534] x9 : 00000000fffff000 x8 : ffff800011b51780
      [  221.499844] x7 : ffff800011ba9780 x6 : 0000000000000000
      [  221.505154] x5 : ffff00017f3ee900 x4 : 0000000000000000
      [  221.510464] x3 : 0000000000000027 x2 : 0000000000000023
      [  221.515774] x1 : f7f28654584c0c00 x0 : 0000000000000000
      [  221.521085] Call trace:
      [  221.523529]  clk_core_disable+0xa4/0xb0
      [  221.527363]  clk_disable+0x34/0x50
      [  221.530764]  lcdifv3_set_mode+0x40/0x2f0
      [  221.534685]  lcdifv3_crtc_atomic_enable+0x88/0xcc
      [  221.539387]  drm_atomic_helper_commit_modeset_enables+0x200/0x250
      [  221.545478]  lcdifv3_drm_atomic_commit_tail+0x30/0x70
      [  221.550526]  commit_tail+0xa0/0x180
      [  221.554012]  drm_atomic_helper_commit+0x160/0x390
      [  221.558714]  drm_atomic_commit+0x4c/0x60
      [  221.562633]  drm_atomic_helper_commit_duplicated_state+0xf0/0x10c
      [  221.568723]  drm_atomic_helper_resume+0x94/0x170
      [  221.573338]  drm_mode_config_helper_resume+0x24/0x90
      [  221.578299]  imx_drm_resume+0x14/0x20
      [  221.581959]  platform_pm_resume+0x30/0x70
      [  221.585968]  dpm_run_callback.constprop.0+0x3c/0xe4
      [  221.590842]  device_resume+0x88/0x180
      [  221.594501]  dpm_resume+0xe8/0x220
      [  221.597900]  dpm_resume_end+0x18/0x30
      [  221.601562]  suspend_devices_and_enter+0x1a4/0x5a0
      [  221.606349]  pm_suspend+0x2e0/0x34c
      [  221.609835]  state_store+0x8c/0x110
      [  221.613323]  kobj_attr_store+0x1c/0x30
      [  221.617070]  sysfs_kf_write+0x48/0x60
      [  221.620730]  kernfs_fop_write_iter+0x118/0x1ac
      [  221.625171]  new_sync_write+0xe8/0x180
      [  221.628917]  vfs_write+0x244/0x2a4
      [  221.632316]  ksys_write+0x6c/0x100
      [  221.635714]  __arm64_sys_write+0x20/0x30
      [  221.639636]  el0_svc_common.constprop.0+0x78/0x1a0
      [  221.644423]  do_el0_svc+0x24/0x90
      [  221.647737]  el0_svc+0x14/0x20
      [  221.650789]  el0_sync_handler+0x1a4/0x1b0
      [  221.654796]  el0_sync+0x180/0x1c0
      [  221.658107] ---[ end trace c48b0b0e987f7565 ]---
      [  221.662752] ------------[ cut here ]------------
      
      Signed-off-by: default avatarRobin Gong <yibin.gong@nxp.com>
      Reviewed-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
      d751c3d6
    • Kuldeep Singh's avatar
      LF-4255 spi: spi-nxp-fspi: Add quirk to disable DTR support · 7ead3860
      Kuldeep Singh authored
      
      Not all platform currently supports octal DTR mode. This causes flash
      probe failure and therefore, provide an option of quirk
      NXP_FSPI_QUIRK_DISABLE_DTR for platforms not supporting DTR.
      
      Signed-off-by: default avatarKuldeep Singh <kuldeep.singh@nxp.com>
      7ead3860
    • Alice Guo's avatar
      LF-4523 nvmem: imx8ulp: fix the wrong position of the reserved 48 words · 6f72fd5e
      Alice Guo authored
      
      According to the FSB words list, the reserved 48 words are ahead of the
      bank 5.
      
      Reviewed-by: default avatarPeng Fan <peng.fan@nxp.com>
      Signed-off-by: default avatarAlice Guo <alice.guo@nxp.com>
      Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
      6f72fd5e
  4. Aug 31, 2021
  5. Aug 30, 2021
    • Hemant Agrawal's avatar
      dts: add LS1046A VSP shared examples · 9d1a301a
      Hemant Agrawal authored
      
      1. fsl-ls1046a-rdb-usdpaa-shared-mac10.dts  - MAC10 as shared port - all
      other ports to DPDK
      
      2. fsl-ls1046a-rdb-shared-mac9-only.dts  - MAC9 as shared port - all
      other ports to LINUX KERNEL
      
      Signed-off-by: default avatarHemant Agrawal <hemant.agrawal@nxp.com>
      9d1a301a
    • Hemant Agrawal's avatar
      dtb: align LS1046A usdpaa-shared file with usdpaa file · a24faf01
      Hemant Agrawal authored
      
      it was missing buffer pool initialization and dma-coherent property
      
      Signed-off-by: default avatarHemant Agrawal <hemant.agrawal@nxp.com>
      a24faf01
    • Nipun Gupta's avatar
      sdk: arm64: dts: reduce usdpaa memory to 4K for LS1046/43 · f9d7708c
      Nipun Gupta authored
      
      This patch reducing the USDPAA reseved memory to 4K.
      In case USDPAA is to be used, 256MB needs to be reserved in the DTS file.
      
      Signed-off-by: default avatarNipun Gupta <nipun.gupta@nxp.com>
      f9d7708c
    • Li Jun's avatar
      LF-4496 arm64: dts: imx8mp-evk: disable u1 and u2 for usb typec port · 5585cf9b
      Li Jun authored
      
      USB device mode u1 acception is enabled by default, this is
      good for power saving if there is no data transfer, if device
      side wants to start transfer while at u1, it can issue link
      change command to wakeup from u1 and transit to u0.
      
      Unfortunately on imx8mp/mq, we found a problem on this wakeup
      from u1, sometimes we need a very long time to transit to u0
      after issue link change command, and the link change path shows
      the actual link change histry is u1->u2->u0, the right link
      change path should be u1->recovery->u0, this issue is still
      under check with Synopsys.
      
      Before the upstream patch commit b624b325
      ("usb: dwc3: gadget: Fix START_TRANSFER link state check")
      merged, dwc3 driver did not check the actual link state for
      u1 and u2, a variable is used to record link state but never been
      set to u1 or u2, so we did not issue wakeup command before
      data transfer even the actual link state is at u1, the internal
      hardware should be able to handle this situation and transit
      to u0, so even a long time is required, we could not observe
      this because there is no error log, or function break on the whole.
      now with the fix commit pulled in, we start to check the real
      link state before every data transfer and issue a wakeup command
      if it is not at u0, if the wakeup can not complete in a polling
      of register read 20000 times, dwc3 driver will throw a warninng
      to user and continue data transfer anyway, so this underlying
      issue is exposed by this console log.
      
      This wakeup timeout issue also brings a side effect, as the
      20000 times register polling is in a spinlock, which will impact
      other module iterrupt handling, considering this, we disable the
      u1 and u2 acception for device mode as a temporary solution before
      this issued is resovled.
      
      Reviewed-by: default avatarHaibo Chen <haibo.chen@nxp.com>
      Signed-off-by: default avatarLi Jun <jun.li@nxp.com>
      Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
      5585cf9b
  6. Aug 27, 2021
    • Shengjiu Wang's avatar
      LF-4484: remoteproc: imx-dsp-rproc: Avoid power on device after probe · c397722e
      Shengjiu Wang authored
      
      With multiple power domain case, don't need to use flag
      DL_FLAG_RPM_ACTIVE when device linking, otherwise the power
      is always enabled after probe.
      
      With DSP's case, the power may increase about 20% for whole system
      when DSP is enabled wrongly.
      
      Fixes: d2634e10 ("LF-4209-1: remoteproc: imx_dsp_rproc: add remoteproc driver for dsp")
      Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
      Reviewed-by: default avatarPeng Zhang <peng.zhang_8@nxp.com>
      Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
      c397722e
    • Richard Zhu's avatar
      LF-4336-2 PCI: imx: to solve the compatible issue do perst properly · d46e3cd9
      Richard Zhu authored
      
      PCIe r4.0 sec 6.6.1, Conventional Reset.
      The set of rules addresses requirements placed on the system:
      To allow components to perform internal initialization, system
      software must wait a specified minimum period following the
      end of a Conventional Reset before it is permitted to issue
      Configuration Request to the device immediately below that
      Port.
      - With a Downstream Port that does not support Link speeds greater than
        5.0 GT/s, software must wait a minimum of 100 ms before sending a
        Configuration Request to the device immediately below that Port.
      - With a Downstream Port that supports Link speeds greater than
        5.0 GT/s, software must wait a minimum of 100 ms after Link training
        completes before sending a Configuration Request to the device
        immediately below that Port.
      
      Unfortunately, ther is a compatible link down issue when NEC Corporation
      uPD720200 USB 3.0 Host Controller (rev 04) is used on i.MX7D SDB board.
      When add the 100ms delay just at the end of the reset.
      
      To level up the compatibility and align with the SPEC, add the 100ms
      wait after the end of the PERST# toggle and link is up to fix the link
      down compatible issue when NEC uPD720200 is used on i.MX7D SDB board.
      
      And refer to PCIe r4.0 sec 6.6.1, A component must enter the LTSSM
      Detect state within 20 ms of the end of Fundamental Reset.
      
      To level up the compatibility of i.MX8MP PCIe to support one PLEXTOR
      NVME SSD device. Add one 20ms delay at the end of the PERST# toggle and
      before the start of the link training for i.MX8MP PCIe.
      
      Signed-off-by: default avatarRichard Zhu <hongxing.zhu@nxp.com>
      Reviewed-by: default avatarJun Li <jun.li@nxp.com>
      Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
      d46e3cd9
    • Richard Zhu's avatar
      LF-4336-1 Revert "LF-4081 PCI: imx: wait specified minimum period following the end of a reset" · 07822eb2
      Richard Zhu authored
      
      PCIe r4.0 sec 6.6.1, Conventional Reset.
      The set of rules addresses requirements placed on the system:
      To allow components to perform internal initialization, system
      software must wait a specified minimum period following the
      end of a Conventional Reset before it is permitted to issue
      Configuration Request to the device immediately below that
      Port.
      - With a Downstream Port that does not support Link speeds greater than
        5.0 GT/s, software must wait a minimum of 100 ms before sending a
        Configuration Request to the device immediately below that Port.
      - With a Downstream Port that supports Link speeds greater than
        5.0 GT/s, software must wait a minimum of 100 ms after Link training
        completes before sending a Configuration Request to the device
        immediately below that Port.
      
      Unfortunately, ther is a compatible link down issue when NEC Corporation
      uPD720200 USB 3.0 Host Controller (rev 04) is used on i.MX7D SDB board.
      When add the 100ms delay just at the end of the reset.
      
      To level up the compatibility and align with the SPEC, add the 100ms
      wait after the end of the PERST# toggle and link is up.
      
      So, revert the commit 079f7245 ("LF-4081 PCI: imx: wait specified
      minimum period following the end of a reset") firstly.
      
      Signed-off-by: default avatarRichard Zhu <hongxing.zhu@nxp.com>
      Reviewed-by: default avatarJun Li <jun.li@nxp.com>
      Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
      07822eb2
  7. Aug 24, 2021
  8. Aug 23, 2021
    • Liu Ying's avatar
      LF-4322 drm/imx: dcnano: Avoid double modeset · 6f752c18
      Liu Ying authored
      
      When running the below system suspend/resume test case on
      i.MX8ulp EVK platform with the RM68200 MIPI DSI panel enabled,
      DCNANO display controller power usage count and pixel clock enable
      count would be unbalanced when the DRM connector's DPMS property
      is changed from off to on after system resumes, if the DPMS property
      is off before system suspends.  The root cause is that the
      crtc_helper_funcs->mode_set_nofb() is called twice during the
      procedure without crtc disablement, one at system resume stage and
      one for DPMS on operation.  That means the pm_runtime_get_sync()
      would be called twice at that function and pixel clock would be
      enabled twice as well.  This patch introduces a flag to indicate
      if the modeset is done or not to avoid the doulbe modeset so that
      the reference counts are balanced.
      
      while true; do modetest -M imx-dcnano -w 34:DPMS:3; done &
      while true; do /unit_tests/SRTC/rtcwakeup.out -s 2 -m mem; done
      
      Fixes: ce68244e ("MLK-25531-2 drm/imx: Add dcnano drm support")
      Cc: Sandor Yu <Sandor.yu@nxp.com>
      Reviewed-by: default avatarSandor Yu <Sandor.yu@nxp.com>
      Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
      Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
      6f752c18
    • Liu Ying's avatar
      LF-4321 drm/bridge: nwl-dsi: Avoid double modeset · 755ee35f
      Liu Ying authored
      
      When running the below system suspend/resume test case on
      i.MX8ulp EVK platform with RM68200 MIPI DSI panel enabled,
      panel register access would fail when the DRM connector's
      DPMS property is changed from off to on after system resumes,
      if the DPMS property is off before system suspends.
      The root cause is that the bridge_funcs->mode_set() is called
      twice during the procedure without bridge disablement, one at
      system resume stage and one for DPMS on operation.  That means
      the MIPI DPHY is not powered down during the procedure and
      initialized/powered on twice.  As the PHY core driver takes
      reference count for the power on operation, the second power
      on operation doesn't take effect, hence the DPHY stays at
      the initialization status.  This patch introduces a flag to
      indicate if the modeset is done or not to avoid the doulbe
      modeset so that the DPHY will be active when the panel registers
      are accessed.
      
      while true; do modetest -M imx-dcnano -w 34:DPMS:3; done &
      while true; do /unit_tests/SRTC/rtcwakeup.out -s 2 -m mem; done
      
      Fixes: 120ffd6b ("MLK-25574-4 drm/bridge: nwl-dsi: Get MIPI DSI controller and PHY ready in ->mode_set()")
      Cc: Sandor Yu <Sandor.yu@nxp.com>
      Reported-by: default avatarZhang Bo <bo.zhang@nxp.com>
      Reviewed-by: default avatarSandor Yu <Sandor.yu@nxp.com>
      Signed-off-by: default avatarLiu Ying <victor.liu@nxp.com>
      Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
      755ee35f
  9. Aug 20, 2021
  10. Aug 18, 2021
  11. Aug 13, 2021
  12. Aug 12, 2021
  13. Aug 11, 2021
    • Alice Yuan's avatar
      LF-4238 media: isi: fix the null point kernel panic · 1e35d59a
      Alice Yuan authored
      
      fix kernel null point panic
      when basler camera output for m2m input pipeline created
      
      test cmd: gst-launch-1.0 v4l2src device=/dev/video3 !
      video/x-raw,format=YUY2 ! v4l2convert ! video/x-raw,
      format=RGB ! videoconvert ! fakesink
      
      [   80.780665] enter isp_s_comp
      [   80.783562] enter isp_s_comp
      [   80.806629] enter wdr3_hw_init
      [   80.809714] wdr3 res: 3840 2160
      CamEngineEnableCproc: set val  1 [   80.813793] enter isp_mi_start
      1 1 1.10 -15 1.00 0.00
      [   81.133511] isi-m2m 32e00000.isi:m2m_device: m2m_vb2_queue_setup
      [   81.139585] isi-m2m 32e00000.isi:m2m_device: m2m_vb2_queue_setup, buf_n=2, planes[0]->size=16588800
      [   81.308157] isi-m2m 32e00000.isi:m2m_device: mxc_isi_m2m_job_ready
      [   81.314419] isi-m2m 32e00000.isi:m2m_device: mxc_isi_m2m_device_run enter
      [   81.321290] BUG: scheduling while atomic: v4l2src0:src/639/0x00000002
      [   81.327729] Modules linked in: vvcam_dwe(O) vvcam_video(O) vvcam_isp(O) imx8_media_dev(C) basler_camera_driver_vvcam(O)
      [   81.338523] CPU: 0 PID: 639 Comm: v4l2src0:src Tainted: G         C O      5.10.52-05403-g1994e5c9c0a1-dirty #1
      [   81.348605] Hardware name: NXP i.MX8MPlus EVK board (DT)
      [   81.353912] Call trace:
      [   81.356363]  dump_backtrace+0x0/0x1a0
      [   81.360023]  show_stack+0x18/0x70
      [   81.363339]  dump_stack+0xd0/0x12c
      [   81.366738]  __schedule_bug+0x60/0x80
      [   81.370399]  __schedule+0x67c/0x6d0
      [   81.373885]  schedule+0x70/0x104
      [   81.377111]  schedule_timeout+0x84/0xfc
      [   81.380945]  msleep+0x2c/0x40
      [   81.383912]  mxc_isi_channel_enable+0x74/0xc0
      [   81.388266]  mxc_isi_m2m_device_run+0x80/0xc0
      [   81.392620]  v4l2_m2m_try_run+0x84/0x134
      [   81.396541]  v4l2_m2m_ioctl_streamon+0x68/0x80
      [   81.400982]  mxc_isi_m2m_streamon+0x70/0xbc
      [   81.405163]  v4l_streamon+0x28/0x34
      [   81.408650]  __video_do_ioctl+0x180/0x3e4
      [   81.412658]  video_usercopy+0x1a0/0x450
      [   81.416491]  video_ioctl2+0x18/0x24
      [   81.419978]  v4l2_ioctl+0x44/0x64
      [   81.423292]  __arm64_sys_ioctl+0xa8/0xf0
      [   81.427213]  el0_svc_common.constprop.0+0x78/0x1a0
      [   81.432001]  do_el0_svc+0x24/0x90
      [   81.435314]  el0_svc+0x14/0x20
      [   81.438366]  el0_sync_handler+0x1a4/0x1b0
      [   81.442373]  el0_sync+0x180/0x1c0
      [   81.445745] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000a60
      [   81.454530] Mem abort info:
      [   81.457320]   ESR = 0x96000004
      [   81.460371]   EC = 0x25: DABT (current EL), IL = 32 bits
      [   81.465679]   SET = 0, FnV = 0
      [   81.468729]   EA = 0, S1PTW = 0
      [   81.471866] Data abort info:
      [   81.474743]   ISV = 0, ISS = 0x00000004
      [   81.478575]   CM = 0, WnR = 0
      [   81.481539] user pgtable: 4k pages, 48-bit VAs, pgdp=00000001064d0000
      [   81.487975] [0000000000000a60] pgd=0000000000000000, p4d=0000000000000000
      [   81.494764] Internal error: Oops: 96000004 [#1] PREEMPT SMP
      [   81.500333] Modules linked in: vvcam_dwe(O) vvcam_video(O) vvcam_isp(O) imx8_media_dev(C) basler_camera_driver_vvcam(O)
      [   81.511124] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        WC O      5.10.52-05403-g1994e5c9c0a1-dirty #1
      [   81.520773] Hardware name: NXP i.MX8MPlus EVK board (DT)
      [   81.526082] pstate: 40000085 (nZcv daIf -PAN -UAO -TCO BTYPE=--)
      [   81.532092] pc : mxc_isi_cap_frame_write_done+0x2c/0x1fc
      [   81.537401] lr : mxc_isi_irq_handler+0x84/0x90
      [   81.541840] sp : ffff800011d0bbf0
      [   81.545150] x29: ffff800011d0bbf0 x28: ffff800011b02340
      [   81.550461] x27: 0000000000000280 x26: ffff8000115d2c90
      [   81.555771] x25: ffff800011c4856a x24: 00000000000016c8
      [   81.561082] x23: 0000000000000039 x22: ffff0000c18a1530
      [   81.566393] x21: 0000000000001600 x20: 0000000060020100
      [   81.571703] x19: 0000000000000000 x18: 0000000000000030
      [   81.577013] x17: 0000000000000000 x16: 0000000000000000
      [   81.582324] x15: 0000000fcc57dcca x14: 00000000000000ed
      [   81.587634] x13: 0000000000000000 x12: 0000000000000040
      [   81.592946] x11: ffff0000c20a5ff0 x10: ffff0000c20a5ff2
      [   81.598257] x9 : ffff800011b81788 x8 : ffff0000c2000270
      [   81.603567] x7 : 0000000000000000 x6 : ffff0000c2000430
      [   81.608878] x5 : ffff0000c2000248 x4 : 00000000000016c8
      [   81.614188] x3 : 0000000000001600 x2 : 0000000000000001
      [   81.619499] x1 : 0000000060020100 x0 : ffff0000c18a1480
      [   81.624809] Call trace:
      [   81.627255]  mxc_isi_cap_frame_write_done+0x2c/0x1fc
      [   81.632217]  mxc_isi_irq_handler+0x84/0x90
      [   81.636312]  __handle_irq_event_percpu+0x54/0x170
      [   81.641013]  handle_irq_event+0x68/0x150
      [   81.644934]  handle_fasteoi_irq+0xa4/0x1f4
      [   81.649027]  __handle_domain_irq+0x7c/0xe0
      [   81.653122]  gic_handle_irq+0xc0/0x140
      [   81.656869]  el1_irq+0xcc/0x180
      [   81.660007]  efi_header_end+0xa4/0x290
      [   81.663754]  irq_exit+0xdc/0xfc
      [   81.666893]  __handle_domain_irq+0x80/0xe0
      [   81.670986]  gic_handle_irq+0xc0/0x140
      [   81.674732]  el1_irq+0xcc/0x180
      [   81.677875]  _raw_spin_unlock_irq+0x14/0x50
      [   81.682056]  __schedule+0x260/0x6d0
      [   81.685543]  schedule_idle+0x28/0x50
      [   81.689117]  do_idle+0x198/0x2a0
      [   81.692343]  cpu_startup_entry+0x24/0x70
      [   81.696263]  rest_init+0xd8/0xe8
      [   81.699491]  arch_call_rest_init+0x10/0x1c
      [   81.703584]  start_kernel+0x4ac/0x4e4
      [   81.707247] Code: a90363f7 f9400013 8b030275 8b040278 (f9453277)
      [   81.713344] ---[ end trace 1a1c3af55549f42e ]---
      [   81.717959] Kernel panic - not syncing: Oops: Fatal exception in interrupt
      [   81.724830] SMP: stopping secondary CPUs
      [   81.729069] Kernel Offset: disabled
      [   81.732555] CPU features: 0x0240002,2000200c
      [   81.736820] Memory Limit: none
      
      root cause: when user is multi-processing "imx-isi-m2m" node,
      the driver of "imx-isi-m2m" open and close
      should have concurrent protection.
      
      Signed-off-by: default avatarAlice Yuan <alice.yuan@nxp.com>
      Reviewed-by: default avatarRobby Cai <Robby.Cai@nxp.com>
      1e35d59a
    • Jiyu Yang's avatar
  14. Aug 10, 2021
Loading