View | Details | Raw Unified | Return to bug 6307 | Differences between
and this patch

Collapse All | Expand All

(-)linux-x86.q/arch/x86/boot/compressed/misc_32.c (-4 / +4 lines)
Lines 276-285 static void putstr(const char *s) Link Here
276
	RM_SCREEN_INFO.orig_y = y;
276
	RM_SCREEN_INFO.orig_y = y;
277
277
278
	pos = (x + cols * y) * 2;	/* Update cursor position */
278
	pos = (x + cols * y) * 2;	/* Update cursor position */
279
	outb_p(14, vidport);
279
	outb(14, vidport);
280
	outb_p(0xff & (pos >> 9), vidport+1);
280
	outb(0xff & (pos >> 9), vidport+1);
281
	outb_p(15, vidport);
281
	outb(15, vidport);
282
	outb_p(0xff & (pos >> 1), vidport+1);
282
	outb(0xff & (pos >> 1), vidport+1);
283
}
283
}
284
284
285
static void* memset(void* s, int c, unsigned n)
285
static void* memset(void* s, int c, unsigned n)
(-)linux-x86.q/arch/x86/boot/compressed/misc_64.c (-4 / +4 lines)
Lines 269-278 static void putstr(const char *s) Link Here
269
	RM_SCREEN_INFO.orig_y = y;
269
	RM_SCREEN_INFO.orig_y = y;
270
270
271
	pos = (x + cols * y) * 2;	/* Update cursor position */
271
	pos = (x + cols * y) * 2;	/* Update cursor position */
272
	outb_p(14, vidport);
272
	outb(14, vidport);
273
	outb_p(0xff & (pos >> 9), vidport+1);
273
	outb(0xff & (pos >> 9), vidport+1);
274
	outb_p(15, vidport);
274
	outb(15, vidport);
275
	outb_p(0xff & (pos >> 1), vidport+1);
275
	outb(0xff & (pos >> 1), vidport+1);
276
}
276
}
277
277
278
static void* memset(void* s, int c, unsigned n)
278
static void* memset(void* s, int c, unsigned n)
(-)linux-x86.q/arch/x86/kernel/quirks.c (+10 lines)
Lines 3-11 Link Here
3
 */
3
 */
4
#include <linux/pci.h>
4
#include <linux/pci.h>
5
#include <linux/irq.h>
5
#include <linux/irq.h>
6
#include <linux/delay.h>
6
7
7
#include <asm/hpet.h>
8
#include <asm/hpet.h>
8
9
10
/*
11
 * Some legacy devices need delays for IN/OUT sequences. Most are
12
 * probably not needed but it's the safest to just do this short delay:
13
 */
14
void native_io_delay(void)
15
{
16
	udelay(1);
17
}
18
9
#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_SMP) && defined(CONFIG_PCI)
19
#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_SMP) && defined(CONFIG_PCI)
10
20
11
static void __devinit quirk_intel_irqbalance(struct pci_dev *dev)
21
static void __devinit quirk_intel_irqbalance(struct pci_dev *dev)
(-)linux-x86.q/include/asm-x86/io_32.h (-4 / +1 lines)
Lines 250-259 static inline void flush_write_buffers(v Link Here
250
250
251
#endif /* __KERNEL__ */
251
#endif /* __KERNEL__ */
252
252
253
static inline void native_io_delay(void)
253
extern void native_io_delay(void);
254
{
255
	asm volatile("outb %%al,$0x80" : : : "memory");
256
}
257
254
258
#if defined(CONFIG_PARAVIRT)
255
#if defined(CONFIG_PARAVIRT)
259
#include <asm/paravirt.h>
256
#include <asm/paravirt.h>
(-)linux-x86.q/include/asm-x86/io_64.h (-9 / +5 lines)
Lines 35-47 Link Here
35
  *  - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
35
  *  - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
36
  */
36
  */
37
37
38
#define __SLOW_DOWN_IO "\noutb %%al,$0x80"
38
extern void native_io_delay(void);
39
40
#ifdef REALLY_SLOW_IO
41
#define __FULL_SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO
42
#else
43
#define __FULL_SLOW_DOWN_IO __SLOW_DOWN_IO
44
#endif
45
39
46
/*
40
/*
47
 * Talk about misusing macros..
41
 * Talk about misusing macros..
Lines 54-60 __asm__ __volatile__ ("out" #s " %" s1 " Link Here
54
48
55
#define __OUT(s,s1,x) \
49
#define __OUT(s,s1,x) \
56
__OUT1(s,x) __OUT2(s,s1,"w") : : "a" (value), "Nd" (port)); } \
50
__OUT1(s,x) __OUT2(s,s1,"w") : : "a" (value), "Nd" (port)); } \
57
__OUT1(s##_p,x) __OUT2(s,s1,"w") __FULL_SLOW_DOWN_IO : : "a" (value), "Nd" (port));} \
51
__OUT1(s##_p,x) __OUT2(s,s1,"w") : : "a" (value), "Nd" (port)); \
52
native_io_delay(); } \
58
53
59
#define __IN1(s) \
54
#define __IN1(s) \
60
static inline RETURN_TYPE in##s(unsigned short port) { RETURN_TYPE _v;
55
static inline RETURN_TYPE in##s(unsigned short port) { RETURN_TYPE _v;
Lines 64-70 __asm__ __volatile__ ("in" #s " %" s2 "1 Link Here
64
59
65
#define __IN(s,s1,i...) \
60
#define __IN(s,s1,i...) \
66
__IN1(s) __IN2(s,s1,"w") : "=a" (_v) : "Nd" (port) ,##i ); return _v; } \
61
__IN1(s) __IN2(s,s1,"w") : "=a" (_v) : "Nd" (port) ,##i ); return _v; } \
67
__IN1(s##_p) __IN2(s,s1,"w") __FULL_SLOW_DOWN_IO : "=a" (_v) : "Nd" (port) ,##i ); return _v; } \
62
__IN1(s##_p) __IN2(s,s1,"w") : "=a" (_v) : "Nd" (port) ,##i ); return _v; \
63
native_io_delay(); } \
68
64
69
#define __INS(s) \
65
#define __INS(s) \
70
static inline void ins##s(unsigned short port, void * addr, unsigned long count) \
66
static inline void ins##s(unsigned short port, void * addr, unsigned long count) \

Return to bug 6307