1. 16 Nov, 2012 4 commits
    • Terry Lv's avatar
      ENGR00233800: CAAM: running sha_speed in cryptodev crashed · 0346ca03
      Terry Lv authored
      The reason is that when switching from SHA1 to SHA256, cryptodev will
      create a new session.
      But in this new session, the __ctx in allocated req is not fully initialized.
      Thus dma_buf in __ctx will be a random value.
      If the value is 0 or some address in DMA memory, that will be ok,
      otherwise, it will crashed in dma_unmap_single().
      The calling sequence is:
      When calling dma_unmap_single(), the parameter buf_dma is invalid in
      crash case.
      The error msg is:
      kernel BUG at arch/arm/mm/dma-mapping.c:478!
      requested hash CRYPTO_SHA2_256, Unable to handle kernel NULL pointer
      dereference at virtual address 00000000
      got sha256 with driver sha256-caapgd = e4ea0000
              Encrypting in chunks of 256 b[00000000] *pgd=74edb831ytes: ,
      	*pte=00000000, *ppte=00000000
      	Internal error: Oops: 817 [#1] PREEMPT SMP
      	Modules linked in: cryptodev
      	CPU: 0    Not tainted  (3.0.35-02200-ge392070a-dirty #68)
           PC is at __bug+0x1c/0x28
           LR is at __bug+0x18/0x28
           pc : [<80044260>]    lr : [<8004425c>]    psr: 60000013
           sp : e4ec7c40  ip : ea9a2000  fp : 00000010
           r10: 883f8038  r9 : 883f8038  r8 : e4803060
           r7 : 00000000  r6 : 00000001  r5 : 00000000  r4 : 6f66c10a
           r3 : 00000000  r2 : 80aafd5c  r1 : 60000093  r0 : 00000033
           Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
           Control: 10c53c7d  Table: 74ea004a  DAC: 00000015
           Process sha_speed (pid: 2747, stack limit = 0xe4ec62f0)
           Stack: (0xe4ec7c40 to 0xe4ec8000)
           7c40: 74803184 8004a424 e4803000 e4730c08 e4262840 803c50dc
           e4786f20 883f8000
           7c60: 00000020 00000000 00000028 883f8018 e43ffcc0 e4803000
           00000000 803c3d04
           7c80: 00000004 80041104 e4ec6000 00000000 7efc4b64 803c3d10
           e4774a3c 802079f8
           7ca0: e43ffd1c e43ffcc0 00000000 7f0031a0 e4ec7e0c e43ffcc0
           e4ec7e0c 7f00240c
           7cc0: 00000100 e4786f20 e481bd40 e4ec7cd8 e4ec7cdc 7f0016b4
           e4803200 00000000
           7ce0: e4094480 00000000 7efc4b2c 00000004 80041104 7f001b64
           8c81200c 00000000
           7d00: 3fe1c2a2 2aba7e2c 00000000 00000000 00000000 00000000
           00000000 2abc8870
           7d20: 2abc8870 2abc8870 7efc4e10 00000000 2aba3000 00000000
           2abc7f48 00000000
           7d40: 00000000 00000000 00000000 00000000 00000000 00000000
           2abc7f88 2abc7f80
           7d60: 2abc7f50 2abc7f60 2abc7f68 00000000 00000000 00000000
           2abc7f70 2abc7f78
           7d80: 00000000 32616873 2a003635 00000000 00000000 2abc7fa0
           2abc7fa8 2abc7fb0
           7da0: 2abc7f90 00000000 00000000 2abc7f98 00000000 00000000
           00000000 00000000
           7dc0: 00000000 32616873 632d3635 006d6161 00000000 00000000
           00000000 00000000
           7de0: 2abc7fc0 2abc7fb8 00000000 2abc7fd0 00000000 00000000
           00000000 00000000
           7e00: 00000000 00000000 00000001 3fe1c2a2 00000000 00000100
           00012008 00000000
           7e20: 7efc4ab8 00000000 00000000 8006a120 e4044740 8c80ef40
           00000001 00000000
           7e40: 00000002 e4044740 e4ec7e7c 8006f5f4 e4ec6000 8007ffd4
           e4348880 60000093
           7e60: 00000000 80ae6de8 e4253200 8004e0fc 00000261 8028c0f4
           e4877000 80ae6de8
           7e80: e4786f20 e481bd40 00000261 8028c0f4 000059ac 00000000
           36390b02 00000000
           7ea0: e4cd7b6c e43488d0 8c80e4c4 00000038 e43488d0 802342dc
           0000003f e43488d0
           7ec0: 8c80e4b8 8c80e4b8 00000038 80090714 0000003f 8aafab02
           00000000 80091134
           7ee0: 8aafab02 0000003f e4ec6000 80a99cc0 e4eed510 7efc4b2c
           e4ef96e0 00000004
           7f00: 80041104 800febd0 60a9b3cd e4786f20 e4348880 00000000
           e4ec7f88 e43488d0
           7f20: e4ec6000 00000000 00000000 80091408 00000000 00000001
           00000001 e4ec7f78
           7f40: 000059b1 00000000 fffffff7 80aedc50 80a8a0c0 00000000
           00000000 e4ec7f90
           7f60: 7efc4b20 e4ef96e0 7efc4b2c c01c6368 00000004 80041104
           e4ec6000 00000000
           7f80: 7efc4b64 800ff0d4 00000000 00000000 00000109 00000000
           00000000 00008628
           7fa0: 00000036 80040f80 00000000 00000000 00000004 c01c6368
           7efc4b2c 7efc4b2c
           7fc0: 00000000 00000000 00008628 00000036 00000000 00000000
           2abc8000 7efc4b64
           7fe0: 00000000 7efc4a90 00008b5c 2ac857bc 80000010 00000004
           e28bd000 e8bd0800
           [<80044260>] (__bug+0x1c/0x28) from [<8004a424>]
           [<8004a424>] (___dma_single_dev_to_cpu+0x84/0x94) from [<803c50dc>]
           [<803c50dc>] (ahash_final_ctx+0x1a0/0x41c) from [<803c3d10>]
           [<803c3d10>] (ahash_final+0xc/0x10) from [<802079f8>]
           [<802079f8>] (crypto_ahash_op+0x28/0xc0) from [<7f0031a0>]
           (cryptodev_hash_final+0x30/0xc0 [cryptodev])
           [<7f0031a0>] (cryptodev_hash_final+0x30/0xc0 [cryptodev]) from
           [<7f00240c>] (crypto_run+0x10c/0x398 [cryptodev])
           [<7f00240c>] (crypto_run+0x10c/0x398 [cryptodev]) from [<7f001b64>]
           (cryptodev_ioctl+0x360/0x768 [cryptodev])
           [<7f001b64>] (cryptodev_ioctl+0x360/0x768 [cryptodev]) from
           [<800febd0>] (do_vfs_ioctl+0x80/0x54c)
           [<800febd0>] (do_vfs_ioctl+0x80/0x54c) from [<800ff0d4>]
           [<800ff0d4>] (sys_ioctl+0x38/0x5c) from [<80040f80>]
           Code: e59f0010 e1a01003 eb12fddb e3a03000 (e5833000)
           ---[ end trace 0057f6be00952f77 ]---
      Signed-off-by: default avatarTerry Lv <r65388@freescale.com>
    • Terry Lv's avatar
      ENGR00233387: MLB: read fuse to check if to enable mlb · 563a0fcd
      Terry Lv authored
      Read "Disabled MLB" bit in OTP CFG2 to check if to enable mlb.
      Signed-off-by: default avatarTerry Lv <r65388@freescale.com>
    • Chen Liangjun's avatar
      ENGR00233780 ASRC: limit output buffer size to avoid kernel dump · d85c0551
      Chen Liangjun authored
      For ASRC memory to memory transfer, user would send driver input buffer
      and driver would copy converted output buffer into user's buffer.
      However, ASRC can't promise the ratio of output buffer size/input buffer
      size being equal to output sample rate/input sample rate.e.g, for
      convert from 8k to 48k and 1000 bytes input buffer size, ASRC may pop
      out 5999 bytes or 6001 bytes. If driver copy all 6001 bytes into user's
      buffer, kernel dump may happens cause of accessing unexisted buffer.
      In this patch, if ASRC output buffer size is larger than user's buffer
      size, discard exact part.
      Signed-off-by: default avatarChen Liangjun <b36089@freescale.com>
    • Chen Liangjun's avatar
      ENGR00233886 ASRC: init variable to fix build warning · 2cf8cf02
      Chen Liangjun authored
      Compiling warning on mainline imx_3.0.35 (potential bug):
      drivers/mxc/asrc/mxc_asrc.c: In function 'asrc_output_task_worker':
      drivers/mxc/asrc/mxc_asrc.c:961:68: warning: 't_size' may be used
      uninitialized in this function [-Wuninitialized]
      drivers/mxc/asrc/mxc_asrc.c:943:23: note: 't_size' was declared here
      In this patch, init t_size.
      Signed-off-by: default avatarChen Liangjun <b36089@freescale.com>
  2. 15 Nov, 2012 9 commits
    • Ge Lei's avatar
      ENGR00233570-3 ASRC: Use function pointer to support ASRC loadable · d878a76a
      Ge Lei authored
      In ASoC ESAI machine driver, use ASRC ops instead of directly use ASRC
      function calling, so that it can support ASRC loadable.
      Signed-off-by: default avatarGe Lei <b42127@freescale.com>
    • Ge Lei's avatar
      ENGR00233570-2 ASRC: Use function pointer and hook to support ASRC loadable · 83da6a52
      Ge Lei authored
      In ASoC pcm platform driver, use function pointer(ASRC ops) and hook to call
      the APIs in ASRC driver, so that the ASoC platform driver can support ASRC
      Signed-off-by: default avatarGe Lei <b42127@freescale.com>
    • Ge Lei's avatar
      ENGR00233570-1 ASRC: Use hook to add support for ASRC loadable · 72ab3f46
      Ge Lei authored
      ASoC ESAI machine driver and pcm platform driver use the APIs from mxc_asrc.c,
      but once ASRC is used as a loadable module, these files can't find the APIs
      from this ko. In this patch, we use 'asrc_p2p_hook' to hook the APIs which will
      be used in ASoC ESAI machine driver and pcm platform driver.
      Signed-off-by: default avatarGe Lei <b42127@freescale.com>
    • Loren Huang's avatar
      ENGR00233452 Integrate 4.6.9p9 GPU kernel part driver · 3a34fe70
      Loren Huang authored
      Signed-off-by: default avatarLoren Huang <b02279@freescale.com>
      Acked-by: Lily Zhang
    • Nicolin Chen's avatar
      ENGR00233731 ALSA: add DMABUF allocating for different driver · fbd07a2c
      Nicolin Chen authored
       Patch ENGR00233056 added DMABUF size setting for hw_param and changed SSI's
      buffer allocating size.
       But didn't add allocation for ESAI and SPDIF, which might cause some dma
      transmitting issue.
       This Patch add new allocation code that detects the driver before allocating
      its DMABUF.
      Signed-off-by: default avatarNicolin Chen <b42378@freescale.com>
    • Chen Liangjun's avatar
      ENGR00233577 ASRC: add spinlock to protect ASRC pair resource · bbdb7813
      Chen Liangjun authored
      when quit from ASRC driver with CTRL + C, driver close() would free
      output buffer and close clock. However, it is possible that the buffer
      is accessed by work task(work task is trigger by interrupt and it would
      not be stopped by CTRL + C). So ASRC driver should promise that  its
      pair resource(buffer, SDMA channel, and clock) would not be accessed
      after it is released.
      In this patch, add protect for pair resource.
      Signed-off-by: default avatarChen Liangjun <b36089@freescale.com>
    • make shi's avatar
      ENGR00233728 mx6 usb: change usb driver load from arch_initcall to module_init · 3042d8dc
      make shi authored
      We should use module_init as usb driver initialization entry point.
      To avoid the following crash when sabreauto board bootup:
      Unable to handle kernel NULL pointer dereference at virtual address 00000030
      pgd = 80004000
      [00000030] *pgd=00000000
      Internal error: Oops: 5 [#1] PREEMPT SMP
      Modules linked in:
      CPU: 0    Not tainted  (3.0.35-02249-g64936321-dirty #3070)
      PC is at gpio_set_value_cansleep+0x20/0x34
      LR is at mx6_usb_h1_init+0x68/0x188
      pc : [<80251638>]    lr : [<80010bd4>]    psr: 20000013
      sp : e4049f60  ip : 000000ef  fp : 00000000
      r10: 00000000  r9 : 00000000  r8 : e4049f8c
      r7 : 80521f04  r6 : e4049f80  r5 : 80521f10  r4 : 80af53cc
      r3 : 00000000  r2 : 00000001  r1 : 00000001  r0 : 00000000
      Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      Control: 10c53c7d  Table: 1000404a  DAC: 00000015
      Process swapper (pid: 1, stack limit = 0xe40482f0)
      Stack: (0xe4049f60 to 0xe404a000)
      9f60: 80af53cc 80010bd4 00000001 02184200 0000004a 00000001 02184200 00000048
      9f80: 00000001 0000004d 0000004a 00000001 0000004d 00000048 8002e020 80af4ac0
      9fa0: 00000000 80010b6c 00000000 8003b4c4 00000000 80130000 00000000 80abf898
      9fc0: 000001f0 8002e020 8002e564 80042040 00000013 00000000 00000000 00000000
      9fe0: 00000000 800083cc 00000000 80008334 80042040 80042040 5104b14a f0e00000
      [<80251638>] (gpio_set_value_cansleep+0x20/0x34) from [<80010bd4>]
      [<80010bd4>] (mx6_usb_h1_init+0x68/0x188) from [<8003b4c4>]
      [<8003b4c4>] (do_one_initcall+0x30/0x16c) from [<800083cc>]
      [<800083cc>] (kernel_init+0x98/0x144) from [<80042040>]
      Code: e92d4010 e7933100 e1a02001 e1a00003 (e5931030)
      ---[ end trace 1b75b31a2719ed1c ]---
      Kernel panic - not syncing: Attempted to kill init!
      [<8004823c>] (unwind_backtrace+0x0/0xfc) from [<8051d790>]
      [<8051d790>] (panic+0x74/0x19c) from [<80078ba8>] (do_exit+0x664/0x718)
      [<80078ba8>] (do_exit+0x664/0x718) from [<80044fcc>] (die+0x250/0x2c8)
      [<80044fcc>] (die+0x250/0x2c8) from [<8004ba74>]
      [<8004ba74>] (__do_kernel_fault+0x64/0x84) from [<8004bc14>]
      [<8004bc14>] (do_page_fault+0x180/0x2e0) from [<8003b400>]
      [<8003b400>] (do_DataAbort+0x34/0x98) from [<80040f10>]
      Some board for example sabreauto board usb power gpio is use a io
      i2c expander gpio, gpio i2c driver load use subsys_initcall as driver
      initialization entry point, so gpio is not accessible at early bootup.
      Signed-off-by: default avatarmake shi <b15407@freescale.com>
    • Anson Huang's avatar
      ENGR00233732 mx6dl: change 996M setpoint voltage · 1ac50b59
      Anson Huang authored
      Change 996M setpoint voltage according to datasheet,
      lower VDDARM_CAP from 1.275V to 1.25V, and VDDSOC/PU_CAP
      from 1.275V to 1.175V.
      Signed-off-by: default avatarAnson Huang <b20788@freescale.com>
    • Chen Liangjun's avatar
      ENGR00233663 HDMI: add support for ALSA DMIX · 6b9084c3
      Chen Liangjun authored
      when using DMIX for ALSA playback, ALSA would not update write index
      into driver but maintain it in ALSA LIB level. However, HDMI driver
      need write index for HDMI header packing. In this case, HDMI driver
      would fail to do HDMI header pack and user hear no sound when using DMIX
      in HDMI audio playback.
      In this patch, use read index(hw_ptr) for HDMI header packing.
      Signed-off-by: default avatarChen Liangjun <b36089@freescale.com>
  3. 14 Nov, 2012 6 commits
  4. 13 Nov, 2012 4 commits
  5. 12 Nov, 2012 1 commit
  6. 09 Nov, 2012 2 commits
  7. 08 Nov, 2012 4 commits
  8. 07 Nov, 2012 2 commits
  9. 06 Nov, 2012 8 commits