2007-10-18 19:27:15

by Andres Salomon

[permalink] [raw]
Subject: [PATCH] GEODE: use symbolic constant in cs5536 reboot fixup

Simple cosmetic update for the cs5536 reboot fixup; define the MSR that's used
for rebooting in geode.h, and use the define.

Signed-off-by: Andres Salomon <[email protected]>

diff --git a/arch/x86/kernel/reboot_fixups_32.c b/arch/x86/kernel/reboot_fixups_32.c
index 8b30b26..1a07bbe 100644
--- a/arch/x86/kernel/reboot_fixups_32.c
+++ b/arch/x86/kernel/reboot_fixups_32.c
@@ -12,6 +12,7 @@
#include <linux/interrupt.h>
#include <asm/reboot_fixups.h>
#include <asm/msr.h>
+#include <asm/geode.h>

static void cs5530a_warm_reset(struct pci_dev *dev)
{
@@ -24,11 +25,8 @@ static void cs5530a_warm_reset(struct pci_dev *dev)

static void cs5536_warm_reset(struct pci_dev *dev)
{
- /*
- * 6.6.2.12 Soft Reset (DIVIL_SOFT_RESET)
- * writing 1 to the LSB of this MSR causes a hard reset.
- */
- wrmsrl(0x51400017, 1ULL);
+ /* writing 1 to the LSB of this MSR causes a hard reset */
+ wrmsrl(MSR_DIVIL_SOFT_RESET, 1ULL);
udelay(50); /* shouldn't get here but be safe and spin a while */
}

diff --git a/include/asm-x86/geode.h b/include/asm-x86/geode.h
index d948988..771af33 100644
--- a/include/asm-x86/geode.h
+++ b/include/asm-x86/geode.h
@@ -38,6 +38,8 @@ extern int geode_get_dev_base(unsigned int dev);
#define MSR_LBAR_ACPI 0x5140000E
#define MSR_LBAR_PMS 0x5140000F

+#define MSR_DIVIL_SOFT_RESET 0x51400017
+
#define MSR_PIC_YSEL_LOW 0x51400020
#define MSR_PIC_YSEL_HIGH 0x51400021
#define MSR_PIC_ZSEL_LOW 0x51400022


2007-10-18 23:52:17

by Jordan Crouse

[permalink] [raw]
Subject: Re: GEODE: use symbolic constant in cs5536 reboot fixup

On 18/10/07 15:26 -0400, Andres Salomon wrote:
> Simple cosmetic update for the cs5536 reboot fixup; define the MSR that's used
> for rebooting in geode.h, and use the define.
>
> Signed-off-by: Andres Salomon <[email protected]>

Acked-by: Jordan Crouse <[email protected]>

> diff --git a/arch/x86/kernel/reboot_fixups_32.c b/arch/x86/kernel/reboot_fixups_32.c
> index 8b30b26..1a07bbe 100644
> --- a/arch/x86/kernel/reboot_fixups_32.c
> +++ b/arch/x86/kernel/reboot_fixups_32.c
> @@ -12,6 +12,7 @@
> #include <linux/interrupt.h>
> #include <asm/reboot_fixups.h>
> #include <asm/msr.h>
> +#include <asm/geode.h>
>
> static void cs5530a_warm_reset(struct pci_dev *dev)
> {
> @@ -24,11 +25,8 @@ static void cs5530a_warm_reset(struct pci_dev *dev)
>
> static void cs5536_warm_reset(struct pci_dev *dev)
> {
> - /*
> - * 6.6.2.12 Soft Reset (DIVIL_SOFT_RESET)
> - * writing 1 to the LSB of this MSR causes a hard reset.
> - */
> - wrmsrl(0x51400017, 1ULL);
> + /* writing 1 to the LSB of this MSR causes a hard reset */
> + wrmsrl(MSR_DIVIL_SOFT_RESET, 1ULL);
> udelay(50); /* shouldn't get here but be safe and spin a while */
> }
>
> diff --git a/include/asm-x86/geode.h b/include/asm-x86/geode.h
> index d948988..771af33 100644
> --- a/include/asm-x86/geode.h
> +++ b/include/asm-x86/geode.h
> @@ -38,6 +38,8 @@ extern int geode_get_dev_base(unsigned int dev);
> #define MSR_LBAR_ACPI 0x5140000E
> #define MSR_LBAR_PMS 0x5140000F
>
> +#define MSR_DIVIL_SOFT_RESET 0x51400017
> +
> #define MSR_PIC_YSEL_LOW 0x51400020
> #define MSR_PIC_YSEL_HIGH 0x51400021
> #define MSR_PIC_ZSEL_LOW 0x51400022
>
>

--
Jordan Crouse
Systems Software Development Engineer
Advanced Micro Devices, Inc.