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
