[POWERPC] EEH: enable MMIO/DMA on frozen slot
Add wrapper around the rtas call to enable MMIO or DMA on a frozen pci slot. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
cb5b562444
commit
47b5c838af
2 changed files with 40 additions and 0 deletions
|
@ -481,6 +481,35 @@ eeh_slot_availability(struct pci_dn *pdn)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rtas_pci_enable - enable MMIO or DMA transfers for this slot
|
||||||
|
* @pdn pci device node
|
||||||
|
*/
|
||||||
|
|
||||||
|
int
|
||||||
|
rtas_pci_enable(struct pci_dn *pdn, int function)
|
||||||
|
{
|
||||||
|
int config_addr;
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
/* Use PE configuration address, if present */
|
||||||
|
config_addr = pdn->eeh_config_addr;
|
||||||
|
if (pdn->eeh_pe_config_addr)
|
||||||
|
config_addr = pdn->eeh_pe_config_addr;
|
||||||
|
|
||||||
|
rc = rtas_call(ibm_set_eeh_option, 4, 1, NULL,
|
||||||
|
config_addr,
|
||||||
|
BUID_HI(pdn->phb->buid),
|
||||||
|
BUID_LO(pdn->phb->buid),
|
||||||
|
function);
|
||||||
|
|
||||||
|
if (rc)
|
||||||
|
printk(KERN_WARNING "EEH: Cannot enable function %d, err=%d dn=%s\n",
|
||||||
|
function, rc, pdn->node->full_name);
|
||||||
|
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rtas_pci_slot_reset - raises/lowers the pci #RST line
|
* rtas_pci_slot_reset - raises/lowers the pci #RST line
|
||||||
* @pdn pci device node
|
* @pdn pci device node
|
||||||
|
|
|
@ -68,6 +68,17 @@ struct pci_dev *pci_get_device_by_addr(unsigned long addr);
|
||||||
*/
|
*/
|
||||||
void eeh_slot_error_detail (struct pci_dn *pdn, int severity);
|
void eeh_slot_error_detail (struct pci_dn *pdn, int severity);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rtas_pci_enableo - enable IO transfers for this slot
|
||||||
|
* @pdn: pci device node
|
||||||
|
* @function: either EEH_THAW_MMIO or EEH_THAW_DMA
|
||||||
|
*
|
||||||
|
* Enable I/O transfers to this slot
|
||||||
|
*/
|
||||||
|
#define EEH_THAW_MMIO 2
|
||||||
|
#define EEH_THAW_DMA 3
|
||||||
|
int rtas_pci_enable(struct pci_dn *pdn, int function);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rtas_set_slot_reset -- unfreeze a frozen slot
|
* rtas_set_slot_reset -- unfreeze a frozen slot
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue