Re: New topic (PowerPC Linux PCI HELL)

From: Andre Hedrick (andre@linux-ide.org)
Date: Mon Sep 18 2000 - 04:44:56 EST


On Mon, 18 Sep 2000, Jeff Garzik wrote:

> Benjamin Herrenschmidt wrote:
> > Andre Hedrick wrote:
> > >All I wanted was a function that allows the driver to decide that which
> > >needs to be enabled.
> > >
> > >pci_enable_device(struct pci_dev *dev, byte enable_mask)
>
> > This is indeed interesting.
> >
> > Some devices, for example, will provide several apertures (can eat much
> > bus space) while only one of them is actually needed by the driver.
> > Having the driver be able to only enable (and possibly claim) one of them
> > would free up some bus space for other devices (I'm thinking here about
> > hot swap devices that will dynamically claim bus space, like cardbus).
>
> Perhaps I was mistaken, but I was thinking about enable_mask only
> applied to PCI_COMMAND_{IO,MEM}. If that is the case, it sounds like
> your needs would only be met if one set of apertures was driven via
> ISA-style port I/O, and the other set of apertures via PCI shared mem
> (MMIO).

Then change it to :

pci_enable_device(struct pci_dev *dev, struct pci_enable *enable_set)

typedef union {
        unsigned all : 8;
        struct {
                unsigned bar0 : 1;
                unsigned bar1 : 1;
                unsigned bar2 : 1;
                unsigned bar3 : 1;
                unsigned bar4 : 1;
                unsigned bar5 : 1;
                unsigned reserved : 2;
        } bar;
} pci_t;

struct pci_enable {
        pci_t io_bars;
        pci_t mem_bars;
...
        pci_t wtf_bars;
...
        unsigned long reg[6];
...
        (pick and add whatever gets the job done)
};

I am not picky, just want it simple so that It can be tabled out by device
classes.

Cheers,

Andre Hedrick
The Linux ATA/IDE guy

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 21:00:16 EST