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

Commit e66dd190 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'x86-fixes-for-linus' of...

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

* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86: cpu_debug remove execute permission
  x86: smarten /proc/interrupts output for new counters
  x86: DMI match for the Dell DXP061 as it needs BIOS reboot
  x86: make 64 bit to use default_inquire_remote_apic
  x86, setup: un-resequence mode setting for VGA 80x34 and 80x60 modes
  x86, intel-iommu: fix X2APIC && !ACPI build failure
parents c2ea122c f20ab9c3
Loading
Loading
Loading
Loading
+1 −5
Original line number Original line Diff line number Diff line
@@ -252,17 +252,13 @@ config SMP


config X86_X2APIC
config X86_X2APIC
	bool "Support x2apic"
	bool "Support x2apic"
	depends on X86_LOCAL_APIC && X86_64
	depends on X86_LOCAL_APIC && X86_64 && INTR_REMAP
	select INTR_REMAP
	---help---
	---help---
	  This enables x2apic support on CPUs that have this feature.
	  This enables x2apic support on CPUs that have this feature.


	  This allows 32-bit apic IDs (so it can support very large systems),
	  This allows 32-bit apic IDs (so it can support very large systems),
	  and accesses the local apic via MSRs not via mmio.
	  and accesses the local apic via MSRs not via mmio.


	  ( On certain CPU models you may need to enable INTR_REMAP too,
	    to get functional x2apic mode. )

	  If you don't know what to do here, say N.
	  If you don't know what to do here, say N.


config SPARSE_IRQ
config SPARSE_IRQ
+23 −10
Original line number Original line Diff line number Diff line
@@ -129,22 +129,18 @@ u16 vga_crtc(void)
	return (inb(0x3cc) & 1) ? 0x3d4 : 0x3b4;
	return (inb(0x3cc) & 1) ? 0x3d4 : 0x3b4;
}
}


static void vga_set_480_scanlines(int lines)
static void vga_set_480_scanlines(void)
{
{
	u16 crtc;		/* CRTC base address */
	u16 crtc;		/* CRTC base address */
	u8  csel;		/* CRTC miscellaneous output register */
	u8  csel;		/* CRTC miscellaneous output register */
	u8  ovfw;		/* CRTC overflow register */
	int end = lines-1;


	crtc = vga_crtc();
	crtc = vga_crtc();


	ovfw = 0x3c | ((end >> (8-1)) & 0x02) | ((end >> (9-6)) & 0x40);

	out_idx(0x0c, crtc, 0x11); /* Vertical sync end, unlock CR0-7 */
	out_idx(0x0c, crtc, 0x11); /* Vertical sync end, unlock CR0-7 */
	out_idx(0x0b, crtc, 0x06); /* Vertical total */
	out_idx(0x0b, crtc, 0x06); /* Vertical total */
	out_idx(ovfw, crtc, 0x07); /* Vertical overflow */
	out_idx(0x3e, crtc, 0x07); /* Vertical overflow */
	out_idx(0xea, crtc, 0x10); /* Vertical sync start */
	out_idx(0xea, crtc, 0x10); /* Vertical sync start */
	out_idx(end,  crtc, 0x12); /* Vertical display end */
	out_idx(0xdf, crtc, 0x12); /* Vertical display end */
	out_idx(0xe7, crtc, 0x15); /* Vertical blank start */
	out_idx(0xe7, crtc, 0x15); /* Vertical blank start */
	out_idx(0x04, crtc, 0x16); /* Vertical blank end */
	out_idx(0x04, crtc, 0x16); /* Vertical blank end */
	csel = inb(0x3cc);
	csel = inb(0x3cc);
@@ -153,21 +149,38 @@ static void vga_set_480_scanlines(int lines)
	outb(csel, 0x3c2);
	outb(csel, 0x3c2);
}
}


static void vga_set_vertical_end(int lines)
{
	u16 crtc;		/* CRTC base address */
	u8  ovfw;		/* CRTC overflow register */
	int end = lines-1;

	crtc = vga_crtc();

	ovfw = 0x3c | ((end >> (8-1)) & 0x02) | ((end >> (9-6)) & 0x40);

	out_idx(ovfw, crtc, 0x07); /* Vertical overflow */
	out_idx(end,  crtc, 0x12); /* Vertical display end */
}

static void vga_set_80x30(void)
static void vga_set_80x30(void)
{
{
	vga_set_480_scanlines(30*16);
	vga_set_480_scanlines();
	vga_set_vertical_end(30*16);
}
}


static void vga_set_80x34(void)
static void vga_set_80x34(void)
{
{
	vga_set_480_scanlines();
	vga_set_14font();
	vga_set_14font();
	vga_set_480_scanlines(34*14);
	vga_set_vertical_end(34*14);
}
}


static void vga_set_80x60(void)
static void vga_set_80x60(void)
{
{
	vga_set_480_scanlines();
	vga_set_8font();
	vga_set_8font();
	vga_set_480_scanlines(60*8);
	vga_set_vertical_end(60*8);
}
}


static int vga_set_mode(struct mode_info *mode)
static int vga_set_mode(struct mode_info *mode)
+0 −0

File mode changed from 100755 to 100644.

+2 −2
Original line number Original line Diff line number Diff line
@@ -212,7 +212,7 @@ struct apic apic_flat = {
	.trampoline_phys_high		= DEFAULT_TRAMPOLINE_PHYS_HIGH,
	.trampoline_phys_high		= DEFAULT_TRAMPOLINE_PHYS_HIGH,
	.wait_for_init_deassert		= NULL,
	.wait_for_init_deassert		= NULL,
	.smp_callin_clear_local_apic	= NULL,
	.smp_callin_clear_local_apic	= NULL,
	.inquire_remote_apic		= NULL,
	.inquire_remote_apic		= default_inquire_remote_apic,


	.read				= native_apic_mem_read,
	.read				= native_apic_mem_read,
	.write				= native_apic_mem_write,
	.write				= native_apic_mem_write,
@@ -362,7 +362,7 @@ struct apic apic_physflat = {
	.trampoline_phys_high		= DEFAULT_TRAMPOLINE_PHYS_HIGH,
	.trampoline_phys_high		= DEFAULT_TRAMPOLINE_PHYS_HIGH,
	.wait_for_init_deassert		= NULL,
	.wait_for_init_deassert		= NULL,
	.smp_callin_clear_local_apic	= NULL,
	.smp_callin_clear_local_apic	= NULL,
	.inquire_remote_apic		= NULL,
	.inquire_remote_apic		= default_inquire_remote_apic,


	.read				= native_apic_mem_read,
	.read				= native_apic_mem_read,
	.write				= native_apic_mem_write,
	.write				= native_apic_mem_write,
+0 −0

File mode changed from 100755 to 100644.

Loading