diff options
Diffstat (limited to 'flash_rom.c')
-rw-r--r-- | flash_rom.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/flash_rom.c b/flash_rom.c index d80db6c1..59d81974 100644 --- a/flash_rom.c +++ b/flash_rom.c @@ -188,6 +188,29 @@ enable_flash_cs5530(struct pci_dev *dev, char *name) { return 0; } +int +enable_flash_sis5595(struct pci_dev *dev, char *name) { + unsigned char new, newer; + + new = pci_read_byte(dev, 0x45); + + /* clear bit 5 */ + new &= (~ 0x20); + /* set bit 2 */ + new |= 0x4; + + pci_write_byte(dev, 0x45, new); + + newer = pci_read_byte(dev, 0x45); + if (newer != new) { + printf("tried to set register 0x%x to 0x%x on %s failed (WARNING ONLY)\n", + 0x45, new, name); + printf("Stuck at 0x%x\n", newer); + return -1; + } + return 0; +} + struct flashchip * probe_flash(struct flashchip * flash) { int fd_mem; @@ -303,6 +326,7 @@ FLASH_ENABLE enables[] = { {0x8086, 0x2480, "E7500", enable_flash_e7500}, {0x1106, 0x8231, "VT8231", enable_flash_vt8231}, {0x1078, 0x0100, "CS5530", enable_flash_cs5530}, + {0x1039, 0x8, "SIS5595", enable_flash_sis5595}, }; int |