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