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