Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Nov 2002 15:24:25 +0100 (CET)
From:      Dirk-Willem van Gulik <dirkx@webweaving.org>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        freebsd-hackers@FreeBSD.ORG, Marten Vijn <wleiden@xs4all.nl>
Subject:   Re: Understanding PCI intr routing on a Cirrus Logic PD6729
Message-ID:  <20021128152214.U2484-100000@foem.leiden.webweaving.org>
In-Reply-To: <20021128150022.T2484-100000@foem.leiden.webweaving.org>

next in thread | previous in thread | raw e-mail | index | archive | help


On Thu, 28 Nov 2002, Dirk-Willem van Gulik wrote:

> On Thu, 28 Nov 2002, Dirk-Willem van Gulik wrote:
>
> > > This doesn't force the interrupt to be IRQ3, but rather tells the card
> > > to use INTA#.  The probe line for wi card should say irq N where N is
>
> I may be mistaken - but it seems that
>
> 	pcic_pci_pd67xx_csc(struct pcic_slot *sp, enum pcic_intr_way way)
> 	pcic_pci_pd67xx_func(struct pcic_slot *sp, enum pcic_intr_way way)
>
> are not called to ensure that the PCI/ISA interrupts are set up
> (correctly). Or is this not required ?

Calling

	pcic_pci_cardbus_init()

from inside

	pcic_pci_pd67xx_init()

to push the INTA-D and ISAIRQ's into the PCI state seems to case things to
no longer freeze up, and I am getting at least some traffic through
without timeouts.

Dw



static void
pcic_pci_pd67xx_init(device_t dev)
{
        struct pcic_softc *sc = device_get_softc(dev);

        if (sc->csc_route == pcic_iw_pci || sc->func_route == pcic_iw_pci)
                device_printf(dev, "PD67xx maybe broken for PCI routing.\n");

#ifdef DIRKX_AT_APACHE_ORG_PRIVATE_HACKS
        /* XXX DIRKX lets try SOME routing of sorts */
        pcic_pci_cardbus_init(dev);
#endif
}



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021128152214.U2484-100000>