mirror of
https://github.com/ipxe/ipxe
synced 2025-12-26 17:42:47 +03:00
[pci] Use single "busdevfn" field in struct pci_device
Merge the "bus" and "devfn" fields into a single "busdevfn" field, to match the format used by the majority of external code. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -66,7 +66,6 @@ static int undipci_probe ( struct pci_device *pci,
|
||||
const struct pci_device_id *id __unused ) {
|
||||
struct undi_device *undi;
|
||||
struct undi_rom *undirom;
|
||||
unsigned int busdevfn = PCI_BUSDEVFN ( pci->bus, pci->devfn );
|
||||
int rc;
|
||||
|
||||
/* Ignore non-network devices */
|
||||
@@ -80,7 +79,7 @@ static int undipci_probe ( struct pci_device *pci,
|
||||
pci_set_drvdata ( pci, undi );
|
||||
|
||||
/* Find/create our pixie */
|
||||
if ( preloaded_undi.pci_busdevfn == busdevfn ) {
|
||||
if ( preloaded_undi.pci_busdevfn == pci->busdevfn ) {
|
||||
/* Claim preloaded UNDI device */
|
||||
DBGC ( undi, "UNDI %p using preloaded UNDI device\n", undi );
|
||||
memcpy ( undi, &preloaded_undi, sizeof ( *undi ) );
|
||||
@@ -93,8 +92,10 @@ static int undipci_probe ( struct pci_device *pci,
|
||||
}
|
||||
|
||||
/* Call UNDI ROM loader to create pixie */
|
||||
if ( ( rc = undi_load_pci ( undi, undirom, busdevfn ) ) != 0 )
|
||||
if ( ( rc = undi_load_pci ( undi, undirom,
|
||||
pci->busdevfn ) ) != 0 ) {
|
||||
goto err_load_pci;
|
||||
}
|
||||
}
|
||||
|
||||
/* Add to device hierarchy */
|
||||
|
||||
@@ -73,7 +73,7 @@ int pcibios_read ( struct pci_device *pci, uint32_t command, uint32_t *value ){
|
||||
: "=a" ( status ), "=b" ( discard_b ),
|
||||
"=c" ( *value ), "=D" ( discard_D )
|
||||
: "a" ( command >> 16 ), "D" ( command ),
|
||||
"b" ( PCI_BUSDEVFN ( pci->bus, pci->devfn ) )
|
||||
"b" ( pci->busdevfn )
|
||||
: "edx" );
|
||||
|
||||
return ( ( status >> 8 ) & 0xff );
|
||||
@@ -99,8 +99,7 @@ int pcibios_write ( struct pci_device *pci, uint32_t command, uint32_t value ){
|
||||
: "=a" ( status ), "=b" ( discard_b ),
|
||||
"=c" ( discard_c ), "=D" ( discard_D )
|
||||
: "a" ( command >> 16 ), "D" ( command ),
|
||||
"b" ( PCI_BUSDEVFN ( pci->bus, pci->devfn ) ),
|
||||
"c" ( value )
|
||||
"b" ( pci->busdevfn ), "c" ( value )
|
||||
: "edx" );
|
||||
|
||||
return ( ( status >> 8 ) & 0xff );
|
||||
|
||||
@@ -34,8 +34,8 @@ FILE_LICENCE ( GPL2_OR_LATER );
|
||||
* @v where Location within PCI configuration space
|
||||
*/
|
||||
void pcidirect_prepare ( struct pci_device *pci, int where ) {
|
||||
outl ( ( 0x80000000 | ( pci->bus << 16 ) | ( pci->devfn << 8 ) |
|
||||
( where & ~3 ) ), PCIDIRECT_CONFIG_ADDRESS );
|
||||
outl ( ( 0x80000000 | ( pci->busdevfn << 8 ) | ( where & ~3 ) ),
|
||||
PCIDIRECT_CONFIG_ADDRESS );
|
||||
}
|
||||
|
||||
PROVIDE_PCIAPI_INLINE ( direct, pci_max_bus );
|
||||
|
||||
Reference in New Issue
Block a user