mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-10 17:36:11 +00:00
reg_access: Forcewake as necessary
Don't try to be smart. Just poke all forcewake bits if it seems we need it. Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
This commit is contained in:
parent
67ed990604
commit
a59b0ee5d4
@ -12,6 +12,7 @@ extern int intel_register_access_init(struct pci_device *pci_dev, int safe);
|
||||
extern uint32_t intel_register_read(uint32_t reg);
|
||||
extern uint32_t intel_register_write(uint32_t reg, uint32_t val);
|
||||
extern void intel_register_access_fini();
|
||||
extern int intel_register_access_needs_wake();
|
||||
extern unsigned short pcidev_to_devid(struct pci_device *pci_dev);
|
||||
%}
|
||||
|
||||
@ -23,4 +24,5 @@ extern int intel_register_access_init(struct pci_device *pci_dev, int safe);
|
||||
extern uint32_t intel_register_read(uint32_t reg);
|
||||
extern uint32_t intel_register_write(uint32_t reg, uint32_t val);
|
||||
extern void intel_register_access_fini();
|
||||
extern int intel_register_access_needs_wake();
|
||||
extern unsigned short pcidev_to_devid(struct pci_device *pci_dev);
|
||||
|
@ -9,12 +9,35 @@ def read(reg):
|
||||
def write(reg, val):
|
||||
chipset.intel_register_write(reg, val)
|
||||
|
||||
def gen6_forcewake_get():
|
||||
write(0xa18c, 0x1)
|
||||
read("0xa180")
|
||||
|
||||
def mt_forcewake_get():
|
||||
write(0xa188, 0x10001)
|
||||
read("0xa180")
|
||||
|
||||
def vlv_forcewake_get():
|
||||
write(0x1300b0, 0x10001)
|
||||
read("0x1300b4")
|
||||
|
||||
# don't be clever, just try all possibilities
|
||||
def get_wake():
|
||||
gen6_forcewake_get()
|
||||
mt_forcewake_get()
|
||||
vlv_forcewake_get()
|
||||
|
||||
def init():
|
||||
pci_dev = chipset.intel_get_pci_device()
|
||||
ret = chipset.intel_register_access_init(pci_dev, 0)
|
||||
if ret != 0:
|
||||
print("Register access init failed");
|
||||
return False
|
||||
|
||||
if chipset.intel_register_access_needs_wake():
|
||||
print("Forcing forcewake. Don't expect your system to work after this.")
|
||||
get_wake()
|
||||
|
||||
return True
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
Loading…
x
Reference in New Issue
Block a user