Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1302 → Rev 1324

/uspace/trunk/pci/libpci/generic.c
3,7 → 3,7
*
* Copyright (c) 1997--2000 Martin Mares <mj@ucw.cz>
*
* Modified and ported to HelenOS by Jakub Jermar.
* May 8, 2006 - Modified and ported to HelenOS by Jakub Jermar.
*
* Can be freely distributed and used under the terms of the GNU GPL.
*/
106,49 → 106,31
}
if (cnt) {
for (i = 0; i < cnt; i++) {
u32 x =
pci_read_long(d,
PCI_BASE_ADDRESS_0 +
i * 4);
u32 x = pci_read_long(d, PCI_BASE_ADDRESS_0 + i * 4);
if (!x || x == (u32) ~ 0)
continue;
if ((x & PCI_BASE_ADDRESS_SPACE) ==
PCI_BASE_ADDRESS_SPACE_IO)
if ((x & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO)
d->base_addr[i] = x;
else {
if ((x &
PCI_BASE_ADDRESS_MEM_TYPE_MASK)
!=
PCI_BASE_ADDRESS_MEM_TYPE_64)
if ((x & PCI_BASE_ADDRESS_MEM_TYPE_MASK) != PCI_BASE_ADDRESS_MEM_TYPE_64)
d->base_addr[i] = x;
else if (i >= cnt - 1)
a->warning
("%04x:%02x:%02x.%d: Invalid 64-bit address seen for BAR %d.",
a->warning("%04x:%02x:%02x.%d: Invalid 64-bit address seen for BAR %d.",
d->domain, d->bus,
d->dev, d->func, i);
else {
u32 y =
pci_read_long(d,
PCI_BASE_ADDRESS_0
+
(++i) *
4);
u32 y = pci_read_long(d, PCI_BASE_ADDRESS_0 + (++i) * 4);
#ifdef PCI_HAVE_64BIT_ADDRESS
d->base_addr[i - 1] =
x | (((pciaddr_t) y) <<
32);
d->base_addr[i - 1] = x | (((pciaddr_t) y) << 32);
#else
if (y)
a->warning
("%04x:%02x:%02x.%d 64-bit device address ignored.",
a->warning("%04x:%02x:%02x.%d 64-bit device address ignored.",
d->domain,
d->bus,
d->dev,
d->func);
else
d->base_addr[i -
1] =
x;
d->base_addr[i - 1] = x;
#endif
}
}
215,12 → 197,10
 
int pci_generic_block_read(struct pci_dev *d, int pos, byte * buf, int len)
{
return pci_generic_block_op(d, pos, buf, len,
d->access->methods->read);
return pci_generic_block_op(d, pos, buf, len, d->access->methods->read);
}
 
int pci_generic_block_write(struct pci_dev *d, int pos, byte * buf, int len)
{
return pci_generic_block_op(d, pos, buf, len,
d->access->methods->write);
return pci_generic_block_op(d, pos, buf, len, d->access->methods->write);
}