[Prism54-devel] No interrupt after isl38xx_w32_flush(ISL38XX_DEV_INT_UPDATE...)?

Andriy Korud a.korud@vector.com.pl
Fri, 7 May 2004 11:45:12 +0200


Hi.=20
I have a problem starting a PCI card.
Tracing and debugging shows that teh following sequence happens:

- firmware upload: ok
- device reset: ok
- interrupt ISL38XX_INT_IDENT_WAKEUP is raised: ok
- islpci_mgt_transmit() called: ok
- isl38xx_trigger_device() called: ok
- in isl38xx_trigger_device() the following code is executed:
  isl38xx_w32_flush(device_base,=20
                    ISL38XX_DEV_INT_UPDATE,=20
                    ISL38XX_DEV_INT_REG);
  and nothing happens - no interrupt follows.=20

And on user-level effect is:=20
eth2: timeout waiting for mgmt response 100, trigging device

If I change that code (just for testing) to=20
  sl38xx_w32_flush(device_base,=20
                   ISL38XX_DEV_INT_WAKEUP,
                   ISL38XX_DEV_INT_REG);
interrupt with "wakeup flag" follows immediately.

Any ideas when should I look?
Platform is PowerPC405EP, card is XG-901, lspci -vvv:

00:03.0 Network controller: Harris Semiconductor: Unknown device 3890 =
(rev 01)
	Subsystem: PLANEX COMMUNICATIONS Inc: Unknown device 2c04
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- =
Stepping- SERR- FastB2B-
	Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=3Dmedium >TAbort- =
<TAbort- <MAbort- >SERR- <PERR-
	Latency: 128 (2500ns min, 7000ns max)

	Interrupt: pin A routed to IRQ 30
	Region 0: Memory at bfffe000 (32-bit, non-prefetchable) [size=3D8K]

	Capabilities: [dc] Power Management version 1

		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=3D0mA =
PME(D0+,D1+,D2+,D3hot+,D3cold+)
		Status: D0 PME-Enable- DSel=3D0 DScale=3D0 PME-