Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44bc40e1 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 platform changes from Ingo Molnar:
 "This tree includes assorted platform driver updates and a preparatory
  series for a platform with custom DMA remapping semantics (sta2x11 I/O
  hub)."

* 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/vsmp: Fix number of CPUs when vsmp is disabled
  keyboard: Use BIOS Keyboard variable to set Numlock
  x86/olpc/xo1/sci: Report RTC wakeup events
  x86/olpc/xo1/sci: Produce wakeup events for buttons and switches
  x86, platform: Initial support for sta2x11 I/O hub
  x86: Introduce CONFIG_X86_DMA_REMAP
  x86-32: Introduce CONFIG_X86_DEV_DMA_OPS
parents 02171b4a ead91d4b
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
#ifndef _ASM_PARISC_KBDLEDS_H
#define _ASM_PARISC_KBDLEDS_H

/*
 * On HIL keyboards of PARISC machines there is no NumLock key and
 * everyone expects the keypad to be used for numbers. That's why
 * we can safely turn on the NUMLOCK bit.
 */

static inline int kbd_defleds(void)
{
#if defined(CONFIG_KEYBOARD_HIL) || defined(CONFIG_KEYBOARD_HIL_OLD)
	return 1 << VC_NUMLOCK;
#else
	return 0;
#endif
}

#endif /* _ASM_PARISC_KBDLEDS_H */
+31 −4
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ config X86_32

config X86_64
	def_bool 64BIT
	select X86_DEV_DMA_OPS

### Arch settings
config X86
@@ -327,6 +328,7 @@ config X86_EXTENDED_PLATFORM
		NUMAQ (IBM/Sequent)
		RDC R-321x SoC
		SGI 320/540 (Visual Workstation)
		STA2X11-based (e.g. Northville)
		Summit/EXA (IBM x440)
		Unisys ES7000 IA32 series
		Moorestown MID devices
@@ -373,6 +375,7 @@ config X86_VSMP
	select PARAVIRT
	depends on X86_64 && PCI
	depends on X86_EXTENDED_PLATFORM
	depends on SMP
	---help---
	  Support for ScaleMP vSMP systems.  Say 'Y' here if this kernel is
	  supposed to run on these EM64T-based machines.  Only choose this option
@@ -459,10 +462,10 @@ config X86_32_NON_STANDARD
	depends on X86_32 && SMP
	depends on X86_EXTENDED_PLATFORM
	---help---
	  This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default
	  subarchitectures.  It is intended for a generic binary kernel.
	  if you select them all, kernel will probe it one by one. and will
	  fallback to default.
	  This option compiles in the NUMAQ, Summit, bigsmp, ES7000,
	  STA2X11, default subarchitectures.  It is intended for a generic
	  binary kernel. If you select them all, kernel will probe it
	  one by one and will fallback to default.

# Alphabetically sorted list of Non standard 32 bit platforms

@@ -502,6 +505,22 @@ config X86_VISWS
	  A kernel compiled for the Visual Workstation will run on general
	  PCs as well. See <file:Documentation/sgi-visws.txt> for details.

config STA2X11
	bool "STA2X11 Companion Chip Support"
	depends on X86_32_NON_STANDARD && PCI
	select X86_DEV_DMA_OPS
	select X86_DMA_REMAP
	select SWIOTLB
	select MFD_STA2X11
	select ARCH_REQUIRE_GPIOLIB
	default n
	---help---
	  This adds support for boards based on the STA2X11 IO-Hub,
	  a.k.a. "ConneXt". The chip is used in place of the standard
	  PC chipset, so all "standard" peripherals are missing. If this
	  option is selected the kernel will still be able to boot on
	  standard PC machines.

config X86_SUMMIT
	bool "Summit/EXA (IBM x440)"
	depends on X86_32_NON_STANDARD
@@ -2210,6 +2229,14 @@ config HAVE_TEXT_POKE_SMP
	bool
	select STOP_MACHINE if SMP

config X86_DEV_DMA_OPS
	bool
	depends on X86_64 || STA2X11

config X86_DMA_REMAP
	bool
	depends on STA2X11

source "net/Kconfig"

source "drivers/Kconfig"
+12 −6
Original line number Diff line number Diff line
@@ -57,14 +57,20 @@ static void copy_boot_params(void)
}

/*
 * Set the keyboard repeat rate to maximum.  Unclear why this
 * Query the keyboard lock status as given by the BIOS, and
 * set the keyboard repeat rate to maximum.  Unclear why the latter
 * is done here; this might be possible to kill off as stale code.
 */
static void keyboard_set_repeat(void)
static void keyboard_init(void)
{
	struct biosregs ireg;
	struct biosregs ireg, oreg;
	initregs(&ireg);
	ireg.ax = 0x0305;

	ireg.ah = 0x02;		/* Get keyboard status */
	intcall(0x16, &ireg, &oreg);
	boot_params.kbd_status = oreg.al;

	ireg.ax = 0x0305;	/* Set keyboard repeat rate */
	intcall(0x16, &ireg, NULL);
}

@@ -151,8 +157,8 @@ void main(void)
	/* Detect memory layout */
	detect_memory();

	/* Set keyboard repeat rate (why?) */
	keyboard_set_repeat();
	/* Set keyboard repeat rate (why?) and query the lock flags */
	keyboard_init();

	/* Query MCA information */
	query_mca();
+2 −1
Original line number Diff line number Diff line
@@ -112,7 +112,8 @@ struct boot_params {
	__u8  e820_entries;				/* 0x1e8 */
	__u8  eddbuf_entries;				/* 0x1e9 */
	__u8  edd_mbr_sig_buf_entries;			/* 0x1ea */
	__u8  _pad6[6];					/* 0x1eb */
	__u8  kbd_status;				/* 0x1eb */
	__u8  _pad6[5];					/* 0x1ec */
	struct setup_header hdr;    /* setup header */	/* 0x1f1 */
	__u8  _pad7[0x290-0x1f1-sizeof(struct setup_header)];
	__u32 edd_mbr_sig_buffer[EDD_MBR_SIG_MAX];	/* 0x290 */
+2 −2
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ struct dev_archdata {
#ifdef CONFIG_ACPI
	void	*acpi_handle;
#endif
#ifdef CONFIG_X86_64
#ifdef CONFIG_X86_DEV_DMA_OPS
	struct dma_map_ops *dma_ops;
#endif
#if defined(CONFIG_INTEL_IOMMU) || defined(CONFIG_AMD_IOMMU)
Loading