Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/amdpm/amdpm.c
Show First 20 Lines • Show All 61 Lines • ▼ Show 20 Lines | |||||
#endif | #endif | ||||
#define AMDPM_VENDORID_AMD 0x1022 | #define AMDPM_VENDORID_AMD 0x1022 | ||||
#define AMDPM_DEVICEID_AMD756PM 0x740b | #define AMDPM_DEVICEID_AMD756PM 0x740b | ||||
#define AMDPM_DEVICEID_AMD766PM 0x7413 | #define AMDPM_DEVICEID_AMD766PM 0x7413 | ||||
#define AMDPM_DEVICEID_AMD768PM 0x7443 | #define AMDPM_DEVICEID_AMD768PM 0x7443 | ||||
#define AMDPM_DEVICEID_AMD8111PM 0x746B | #define AMDPM_DEVICEID_AMD8111PM 0x746B | ||||
#define AMDPM_VENDORID_HYGON 0x1d94 | |||||
/* nVidia nForce chipset */ | /* nVidia nForce chipset */ | ||||
#define AMDPM_VENDORID_NVIDIA 0x10de | #define AMDPM_VENDORID_NVIDIA 0x10de | ||||
#define AMDPM_DEVICEID_NF_SMB 0x01b4 | #define AMDPM_DEVICEID_NF_SMB 0x01b4 | ||||
/* PCI Configuration space registers */ | /* PCI Configuration space registers */ | ||||
#define AMDPCI_PMBASE 0x58 | #define AMDPCI_PMBASE 0x58 | ||||
#define NFPCI_PMBASE 0x14 | #define NFPCI_PMBASE 0x14 | ||||
▲ Show 20 Lines • Show All 116 Lines • ▼ Show 20 Lines | amdpm_attach(device_t dev) | ||||
struct amdpm_softc *amdpm_sc = device_get_softc(dev); | struct amdpm_softc *amdpm_sc = device_get_softc(dev); | ||||
u_char val_b; | u_char val_b; | ||||
/* Enable I/O block access */ | /* Enable I/O block access */ | ||||
val_b = pci_read_config(dev, AMDPCI_GEN_CONFIG_PM, 1); | val_b = pci_read_config(dev, AMDPCI_GEN_CONFIG_PM, 1); | ||||
pci_write_config(dev, AMDPCI_GEN_CONFIG_PM, val_b | AMDPCI_PMIOEN, 1); | pci_write_config(dev, AMDPCI_GEN_CONFIG_PM, val_b | AMDPCI_PMIOEN, 1); | ||||
/* Allocate I/O space */ | /* Allocate I/O space */ | ||||
if (pci_get_vendor(dev) == AMDPM_VENDORID_AMD) | if (pci_get_vendor(dev) == AMDPM_VENDORID_AMD || | ||||
pci_get_vendor(dev) == AMDPM_VENDORID_HYGON) | |||||
amdpm_sc->rid = AMDPCI_PMBASE; | amdpm_sc->rid = AMDPCI_PMBASE; | ||||
else | else | ||||
amdpm_sc->rid = NFPCI_PMBASE; | amdpm_sc->rid = NFPCI_PMBASE; | ||||
amdpm_sc->res = bus_alloc_resource_any(dev, SYS_RES_IOPORT, | amdpm_sc->res = bus_alloc_resource_any(dev, SYS_RES_IOPORT, | ||||
&amdpm_sc->rid, RF_ACTIVE); | &amdpm_sc->rid, RF_ACTIVE); | ||||
if (amdpm_sc->res == NULL) { | if (amdpm_sc->res == NULL) { | ||||
device_printf(dev, "could not map i/o space\n"); | device_printf(dev, "could not map i/o space\n"); | ||||
▲ Show 20 Lines • Show All 458 Lines • Show Last 20 Lines |