Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pci_restore_config_regs(9f) [sunos man page]

pci_save_config_regs(9F)				   Kernel Functions for Drivers 				  pci_save_config_regs(9F)

NAME
pci_save_config_regs, pci_restore_config_regs - save and restore the PCI configuration registers SYNOPSIS
#include <sys/ddi.h> #include <sys/sunddi.h> int pci_save_config_regs(dev_info_t *dip); int pci_restore_config_regs(dev_info_t *dip); INTERFACE LEVEL
Solaris DDI-specific (Solaris DDI). ARGUMENTS
dip Pointer to the device's dev_info structure. DESCRIPTION
pci_save_config_regs() saves the current configuration registers on persistent system memory. pci_restore_config_regs() restores configura- tion registers previously saved by pci_save_config_regs(). pci_save_config_regs() should be called by the driver's power() entry point before powering a device off (to PCI state D3). Likewise, pci_restore_config_regs() should be called after powering a device on (from PCI state D3), but before accessing the device. See power(9E). RETURN VALUES
pci_save_config_regs() and pci_restore_config_regs() return: DDI_SUCCESS Operation completed successfully. DDI_FAILURE Operation failed to complete successfully. CONTEXT
Both these functions can be called from user or kernel context. EXAMPLES
Example 1: Invoking the save and restore functions static int xx_power(dev_info_t *dip, int component, int level) { struct xx *xx; int rval = DDI_SUCCESS; xx = ddi_get_soft_state(xx_softstate, ddi_get_instance(dip)); if (xx == NULL) { return (DDI_FAILURE); } mutex_enter(&xx->x_mutex); switch (level) { case PM_LEVEL_D0: XX_POWER_ON(xx); if (pci_restore_config_regs(dip) == DDI_FAILURE) { /* * appropriate error path handling here */ ... rval = DDI_FAILURE; } break; case PM_LEVEL_D3: if (pci_save_config_regs(dip) == DDI_FAILURE) { /* * appropriate error path handling here */ ... rval = DDI_FAILURE; } else { XX_POWER_OFF(xx); } break; default: rval = DDI_FAILURE; break; } mutex_exit(&xx->x_mutex); return (rval); } ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ SEE ALSO
attributes(5), power(9E) Writing Device Drivers PCI Bus Power Management Interface Specification Version 1.1 PCI Bus Specification Revision 2.1 SunOS 5.10 02 June 2000 pci_save_config_regs(9F)

Check Out this Related Man Page

pci_save_config_regs(9F)				   Kernel Functions for Drivers 				  pci_save_config_regs(9F)

NAME
pci_save_config_regs, pci_restore_config_regs - save and restore the PCI configuration registers SYNOPSIS
#include <sys/ddi.h> #include <sys/sunddi.h> int pci_save_config_regs(dev_info_t *dip); int pci_restore_config_regs(dev_info_t *dip); INTERFACE LEVEL
Solaris DDI-specific (Solaris DDI). ARGUMENTS
dip Pointer to the device's dev_info structure. DESCRIPTION
pci_save_config_regs() saves the current configuration registers on persistent system memory. pci_restore_config_regs() restores configura- tion registers previously saved by pci_save_config_regs(). pci_save_config_regs() should be called by the driver's power() entry point before powering a device off (to PCI state D3). Likewise, pci_restore_config_regs() should be called after powering a device on (from PCI state D3), but before accessing the device. See power(9E). RETURN VALUES
pci_save_config_regs() and pci_restore_config_regs() return: DDI_SUCCESS Operation completed successfully. DDI_FAILURE Operation failed to complete successfully. CONTEXT
Both these functions can be called from user or kernel context. EXAMPLES
Example 1 Invoking the save and restore functions static int xx_power(dev_info_t *dip, int component, int level) { struct xx *xx; int rval = DDI_SUCCESS; xx = ddi_get_soft_state(xx_softstate, ddi_get_instance(dip)); if (xx == NULL) { return (DDI_FAILURE); } mutex_enter(&xx->x_mutex); switch (level) { case PM_LEVEL_D0: XX_POWER_ON(xx); if (pci_restore_config_regs(dip) == DDI_FAILURE) { /* * appropriate error path handling here */ ... rval = DDI_FAILURE; } break; case PM_LEVEL_D3: if (pci_save_config_regs(dip) == DDI_FAILURE) { /* * appropriate error path handling here */ ... rval = DDI_FAILURE; } else { XX_POWER_OFF(xx); } break; default: rval = DDI_FAILURE; break; } mutex_exit(&xx->x_mutex); return (rval); } ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Committed | +-----------------------------+-----------------------------+ SEE ALSO
attributes(5), power(9E) Writing Device Drivers PCI Bus Power Management Interface Specification Version 1.1 PCI Bus Specification Revision 2.1 SunOS 5.11 02 June 2000 pci_save_config_regs(9F)
Man Page