AR6000 driver failed on probe stage
Michael Trimarchi
trimarchi at gandalf.sssup.it
Sat Mar 28 19:27:55 CET 2009
Hi,
dongas wrote:
> 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
>
>
>
I will take a look on monday :)
Michael
More information about the openmoko-kernel
mailing list