git.ucc.asn.au
/
tpg
/
acess2.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8380f2b
)
Slight changes to PCI driver to clean up code
author
John Hodge
<
[email protected]
>
Sat, 19 Jun 2010 02:55:35 +0000
(10:55 +0800)
committer
John Hodge
<
[email protected]
>
Sat, 19 Jun 2010 02:55:35 +0000
(10:55 +0800)
Kernel/drv/pci.c
patch
|
blob
|
history
diff --git
a/Kernel/drv/pci.c
b/Kernel/drv/pci.c
index
b6421e0
..
7ebab74
100644
(file)
--- a/
Kernel/drv/pci.c
+++ b/
Kernel/drv/pci.c
@@
-141,6
+141,7
@@
int PCI_ScanBus(int BusID)
{
\r
for( fcn = 0; fcn < 8; fcn++ ) // Max 8 functions per device
\r
{
\r
{
\r
for( fcn = 0; fcn < 8; fcn++ ) // Max 8 functions per device
\r
{
\r
+ Debug("%i:%i:%i", BusID, dev, fcn);
\r
// Check if the device/function exists
\r
if(!PCI_EnumDevice(BusID, dev, fcn, &devInfo))
\r
continue;
\r
// Check if the device/function exists
\r
if(!PCI_EnumDevice(BusID, dev, fcn, &devInfo))
\r
continue;
\r
@@
-478,7
+479,7
@@
int PCI_EnumDevice(Uint16 bus, Uint16 slot, Uint16 fcn, tPCIDevice *info)
addr = 0x80000000 | ((Uint)bus<<16) | ((Uint)slot<<11) | ((Uint)fcn<<8);
\r
for(i=0;i<256/4;i++)
\r
{
\r
addr = 0x80000000 | ((Uint)bus<<16) | ((Uint)slot<<11) | ((Uint)fcn<<8);
\r
for(i=0;i<256/4;i++)
\r
{
\r
- #if
1
\r
+ #if
0
\r
outd(0xCF8, addr);
\r
info->ConfigCache[i] = ind(0xCFC);
\r
addr += 4;
\r
outd(0xCF8, addr);
\r
info->ConfigCache[i] = ind(0xCFC);
\r
addr += 4;
\r
@@
-526,10
+527,10
@@
Uint32 PCI_CfgReadDWord(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset)
offset &= 0xFF; // 8 Bits
\r
\r
address = 0x80000000 | ((Uint)bus<<16) | ((Uint)dev<<11) | ((Uint)func<<8) | (offset&0xFC);
\r
offset &= 0xFF; // 8 Bits
\r
\r
address = 0x80000000 | ((Uint)bus<<16) | ((Uint)dev<<11) | ((Uint)func<<8) | (offset&0xFC);
\r
- Debug("PCI_CfgReadDWord: address = %x", address);
\r
outd(0xCF8, address);
\r
\r
data = ind(0xCFC);
\r
outd(0xCF8, address);
\r
\r
data = ind(0xCFC);
\r
+ //Debug("PCI(0x%x) = 0x%08x", address, data);
\r
return data;
\r
}
\r
void PCI_CfgWriteDWord(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset, Uint32 data)
\r
return data;
\r
}
\r
void PCI_CfgWriteDWord(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset, Uint32 data)
\r
@@
-547,38
+548,17
@@
void PCI_CfgWriteDWord(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset, Uint3
}
\r
Uint16 PCI_CfgReadWord(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset)
\r
{
\r
}
\r
Uint16 PCI_CfgReadWord(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset)
\r
{
\r
- Uint32 data;
\r
+ Uint32 data
= PCI_CfgReadDWord(bus, dev, func, offset)
;
\r
\r
\r
- bus &= 0xFF; // 8 Bits
\r
- dev &= 0x1F; // 5 Bits
\r
- func &= 0x7; // 3 Bits
\r
- offset &= 0xFF; // 8 Bits
\r
+ data >>= (offset&2)*8; // Allow Access to Upper Word
\r
\r
\r
- //LogF("PCI_CfgReadWord: (bus=0x%x,dev=0x%x,func=%x,offset=0x%x)\n", bus, dev, func, offset);
\r
-
\r
- outd(0xCF8,
\r
- 0x80000000 | ((Uint)bus<<16) | ((Uint)dev<<11) | ((Uint)func<<8) | (offset&0xFC) );
\r
-
\r
- data = ind(0xCFC);
\r
- data >>= (offset&2)*8; //Allow Access to Upper Word
\r
- //LogF("PCI_CfgReadWord: RETURN 0x%x\n", data&0xFFFF);
\r
return (Uint16)data;
\r
}
\r
\r
Uint8 PCI_CfgReadByte(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset)
\r
{
\r
return (Uint16)data;
\r
}
\r
\r
Uint8 PCI_CfgReadByte(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset)
\r
{
\r
- Uint32 address;
\r
- Uint32 data;
\r
-
\r
- bus &= 0xFF; // 8 Bits
\r
- dev &= 0x1F; // 4 Bits
\r
- func &= 0x7; // 3 Bits
\r
- offset &= 0xFF; // 8 Bits
\r
+ Uint32 data = PCI_CfgReadDWord(bus, dev, func, offset);
\r
\r
\r
- address = 0x80000000 | ((Uint)bus<<16) | ((Uint)dev<<11) | ((Uint)func<<8) | (offset&0xFC);
\r
- outd(0xCF8, address);
\r
-
\r
- data = ind(0xCFC);
\r
data >>= (offset&3)*8; //Allow Access to Upper Word
\r
return (Uint8)data;
\r
}
\r
data >>= (offset&3)*8; //Allow Access to Upper Word
\r
return (Uint8)data;
\r
}
\r
UCC
git Repository :: git.ucc.asn.au