Search Linux Wireless

Re: [PATCH 2/2] wl1251: fix ELP_CTRL register reads

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2010-06-25 at 02:34 +0300, Grazvydas Ignotas wrote:
> > I've changed that struct to wl12xx_platform_Data and added the irq
> > int,and I've still the following errors:
> > [  541.676849] wl1251: ERROR sdio_writeb failed (-84)
> > [  542.006378] mmc0: Command timeout
> > [  542.011444] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> > [  543.016357] mmc0: Command CRC error
> > [  543.016418] mmc0:0001: error -84 reading SDIO_CCCR_INTx
> > [  544.026367] mmc0: Command timeout
> > [  544.031433] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> > [  545.036376] mmc0: Command CRC error
> 
> Has powersaving ever worked on your device with this driver? It does
> work fine on pandora (OMAP3).
Not sure,
I've updated the sd driver,but I think I've still an issue
maybe the irq is not well recognized because I did some mistake. 
here are the debug:
[ 2132.599578] wl1251: cmd configure
[ 2132.619567] wl1251: acx wake up conditions
[ 2132.619628] wl1251: cmd configure
[ 2132.639587] wl1251: cmd set ps mode
[ 2132.640747] wl1251: sleep auth psm/elp
[ 2132.640808] wl1251: acx sleep auth
[ 2132.640808] wl1251: cmd configure
[ 2132.650268] wl1251: elp work
[ 2132.650299] wl1251: chip to elp
[ 2133.239471] wl1251: IRQ
[ 2133.239654] wl1251: IRQ work
[ 2133.239654] wl1251: waking up chip from elp
[ 2133.239715] wl1251: wakeup time: 0 ms
[ 2133.239868] wl1251: intr: 0x3
[ 2133.239929] wl1251: RX: FW +1
[ 2133.239929] wl1251: RX counter: 7
[ 2133.239959] wl1251: WL1251_ACX_INTR_RX0_DATA
[ 2133.240081] wl1251: rx skb 0xc61c3480: 88 B 
[ 2133.240203] wl1251: WL1251_ACX_INTR_TX_RESULT
[ 2133.240478] wl1251: tx status id 0 skb 0xc635f480 failures 0 rate 0x1
status 0x0 ()
[ 2133.251251] wl1251: elp work
[ 2133.264434] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2133.479278] wlan0: no IPv6 routers present
[ 2134.269470] mmc0: Command CRC error
[ 2134.269561] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2135.284484] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2136.289428] mmc0: Command CRC error
[ 2136.289489] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2137.304504] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2138.309478] mmc0: Command CRC error
[ 2138.309539] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2139.324523] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2140.329437] mmc0: Command CRC error
[ 2140.329498] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2141.344512] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2142.349456] mmc0: Command CRC error
[ 2142.349548] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2143.364501] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2144.369476] mmc0: Command CRC error
[ 2144.369537] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2145.384490] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2146.389404] mmc0: Command CRC error
[ 2146.389495] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2147.404541] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2148.409454] mmc0: Command CRC error
[ 2148.409545] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2149.424530] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2150.429534] mmc0: Command CRC error
[ 2150.429595] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2151.444488] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2152.449432] mmc0: Command CRC error
[ 2152.449523] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2152.969360] wl1251: mac80211 config ch 7 psm off power 20
[ 2152.969421] wl1251: waking up chip from elp
[ 2152.989410] wl1251: wakeup time: 20 ms
[ 2152.989440] wl1251: psm disabled
[ 2152.989471] wl1251: leaving psm
[ 2152.989471] wl1251: sleep auth cam

SDIO_CCCR_INT is in sdio_irq.c in driver/mmc/core
static int process_sdio_pending_irqs(struct mmc_card *card)
{
  int i, ret, count;
  unsigned char pending;

  ret = mmc_io_rw_direct(card, 0, 0, SDIO_CCCR_INTx, 0, &pending);
  if (ret) {
    printk(KERN_DEBUG "%s: error %d reading SDIO_CCCR_INTx\n",
                       mmc_card_id(card), ret);
    return ret;
  }
...

so I think that the IRQ could not have been proprerly initialized and so
it would prevent PSM because:
it seem to want to enter PSM,then fail because of the IRQ issue and go
back to normal mode.

Denis.


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux