AR6000 driver failed on probe stage
dongas
dongas86 at gmail.com
Sat Mar 28 12:18:35 CET 2009
Dear ALL,
The ar6000 driver i'm using is from andy-tracking branch in kernel 2.6.29.
When i insmod ar6000 module, the kernel hanged.
After digging into the code, i found that in bmiBufferSend function in bmi.c,
the driver will try to repeatly read the COUNT_DEC register of the
card (The read value is stored in cmdCredits variable),
until the register value read back is Non-zero and then the following
steps can go on.
But the value returned from register was alway zero , so ar6000 driver
hanged there and keeped doing almost the infinit loop
reading&checking.
Why the driver can not read a non-zero value from COUNT_DEC register
as it wanted?
Can anybody who knows that provide some hints on which case may cause
this issue?
The following are some output messages:
/lib/modules # insmod ar6000.ko debughtc=0xffff
[ 13.870000] HTCInit: Enter
[ 13.890000] HIFInit
[ 13.900000] sdio_ar6000 mmc0:0001:1: sdio_ar6000_probe
[ 13.910000] sdio_ar6000 mmc0:0001:1: ar6000_activate
[ 13.940000] sdio_ar6000 mmc0:0001:1: ar6000_do_activate
[ 13.950000] htcTargetInserted - Enter
[ 13.960000] sdio_ar6000 mmc0:0001:1: HIFConfigureDevice
[ 13.960000] sdio_ar6000 mmc0:0001:1: HIFConfigureDevice
[ 13.970000] BlockSize: 128, MailboxAddress:0x800
[ 13.970000] sdio_ar6000 mmc0:0001:1: HIFConfigureDevice
[ 13.980000] sdio_ar6000 mmc0:0001:1: HIFConfigureDevice
[ 13.990000] HIF Interrupt processing is SYNC ONLY
[ 14.000000] sdio_ar6000 mmc0:0001:1: HIFConfigureDevice
[ 14.000000] HIF special overrides : 0x0 , 0x0
[ 14.020000] sdio_ar6000 mmc0:0001:1: HIFReadWrite(device c7df4560,
address 0x418, buffer c7dfbc74, length 4, request 0x25a, context
00000000)
[ 14.030000] sdio_ar6000 mmc0:0001:1: process_request(req c7df4460)
[ 14.050000] calling AddInstance callback
[ 14.050000] ar6000_available
[ 14.060000] BMI Get Target Info: Enter (device: 0xc7df4560)
[ 14.060000] sdio_ar6000 mmc0:0001:1: HIFConfigureDevice
[ 14.070000] sdio_ar6000 mmc0:0001:1: HIFReadWrite(device c7df4560,
address 0x450, buffer bf027204, length 4, request 0x259, context
00000000)
[ 14.080000] sdio_ar6000 mmc0:0001:1: process_request(req c7c53be0)
[ 14.110000] kernel DEBUG at drivers/ar6000/bmi/bmi.c: 589
bmiBufferSend!cmdCredits =0
[ 14.120000] sdio_ar6000 mmc0:0001:1: HIFReadWrite(device c7df4560,
address 0x450, buffer bf027204, length 4, request 0x259, context
00000000)
[ 14.130000] sdio_ar6000 mmc0:0001:1: process_request(req c7c53be0)
[ 14.150000] kernel DEBUG at drivers/ar6000/bmi/bmi.c: 589
bmiBufferSend!cmdCredits =0
…………
The left log repeats above three lines,
( Looply read the register of COUNT_DEC since the value of cmdCredits
was alway 0).
Thanks
Regards
Dongas
More information about the openmoko-kernel
mailing list