* [BK PATCH] pcibios removal changes for 2.5.48 @ 2002-11-20 5:17 Greg KH 2002-11-20 5:17 ` [PATCH] " Greg KH 0 siblings, 1 reply; 6+ messages in thread From: Greg KH @ 2002-11-20 5:17 UTC (permalink / raw) To: torvalds; +Cc: linux-kernel Hi, Here are a few changesets that removes almost all of the remaining usages of pcibios_read_config* and pcibios_write_config* calls. It also removes them from pci.h and deletes drivers/pci/compat.c. These changes have been in the -ac tree for a while, and I have been running a lot of different types of machines with them for a number of weeks (servers to laptops). Please pull from: bk://linuxusb.bkbits.net/pci-2.5 There are still a small number of places in the tree where these functions show up, but the usage falls into one of three categories: - compatibility code for older kernels. This includes the following files: drivers/scsi/gdth.c drivers/scsi/sym53c8xx.c drivers/scsi/sym53c8xx_comm.h drivers/scsi/tmscsim.c drivers/scsi/megaraid.c drivers/net/wan/sdladrv.c drivers/char/ip2main.c linux/compatmac.h - drivers that are outdated and do not build anyway: drivers/isdn/hisax/hfc_pci.c drivers/isdn/eicon/lincfg.c drivers/isdn/eicon/linio.c - arch specific code that I can not build, nor test. A number of these instances contain code that directly touches hardware (the network driver is an example of that), or is doing other platform specific stuff that I do not know how to fix: drivers/video/S3triofb.c drivers/net/gt96100eth.c alpha/kernel/sys_nautilus.c alpha/kernel/sys_sio.c I also think that a number of older pcibios functions can be removed from m68knommu/kernel/comempci.c, but will have to ask the author of that file first. thanks, greg k-h drivers/pci/compat.c | 37 ------------------------------------- drivers/isdn/hisax/bkm_a8.c | 23 ++++++++--------------- drivers/pci/Makefile | 4 ++-- drivers/pcmcia/cistpl.c | 5 ++++- include/linux/pci.h | 17 ----------------- 5 files changed, 14 insertions(+), 72 deletions(-) ----- ChangeSet@1.872.3.3, 2002-11-19 20:30:40-08:00, greg@kroah.com PCI: removed pcibios_read_config_* and pcibios_write_config_* functions. drivers/pci/compat.c | 37 ------------------------------------- drivers/pci/Makefile | 4 ++-- include/linux/pci.h | 17 ----------------- 3 files changed, 2 insertions(+), 56 deletions(-) ------ ChangeSet@1.872.3.2, 2002-11-19 20:24:56-08:00, greg@kroah.com PCMCIA: remove usage of pcibios_read_config_dword drivers/pcmcia/cistpl.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) ------ ChangeSet@1.872.3.1, 2002-11-19 20:23:31-08:00, greg@kroah.com ISDN: Convert usages of pcibios_* functions to pci_* drivers/isdn/hisax/bkm_a8.c | 23 ++++++++--------------- 1 files changed, 8 insertions(+), 15 deletions(-) ------ ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] pcibios removal changes for 2.5.48 2002-11-20 5:17 [BK PATCH] pcibios removal changes for 2.5.48 Greg KH @ 2002-11-20 5:17 ` Greg KH 2002-11-20 5:18 ` Greg KH 0 siblings, 1 reply; 6+ messages in thread From: Greg KH @ 2002-11-20 5:17 UTC (permalink / raw) To: linux-kernel ChangeSet 1.872.3.1, 2002/11/19 20:23:31-08:00, greg@kroah.com ISDN: Convert usages of pcibios_* functions to pci_* diff -Nru a/drivers/isdn/hisax/bkm_a8.c b/drivers/isdn/hisax/bkm_a8.c --- a/drivers/isdn/hisax/bkm_a8.c Tue Nov 19 21:07:10 2002 +++ b/drivers/isdn/hisax/bkm_a8.c Tue Nov 19 21:07:10 2002 @@ -278,8 +278,6 @@ static struct pci_dev *dev_a8 __initdata = NULL; static u16 sub_vendor_id __initdata = 0; static u16 sub_sys_id __initdata = 0; -static u_char pci_bus __initdata = 0; -static u_char pci_device_fn __initdata = 0; static u_char pci_irq __initdata = 0; #endif /* CONFIG_PCI */ @@ -328,8 +326,6 @@ return(0); pci_ioaddr1 = pci_resource_start(dev_a8, 1); pci_irq = dev_a8->irq; - pci_bus = dev_a8->bus->number; - pci_device_fn = dev_a8->devfn; found = 1; break; } @@ -342,20 +338,17 @@ } #ifdef ATTEMPT_PCI_REMAPPING /* HACK: PLX revision 1 bug: PLX address bit 7 must not be set */ - pcibios_read_config_byte(pci_bus, pci_device_fn, - PCI_REVISION_ID, &pci_rev_id); + pci_read_config_byte(dev_a8, PCI_REVISION_ID, &pci_rev_id); if ((pci_ioaddr1 & 0x80) && (pci_rev_id == 1)) { printk(KERN_WARNING "HiSax: %s (%s): PLX rev 1, remapping required!\n", CardType[card->typ], sct_quadro_subtypes[cs->subtyp]); /* Restart PCI negotiation */ - pcibios_write_config_dword(pci_bus, pci_device_fn, - PCI_BASE_ADDRESS_1, (u_int) - 1); + pci_write_config_dword(dev_a8, PCI_BASE_ADDRESS_1, (u_int) - 1); /* Move up by 0x80 byte */ pci_ioaddr1 += 0x80; pci_ioaddr1 &= PCI_BASE_ADDRESS_IO_MASK; - pcibios_write_config_dword(pci_bus, pci_device_fn, - PCI_BASE_ADDRESS_1, pci_ioaddr1); + pci_write_config_dword(dev_a8, PCI_BASE_ADDRESS_1, pci_ioaddr1); dev_a8->resource[ 1].start = pci_ioaddr1; } #endif /* End HACK */ @@ -366,11 +359,11 @@ sct_quadro_subtypes[cs->subtyp]); return (0); } - pcibios_read_config_dword(pci_bus, pci_device_fn, PCI_BASE_ADDRESS_1, &pci_ioaddr1); - pcibios_read_config_dword(pci_bus, pci_device_fn, PCI_BASE_ADDRESS_2, &pci_ioaddr2); - pcibios_read_config_dword(pci_bus, pci_device_fn, PCI_BASE_ADDRESS_3, &pci_ioaddr3); - pcibios_read_config_dword(pci_bus, pci_device_fn, PCI_BASE_ADDRESS_4, &pci_ioaddr4); - pcibios_read_config_dword(pci_bus, pci_device_fn, PCI_BASE_ADDRESS_5, &pci_ioaddr5); + pci_read_config_dword(dev_a8, PCI_BASE_ADDRESS_1, &pci_ioaddr1); + pci_read_config_dword(dev_a8, PCI_BASE_ADDRESS_2, &pci_ioaddr2); + pci_read_config_dword(dev_a8, PCI_BASE_ADDRESS_3, &pci_ioaddr3); + pci_read_config_dword(dev_a8, PCI_BASE_ADDRESS_4, &pci_ioaddr4); + pci_read_config_dword(dev_a8, PCI_BASE_ADDRESS_5, &pci_ioaddr5); if (!pci_ioaddr1 || !pci_ioaddr2 || !pci_ioaddr3 || !pci_ioaddr4 || !pci_ioaddr5) { printk(KERN_WARNING "HiSax: %s (%s): No IO base address(es)\n", CardType[card->typ], ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pcibios removal changes for 2.5.48 2002-11-20 5:17 ` [PATCH] " Greg KH @ 2002-11-20 5:18 ` Greg KH 2002-11-20 5:19 ` Greg KH 2002-11-20 10:16 ` Ivan Kokshaysky 0 siblings, 2 replies; 6+ messages in thread From: Greg KH @ 2002-11-20 5:18 UTC (permalink / raw) To: linux-kernel ChangeSet 1.872.3.2, 2002/11/19 20:24:56-08:00, greg@kroah.com PCMCIA: remove usage of pcibios_read_config_dword diff -Nru a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c --- a/drivers/pcmcia/cistpl.c Tue Nov 19 21:06:55 2002 +++ b/drivers/pcmcia/cistpl.c Tue Nov 19 21:06:55 2002 @@ -430,7 +430,10 @@ #ifdef CONFIG_CARDBUS if (s->state & SOCKET_CARDBUS) { u_int ptr; - pcibios_read_config_dword(s->cap.cb_dev->subordinate->number, 0, 0x28, &ptr); + struct pci_dev *dev = pci_find_slot (s->cap.cb_dev->subordinate->number, 0); + if (!dev) + return CS_BAD_HANDLE; + pci_read_config_dword(dev, 0x28, &ptr); tuple->CISOffset = ptr & ~7; SPACE(tuple->Flags) = (ptr & 7); } else ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pcibios removal changes for 2.5.48 2002-11-20 5:18 ` Greg KH @ 2002-11-20 5:19 ` Greg KH 2002-11-20 10:16 ` Ivan Kokshaysky 1 sibling, 0 replies; 6+ messages in thread From: Greg KH @ 2002-11-20 5:19 UTC (permalink / raw) To: linux-kernel ChangeSet 1.872.3.3, 2002/11/19 20:30:40-08:00, greg@kroah.com PCI: removed pcibios_read_config_* and pcibios_write_config_* functions. diff -Nru a/drivers/pci/Makefile b/drivers/pci/Makefile --- a/drivers/pci/Makefile Tue Nov 19 21:06:39 2002 +++ b/drivers/pci/Makefile Tue Nov 19 21:06:39 2002 @@ -3,10 +3,10 @@ # export-objs := access.o hotplug.o pci-driver.o pci.o pool.o \ - probe.o proc.o search.o compat.o setup-bus.o + probe.o proc.o search.o setup-bus.o obj-y += access.o probe.o pci.o pool.o quirks.o \ - compat.o names.o pci-driver.o search.o hotplug.o + names.o pci-driver.o search.o hotplug.o obj-$(CONFIG_PM) += power.o obj-$(CONFIG_PROC_FS) += proc.o diff -Nru a/drivers/pci/compat.c b/drivers/pci/compat.c --- a/drivers/pci/compat.c Tue Nov 19 21:06:39 2002 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,37 +0,0 @@ -/* - * $Id: compat.c,v 1.1 1998/02/16 10:35:50 mj Exp $ - * - * PCI Bus Services -- Function For Backward Compatibility - * - * Copyright 1998--2000 Martin Mares <mj@ucw.cz> - */ - -#include <linux/types.h> -#include <linux/kernel.h> -#include <linux/module.h> -#include <linux/pci.h> - -/* Obsolete functions, these will be going away... */ - -#define PCI_OP(rw,size,type) \ -int pcibios_##rw##_config_##size (unsigned char bus, unsigned char dev_fn, \ - unsigned char where, unsigned type val) \ -{ \ - struct pci_dev *dev = pci_find_slot(bus, dev_fn); \ - if (!dev) return PCIBIOS_DEVICE_NOT_FOUND; \ - return pci_##rw##_config_##size(dev, where, val); \ -} - -PCI_OP(read, byte, char *) -PCI_OP(read, word, short *) -PCI_OP(read, dword, int *) -PCI_OP(write, byte, char) -PCI_OP(write, word, short) -PCI_OP(write, dword, int) - -EXPORT_SYMBOL(pcibios_read_config_byte); -EXPORT_SYMBOL(pcibios_read_config_word); -EXPORT_SYMBOL(pcibios_read_config_dword); -EXPORT_SYMBOL(pcibios_write_config_byte); -EXPORT_SYMBOL(pcibios_write_config_word); -EXPORT_SYMBOL(pcibios_write_config_dword); diff -Nru a/include/linux/pci.h b/include/linux/pci.h --- a/include/linux/pci.h Tue Nov 19 21:06:39 2002 +++ b/include/linux/pci.h Tue Nov 19 21:06:39 2002 @@ -517,21 +517,6 @@ void pcibios_update_irq(struct pci_dev *, int irq); void pcibios_fixup_pbus_ranges(struct pci_bus *, struct pbus_set_ranges_data *); -/* Backward compatibility, don't use in new code! */ - -int pcibios_read_config_byte (unsigned char bus, unsigned char dev_fn, - unsigned char where, unsigned char *val); -int pcibios_read_config_word (unsigned char bus, unsigned char dev_fn, - unsigned char where, unsigned short *val); -int pcibios_read_config_dword (unsigned char bus, unsigned char dev_fn, - unsigned char where, unsigned int *val); -int pcibios_write_config_byte (unsigned char bus, unsigned char dev_fn, - unsigned char where, unsigned char val); -int pcibios_write_config_word (unsigned char bus, unsigned char dev_fn, - unsigned char where, unsigned short val); -int pcibios_write_config_dword (unsigned char bus, unsigned char dev_fn, - unsigned char where, unsigned int val); - /* Generic PCI functions used internally */ int pci_bus_exists(const struct list_head *list, int nr); @@ -668,8 +653,6 @@ static inline int pci_present(void) { return 0; } #define _PCI_NOP(o,s,t) \ - static inline int pcibios_##o##_config_##s (u8 bus, u8 dfn, u8 where, t val) \ - { return PCIBIOS_FUNC_NOT_SUPPORTED; } \ static inline int pci_##o##_config_##s (struct pci_dev *dev, int where, t val) \ { return PCIBIOS_FUNC_NOT_SUPPORTED; } #define _PCI_NOP_ALL(o,x) _PCI_NOP(o,byte,u8 x) \ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pcibios removal changes for 2.5.48 2002-11-20 5:18 ` Greg KH 2002-11-20 5:19 ` Greg KH @ 2002-11-20 10:16 ` Ivan Kokshaysky 2002-11-26 0:18 ` Greg KH 1 sibling, 1 reply; 6+ messages in thread From: Ivan Kokshaysky @ 2002-11-20 10:16 UTC (permalink / raw) To: Greg KH; +Cc: linux-kernel On Tue, Nov 19, 2002 at 09:18:20PM -0800, Greg KH wrote: > #ifdef CONFIG_CARDBUS > if (s->state & SOCKET_CARDBUS) { > u_int ptr; > - pcibios_read_config_dword(s->cap.cb_dev->subordinate->number, 0, 0x28, &ptr); > + struct pci_dev *dev = pci_find_slot (s->cap.cb_dev->subordinate->number, 0); > + if (!dev) > + return CS_BAD_HANDLE; > + pci_read_config_dword(dev, 0x28, &ptr); > tuple->CISOffset = ptr & ~7; > SPACE(tuple->Flags) = (ptr & 7); > } else pci_find_slot seems to be an overkill. Why not just - pcibios_read_config_dword(s->cap.cb_dev->subordinate->number, 0, 0x28, &ptr); + pci_bus_read_config_dword(s->cap.cb_dev->subordinate, 0, 0x28, &ptr); ? Ivan. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pcibios removal changes for 2.5.48 2002-11-20 10:16 ` Ivan Kokshaysky @ 2002-11-26 0:18 ` Greg KH 0 siblings, 0 replies; 6+ messages in thread From: Greg KH @ 2002-11-26 0:18 UTC (permalink / raw) To: Ivan Kokshaysky; +Cc: linux-kernel On Wed, Nov 20, 2002 at 01:16:29PM +0300, Ivan Kokshaysky wrote: > On Tue, Nov 19, 2002 at 09:18:20PM -0800, Greg KH wrote: > > #ifdef CONFIG_CARDBUS > > if (s->state & SOCKET_CARDBUS) { > > u_int ptr; > > - pcibios_read_config_dword(s->cap.cb_dev->subordinate->number, 0, 0x28, &ptr); > > + struct pci_dev *dev = pci_find_slot (s->cap.cb_dev->subordinate->number, 0); > > + if (!dev) > > + return CS_BAD_HANDLE; > > + pci_read_config_dword(dev, 0x28, &ptr); > > tuple->CISOffset = ptr & ~7; > > SPACE(tuple->Flags) = (ptr & 7); > > } else > > pci_find_slot seems to be an overkill. Why not just > - pcibios_read_config_dword(s->cap.cb_dev->subordinate->number, 0, 0x28, &ptr); > + pci_bus_read_config_dword(s->cap.cb_dev->subordinate, 0, 0x28, &ptr); Heh, didn't think of that one, I guess it would work too :) thanks, greg k-h ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2002-11-26 0:18 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2002-11-20 5:17 [BK PATCH] pcibios removal changes for 2.5.48 Greg KH 2002-11-20 5:17 ` [PATCH] " Greg KH 2002-11-20 5:18 ` Greg KH 2002-11-20 5:19 ` Greg KH 2002-11-20 10:16 ` Ivan Kokshaysky 2002-11-26 0:18 ` Greg KH
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox