Commit 6083aa48 authored by Ingo Molnar's avatar Ingo Molnar

Merge branch 'x86/io' into x86/iommu

Merge x86/io into x86/iommu due to a small patch conflict in io.h.
parents dcb7731a 93093d09
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#define LCD_CONN_TYPE(_x) ((_x) & 0x0f) #define LCD_CONN_TYPE(_x) ((_x) & 0x0f)
#define LCD_CONN_WIDTH(_x) (((_x) >> 4) & 0x1f) #define LCD_CONN_WIDTH(_x) (((_x) >> 4) & 0x1f)
#define LCD_TYPE_MASK 0xf
#define LCD_TYPE_UNKNOWN 0 #define LCD_TYPE_UNKNOWN 0
#define LCD_TYPE_MONO_STN 1 #define LCD_TYPE_MONO_STN 1
#define LCD_TYPE_MONO_DSTN 2 #define LCD_TYPE_MONO_DSTN 2
......
...@@ -90,12 +90,13 @@ void arch_reset(char mode) ...@@ -90,12 +90,13 @@ void arch_reset(char mode)
/* Jump into ROM at address 0 */ /* Jump into ROM at address 0 */
cpu_reset(0); cpu_reset(0);
break; break;
case 'h':
do_hw_reset();
break;
case 'g': case 'g':
do_gpio_reset(); do_gpio_reset();
break; break;
case 'h':
default:
do_hw_reset();
break;
} }
} }
...@@ -67,6 +67,7 @@ ...@@ -67,6 +67,7 @@
static unsigned long spitz_pin_config[] __initdata = { static unsigned long spitz_pin_config[] __initdata = {
/* Chip Selects */ /* Chip Selects */
GPIO78_nCS_2, /* SCOOP #2 */ GPIO78_nCS_2, /* SCOOP #2 */
GPIO79_nCS_3, /* NAND */
GPIO80_nCS_4, /* SCOOP #1 */ GPIO80_nCS_4, /* SCOOP #1 */
/* LCD - 16bpp Active TFT */ /* LCD - 16bpp Active TFT */
...@@ -97,10 +98,10 @@ static unsigned long spitz_pin_config[] __initdata = { ...@@ -97,10 +98,10 @@ static unsigned long spitz_pin_config[] __initdata = {
GPIO51_nPIOW, GPIO51_nPIOW,
GPIO85_nPCE_1, GPIO85_nPCE_1,
GPIO54_nPCE_2, GPIO54_nPCE_2,
GPIO79_PSKTSEL,
GPIO55_nPREG, GPIO55_nPREG,
GPIO56_nPWAIT, GPIO56_nPWAIT,
GPIO57_nIOIS16, GPIO57_nIOIS16,
GPIO104_PSKTSEL,
/* MMC */ /* MMC */
GPIO32_MMC_CLK, GPIO32_MMC_CLK,
...@@ -686,7 +687,6 @@ static void __init akita_init(void) ...@@ -686,7 +687,6 @@ static void __init akita_init(void)
spitz_pcmcia_config.num_devs = 1; spitz_pcmcia_config.num_devs = 1;
platform_scoop_config = &spitz_pcmcia_config; platform_scoop_config = &spitz_pcmcia_config;
pxa_set_i2c_info(NULL);
i2c_register_board_info(0, ARRAY_AND_SIZE(akita_i2c_board_info)); i2c_register_board_info(0, ARRAY_AND_SIZE(akita_i2c_board_info));
common_init(); common_init();
......
...@@ -19,6 +19,8 @@ config X86_64 ...@@ -19,6 +19,8 @@ config X86_64
config X86 config X86
def_bool y def_bool y
select HAVE_AOUT if X86_32 select HAVE_AOUT if X86_32
select HAVE_READQ
select HAVE_WRITEQ
select HAVE_UNSTABLE_SCHED_CLOCK select HAVE_UNSTABLE_SCHED_CLOCK
select HAVE_IDE select HAVE_IDE
select HAVE_OPROFILE select HAVE_OPROFILE
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#define ARCH_HAS_IOREMAP_WC #define ARCH_HAS_IOREMAP_WC
#include <linux/compiler.h> #include <linux/compiler.h>
#include <asm-generic/int-ll64.h>
#define build_mmio_read(name, size, type, reg, barrier) \ #define build_mmio_read(name, size, type, reg, barrier) \
static inline type name(const volatile void __iomem *addr) \ static inline type name(const volatile void __iomem *addr) \
...@@ -45,20 +46,40 @@ build_mmio_write(__writel, "l", unsigned int, "r", ) ...@@ -45,20 +46,40 @@ build_mmio_write(__writel, "l", unsigned int, "r", )
#define mmiowb() barrier() #define mmiowb() barrier()
#ifdef CONFIG_X86_64 #ifdef CONFIG_X86_64
build_mmio_read(readq, "q", unsigned long, "=r", :"memory") build_mmio_read(readq, "q", unsigned long, "=r", :"memory")
build_mmio_read(__readq, "q", unsigned long, "=r", )
build_mmio_write(writeq, "q", unsigned long, "r", :"memory") build_mmio_write(writeq, "q", unsigned long, "r", :"memory")
build_mmio_write(__writeq, "q", unsigned long, "r", )
#define readq_relaxed(a) __readq(a) #else
#define __raw_readq __readq
#define __raw_writeq writeq static inline __u64 readq(const volatile void __iomem *addr)
{
const volatile u32 __iomem *p = addr;
u32 low, high;
low = readl(p);
high = readl(p + 1);
return low + ((u64)high << 32);
}
static inline void writeq(__u64 val, volatile void __iomem *addr)
{
writel(val, addr);
writel(val >> 32, addr+4);
}
/* Let people know we have them */
#define readq readq
#define writeq writeq
#endif #endif
#define readq_relaxed(a) readq(a)
#define __raw_readq(a) readq(a)
#define __raw_writeq(val, addr) writeq(val, addr)
/* Let people know that we have them */
#define readq readq
#define writeq writeq
extern int iommu_bio_merge; extern int iommu_bio_merge;
#ifdef CONFIG_X86_32 #ifdef CONFIG_X86_32
......
...@@ -804,6 +804,9 @@ static int pxafb_smart_thread(void *arg) ...@@ -804,6 +804,9 @@ static int pxafb_smart_thread(void *arg)
static int pxafb_smart_init(struct pxafb_info *fbi) static int pxafb_smart_init(struct pxafb_info *fbi)
{ {
if (!(fbi->lccr0 | LCCR0_LCDT))
return 0;
fbi->smart_thread = kthread_run(pxafb_smart_thread, fbi, fbi->smart_thread = kthread_run(pxafb_smart_thread, fbi,
"lcd_refresh"); "lcd_refresh");
if (IS_ERR(fbi->smart_thread)) { if (IS_ERR(fbi->smart_thread)) {
...@@ -1372,7 +1375,7 @@ static void pxafb_decode_mach_info(struct pxafb_info *fbi, ...@@ -1372,7 +1375,7 @@ static void pxafb_decode_mach_info(struct pxafb_info *fbi,
fbi->cmap_inverse = inf->cmap_inverse; fbi->cmap_inverse = inf->cmap_inverse;
fbi->cmap_static = inf->cmap_static; fbi->cmap_static = inf->cmap_static;
switch (lcd_conn & 0xf) { switch (lcd_conn & LCD_TYPE_MASK) {
case LCD_TYPE_MONO_STN: case LCD_TYPE_MONO_STN:
fbi->lccr0 = LCCR0_CMS; fbi->lccr0 = LCCR0_CMS;
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment