mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-02 20:29:20 +00:00
[POWERPC] Add a helper for calculating RTAS "config_addr" parameters
Several RTAS calls take a "config_addr" parameter, which is a particular way of specifying a PCI busno, devfn and register number into a 32-bit word. Currently these are open-coded, and I'll be adding another soon, replace them with a helper that encapsulates the logic. Be more strict about masking the busno too, just in case. Booted on P5 LPAR. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
a0a428e300
commit
6f3d5d3cc4
2 changed files with 18 additions and 4 deletions
|
@ -81,8 +81,7 @@ int rtas_read_config(struct pci_dn *pdn, int where, int size, u32 *val)
|
|||
if (!config_access_valid(pdn, where))
|
||||
return PCIBIOS_BAD_REGISTER_NUMBER;
|
||||
|
||||
addr = ((where & 0xf00) << 20) | (pdn->busno << 16) |
|
||||
(pdn->devfn << 8) | (where & 0xff);
|
||||
addr = rtas_config_addr(pdn->busno, pdn->devfn, where);
|
||||
buid = pdn->phb->buid;
|
||||
if (buid) {
|
||||
ret = rtas_call(ibm_read_pci_config, 4, 2, &returnval,
|
||||
|
@ -134,8 +133,7 @@ int rtas_write_config(struct pci_dn *pdn, int where, int size, u32 val)
|
|||
if (!config_access_valid(pdn, where))
|
||||
return PCIBIOS_BAD_REGISTER_NUMBER;
|
||||
|
||||
addr = ((where & 0xf00) << 20) | (pdn->busno << 16) |
|
||||
(pdn->devfn << 8) | (where & 0xff);
|
||||
addr = rtas_config_addr(pdn->busno, pdn->devfn, where);
|
||||
buid = pdn->phb->buid;
|
||||
if (buid) {
|
||||
ret = rtas_call(ibm_write_pci_config, 5, 1, NULL, addr,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue