* [PATCH] [1/6] Remove dummy cb_config() and cb_release()
@ 2003-02-23 15:20 Russell King
2003-02-23 15:20 ` [PATCH] [2/6] Remove unused "dev" argument from cb_setup_cis_mem Russell King
0 siblings, 1 reply; 6+ messages in thread
From: Russell King @ 2003-02-23 15:20 UTC (permalink / raw)
To: LKML; +Cc: Linus Torvalds
This patch appears not to be in 2.5.62, but applies cleanly.
Subject: [1/6] Remove dummy cb_config() and cb_release()
cb_config() and cb_release() are just simple dummy functions that are
only used in the internals of the PCMCIA code. We inline them where
used.
drivers/pcmcia/cardbus.c | 32 --------------------------------
drivers/pcmcia/cs.c | 7 ++-----
drivers/pcmcia/cs_internal.h | 2 --
3 files changed, 2 insertions, 39 deletions
diff -ur orig/drivers/pcmcia/cardbus.c linux/drivers/pcmcia/cardbus.c
--- orig/drivers/pcmcia/cardbus.c Fri Jan 17 10:39:17 2003
+++ linux/drivers/pcmcia/cardbus.c Sun Feb 23 12:17:52 2003
@@ -335,38 +335,6 @@
/*=====================================================================
- cb_config() has the job of allocating all system resources that
- a Cardbus card requires. Rather than using the CIS (which seems
- to not always be present), it treats the card as an ordinary PCI
- device, and probes the base address registers to determine each
- function's IO and memory space needs.
-
- It is called from the RequestIO card service.
-
-======================================================================*/
-
-int cb_config(socket_info_t * s)
-{
- return CS_SUCCESS;
-}
-
-/*======================================================================
-
- cb_release() releases all the system resources (IO and memory
- space, and interrupt) committed for a Cardbus card by a prior call
- to cb_config().
-
- It is called from the ReleaseIO() service.
-
-======================================================================*/
-
-void cb_release(socket_info_t * s)
-{
- DEBUG(0, "cs: cb_release(bus %d)\n", s->cap.cb_dev->subordinate->number);
-}
-
-/*=====================================================================
-
cb_enable() has the job of configuring a socket for a Cardbus
card, and initializing the card's PCI configuration registers.
diff -ur orig/drivers/pcmcia/cs.c linux/drivers/pcmcia/cs.c
--- orig/drivers/pcmcia/cs.c Fri Feb 21 19:48:51 2003
+++ linux/drivers/pcmcia/cs.c Sun Feb 23 12:03:16 2003
@@ -1562,7 +1562,6 @@
#ifdef CONFIG_CARDBUS
if (handle->state & CLIENT_CARDBUS) {
- cb_release(s);
return CS_SUCCESS;
}
#endif
@@ -1804,10 +1803,8 @@
if (handle->state & CLIENT_CARDBUS) {
#ifdef CONFIG_CARDBUS
- int ret = cb_config(s);
- if (ret == CS_SUCCESS)
- handle->state |= CLIENT_IO_REQ;
- return ret;
+ handle->state |= CLIENT_IO_REQ;
+ return CS_SUCCESS;
#else
return CS_UNSUPPORTED_FUNCTION;
#endif
diff -ur orig/drivers/pcmcia/cs_internal.h linux/drivers/pcmcia/cs_internal.h
--- orig/drivers/pcmcia/cs_internal.h Wed Nov 13 16:53:30 2002
+++ linux/drivers/pcmcia/cs_internal.h Sun Feb 23 11:39:32 2003
@@ -198,8 +198,6 @@
/* In cardbus.c */
int cb_alloc(socket_info_t *s);
void cb_free(socket_info_t *s);
-int cb_config(socket_info_t *s);
-void cb_release(socket_info_t *s);
void cb_enable(socket_info_t *s);
void cb_disable(socket_info_t *s);
int read_cb_mem(socket_info_t *s, u_char fn, int space,
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH] [2/6] Remove unused "dev" argument from cb_setup_cis_mem 2003-02-23 15:20 [PATCH] [1/6] Remove dummy cb_config() and cb_release() Russell King @ 2003-02-23 15:20 ` Russell King 2003-02-23 15:20 ` [PATCH] [3/6] Remove "fn" argument from read_cb_mem() Russell King 0 siblings, 1 reply; 6+ messages in thread From: Russell King @ 2003-02-23 15:20 UTC (permalink / raw) To: LKML; +Cc: Linus Torvalds This patch appears not to be in 2.5.62, but applies cleanly. Subject: [2/6] Remove unused "dev" argument from cb_setup_cis_mem cb_setup_cis_mem doesn't reference the pci device. Remove this unused argument. drivers/pcmcia/cardbus.c | 4 ++-- 1 files changed, 2 insertions, 2 deletions diff -ur -x sa11* -x Kconfig -x Makefile orig/drivers/pcmcia/cardbus.c linux/drivers/pcmcia/cardbus.c --- orig/drivers/pcmcia/cardbus.c Sun Feb 23 12:39:27 2003 +++ linux/drivers/pcmcia/cardbus.c Sun Feb 23 12:17:52 2003 @@ -146,7 +146,7 @@ } } -static int cb_setup_cis_mem(socket_info_t * s, struct pci_dev *dev, struct resource *res) +static int cb_setup_cis_mem(socket_info_t * s, struct resource *res) { unsigned int start, size; @@ -201,7 +201,7 @@ if (!res->flags) goto fail; - if (cb_setup_cis_mem(s, dev, res) != 0) + if (cb_setup_cis_mem(s, res) != 0) goto fail; if (space == 7) { ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] [3/6] Remove "fn" argument from read_cb_mem() 2003-02-23 15:20 ` [PATCH] [2/6] Remove unused "dev" argument from cb_setup_cis_mem Russell King @ 2003-02-23 15:20 ` Russell King 2003-02-23 15:20 ` [PATCH] [4/6] Remove pci_{read,write}[bwl] Russell King 0 siblings, 1 reply; 6+ messages in thread From: Russell King @ 2003-02-23 15:20 UTC (permalink / raw) To: LKML; +Cc: Linus Torvalds This patch appears not to be in 2.5.62, but applies cleanly. Subject: [3/6] Remove "fn" argument from read_cb_mem() read_cb_mem is only ever called with its "fn" argument set to zero. We therefore do not need to pass it. drivers/pcmcia/cardbus.c | 5 ++--- drivers/pcmcia/cistpl.c | 4 ++-- drivers/pcmcia/cs_internal.h | 3 +-- 3 files changed, 5 insertions, 7 deletions diff -ur -x sa11* -x Kconfig -x Makefile orig/drivers/pcmcia/cardbus.c linux/drivers/pcmcia/cardbus.c --- orig/drivers/pcmcia/cardbus.c Sun Feb 23 12:41:54 2003 +++ linux/drivers/pcmcia/cardbus.c Sun Feb 23 12:43:55 2003 @@ -175,8 +175,7 @@ =====================================================================*/ -int read_cb_mem(socket_info_t * s, u_char fn, int space, - u_int addr, u_int len, void *ptr) +int read_cb_mem(socket_info_t * s, int space, u_int addr, u_int len, void *ptr) { struct pci_dev *dev; struct resource *res; @@ -186,7 +185,7 @@ if (!s->cb_config) goto fail; - dev = &s->cb_config[fn].dev; + dev = &s->cb_config[0].dev; /* Config space? */ if (space == 0) { diff -ur -x sa11* -x Kconfig -x Makefile orig/drivers/pcmcia/cistpl.c linux/drivers/pcmcia/cistpl.c --- orig/drivers/pcmcia/cistpl.c Sun Nov 24 10:12:25 2002 +++ linux/drivers/pcmcia/cistpl.c Sun Feb 23 10:23:58 2003 @@ -327,7 +327,7 @@ } #ifdef CONFIG_CARDBUS if (s->state & SOCKET_CARDBUS) - ret = read_cb_mem(s, 0, attr, addr, len, ptr); + ret = read_cb_mem(s, attr, addr, len, ptr); else #endif ret = read_cis_mem(s, attr, addr, len, ptr); @@ -358,7 +358,7 @@ for (i = 0; i < s->cis_used; i++) { #ifdef CONFIG_CARDBUS if (s->state & SOCKET_CARDBUS) - read_cb_mem(s, 0, s->cis_table[i].attr, s->cis_table[i].addr, + read_cb_mem(s, s->cis_table[i].attr, s->cis_table[i].addr, s->cis_table[i].len, buf); else #endif diff -ur -x sa11* -x Kconfig -x Makefile orig/drivers/pcmcia/cs_internal.h linux/drivers/pcmcia/cs_internal.h --- orig/drivers/pcmcia/cs_internal.h Sun Feb 23 12:39:27 2003 +++ linux/drivers/pcmcia/cs_internal.h Sun Feb 23 11:39:32 2003 @@ -200,8 +200,7 @@ void cb_free(socket_info_t *s); void cb_enable(socket_info_t *s); void cb_disable(socket_info_t *s); -int read_cb_mem(socket_info_t *s, u_char fn, int space, - u_int addr, u_int len, void *ptr); +int read_cb_mem(socket_info_t *s, int space, u_int addr, u_int len, void *ptr); void cb_release_cis_mem(socket_info_t *s); /* In cistpl.c */ ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] [4/6] Remove pci_{read,write}[bwl] 2003-02-23 15:20 ` [PATCH] [3/6] Remove "fn" argument from read_cb_mem() Russell King @ 2003-02-23 15:20 ` Russell King 2003-02-23 15:20 ` [PATCH] [5/6] Remove stack allocation of struct pci_dev Russell King 0 siblings, 1 reply; 6+ messages in thread From: Russell King @ 2003-02-23 15:20 UTC (permalink / raw) To: LKML; +Cc: Linus Torvalds This patch appears not to be in 2.5.62, but applies cleanly. Subject: [4/6] Remove pci_{read,write}[bwl] cardbus.c uses its own names for our PCI config space functions. Make it use our names. drivers/pcmcia/cardbus.c | 34 +++++++++++++++------------------- 1 files changed, 15 insertions, 19 deletions diff -ur -x sa11* -x Kconfig -x Makefile orig/drivers/pcmcia/cardbus.c linux/drivers/pcmcia/cardbus.c --- orig/drivers/pcmcia/cardbus.c Sun Feb 23 12:47:15 2003 +++ linux/drivers/pcmcia/cardbus.c Sun Feb 23 12:43:55 2003 @@ -75,13 +75,6 @@ #define FIND_FIRST_BIT(n) ((n) - ((n) & ((n)-1))) -#define pci_readb pci_read_config_byte -#define pci_writeb pci_write_config_byte -#define pci_readw pci_read_config_word -#define pci_writew pci_write_config_word -#define pci_readl pci_read_config_dword -#define pci_writel pci_write_config_dword - /* Offsets in the Expansion ROM Image Header */ #define ROM_SIGNATURE 0x0000 /* 2 bytes */ #define ROM_DATA_PTR 0x0018 /* 2 bytes */ @@ -192,7 +185,7 @@ if (addr + len > 0x100) goto fail; for (; len; addr++, ptr++, len--) - pci_readb(dev, addr, (u_char *) ptr); + pci_read_config_byte(dev, addr, ptr); return 0; } @@ -243,17 +236,18 @@ tmp.sysdata = bus->sysdata; tmp.devfn = 0; - pci_readw(&tmp, PCI_VENDOR_ID, &vend); - pci_readw(&tmp, PCI_DEVICE_ID, &dev); + pci_read_config_word(&tmp, PCI_VENDOR_ID, &vend); + pci_read_config_word(&tmp, PCI_DEVICE_ID, &dev); printk(KERN_INFO "cs: cb_alloc(bus %d): vendor 0x%04x, " "device 0x%04x\n", bus->number, vend, dev); - pci_readb(&tmp, PCI_HEADER_TYPE, &hdr); + pci_read_config_byte(&tmp, PCI_HEADER_TYPE, &hdr); fn = 1; if (hdr & 0x80) { do { tmp.devfn = fn; - if (pci_readw(&tmp, PCI_VENDOR_ID, &v) || !v || v == 0xffff) + if (pci_read_config_word(&tmp, PCI_VENDOR_ID, &v) || + !v || v == 0xffff) break; fn++; } while (fn < 8); @@ -278,7 +272,7 @@ dev->devfn = i; dev->vendor = vend; - pci_readw(dev, PCI_DEVICE_ID, &dev->device); + pci_read_config_word(dev, PCI_DEVICE_ID, &dev->device); dev->hdr_type = hdr & 0x7f; dev->dma_mask = 0xffffffff; dev->dev.dma_mask = &dev->dma_mask; @@ -295,7 +289,7 @@ } /* Does this function have an interrupt at all? */ - pci_readb(dev, PCI_INTERRUPT_PIN, &irq_pin); + pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &irq_pin); if (irq_pin) dev->irq = irq; @@ -305,7 +299,7 @@ continue; if (irq_pin) - pci_writeb(dev, PCI_INTERRUPT_LINE, irq); + pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq); device_register(&dev->dev); pci_insert_device(dev, bus); @@ -360,15 +354,17 @@ /* Set up PCI interrupt and command registers */ for (i = 0; i < s->functions; i++) { dev = &s->cb_config[i].dev; - pci_writeb(dev, PCI_COMMAND, PCI_COMMAND_MASTER | - PCI_COMMAND_IO | PCI_COMMAND_MEMORY); - pci_writeb(dev, PCI_CACHE_LINE_SIZE, L1_CACHE_BYTES / 4); + pci_write_config_byte(dev, PCI_COMMAND, PCI_COMMAND_MASTER | + PCI_COMMAND_IO | PCI_COMMAND_MEMORY); + pci_write_config_byte(dev, PCI_CACHE_LINE_SIZE, + L1_CACHE_BYTES / 4); } if (s->irq.AssignedIRQ) { for (i = 0; i < s->functions; i++) { dev = &s->cb_config[i].dev; - pci_writeb(dev, PCI_INTERRUPT_LINE, s->irq.AssignedIRQ); + pci_write_config_byte(dev, PCI_INTERRUPT_LINE, + s->irq.AssignedIRQ); } s->socket.io_irq = s->irq.AssignedIRQ; s->ss_entry->set_socket(s->sock, &s->socket); ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] [5/6] Remove stack allocation of struct pci_dev 2003-02-23 15:20 ` [PATCH] [4/6] Remove pci_{read,write}[bwl] Russell King @ 2003-02-23 15:20 ` Russell King 2003-02-23 15:20 ` [PATCH] [6/6] Always re-read vendor for each function Russell King 0 siblings, 1 reply; 6+ messages in thread From: Russell King @ 2003-02-23 15:20 UTC (permalink / raw) To: LKML; +Cc: Linus Torvalds This patch appears not to be in 2.5.62, but applies cleanly. Subject: [5/6] Remove stack allocation of struct pci_dev cb_alloc() allocated a pci_dev on the stack to access PCI space. This is unnecessary since we have pci_bus_*_config_* functions. Use these functions instead. drivers/pcmcia/cardbus.c | 14 ++++---------- 1 files changed, 4 insertions, 10 deletions diff -ur -x sa11* -x Kconfig -x Makefile orig/drivers/pcmcia/cardbus.c linux/drivers/pcmcia/cardbus.c --- orig/drivers/pcmcia/cardbus.c Sun Feb 23 13:56:32 2003 +++ linux/drivers/pcmcia/cardbus.c Sun Feb 23 14:04:29 2003 @@ -224,29 +224,23 @@ int cb_alloc(socket_info_t * s) { struct pci_bus *bus; - struct pci_dev tmp; u_short vend, v, dev; u_char i, hdr, fn; cb_config_t *c; int irq; bus = s->cap.cb_dev->subordinate; - memset(&tmp, 0, sizeof(tmp)); - tmp.bus = bus; - tmp.sysdata = bus->sysdata; - tmp.devfn = 0; - pci_read_config_word(&tmp, PCI_VENDOR_ID, &vend); - pci_read_config_word(&tmp, PCI_DEVICE_ID, &dev); + pci_bus_read_config_word(bus, 0, PCI_VENDOR_ID, &vend); + pci_bus_read_config_word(bus, 0, PCI_DEVICE_ID, &dev); printk(KERN_INFO "cs: cb_alloc(bus %d): vendor 0x%04x, " "device 0x%04x\n", bus->number, vend, dev); - pci_read_config_byte(&tmp, PCI_HEADER_TYPE, &hdr); + pci_bus_read_config_byte(bus, 0, PCI_HEADER_TYPE, &hdr); fn = 1; if (hdr & 0x80) { do { - tmp.devfn = fn; - if (pci_read_config_word(&tmp, PCI_VENDOR_ID, &v) || + if (pci_bus_read_config_word(bus, fn, PCI_VENDOR_ID, &v) || !v || v == 0xffff) break; fn++; ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] [6/6] Always re-read vendor for each function 2003-02-23 15:20 ` [PATCH] [5/6] Remove stack allocation of struct pci_dev Russell King @ 2003-02-23 15:20 ` Russell King 0 siblings, 0 replies; 6+ messages in thread From: Russell King @ 2003-02-23 15:20 UTC (permalink / raw) To: LKML; +Cc: Linus Torvalds This patch appears not to be in 2.5.62, but applies cleanly. Subject: [6/6] Always re-read vendor for each function We should probably always read the vendor ID from each function rather than assuming that it is identical to function 0. drivers/pcmcia/cardbus.c | 4 ++-- 1 files changed, 2 insertions, 2 deletions diff -ur -x sa11* -x Kconfig -x Makefile orig/drivers/pcmcia/cardbus.c linux/drivers/pcmcia/cardbus.c --- orig/drivers/pcmcia/cardbus.c Sun Feb 23 14:12:57 2003 +++ linux/drivers/pcmcia/cardbus.c Sun Feb 23 14:15:26 2003 @@ -263,9 +263,9 @@ dev->sysdata = bus->sysdata; dev->dev.parent = bus->dev; dev->dev.bus = &pci_bus_type; - dev->devfn = i; - dev->vendor = vend; + + pci_read_config_word(dev, PCI_VENDOR_ID, &dev->vendor); pci_read_config_word(dev, PCI_DEVICE_ID, &dev->device); dev->hdr_type = hdr & 0x7f; dev->dma_mask = 0xffffffff; ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2003-02-23 15:14 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-02-23 15:20 [PATCH] [1/6] Remove dummy cb_config() and cb_release() Russell King
2003-02-23 15:20 ` [PATCH] [2/6] Remove unused "dev" argument from cb_setup_cis_mem Russell King
2003-02-23 15:20 ` [PATCH] [3/6] Remove "fn" argument from read_cb_mem() Russell King
2003-02-23 15:20 ` [PATCH] [4/6] Remove pci_{read,write}[bwl] Russell King
2003-02-23 15:20 ` [PATCH] [5/6] Remove stack allocation of struct pci_dev Russell King
2003-02-23 15:20 ` [PATCH] [6/6] Always re-read vendor for each function Russell King
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox