linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] x86: ce4100 fixes and improvements
@ 2012-10-26  9:05 Florian Fainelli
  2012-10-26  9:05 ` [PATCH 1/3] x86: ce4100: implement pm_poweroff Florian Fainelli
                   ` (3 more replies)
  0 siblings, 4 replies; 18+ messages in thread
From: Florian Fainelli @ 2012-10-26  9:05 UTC (permalink / raw)
  To: tglx; +Cc: mingo, x86, rui.zhang, alan, linux-kernel, Florian Fainelli

Hi all,

This patch serie contains shutdown/reboot fixes for the CE4100 platform as
well as a PCI controller fix for devices without an interrupt line.

Florian Fainelli (3):
  x86: ce4100: implement pm_poweroff
  x86: ce4100: force reboot method to be KBD
  x86: ce4100: fixup PCI configuration register access for devices
    without interrupts

 arch/x86/pci/ce4100.c             |   13 +++++++++++++
 arch/x86/platform/ce4100/ce4100.c |   10 ++++++++++
 2 files changed, 23 insertions(+)

-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 1/3] x86: ce4100: implement pm_poweroff
  2012-10-26  9:05 [PATCH 0/3] x86: ce4100 fixes and improvements Florian Fainelli
@ 2012-10-26  9:05 ` Florian Fainelli
  2012-10-26  9:30   ` Ingo Molnar
  2012-10-26  9:05 ` [PATCH 2/3] x86: ce4100: force reboot method to be KBD Florian Fainelli
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 18+ messages in thread
From: Florian Fainelli @ 2012-10-26  9:05 UTC (permalink / raw)
  To: tglx; +Cc: mingo, x86, rui.zhang, alan, linux-kernel, Florian Fainelli

The CE4100 platform is currently missing a proper pm_poweroff implementation
leading to poweroff making the CPU spin forever and the CE4100 platform does
not enter a low-power mode where the external Power Management Unit can
properly power off the system. Power off on this platform is implemented pretty
much like reboot, by writing to the SoC built-in 8051 microcontroller mapped at
I/O port 0xcf9, the value 0x4.

Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
---
 arch/x86/platform/ce4100/ce4100.c |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/x86/platform/ce4100/ce4100.c b/arch/x86/platform/ce4100/ce4100.c
index 4c61b52..74f8774 100644
--- a/arch/x86/platform/ce4100/ce4100.c
+++ b/arch/x86/platform/ce4100/ce4100.c
@@ -27,6 +27,11 @@ static int ce4100_i8042_detect(void)
 	return 0;
 }
 
+static void ce4100_power_off(void)
+{
+	outb(0x4, 0xcf9);
+}
+
 #ifdef CONFIG_SERIAL_8250
 
 static unsigned int mem_serial_in(struct uart_port *p, int offset)
@@ -143,4 +148,6 @@ void __init x86_ce4100_early_setup(void)
 	x86_init.pci.init_irq = sdv_pci_init;
 	x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc_nocheck;
 #endif
+
+	pm_power_off = ce4100_power_off;
 }
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 2/3] x86: ce4100: force reboot method to be KBD
  2012-10-26  9:05 [PATCH 0/3] x86: ce4100 fixes and improvements Florian Fainelli
  2012-10-26  9:05 ` [PATCH 1/3] x86: ce4100: implement pm_poweroff Florian Fainelli
@ 2012-10-26  9:05 ` Florian Fainelli
  2012-10-26  9:32   ` Ingo Molnar
  2012-10-26  9:05 ` [PATCH 3/3] x86: ce4100: fixup PCI configuration register access for devices without interrupts Florian Fainelli
  2012-10-26 11:30 ` [PATCH 0/3 v2] x86: ce4100 fixes and improvements Florian Fainelli
  3 siblings, 1 reply; 18+ messages in thread
From: Florian Fainelli @ 2012-10-26  9:05 UTC (permalink / raw)
  To: tglx; +Cc: mingo, x86, rui.zhang, alan, linux-kernel, Florian Fainelli

From: Maxime Bizon <mbizon@freebox.fr>

The default reboot is via ACPI for this platform, and the CEFDK bootloader
actually supports this, but will issue a system power off instead of a real
reboot. Setting the reboot method to be KBD instead of ACPI ensures proper
system reboot.

Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
---
 arch/x86/platform/ce4100/ce4100.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/x86/platform/ce4100/ce4100.c b/arch/x86/platform/ce4100/ce4100.c
index 74f8774..8c9ed9a 100644
--- a/arch/x86/platform/ce4100/ce4100.c
+++ b/arch/x86/platform/ce4100/ce4100.c
@@ -21,6 +21,7 @@
 #include <asm/i8259.h>
 #include <asm/io.h>
 #include <asm/io_apic.h>
+#include <asm/emergency-restart.h>
 
 static int ce4100_i8042_detect(void)
 {
@@ -144,6 +145,8 @@ void __init x86_ce4100_early_setup(void)
 	x86_init.mpparse.find_smp_config = x86_init_noop;
 	x86_init.pci.init = ce4100_pci_init;
 
+	reboot_type = BOOT_KBD;
+
 #ifdef CONFIG_X86_IO_APIC
 	x86_init.pci.init_irq = sdv_pci_init;
 	x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc_nocheck;
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 3/3] x86: ce4100: fixup PCI configuration register access for devices without interrupts
  2012-10-26  9:05 [PATCH 0/3] x86: ce4100 fixes and improvements Florian Fainelli
  2012-10-26  9:05 ` [PATCH 1/3] x86: ce4100: implement pm_poweroff Florian Fainelli
  2012-10-26  9:05 ` [PATCH 2/3] x86: ce4100: force reboot method to be KBD Florian Fainelli
@ 2012-10-26  9:05 ` Florian Fainelli
  2012-10-26 11:30 ` [PATCH 0/3 v2] x86: ce4100 fixes and improvements Florian Fainelli
  3 siblings, 0 replies; 18+ messages in thread
From: Florian Fainelli @ 2012-10-26  9:05 UTC (permalink / raw)
  To: tglx; +Cc: mingo, x86, rui.zhang, alan, linux-kernel, Florian Fainelli

From: Maxime Bizon <mbizon@freebox.fr>

Some CE4100 devices such as the:
- DFX module (01:0b.7)
- entertainment encryption device (01:10.0)
- multimedia controller (01:12.0)

do not have a device interrupt at all. This patch fixes the PCI controller
code to declare the missing PCI configuration register space, as well as a
fixup method for forcing the interrupt pin to be 0 for these devices. This is
required to ensure that pci drivers matching on these devices will be able to
honor the various PCI subsystem calls touching the configuration space.

Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
---
 arch/x86/pci/ce4100.c |   13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/x86/pci/ce4100.c b/arch/x86/pci/ce4100.c
index 41bd2a2..b914e20 100644
--- a/arch/x86/pci/ce4100.c
+++ b/arch/x86/pci/ce4100.c
@@ -115,6 +115,16 @@ static void sata_revid_read(struct sim_dev_reg *reg, u32 *value)
 	reg_read(reg, value);
 }
 
+static void reg_noirq_read(struct sim_dev_reg *reg, u32 *value)
+{
+	unsigned long flags;
+
+	raw_spin_lock_irqsave(&pci_config_lock, flags);
+	/* force interrupt pin value to 0 */
+	*value = reg->sim_reg.value & 0xfff00ff;
+	raw_spin_unlock_irqrestore(&pci_config_lock, flags);
+}
+
 static struct sim_dev_reg bus1_fixups[] = {
 	DEFINE_REG(2, 0, 0x10, (16*MB), reg_init, reg_read, reg_write)
 	DEFINE_REG(2, 0, 0x14, (256), reg_init, reg_read, reg_write)
@@ -144,6 +154,7 @@ static struct sim_dev_reg bus1_fixups[] = {
 	DEFINE_REG(11, 5, 0x10, (64*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(11, 6, 0x10, (256), reg_init, reg_read, reg_write)
 	DEFINE_REG(11, 7, 0x10, (64*KB), reg_init, reg_read, reg_write)
+	DEFINE_REG(11, 7, 0x3c, 256, reg_init, reg_noirq_read, reg_write)
 	DEFINE_REG(12, 0, 0x10, (128*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(12, 0, 0x14, (256), reg_init, reg_read, reg_write)
 	DEFINE_REG(12, 1, 0x10, (1024), reg_init, reg_read, reg_write)
@@ -161,8 +172,10 @@ static struct sim_dev_reg bus1_fixups[] = {
 	DEFINE_REG(16, 0, 0x10, (64*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(16, 0, 0x14, (64*MB), reg_init, reg_read, reg_write)
 	DEFINE_REG(16, 0, 0x18, (64*MB), reg_init, reg_read, reg_write)
+	DEFINE_REG(16, 0, 0x3c, 256, reg_init, reg_noirq_read, reg_write)
 	DEFINE_REG(17, 0, 0x10, (128*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(18, 0, 0x10, (1*KB), reg_init, reg_read, reg_write)
+	DEFINE_REG(18, 0, 0x3c, 256, reg_init, reg_noirq_read, reg_write)
 };
 
 static void __init init_sim_regs(void)
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/3] x86: ce4100: implement pm_poweroff
  2012-10-26  9:05 ` [PATCH 1/3] x86: ce4100: implement pm_poweroff Florian Fainelli
@ 2012-10-26  9:30   ` Ingo Molnar
  0 siblings, 0 replies; 18+ messages in thread
From: Ingo Molnar @ 2012-10-26  9:30 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: tglx, mingo, x86, rui.zhang, alan, linux-kernel


* Florian Fainelli <ffainelli@freebox.fr> wrote:

> The CE4100 platform is currently missing a proper pm_poweroff implementation
> leading to poweroff making the CPU spin forever and the CE4100 platform does
> not enter a low-power mode where the external Power Management Unit can
> properly power off the system. Power off on this platform is implemented pretty
> much like reboot, by writing to the SoC built-in 8051 microcontroller mapped at
> I/O port 0xcf9, the value 0x4.
> 
> Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
> ---
>  arch/x86/platform/ce4100/ce4100.c |    7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/arch/x86/platform/ce4100/ce4100.c b/arch/x86/platform/ce4100/ce4100.c
> index 4c61b52..74f8774 100644
> --- a/arch/x86/platform/ce4100/ce4100.c
> +++ b/arch/x86/platform/ce4100/ce4100.c
> @@ -27,6 +27,11 @@ static int ce4100_i8042_detect(void)
>  	return 0;
>  }
>  
> +static void ce4100_power_off(void)
> +{
> +	outb(0x4, 0xcf9);

Would be nice to precede this function with something like:

/*
 * Power off on this platform is implemented pretty
 * much like reboot, by writing to the SoC built-in
 * 8051 microcontroller mapped at I/O port 0xcf9,
 * the magic value 0x4:
 */
static void ce4100_power_off(void)
{
	outb(0x4, 0xcf9);
...

As arguably such comments are even more useful in the code than 
in a changelog.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/3] x86: ce4100: force reboot method to be KBD
  2012-10-26  9:05 ` [PATCH 2/3] x86: ce4100: force reboot method to be KBD Florian Fainelli
@ 2012-10-26  9:32   ` Ingo Molnar
  0 siblings, 0 replies; 18+ messages in thread
From: Ingo Molnar @ 2012-10-26  9:32 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: tglx, mingo, x86, rui.zhang, alan, linux-kernel


* Florian Fainelli <ffainelli@freebox.fr> wrote:

> From: Maxime Bizon <mbizon@freebox.fr>
> 
> The default reboot is via ACPI for this platform, and the CEFDK bootloader
> actually supports this, but will issue a system power off instead of a real
> reboot. Setting the reboot method to be KBD instead of ACPI ensures proper
> system reboot.
> 
> Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
> ---
>  arch/x86/platform/ce4100/ce4100.c |    3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/arch/x86/platform/ce4100/ce4100.c b/arch/x86/platform/ce4100/ce4100.c
> index 74f8774..8c9ed9a 100644
> --- a/arch/x86/platform/ce4100/ce4100.c
> +++ b/arch/x86/platform/ce4100/ce4100.c
> @@ -21,6 +21,7 @@
>  #include <asm/i8259.h>
>  #include <asm/io.h>
>  #include <asm/io_apic.h>
> +#include <asm/emergency-restart.h>
>  
>  static int ce4100_i8042_detect(void)
>  {
> @@ -144,6 +145,8 @@ void __init x86_ce4100_early_setup(void)
>  	x86_init.mpparse.find_smp_config = x86_init_noop;
>  	x86_init.pci.init = ce4100_pci_init;
>  
> +	reboot_type = BOOT_KBD;

Here too put a minimal comment into the code:

	/*
	 * The system default is ACPI reboot, but that powers 
	 * off on CE4100 so the use KBD reset instead:
	 */
	reboot_type = BOOT_KBD;

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 0/3 v2] x86: ce4100 fixes and improvements
  2012-10-26  9:05 [PATCH 0/3] x86: ce4100 fixes and improvements Florian Fainelli
                   ` (2 preceding siblings ...)
  2012-10-26  9:05 ` [PATCH 3/3] x86: ce4100: fixup PCI configuration register access for devices without interrupts Florian Fainelli
@ 2012-10-26 11:30 ` Florian Fainelli
  2012-10-26 11:30   ` [PATCH 1/3 v2] x86: ce4100: implement pm_poweroff Florian Fainelli
                     ` (3 more replies)
  3 siblings, 4 replies; 18+ messages in thread
From: Florian Fainelli @ 2012-10-26 11:30 UTC (permalink / raw)
  To: tglx; +Cc: mingo, x86, rui.zhang, alan, linux-kernel, Florian Fainelli

Hi all,

This patch serie contains shutdown/reboot fixes for the CE4100 platform as
well as a PCI controller fix for devices without an interrupt line.

Changes since v1:
- added more comment to the pm_poweroff and reboot method fixup

Florian Fainelli (3):
  x86: ce4100: implement pm_poweroff
  x86: ce4100: force reboot method to be KBD
  x86: ce4100: fixup PCI configuration register access for devices
    without interrupts

 arch/x86/pci/ce4100.c             |   13 +++++++++++++
 arch/x86/platform/ce4100/ce4100.c |   24 ++++++++++++++++++++++++
 2 files changed, 37 insertions(+)

-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 1/3 v2] x86: ce4100: implement pm_poweroff
  2012-10-26 11:30 ` [PATCH 0/3 v2] x86: ce4100 fixes and improvements Florian Fainelli
@ 2012-10-26 11:30   ` Florian Fainelli
  2012-10-26 11:30   ` [PATCH 2/3 v2] x86: ce4100: force reboot method to be KBD Florian Fainelli
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 18+ messages in thread
From: Florian Fainelli @ 2012-10-26 11:30 UTC (permalink / raw)
  To: tglx; +Cc: mingo, x86, rui.zhang, alan, linux-kernel, Florian Fainelli

The CE4100 platform is currently missing a proper pm_poweroff implementation
leading to poweroff making the CPU spin forever and the CE4100 platform does
not enter a low-power mode where the external Power Management Unit can
properly power off the system. Power off on this platform is implemented pretty
much like reboot, by writing to the SoC built-in 8051 microcontroller mapped at
I/O port 0xcf9, the value 0x4.

Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
---
Changes since v1:
- added a more detail comment about how the power off method works internally

 arch/x86/platform/ce4100/ce4100.c |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/x86/platform/ce4100/ce4100.c b/arch/x86/platform/ce4100/ce4100.c
index 4c61b52..5de16e3 100644
--- a/arch/x86/platform/ce4100/ce4100.c
+++ b/arch/x86/platform/ce4100/ce4100.c
@@ -27,6 +27,18 @@ static int ce4100_i8042_detect(void)
 	return 0;
 }
 
+/*
+ * The CE4100 platform has an internal 8051 Microcontroller which is
+ * responsible for signaling to the external Power Management Unit the
+ * intention to reset, reboot or power off the system. This 8051 device has
+ * its command register mapped at I/O port 0xcf9 and the value 0x4 is used
+ * to power off the system.
+ */
+static void ce4100_power_off(void)
+{
+	outb(0x4, 0xcf9);
+}
+
 #ifdef CONFIG_SERIAL_8250
 
 static unsigned int mem_serial_in(struct uart_port *p, int offset)
@@ -143,4 +155,6 @@ void __init x86_ce4100_early_setup(void)
 	x86_init.pci.init_irq = sdv_pci_init;
 	x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc_nocheck;
 #endif
+
+	pm_power_off = ce4100_power_off;
 }
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 2/3 v2] x86: ce4100: force reboot method to be KBD
  2012-10-26 11:30 ` [PATCH 0/3 v2] x86: ce4100 fixes and improvements Florian Fainelli
  2012-10-26 11:30   ` [PATCH 1/3 v2] x86: ce4100: implement pm_poweroff Florian Fainelli
@ 2012-10-26 11:30   ` Florian Fainelli
  2012-10-26 14:58     ` Ingo Molnar
  2012-10-26 11:30   ` [PATCH 3/3] x86: ce4100: fixup PCI configuration register access for devices without interrupts Florian Fainelli
  2012-10-29 13:40   ` [PATCH 0/3 v3] x86: ce4100 fixes and improvements Florian Fainelli
  3 siblings, 1 reply; 18+ messages in thread
From: Florian Fainelli @ 2012-10-26 11:30 UTC (permalink / raw)
  To: tglx; +Cc: mingo, x86, rui.zhang, alan, linux-kernel, Florian Fainelli

From: Maxime Bizon <mbizon@freebox.fr>

The default reboot is via ACPI for this platform, and the CEFDK bootloader
actually supports this, but will issue a system power off instead of a real
reboot. Setting the reboot method to be KBD instead of ACPI ensures proper
system reboot.

Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
---
Changes since v1:
- added comment to explain why KBD reboot method is to be used

 arch/x86/platform/ce4100/ce4100.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/x86/platform/ce4100/ce4100.c b/arch/x86/platform/ce4100/ce4100.c
index 5de16e3..92525cb 100644
--- a/arch/x86/platform/ce4100/ce4100.c
+++ b/arch/x86/platform/ce4100/ce4100.c
@@ -21,6 +21,7 @@
 #include <asm/i8259.h>
 #include <asm/io.h>
 #include <asm/io_apic.h>
+#include <asm/emergency-restart.h>
 
 static int ce4100_i8042_detect(void)
 {
@@ -151,6 +152,15 @@ void __init x86_ce4100_early_setup(void)
 	x86_init.mpparse.find_smp_config = x86_init_noop;
 	x86_init.pci.init = ce4100_pci_init;
 
+	/*
+	 * By default, the reboot method is ACPI which is supported by the
+	 * CE4100 bootloader CEFDK using FADT.ResetReg Address and ResetValue
+	 * the bootloader will however issue a system power off instead of
+	 * reboot. By using BOOT_KBD we ensure proper system reboot as
+	 * expected.
+	 */
+	reboot_type = BOOT_KBD;
+
 #ifdef CONFIG_X86_IO_APIC
 	x86_init.pci.init_irq = sdv_pci_init;
 	x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc_nocheck;
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 3/3] x86: ce4100: fixup PCI configuration register access for devices without interrupts
  2012-10-26 11:30 ` [PATCH 0/3 v2] x86: ce4100 fixes and improvements Florian Fainelli
  2012-10-26 11:30   ` [PATCH 1/3 v2] x86: ce4100: implement pm_poweroff Florian Fainelli
  2012-10-26 11:30   ` [PATCH 2/3 v2] x86: ce4100: force reboot method to be KBD Florian Fainelli
@ 2012-10-26 11:30   ` Florian Fainelli
  2012-10-29 13:40   ` [PATCH 0/3 v3] x86: ce4100 fixes and improvements Florian Fainelli
  3 siblings, 0 replies; 18+ messages in thread
From: Florian Fainelli @ 2012-10-26 11:30 UTC (permalink / raw)
  To: tglx; +Cc: mingo, x86, rui.zhang, alan, linux-kernel, Florian Fainelli

From: Maxime Bizon <mbizon@freebox.fr>

Some CE4100 devices such as the:
- DFX module (01:0b.7)
- entertainment encryption device (01:10.0)
- multimedia controller (01:12.0)

do not have a device interrupt at all. This patch fixes the PCI controller
code to declare the missing PCI configuration register space, as well as a
fixup method for forcing the interrupt pin to be 0 for these devices. This is
required to ensure that pci drivers matching on these devices will be able to
honor the various PCI subsystem calls touching the configuration space.

Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
---
 arch/x86/pci/ce4100.c |   13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/x86/pci/ce4100.c b/arch/x86/pci/ce4100.c
index 41bd2a2..b914e20 100644
--- a/arch/x86/pci/ce4100.c
+++ b/arch/x86/pci/ce4100.c
@@ -115,6 +115,16 @@ static void sata_revid_read(struct sim_dev_reg *reg, u32 *value)
 	reg_read(reg, value);
 }
 
+static void reg_noirq_read(struct sim_dev_reg *reg, u32 *value)
+{
+	unsigned long flags;
+
+	raw_spin_lock_irqsave(&pci_config_lock, flags);
+	/* force interrupt pin value to 0 */
+	*value = reg->sim_reg.value & 0xfff00ff;
+	raw_spin_unlock_irqrestore(&pci_config_lock, flags);
+}
+
 static struct sim_dev_reg bus1_fixups[] = {
 	DEFINE_REG(2, 0, 0x10, (16*MB), reg_init, reg_read, reg_write)
 	DEFINE_REG(2, 0, 0x14, (256), reg_init, reg_read, reg_write)
@@ -144,6 +154,7 @@ static struct sim_dev_reg bus1_fixups[] = {
 	DEFINE_REG(11, 5, 0x10, (64*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(11, 6, 0x10, (256), reg_init, reg_read, reg_write)
 	DEFINE_REG(11, 7, 0x10, (64*KB), reg_init, reg_read, reg_write)
+	DEFINE_REG(11, 7, 0x3c, 256, reg_init, reg_noirq_read, reg_write)
 	DEFINE_REG(12, 0, 0x10, (128*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(12, 0, 0x14, (256), reg_init, reg_read, reg_write)
 	DEFINE_REG(12, 1, 0x10, (1024), reg_init, reg_read, reg_write)
@@ -161,8 +172,10 @@ static struct sim_dev_reg bus1_fixups[] = {
 	DEFINE_REG(16, 0, 0x10, (64*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(16, 0, 0x14, (64*MB), reg_init, reg_read, reg_write)
 	DEFINE_REG(16, 0, 0x18, (64*MB), reg_init, reg_read, reg_write)
+	DEFINE_REG(16, 0, 0x3c, 256, reg_init, reg_noirq_read, reg_write)
 	DEFINE_REG(17, 0, 0x10, (128*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(18, 0, 0x10, (1*KB), reg_init, reg_read, reg_write)
+	DEFINE_REG(18, 0, 0x3c, 256, reg_init, reg_noirq_read, reg_write)
 };
 
 static void __init init_sim_regs(void)
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/3 v2] x86: ce4100: force reboot method to be KBD
  2012-10-26 11:30   ` [PATCH 2/3 v2] x86: ce4100: force reboot method to be KBD Florian Fainelli
@ 2012-10-26 14:58     ` Ingo Molnar
  0 siblings, 0 replies; 18+ messages in thread
From: Ingo Molnar @ 2012-10-26 14:58 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: tglx, mingo, x86, rui.zhang, alan, linux-kernel


* Florian Fainelli <ffainelli@freebox.fr> wrote:

> From: Maxime Bizon <mbizon@freebox.fr>

> Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>

The SOB from Maxime is missing?

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 0/3 v3] x86: ce4100 fixes and improvements
  2012-10-26 11:30 ` [PATCH 0/3 v2] x86: ce4100 fixes and improvements Florian Fainelli
                     ` (2 preceding siblings ...)
  2012-10-26 11:30   ` [PATCH 3/3] x86: ce4100: fixup PCI configuration register access for devices without interrupts Florian Fainelli
@ 2012-10-29 13:40   ` Florian Fainelli
  2012-10-29 13:40     ` [PATCH 1/3 v3] x86: ce4100: implement pm_poweroff Florian Fainelli
                       ` (2 more replies)
  3 siblings, 3 replies; 18+ messages in thread
From: Florian Fainelli @ 2012-10-29 13:40 UTC (permalink / raw)
  To: tglx; +Cc: mingo, x86, rui.zhang, alan, linux-kernel, Florian Fainelli

Hi all,

This patch serie contains shutdown/reboot fixes for the CE4100 platform as
well as a PCI controller fix for devices without an interrupt line.

Changes since v2:
- added Sebastian's Acked-by
- added Maxime's missing Signed-off-by

Changes since v1:
- added more comment to the pm_poweroff and reboot method fixup

Florian Fainelli (3):
  x86: ce4100: implement pm_poweroff
  x86: ce4100: force reboot method to be KBD
  x86: ce4100: fixup PCI configuration register access for devices
    without interrupts

 arch/x86/pci/ce4100.c             |   13 +++++++++++++
 arch/x86/platform/ce4100/ce4100.c |   24 ++++++++++++++++++++++++
 2 files changed, 37 insertions(+)

-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 1/3 v3] x86: ce4100: implement pm_poweroff
  2012-10-29 13:40   ` [PATCH 0/3 v3] x86: ce4100 fixes and improvements Florian Fainelli
@ 2012-10-29 13:40     ` Florian Fainelli
  2012-10-30 12:25       ` [tip:x86/urgent] x86/ce4100: Fix pm_poweroff tip-bot for Florian Fainelli
  2012-10-29 13:40     ` [PATCH 2/3 v3] x86: ce4100: force reboot method to be KBD Florian Fainelli
  2012-10-29 13:40     ` [PATCH 3/3 v3] x86: ce4100: fixup PCI configuration register access for devices without interrupts Florian Fainelli
  2 siblings, 1 reply; 18+ messages in thread
From: Florian Fainelli @ 2012-10-29 13:40 UTC (permalink / raw)
  To: tglx; +Cc: mingo, x86, rui.zhang, alan, linux-kernel, Florian Fainelli

The CE4100 platform is currently missing a proper pm_poweroff implementation
leading to poweroff making the CPU spin forever and the CE4100 platform does
not enter a low-power mode where the external Power Management Unit can
properly power off the system. Power off on this platform is implemented pretty
much like reboot, by writing to the SoC built-in 8051 microcontroller mapped at
I/O port 0xcf9, the value 0x4.

Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
---
 arch/x86/platform/ce4100/ce4100.c |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/x86/platform/ce4100/ce4100.c b/arch/x86/platform/ce4100/ce4100.c
index 4c61b52..5de16e3 100644
--- a/arch/x86/platform/ce4100/ce4100.c
+++ b/arch/x86/platform/ce4100/ce4100.c
@@ -27,6 +27,18 @@ static int ce4100_i8042_detect(void)
 	return 0;
 }
 
+/*
+ * The CE4100 platform has an internal 8051 Microcontroller which is
+ * responsible for signaling to the external Power Management Unit the
+ * intention to reset, reboot or power off the system. This 8051 device has
+ * its command register mapped at I/O port 0xcf9 and the value 0x4 is used
+ * to power off the system.
+ */
+static void ce4100_power_off(void)
+{
+	outb(0x4, 0xcf9);
+}
+
 #ifdef CONFIG_SERIAL_8250
 
 static unsigned int mem_serial_in(struct uart_port *p, int offset)
@@ -143,4 +155,6 @@ void __init x86_ce4100_early_setup(void)
 	x86_init.pci.init_irq = sdv_pci_init;
 	x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc_nocheck;
 #endif
+
+	pm_power_off = ce4100_power_off;
 }
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 2/3 v3] x86: ce4100: force reboot method to be KBD
  2012-10-29 13:40   ` [PATCH 0/3 v3] x86: ce4100 fixes and improvements Florian Fainelli
  2012-10-29 13:40     ` [PATCH 1/3 v3] x86: ce4100: implement pm_poweroff Florian Fainelli
@ 2012-10-29 13:40     ` Florian Fainelli
  2012-10-30 12:26       ` [tip:x86/urgent] x86/ce4100: Fix reboot by forcing the " tip-bot for Maxime Bizon
  2012-10-29 13:40     ` [PATCH 3/3 v3] x86: ce4100: fixup PCI configuration register access for devices without interrupts Florian Fainelli
  2 siblings, 1 reply; 18+ messages in thread
From: Florian Fainelli @ 2012-10-29 13:40 UTC (permalink / raw)
  To: tglx
  Cc: mingo, x86, rui.zhang, alan, linux-kernel, Florian Fainelli,
	Maxime Bizon

From: Maxime Bizon <mbizon@freebox.fr>

The default reboot is via ACPI for this platform, and the CEFDK bootloader
actually supports this, but will issue a system power off instead of a real
reboot. Setting the reboot method to be KBD instead of ACPI ensures proper
system reboot.

Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
---
 arch/x86/platform/ce4100/ce4100.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/x86/platform/ce4100/ce4100.c b/arch/x86/platform/ce4100/ce4100.c
index 5de16e3..92525cb 100644
--- a/arch/x86/platform/ce4100/ce4100.c
+++ b/arch/x86/platform/ce4100/ce4100.c
@@ -21,6 +21,7 @@
 #include <asm/i8259.h>
 #include <asm/io.h>
 #include <asm/io_apic.h>
+#include <asm/emergency-restart.h>
 
 static int ce4100_i8042_detect(void)
 {
@@ -151,6 +152,15 @@ void __init x86_ce4100_early_setup(void)
 	x86_init.mpparse.find_smp_config = x86_init_noop;
 	x86_init.pci.init = ce4100_pci_init;
 
+	/*
+	 * By default, the reboot method is ACPI which is supported by the
+	 * CE4100 bootloader CEFDK using FADT.ResetReg Address and ResetValue
+	 * the bootloader will however issue a system power off instead of
+	 * reboot. By using BOOT_KBD we ensure proper system reboot as
+	 * expected.
+	 */
+	reboot_type = BOOT_KBD;
+
 #ifdef CONFIG_X86_IO_APIC
 	x86_init.pci.init_irq = sdv_pci_init;
 	x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc_nocheck;
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 3/3 v3] x86: ce4100: fixup PCI configuration register access for devices without interrupts
  2012-10-29 13:40   ` [PATCH 0/3 v3] x86: ce4100 fixes and improvements Florian Fainelli
  2012-10-29 13:40     ` [PATCH 1/3 v3] x86: ce4100: implement pm_poweroff Florian Fainelli
  2012-10-29 13:40     ` [PATCH 2/3 v3] x86: ce4100: force reboot method to be KBD Florian Fainelli
@ 2012-10-29 13:40     ` Florian Fainelli
  2012-10-30 12:27       ` [tip:x86/urgent] x86/ce4100: Fix " tip-bot for Maxime Bizon
  2 siblings, 1 reply; 18+ messages in thread
From: Florian Fainelli @ 2012-10-29 13:40 UTC (permalink / raw)
  To: tglx
  Cc: mingo, x86, rui.zhang, alan, linux-kernel, Florian Fainelli,
	Maxime Bizon

From: Maxime Bizon <mbizon@freebox.fr>

Some CE4100 devices such as the:
- DFX module (01:0b.7)
- entertainment encryption device (01:10.0)
- multimedia controller (01:12.0)

do not have a device interrupt at all. This patch fixes the PCI controller
code to declare the missing PCI configuration register space, as well as a
fixup method for forcing the interrupt pin to be 0 for these devices. This is
required to ensure that pci drivers matching on these devices will be able to
honor the various PCI subsystem calls touching the configuration space.

Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 arch/x86/pci/ce4100.c |   13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/x86/pci/ce4100.c b/arch/x86/pci/ce4100.c
index 41bd2a2..b914e20 100644
--- a/arch/x86/pci/ce4100.c
+++ b/arch/x86/pci/ce4100.c
@@ -115,6 +115,16 @@ static void sata_revid_read(struct sim_dev_reg *reg, u32 *value)
 	reg_read(reg, value);
 }
 
+static void reg_noirq_read(struct sim_dev_reg *reg, u32 *value)
+{
+	unsigned long flags;
+
+	raw_spin_lock_irqsave(&pci_config_lock, flags);
+	/* force interrupt pin value to 0 */
+	*value = reg->sim_reg.value & 0xfff00ff;
+	raw_spin_unlock_irqrestore(&pci_config_lock, flags);
+}
+
 static struct sim_dev_reg bus1_fixups[] = {
 	DEFINE_REG(2, 0, 0x10, (16*MB), reg_init, reg_read, reg_write)
 	DEFINE_REG(2, 0, 0x14, (256), reg_init, reg_read, reg_write)
@@ -144,6 +154,7 @@ static struct sim_dev_reg bus1_fixups[] = {
 	DEFINE_REG(11, 5, 0x10, (64*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(11, 6, 0x10, (256), reg_init, reg_read, reg_write)
 	DEFINE_REG(11, 7, 0x10, (64*KB), reg_init, reg_read, reg_write)
+	DEFINE_REG(11, 7, 0x3c, 256, reg_init, reg_noirq_read, reg_write)
 	DEFINE_REG(12, 0, 0x10, (128*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(12, 0, 0x14, (256), reg_init, reg_read, reg_write)
 	DEFINE_REG(12, 1, 0x10, (1024), reg_init, reg_read, reg_write)
@@ -161,8 +172,10 @@ static struct sim_dev_reg bus1_fixups[] = {
 	DEFINE_REG(16, 0, 0x10, (64*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(16, 0, 0x14, (64*MB), reg_init, reg_read, reg_write)
 	DEFINE_REG(16, 0, 0x18, (64*MB), reg_init, reg_read, reg_write)
+	DEFINE_REG(16, 0, 0x3c, 256, reg_init, reg_noirq_read, reg_write)
 	DEFINE_REG(17, 0, 0x10, (128*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(18, 0, 0x10, (1*KB), reg_init, reg_read, reg_write)
+	DEFINE_REG(18, 0, 0x3c, 256, reg_init, reg_noirq_read, reg_write)
 };
 
 static void __init init_sim_regs(void)
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [tip:x86/urgent] x86/ce4100: Fix pm_poweroff
  2012-10-29 13:40     ` [PATCH 1/3 v3] x86: ce4100: implement pm_poweroff Florian Fainelli
@ 2012-10-30 12:25       ` tip-bot for Florian Fainelli
  0 siblings, 0 replies; 18+ messages in thread
From: tip-bot for Florian Fainelli @ 2012-10-30 12:25 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: linux-kernel, hpa, mingo, bigeasy, tglx, ffainelli

Commit-ID:  f49f4ab95c301dbccad0efe85296d908b8ae7ad4
Gitweb:     http://git.kernel.org/tip/f49f4ab95c301dbccad0efe85296d908b8ae7ad4
Author:     Florian Fainelli <ffainelli@freebox.fr>
AuthorDate: Mon, 29 Oct 2012 14:40:18 +0100
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Tue, 30 Oct 2012 10:16:46 +0100

x86/ce4100: Fix pm_poweroff

The CE4100 platform is currently missing a proper pm_poweroff
implementation leading to poweroff making the CPU spin forever
and the CE4100 platform does not enter a low-power mode where
the external Power Management Unit can properly power off the
system. Power off on this platform is implemented pretty much
like reboot, by writing to the SoC built-in 8051 microcontroller
mapped at I/O port 0xcf9, the value 0x4.

Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: rui.zhang@intel.com
Cc: alan@linux.intel.com
Link: http://lkml.kernel.org/r/1351518020-25556-2-git-send-email-ffainelli@freebox.fr
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/platform/ce4100/ce4100.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/arch/x86/platform/ce4100/ce4100.c b/arch/x86/platform/ce4100/ce4100.c
index 4c61b52..5de16e3 100644
--- a/arch/x86/platform/ce4100/ce4100.c
+++ b/arch/x86/platform/ce4100/ce4100.c
@@ -27,6 +27,18 @@ static int ce4100_i8042_detect(void)
 	return 0;
 }
 
+/*
+ * The CE4100 platform has an internal 8051 Microcontroller which is
+ * responsible for signaling to the external Power Management Unit the
+ * intention to reset, reboot or power off the system. This 8051 device has
+ * its command register mapped at I/O port 0xcf9 and the value 0x4 is used
+ * to power off the system.
+ */
+static void ce4100_power_off(void)
+{
+	outb(0x4, 0xcf9);
+}
+
 #ifdef CONFIG_SERIAL_8250
 
 static unsigned int mem_serial_in(struct uart_port *p, int offset)
@@ -143,4 +155,6 @@ void __init x86_ce4100_early_setup(void)
 	x86_init.pci.init_irq = sdv_pci_init;
 	x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc_nocheck;
 #endif
+
+	pm_power_off = ce4100_power_off;
 }

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [tip:x86/urgent] x86/ce4100: Fix reboot by forcing the reboot method to be KBD
  2012-10-29 13:40     ` [PATCH 2/3 v3] x86: ce4100: force reboot method to be KBD Florian Fainelli
@ 2012-10-30 12:26       ` tip-bot for Maxime Bizon
  0 siblings, 0 replies; 18+ messages in thread
From: tip-bot for Maxime Bizon @ 2012-10-30 12:26 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, bigeasy, tglx, ffainelli, mbizon

Commit-ID:  d7959916026aaae60e1878ae33c7503b2cc4471d
Gitweb:     http://git.kernel.org/tip/d7959916026aaae60e1878ae33c7503b2cc4471d
Author:     Maxime Bizon <mbizon@freebox.fr>
AuthorDate: Mon, 29 Oct 2012 14:40:19 +0100
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Tue, 30 Oct 2012 10:16:46 +0100

x86/ce4100: Fix reboot by forcing the reboot method to be KBD

The default reboot is via ACPI for this platform, and the CEFDK
bootloader actually supports this, but will issue a system power
off instead of a real reboot. Setting the reboot method to be
KBD instead of ACPI ensures proper system reboot.

Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
Cc: rui.zhang@intel.com
Cc: alan@linux.intel.com
Link: http://lkml.kernel.org/r/1351518020-25556-3-git-send-email-ffainelli@freebox.fr
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/platform/ce4100/ce4100.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/arch/x86/platform/ce4100/ce4100.c b/arch/x86/platform/ce4100/ce4100.c
index 5de16e3..92525cb 100644
--- a/arch/x86/platform/ce4100/ce4100.c
+++ b/arch/x86/platform/ce4100/ce4100.c
@@ -21,6 +21,7 @@
 #include <asm/i8259.h>
 #include <asm/io.h>
 #include <asm/io_apic.h>
+#include <asm/emergency-restart.h>
 
 static int ce4100_i8042_detect(void)
 {
@@ -151,6 +152,15 @@ void __init x86_ce4100_early_setup(void)
 	x86_init.mpparse.find_smp_config = x86_init_noop;
 	x86_init.pci.init = ce4100_pci_init;
 
+	/*
+	 * By default, the reboot method is ACPI which is supported by the
+	 * CE4100 bootloader CEFDK using FADT.ResetReg Address and ResetValue
+	 * the bootloader will however issue a system power off instead of
+	 * reboot. By using BOOT_KBD we ensure proper system reboot as
+	 * expected.
+	 */
+	reboot_type = BOOT_KBD;
+
 #ifdef CONFIG_X86_IO_APIC
 	x86_init.pci.init_irq = sdv_pci_init;
 	x86_init.mpparse.setup_ioapic_ids = setup_ioapic_ids_from_mpc_nocheck;

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [tip:x86/urgent] x86/ce4100: Fix PCI configuration register access for devices without interrupts
  2012-10-29 13:40     ` [PATCH 3/3 v3] x86: ce4100: fixup PCI configuration register access for devices without interrupts Florian Fainelli
@ 2012-10-30 12:27       ` tip-bot for Maxime Bizon
  0 siblings, 0 replies; 18+ messages in thread
From: tip-bot for Maxime Bizon @ 2012-10-30 12:27 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, bigeasy, tglx, ffainelli, mbizon

Commit-ID:  37aeec36220c39f1b2e7118287d951fd9cfdd6b7
Gitweb:     http://git.kernel.org/tip/37aeec36220c39f1b2e7118287d951fd9cfdd6b7
Author:     Maxime Bizon <mbizon@freebox.fr>
AuthorDate: Mon, 29 Oct 2012 14:40:20 +0100
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Tue, 30 Oct 2012 10:16:47 +0100

x86/ce4100: Fix PCI configuration register access for devices without interrupts

Some CE4100 devices such as the:

 - DFX module (01:0b.7)
 - entertainment encryption device (01:10.0)
 - multimedia controller (01:12.0)

do not have a device interrupt at all.

This patch fixes the PCI controller code to declare the missing
PCI configuration register space, as well as a fixup method for
forcing the interrupt pin to be 0 for these devices. This is
required to ensure that pci drivers matching on these devices
will be able to honor the various PCI subsystem calls touching
the configuration space.

Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: rui.zhang@intel.com
Cc: alan@linux.intel.com
Link: http://lkml.kernel.org/r/1351518020-25556-4-git-send-email-ffainelli@freebox.fr
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/pci/ce4100.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/arch/x86/pci/ce4100.c b/arch/x86/pci/ce4100.c
index 41bd2a2..b914e20 100644
--- a/arch/x86/pci/ce4100.c
+++ b/arch/x86/pci/ce4100.c
@@ -115,6 +115,16 @@ static void sata_revid_read(struct sim_dev_reg *reg, u32 *value)
 	reg_read(reg, value);
 }
 
+static void reg_noirq_read(struct sim_dev_reg *reg, u32 *value)
+{
+	unsigned long flags;
+
+	raw_spin_lock_irqsave(&pci_config_lock, flags);
+	/* force interrupt pin value to 0 */
+	*value = reg->sim_reg.value & 0xfff00ff;
+	raw_spin_unlock_irqrestore(&pci_config_lock, flags);
+}
+
 static struct sim_dev_reg bus1_fixups[] = {
 	DEFINE_REG(2, 0, 0x10, (16*MB), reg_init, reg_read, reg_write)
 	DEFINE_REG(2, 0, 0x14, (256), reg_init, reg_read, reg_write)
@@ -144,6 +154,7 @@ static struct sim_dev_reg bus1_fixups[] = {
 	DEFINE_REG(11, 5, 0x10, (64*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(11, 6, 0x10, (256), reg_init, reg_read, reg_write)
 	DEFINE_REG(11, 7, 0x10, (64*KB), reg_init, reg_read, reg_write)
+	DEFINE_REG(11, 7, 0x3c, 256, reg_init, reg_noirq_read, reg_write)
 	DEFINE_REG(12, 0, 0x10, (128*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(12, 0, 0x14, (256), reg_init, reg_read, reg_write)
 	DEFINE_REG(12, 1, 0x10, (1024), reg_init, reg_read, reg_write)
@@ -161,8 +172,10 @@ static struct sim_dev_reg bus1_fixups[] = {
 	DEFINE_REG(16, 0, 0x10, (64*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(16, 0, 0x14, (64*MB), reg_init, reg_read, reg_write)
 	DEFINE_REG(16, 0, 0x18, (64*MB), reg_init, reg_read, reg_write)
+	DEFINE_REG(16, 0, 0x3c, 256, reg_init, reg_noirq_read, reg_write)
 	DEFINE_REG(17, 0, 0x10, (128*KB), reg_init, reg_read, reg_write)
 	DEFINE_REG(18, 0, 0x10, (1*KB), reg_init, reg_read, reg_write)
+	DEFINE_REG(18, 0, 0x3c, 256, reg_init, reg_noirq_read, reg_write)
 };
 
 static void __init init_sim_regs(void)

^ permalink raw reply related	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2012-10-30 12:27 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-26  9:05 [PATCH 0/3] x86: ce4100 fixes and improvements Florian Fainelli
2012-10-26  9:05 ` [PATCH 1/3] x86: ce4100: implement pm_poweroff Florian Fainelli
2012-10-26  9:30   ` Ingo Molnar
2012-10-26  9:05 ` [PATCH 2/3] x86: ce4100: force reboot method to be KBD Florian Fainelli
2012-10-26  9:32   ` Ingo Molnar
2012-10-26  9:05 ` [PATCH 3/3] x86: ce4100: fixup PCI configuration register access for devices without interrupts Florian Fainelli
2012-10-26 11:30 ` [PATCH 0/3 v2] x86: ce4100 fixes and improvements Florian Fainelli
2012-10-26 11:30   ` [PATCH 1/3 v2] x86: ce4100: implement pm_poweroff Florian Fainelli
2012-10-26 11:30   ` [PATCH 2/3 v2] x86: ce4100: force reboot method to be KBD Florian Fainelli
2012-10-26 14:58     ` Ingo Molnar
2012-10-26 11:30   ` [PATCH 3/3] x86: ce4100: fixup PCI configuration register access for devices without interrupts Florian Fainelli
2012-10-29 13:40   ` [PATCH 0/3 v3] x86: ce4100 fixes and improvements Florian Fainelli
2012-10-29 13:40     ` [PATCH 1/3 v3] x86: ce4100: implement pm_poweroff Florian Fainelli
2012-10-30 12:25       ` [tip:x86/urgent] x86/ce4100: Fix pm_poweroff tip-bot for Florian Fainelli
2012-10-29 13:40     ` [PATCH 2/3 v3] x86: ce4100: force reboot method to be KBD Florian Fainelli
2012-10-30 12:26       ` [tip:x86/urgent] x86/ce4100: Fix reboot by forcing the " tip-bot for Maxime Bizon
2012-10-29 13:40     ` [PATCH 3/3 v3] x86: ce4100: fixup PCI configuration register access for devices without interrupts Florian Fainelli
2012-10-30 12:27       ` [tip:x86/urgent] x86/ce4100: Fix " tip-bot for Maxime Bizon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).