Skip to content

Commit

Permalink
Merge branch 'x86/io' into x86/iommu
Browse files Browse the repository at this point in the history
Merge x86/io into x86/iommu due to a small patch conflict in io.h.
  • Loading branch information
Ingo Molnar committed Dec 3, 2008
2 parents dcb7731 + 93093d0 commit 6083aa4
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 14 deletions.
1 change: 1 addition & 0 deletions arch/arm/mach-pxa/include/mach/pxafb.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#define LCD_CONN_TYPE(_x) ((_x) & 0x0f)
#define LCD_CONN_WIDTH(_x) (((_x) >> 4) & 0x1f)

#define LCD_TYPE_MASK 0xf
#define LCD_TYPE_UNKNOWN 0
#define LCD_TYPE_MONO_STN 1
#define LCD_TYPE_MONO_DSTN 2
Expand Down
7 changes: 4 additions & 3 deletions arch/arm/mach-pxa/reset.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,12 +90,13 @@ void arch_reset(char mode)
/* Jump into ROM at address 0 */
cpu_reset(0);
break;
case 'h':
do_hw_reset();
break;
case 'g':
do_gpio_reset();
break;
case 'h':
default:
do_hw_reset();
break;
}
}

4 changes: 2 additions & 2 deletions arch/arm/mach-pxa/spitz.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
static unsigned long spitz_pin_config[] __initdata = {
/* Chip Selects */
GPIO78_nCS_2, /* SCOOP #2 */
GPIO79_nCS_3, /* NAND */
GPIO80_nCS_4, /* SCOOP #1 */

/* LCD - 16bpp Active TFT */
Expand Down Expand Up @@ -97,10 +98,10 @@ static unsigned long spitz_pin_config[] __initdata = {
GPIO51_nPIOW,
GPIO85_nPCE_1,
GPIO54_nPCE_2,
GPIO79_PSKTSEL,
GPIO55_nPREG,
GPIO56_nPWAIT,
GPIO57_nIOIS16,
GPIO104_PSKTSEL,

/* MMC */
GPIO32_MMC_CLK,
Expand Down Expand Up @@ -686,7 +687,6 @@ static void __init akita_init(void)
spitz_pcmcia_config.num_devs = 1;
platform_scoop_config = &spitz_pcmcia_config;

pxa_set_i2c_info(NULL);
i2c_register_board_info(0, ARRAY_AND_SIZE(akita_i2c_board_info));

common_init();
Expand Down
2 changes: 2 additions & 0 deletions arch/x86/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ config X86_64
config X86
def_bool y
select HAVE_AOUT if X86_32
select HAVE_READQ
select HAVE_WRITEQ
select HAVE_UNSTABLE_SCHED_CLOCK
select HAVE_IDE
select HAVE_OPROFILE
Expand Down
37 changes: 29 additions & 8 deletions arch/x86/include/asm/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#define ARCH_HAS_IOREMAP_WC

#include <linux/compiler.h>
#include <asm-generic/int-ll64.h>

#define build_mmio_read(name, size, type, reg, barrier) \
static inline type name(const volatile void __iomem *addr) \
Expand Down Expand Up @@ -45,20 +46,40 @@ build_mmio_write(__writel, "l", unsigned int, "r", )
#define mmiowb() barrier()

#ifdef CONFIG_X86_64

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", )

#define readq_relaxed(a) __readq(a)
#define __raw_readq __readq
#define __raw_writeq writeq
#else

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

#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;

#ifdef CONFIG_X86_32
Expand Down
5 changes: 4 additions & 1 deletion drivers/video/pxafb.c
Original file line number Diff line number Diff line change
Expand Up @@ -804,6 +804,9 @@ static int pxafb_smart_thread(void *arg)

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,
"lcd_refresh");
if (IS_ERR(fbi->smart_thread)) {
Expand Down Expand Up @@ -1372,7 +1375,7 @@ static void pxafb_decode_mach_info(struct pxafb_info *fbi,
fbi->cmap_inverse = inf->cmap_inverse;
fbi->cmap_static = inf->cmap_static;

switch (lcd_conn & 0xf) {
switch (lcd_conn & LCD_TYPE_MASK) {
case LCD_TYPE_MONO_STN:
fbi->lccr0 = LCCR0_CMS;
break;
Expand Down

0 comments on commit 6083aa4

Please sign in to comment.