-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 667 b: refs/heads/master c: a2f7c35 h: refs/heads/master i: 665: a199110 663: fd970bd v: v3
- Loading branch information
Jaya Kumar
authored and
Linus Torvalds
committed
May 1, 2005
1 parent
8dee98d
commit 1c7b2d1
Showing
6 changed files
with
88 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 67701ae9767534534d3710664037dfde2cc04935 | ||
refs/heads/master: a2f7c354159b87dfbd9900f597d48d18755a9d16 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
/* | ||
* linux/arch/i386/kernel/reboot_fixups.c | ||
* | ||
* This is a good place to put board specific reboot fixups. | ||
* | ||
* List of supported fixups: | ||
* geode-gx1/cs5530a - Jaya Kumar <jayalk@intworks.biz> | ||
* | ||
*/ | ||
|
||
#include <asm/delay.h> | ||
#include <linux/pci.h> | ||
|
||
static void cs5530a_warm_reset(struct pci_dev *dev) | ||
{ | ||
/* writing 1 to the reset control register, 0x44 causes the | ||
cs5530a to perform a system warm reset */ | ||
pci_write_config_byte(dev, 0x44, 0x1); | ||
udelay(50); /* shouldn't get here but be safe and spin-a-while */ | ||
return; | ||
} | ||
|
||
struct device_fixup { | ||
unsigned int vendor; | ||
unsigned int device; | ||
void (*reboot_fixup)(struct pci_dev *); | ||
}; | ||
|
||
static struct device_fixup fixups_table[] = { | ||
{ PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_5530_LEGACY, cs5530a_warm_reset }, | ||
}; | ||
|
||
/* | ||
* we see if any fixup is available for our current hardware. if there | ||
* is a fixup, we call it and we expect to never return from it. if we | ||
* do return, we keep looking and then eventually fall back to the | ||
* standard mach_reboot on return. | ||
*/ | ||
void mach_reboot_fixups(void) | ||
{ | ||
struct device_fixup *cur; | ||
struct pci_dev *dev; | ||
int i; | ||
|
||
for (i=0; i < (sizeof(fixups_table)/sizeof(fixups_table[0])); i++) { | ||
cur = &(fixups_table[i]); | ||
dev = pci_get_device(cur->vendor, cur->device, 0); | ||
if (!dev) | ||
continue; | ||
|
||
cur->reboot_fixup(dev); | ||
} | ||
|
||
printk(KERN_WARNING "No reboot fixup found for your hardware\n"); | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#ifndef _LINUX_REBOOT_FIXUPS_H | ||
#define _LINUX_REBOOT_FIXUPS_H | ||
|
||
#ifdef CONFIG_X86_REBOOTFIXUPS | ||
extern void mach_reboot_fixups(void); | ||
#else | ||
#define mach_reboot_fixups() ((void)(0)) | ||
#endif | ||
|
||
#endif /* _LINUX_REBOOT_FIXUPS_H */ |