From: Greg KH <greg@kroah.com>
To: Greg Ungerer <gerg@snapgear.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: pcibios functions left in m68knommu port
Date: Thu, 19 Dec 2002 09:42:36 -0800 [thread overview]
Message-ID: <20021219174236.GE6380@kroah.com> (raw)
In-Reply-To: <3DFFC5EA.6010201@snapgear.com>
On Wed, Dec 18, 2002 at 10:48:42AM +1000, Greg Ungerer wrote:
> Greg KH wrote:
> >I just noticed the arch/m68knommu/kernel/comempci.c file, which contains
> >a lot of pcibios functions that are now removed from the rest of the
> >kernel. Are these present for any specific reason, or would you be
> >willing to take a patch removing them?
>
> Happy to take a patch.
> Most of that baggage has been carried through since that support
> was first coded (circa linux-2.0.38).
Great, here's a patch against 2.5.52 that removes the unneeded
functions. I think you might be able to remove a few of the static
variables in this file now too, but I don't want to break anything, as I
don't have a machine to test this on.
Hm, I think I have a uCsimm around here somewhere...
thanks,
greg k-h
# removed unused pcibios functions from the m68knommu code.
diff -Nru a/arch/m68knommu/kernel/comempci.c b/arch/m68knommu/kernel/comempci.c
--- a/arch/m68knommu/kernel/comempci.c Thu Dec 19 09:43:11 2002
+++ b/arch/m68knommu/kernel/comempci.c Thu Dec 19 09:43:11 2002
@@ -338,254 +338,6 @@
/*****************************************************************************/
-int pcibios_present(void)
-{
- return(pci_bus_is_present);
-}
-
-/*****************************************************************************/
-
-int pcibios_read_config_dword(unsigned char bus, unsigned char dev,
- unsigned char offset, unsigned int *val)
-{
- volatile unsigned long *rp;
- unsigned long idsel, fnsel;
-
-#ifdef DEBUGPCI
- printk("pcibios_read_config_dword(bus=%x,dev=%x,offset=%x,val=%x)\n",
- bus, dev, offset, val);
-#endif
-
- if (bus || ((pci_slotmask & (0x1 << PCI_SLOT(dev))) == 0)) {
- *val = 0xffffffff;
- return(PCIBIOS_SUCCESSFUL);
- }
-
- rp = (volatile unsigned long *) COMEM_BASE;
- idsel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << ((dev >> 3) + 16));
- fnsel = (dev & 0x7) << 8;
-
- rp[LREG(COMEM_DAHBASE)] = idsel;
- *val = rp[LREG(COMEM_PCIBUS + (offset & 0xfc) + fnsel)];
-
-#if 1
- /* If we get back what we wrote, then nothing there */
- /* This is pretty dodgy, but, hey, what else do we do?? */
- if (!offset && (*val == ((idsel & 0xfffff000) | (offset & 0x00000fff))))
- *val = 0xffffffff;
-#endif
-
- return(PCIBIOS_SUCCESSFUL);
-}
-
-/*****************************************************************************/
-
-int pcibios_read_config_word(unsigned char bus, unsigned char dev,
- unsigned char offset, unsigned short *val)
-{
- volatile unsigned long *rp;
- volatile unsigned short *bp;
- unsigned long idsel, fnsel;
- unsigned char swapoffset;
-
-#ifdef DEBUGPCI
- printk("pcibios_read_config_word(bus=%x,dev=%x,offset=%x)\n",
- bus, dev, offset);
-#endif
-
- if (bus || ((pci_slotmask & (0x1 << PCI_SLOT(dev))) == 0)) {
- *val = 0xffff;
- return(PCIBIOS_SUCCESSFUL);
- }
-
- rp = (volatile unsigned long *) COMEM_BASE;
- bp = (volatile unsigned short *) COMEM_BASE;
- idsel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << ((dev >> 3) + 16));
- fnsel = (dev & 0x7) << 8;
- swapoffset = (offset & 0xfc) + (~offset & 0x02);
-
- rp[LREG(COMEM_DAHBASE)] = idsel;
- *val = bp[WREG(COMEM_PCIBUS + swapoffset + fnsel)];
-
- return(PCIBIOS_SUCCESSFUL);
-}
-
-/*****************************************************************************/
-
-int pcibios_read_config_byte(unsigned char bus, unsigned char dev,
- unsigned char offset, unsigned char *val)
-{
- volatile unsigned long *rp;
- volatile unsigned char *bp;
- unsigned long idsel, fnsel;
- unsigned char swapoffset;
-
-#ifdef DEBUGPCI
- printk("pcibios_read_config_byte(bus=%x,dev=%x,offset=%x)\n",
- bus, dev, offset);
-#endif
-
- if (bus || ((pci_slotmask & (0x1 << PCI_SLOT(dev))) == 0)) {
- *val = 0xff;
- return(PCIBIOS_SUCCESSFUL);
- }
-
- rp = (volatile unsigned long *) COMEM_BASE;
- bp = (volatile unsigned char *) COMEM_BASE;
- idsel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << ((dev >> 3) + 16));
- fnsel = (dev & 0x7) << 8;
- swapoffset = (offset & 0xfc) + (~offset & 0x03);
-
- rp[LREG(COMEM_DAHBASE)] = idsel;
- *val = bp[(COMEM_PCIBUS + swapoffset + fnsel)];
-
- return(PCIBIOS_SUCCESSFUL);
-}
-
-/*****************************************************************************/
-
-int pcibios_write_config_dword(unsigned char bus, unsigned char dev,
- unsigned char offset, unsigned int val)
-{
- volatile unsigned long *rp;
- unsigned long idsel, fnsel;
-
-#ifdef DEBUGPCI
- printk("pcibios_write_config_dword(bus=%x,dev=%x,offset=%x,val=%x)\n",
- bus, dev, offset, val);
-#endif
-
- if (bus || ((pci_slotmask & (0x1 << PCI_SLOT(dev))) == 0))
- return(PCIBIOS_SUCCESSFUL);
-
- rp = (volatile unsigned long *) COMEM_BASE;
- idsel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << ((dev >> 3) + 16));
- fnsel = (dev & 0x7) << 8;
-
- rp[LREG(COMEM_DAHBASE)] = idsel;
- rp[LREG(COMEM_PCIBUS + (offset & 0xfc) + fnsel)] = val;
- return(PCIBIOS_SUCCESSFUL);
-}
-
-/*****************************************************************************/
-
-int pcibios_write_config_word(unsigned char bus, unsigned char dev,
- unsigned char offset, unsigned short val)
-{
-
- volatile unsigned long *rp;
- volatile unsigned short *bp;
- unsigned long idsel, fnsel;
- unsigned char swapoffset;
-
-#ifdef DEBUGPCI
- printk("pcibios_write_config_word(bus=%x,dev=%x,offset=%x,val=%x)\n",
- bus, dev, offset, val);
-#endif
-
- if (bus || ((pci_slotmask & (0x1 << PCI_SLOT(dev))) == 0))
- return(PCIBIOS_SUCCESSFUL);
-
- rp = (volatile unsigned long *) COMEM_BASE;
- bp = (volatile unsigned short *) COMEM_BASE;
- idsel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << ((dev >> 3) + 16));
- fnsel = (dev & 0x7) << 8;
- swapoffset = (offset & 0xfc) + (~offset & 0x02);
-
- rp[LREG(COMEM_DAHBASE)] = idsel;
- bp[WREG(COMEM_PCIBUS + swapoffset + fnsel)] = val;
- return(PCIBIOS_SUCCESSFUL);
-}
-
-/*****************************************************************************/
-
-int pcibios_write_config_byte(unsigned char bus, unsigned char dev,
- unsigned char offset, unsigned char val)
-{
- volatile unsigned long *rp;
- volatile unsigned char *bp;
- unsigned long idsel, fnsel;
- unsigned char swapoffset;
-
-#ifdef DEBUGPCI
- printk("pcibios_write_config_byte(bus=%x,dev=%x,offset=%x,val=%x)\n",
- bus, dev, offset, val);
-#endif
-
- if (bus || ((pci_slotmask & (0x1 << PCI_SLOT(dev))) == 0))
- return(PCIBIOS_SUCCESSFUL);
-
- rp = (volatile unsigned long *) COMEM_BASE;
- bp = (volatile unsigned char *) COMEM_BASE;
- idsel = COMEM_DA_CFGRD | COMEM_DA_ADDR(0x1 << ((dev >> 3) + 16));
- fnsel = (dev & 0x7) << 8;
- swapoffset = (offset & 0xfc) + (~offset & 0x03);
-
- rp[LREG(COMEM_DAHBASE)] = idsel;
- bp[(COMEM_PCIBUS + swapoffset + fnsel)] = val;
- return(PCIBIOS_SUCCESSFUL);
-}
-
-/*****************************************************************************/
-
-int pcibios_find_device(unsigned short vendor, unsigned short devid,
- unsigned short index, unsigned char *bus, unsigned char *dev)
-{
- unsigned int vendev, val;
- unsigned char devnr;
-
-#ifdef DEBUGPCI
- printk("pcibios_find_device(vendor=%04x,devid=%04x,index=%d)\n",
- vendor, devid, index);
-#endif
-
- if (vendor == 0xffff)
- return(PCIBIOS_BAD_VENDOR_ID);
-
- vendev = (devid << 16) | vendor;
- for (devnr = 0; (devnr < 32); devnr++) {
- pcibios_read_config_dword(0, devnr, PCI_VENDOR_ID, &val);
- if (vendev == val) {
- if (index-- == 0) {
- *bus = 0;
- *dev = devnr;
- return(PCIBIOS_SUCCESSFUL);
- }
- }
- }
-
- return(PCIBIOS_DEVICE_NOT_FOUND);
-}
-
-/*****************************************************************************/
-
-int pcibios_find_class(unsigned int class, unsigned short index,
- unsigned char *bus, unsigned char *dev)
-{
- unsigned int val;
- unsigned char devnr;
-
-#ifdef DEBUGPCI
- printk("pcibios_find_class(class=%04x,index=%d)\n", class, index);
-#endif
-
- /* FIXME: this ignores multi-function devices... */
- for (devnr = 0; (devnr < 128); devnr += 8) {
- pcibios_read_config_dword(0, devnr, PCI_CLASS_REVISION, &val);
- if ((val >> 8) == class) {
- if (index-- == 0) {
- *bus = 0;
- *dev = devnr;
- return(PCIBIOS_SUCCESSFUL);
- }
- }
- }
-
- return(PCIBIOS_DEVICE_NOT_FOUND);
-}
-
-/*****************************************************************************/
-
/*
* Local routines to interrcept the standard I/O and vector handling
* code. Don't include this 'till now - initialization code above needs
next prev parent reply other threads:[~2002-12-19 17:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-17 17:21 Greg KH
2002-12-18 0:48 ` Greg Ungerer
2002-12-19 17:42 ` Greg KH [this message]
2002-12-20 6:02 ` Greg Ungerer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20021219174236.GE6380@kroah.com \
--to=greg@kroah.com \
--cc=gerg@snapgear.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome