tree faa00e598b8de5ce2401e79824308e32780c191c
parent c6fd718808df873b5d216d5827ac57ec39820238
author Dominik Brodowski <[EMAIL PROTECTED]> Wed, 13 Jul 2005 03:58:16 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Wed, 13 Jul 2005 06:01:00 -0700

[PATCH] yenta: same resources in same structs

drivers/pci/setup-bus.c enumerates the CardBus windows (bus->resources[])

Signed-off-by: Dominik Brodowski <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 drivers/pcmcia/yenta_socket.c |   24 +++++++++++++-----------
 1 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c
--- a/drivers/pcmcia/yenta_socket.c
+++ b/drivers/pcmcia/yenta_socket.c
@@ -539,13 +539,12 @@ static int yenta_sock_suspend(struct pcm
 #define PCIBIOS_MIN_CARDBUS_IO PCIBIOS_MIN_IO
 #endif
 
-static void yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned 
type)
+static void yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned 
type, int addr_start, int addr_end)
 {
        struct pci_bus *bus;
        struct resource *root, *res;
        u32 start, end;
        u32 align, size, min;
-       unsigned offset;
        unsigned mask;
 
        res = socket->dev->resource + PCI_BRIDGE_RESOURCES + nr;
@@ -558,13 +557,12 @@ static void yenta_allocate_res(struct ye
        if (type & IORESOURCE_IO)
                mask = ~3;
 
-       offset = 0x1c + 8*nr;
        bus = socket->dev->subordinate;
        res->name = bus->name;
        res->flags = type;
 
-       start = config_readl(socket, offset) & mask;
-       end = config_readl(socket, offset+4) | ~mask;
+       start = config_readl(socket, addr_start) & mask;
+       end = config_readl(socket, addr_end) | ~mask;
        if (start && end > start && !override_bios) {
                res->start = start;
                res->end = end;
@@ -607,8 +605,8 @@ static void yenta_allocate_res(struct ye
        
        do {
                if (allocate_resource(root, res, size, start, end, align, NULL, 
NULL)==0) {
-                       config_writel(socket, offset, res->start);
-                       config_writel(socket, offset+4, res->end);
+                       config_writel(socket, addr_start, res->start);
+                       config_writel(socket, addr_end, res->end);
                        return;
                }
                size = size/2;
@@ -624,10 +622,14 @@ static void yenta_allocate_res(struct ye
  */
 static void yenta_allocate_resources(struct yenta_socket *socket)
 {
-       yenta_allocate_res(socket, 0, IORESOURCE_MEM|IORESOURCE_PREFETCH);
-       yenta_allocate_res(socket, 1, IORESOURCE_MEM);
-       yenta_allocate_res(socket, 2, IORESOURCE_IO);
-       yenta_allocate_res(socket, 3, IORESOURCE_IO);
+       yenta_allocate_res(socket, 0, IORESOURCE_IO,
+                          PCI_CB_IO_BASE_0, PCI_CB_IO_LIMIT_0);
+       yenta_allocate_res(socket, 1, IORESOURCE_IO,
+                          PCI_CB_IO_BASE_1, PCI_CB_IO_LIMIT_1);
+       yenta_allocate_res(socket, 2, IORESOURCE_MEM|IORESOURCE_PREFETCH,
+                          PCI_CB_MEMORY_BASE_0, PCI_CB_MEMORY_LIMIT_0);
+       yenta_allocate_res(socket, 3, IORESOURCE_MEM,
+                          PCI_CB_MEMORY_BASE_1, PCI_CB_MEMORY_LIMIT_1);
 }
 
 
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to