Commit 0dbfe8dd authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
  m68k: Fix assembler constraint to prevent overeager gcc optimisation
  mac_esp: rename irq
  mac_scsi: dont enable mac_scsi irq before requesting it
  macfb: fix black and white modes
  m68k/irq: Remove obsolete IRQ_FLG_* definitions

Fix up trivial conflict in arch/m68k/kernel/process_mm.c as per Geert.
parents 87f71ae2 2a353506
...@@ -414,9 +414,9 @@ void __init config_atari(void) ...@@ -414,9 +414,9 @@ void __init config_atari(void)
* FDC val = 4 -> Supervisor only */ * FDC val = 4 -> Supervisor only */
asm volatile ("\n" asm volatile ("\n"
" .chip 68030\n" " .chip 68030\n"
" pmove %0@,%/tt1\n" " pmove %0,%/tt1\n"
" .chip 68k" " .chip 68k"
: : "a" (&tt1_val)); : : "m" (tt1_val));
} else { } else {
asm volatile ("\n" asm volatile ("\n"
" .chip 68040\n" " .chip 68040\n"
...@@ -569,10 +569,10 @@ static void atari_reset(void) ...@@ -569,10 +569,10 @@ static void atari_reset(void)
: "d0"); : "d0");
} else } else
asm volatile ("\n" asm volatile ("\n"
" pmove %0@,%%tc\n" " pmove %0,%%tc\n"
" jmp %1@" " jmp %1@"
: /* no outputs */ : /* no outputs */
: "a" (&tc_val), "a" (reset_addr)); : "m" (tc_val), "a" (reset_addr));
} }
......
...@@ -50,19 +50,6 @@ ...@@ -50,19 +50,6 @@
#define IRQ_USER 8 #define IRQ_USER 8
/*
* various flags for request_irq() - the Amiga now uses the standard
* mechanism like all other architectures - IRQF_DISABLED and
* IRQF_SHARED are your friends.
*/
#ifndef MACH_AMIGA_ONLY
#define IRQ_FLG_LOCK (0x0001) /* handler is not replaceable */
#define IRQ_FLG_REPLACE (0x0002) /* replace existing handler */
#define IRQ_FLG_FAST (0x0004)
#define IRQ_FLG_SLOW (0x0008)
#define IRQ_FLG_STD (0x8000) /* internally used */
#endif
struct irq_data; struct irq_data;
struct irq_chip; struct irq_chip;
struct irq_desc; struct irq_desc;
......
...@@ -172,7 +172,7 @@ void flush_thread(void) ...@@ -172,7 +172,7 @@ void flush_thread(void)
current->thread.fs = __USER_DS; current->thread.fs = __USER_DS;
if (!FPU_IS_EMU) if (!FPU_IS_EMU)
asm volatile ("frestore %0@" : : "a" (&zero) : "memory"); asm volatile("frestore %0": :"m" (zero));
} }
/* /*
......
...@@ -163,8 +163,8 @@ void flush_thread(void) ...@@ -163,8 +163,8 @@ void flush_thread(void)
#ifdef CONFIG_FPU #ifdef CONFIG_FPU
if (!FPU_IS_EMU) if (!FPU_IS_EMU)
asm volatile (".chip 68k/68881\n\t" asm volatile (".chip 68k/68881\n\t"
"frestore %0@\n\t" "frestore %0\n\t"
".chip 68k" : : "a" (&zero)); ".chip 68k" : : "m" (zero));
#endif #endif
} }
......
...@@ -552,13 +552,13 @@ static inline void bus_error030 (struct frame *fp) ...@@ -552,13 +552,13 @@ static inline void bus_error030 (struct frame *fp)
#ifdef DEBUG #ifdef DEBUG
asm volatile ("ptestr %3,%2@,#7,%0\n\t" asm volatile ("ptestr %3,%2@,#7,%0\n\t"
"pmove %%psr,%1@" "pmove %%psr,%1"
: "=a&" (desc) : "=a&" (desc), "=m" (temp)
: "a" (&temp), "a" (addr), "d" (ssw)); : "a" (addr), "d" (ssw));
#else #else
asm volatile ("ptestr %2,%1@,#7\n\t" asm volatile ("ptestr %2,%1@,#7\n\t"
"pmove %%psr,%0@" "pmove %%psr,%0"
: : "a" (&temp), "a" (addr), "d" (ssw)); : "=m" (temp) : "a" (addr), "d" (ssw));
#endif #endif
mmusr = temp; mmusr = temp;
...@@ -605,20 +605,18 @@ static inline void bus_error030 (struct frame *fp) ...@@ -605,20 +605,18 @@ static inline void bus_error030 (struct frame *fp)
!(ssw & RW) ? "write" : "read", addr, !(ssw & RW) ? "write" : "read", addr,
fp->ptregs.pc, ssw); fp->ptregs.pc, ssw);
asm volatile ("ptestr #1,%1@,#0\n\t" asm volatile ("ptestr #1,%1@,#0\n\t"
"pmove %%psr,%0@" "pmove %%psr,%0"
: /* no outputs */ : "=m" (temp)
: "a" (&temp), "a" (addr)); : "a" (addr));
mmusr = temp; mmusr = temp;
printk ("level 0 mmusr is %#x\n", mmusr); printk ("level 0 mmusr is %#x\n", mmusr);
#if 0 #if 0
asm volatile ("pmove %%tt0,%0@" asm volatile ("pmove %%tt0,%0"
: /* no outputs */ : "=m" (tlong));
: "a" (&tlong));
printk("tt0 is %#lx, ", tlong); printk("tt0 is %#lx, ", tlong);
asm volatile ("pmove %%tt1,%0@" asm volatile ("pmove %%tt1,%0"
: /* no outputs */ : "=m" (tlong));
: "a" (&tlong));
printk("tt1 is %#lx\n", tlong); printk("tt1 is %#lx\n", tlong);
#endif #endif
#ifdef DEBUG #ifdef DEBUG
...@@ -668,13 +666,13 @@ static inline void bus_error030 (struct frame *fp) ...@@ -668,13 +666,13 @@ static inline void bus_error030 (struct frame *fp)
#ifdef DEBUG #ifdef DEBUG
asm volatile ("ptestr #1,%2@,#7,%0\n\t" asm volatile ("ptestr #1,%2@,#7,%0\n\t"
"pmove %%psr,%1@" "pmove %%psr,%1"
: "=a&" (desc) : "=a&" (desc), "=m" (temp)
: "a" (&temp), "a" (addr)); : "a" (addr));
#else #else
asm volatile ("ptestr #1,%1@,#7\n\t" asm volatile ("ptestr #1,%1@,#7\n\t"
"pmove %%psr,%0@" "pmove %%psr,%0"
: : "a" (&temp), "a" (addr)); : "=m" (temp) : "a" (addr));
#endif #endif
mmusr = temp; mmusr = temp;
......
...@@ -52,9 +52,9 @@ static unsigned long virt_to_phys_slow(unsigned long vaddr) ...@@ -52,9 +52,9 @@ static unsigned long virt_to_phys_slow(unsigned long vaddr)
unsigned long *descaddr; unsigned long *descaddr;
asm volatile ("ptestr %3,%2@,#7,%0\n\t" asm volatile ("ptestr %3,%2@,#7,%0\n\t"
"pmove %%psr,%1@" "pmove %%psr,%1"
: "=a&" (descaddr) : "=a&" (descaddr), "=m" (mmusr)
: "a" (&mmusr), "a" (vaddr), "d" (get_fs().seg)); : "a" (vaddr), "d" (get_fs().seg));
if (mmusr & (MMU_I|MMU_B|MMU_L)) if (mmusr & (MMU_I|MMU_B|MMU_L))
return 0; return 0;
descaddr = phys_to_virt((unsigned long)descaddr); descaddr = phys_to_virt((unsigned long)descaddr);
......
...@@ -565,8 +565,7 @@ static int __devinit esp_mac_probe(struct platform_device *dev) ...@@ -565,8 +565,7 @@ static int __devinit esp_mac_probe(struct platform_device *dev)
esp_chips[dev->id] = esp; esp_chips[dev->id] = esp;
mb(); mb();
if (esp_chips[!dev->id] == NULL) { if (esp_chips[!dev->id] == NULL) {
err = request_irq(host->irq, mac_scsi_esp_intr, 0, err = request_irq(host->irq, mac_scsi_esp_intr, 0, "ESP", NULL);
"Mac ESP", NULL);
if (err < 0) { if (err < 0) {
esp_chips[dev->id] = NULL; esp_chips[dev->id] = NULL;
goto fail_free_priv; goto fail_free_priv;
......
...@@ -339,9 +339,6 @@ static void mac_scsi_reset_boot(struct Scsi_Host *instance) ...@@ -339,9 +339,6 @@ static void mac_scsi_reset_boot(struct Scsi_Host *instance)
printk(KERN_INFO "Macintosh SCSI: resetting the SCSI bus..." ); printk(KERN_INFO "Macintosh SCSI: resetting the SCSI bus..." );
/* switch off SCSI IRQ - catch an interrupt without IRQ bit set else */
disable_irq(IRQ_MAC_SCSI);
/* get in phase */ /* get in phase */
NCR5380_write( TARGET_COMMAND_REG, NCR5380_write( TARGET_COMMAND_REG,
PHASE_SR_TO_TCR( NCR5380_read(STATUS_REG) )); PHASE_SR_TO_TCR( NCR5380_read(STATUS_REG) ));
...@@ -357,9 +354,6 @@ static void mac_scsi_reset_boot(struct Scsi_Host *instance) ...@@ -357,9 +354,6 @@ static void mac_scsi_reset_boot(struct Scsi_Host *instance)
for( end = jiffies + AFTER_RESET_DELAY; time_before(jiffies, end); ) for( end = jiffies + AFTER_RESET_DELAY; time_before(jiffies, end); )
barrier(); barrier();
/* switch on SCSI IRQ again */
enable_irq(IRQ_MAC_SCSI);
printk(KERN_INFO " done\n" ); printk(KERN_INFO " done\n" );
} }
#endif #endif
......
...@@ -592,10 +592,10 @@ static int __init macfb_init(void) ...@@ -592,10 +592,10 @@ static int __init macfb_init(void)
if (!fb_info.screen_base) if (!fb_info.screen_base)
return -ENODEV; return -ENODEV;
printk("macfb: framebuffer at 0x%08lx, mapped to 0x%p, size %dk\n", pr_info("macfb: framebuffer at 0x%08lx, mapped to 0x%p, size %dk\n",
macfb_fix.smem_start, fb_info.screen_base, macfb_fix.smem_start, fb_info.screen_base,
macfb_fix.smem_len / 1024); macfb_fix.smem_len / 1024);
printk("macfb: mode is %dx%dx%d, linelength=%d\n", pr_info("macfb: mode is %dx%dx%d, linelength=%d\n",
macfb_defined.xres, macfb_defined.yres, macfb_defined.xres, macfb_defined.yres,
macfb_defined.bits_per_pixel, macfb_fix.line_length); macfb_defined.bits_per_pixel, macfb_fix.line_length);
...@@ -613,14 +613,10 @@ static int __init macfb_init(void) ...@@ -613,14 +613,10 @@ static int __init macfb_init(void)
switch (macfb_defined.bits_per_pixel) { switch (macfb_defined.bits_per_pixel) {
case 1: case 1:
/*
* XXX: I think this will catch any program that tries
* to do FBIO_PUTCMAP when the visual is monochrome.
*/
macfb_defined.red.length = macfb_defined.bits_per_pixel; macfb_defined.red.length = macfb_defined.bits_per_pixel;
macfb_defined.green.length = macfb_defined.bits_per_pixel; macfb_defined.green.length = macfb_defined.bits_per_pixel;
macfb_defined.blue.length = macfb_defined.bits_per_pixel; macfb_defined.blue.length = macfb_defined.bits_per_pixel;
video_cmap_len = 0; video_cmap_len = 2;
macfb_fix.visual = FB_VISUAL_MONO01; macfb_fix.visual = FB_VISUAL_MONO01;
break; break;
case 2: case 2:
...@@ -660,11 +656,10 @@ static int __init macfb_init(void) ...@@ -660,11 +656,10 @@ static int __init macfb_init(void)
macfb_fix.visual = FB_VISUAL_TRUECOLOR; macfb_fix.visual = FB_VISUAL_TRUECOLOR;
break; break;
default: default:
video_cmap_len = 0; pr_err("macfb: unknown or unsupported bit depth: %d\n",
macfb_fix.visual = FB_VISUAL_MONO01;
printk("macfb: unknown or unsupported bit depth: %d\n",
macfb_defined.bits_per_pixel); macfb_defined.bits_per_pixel);
break; err = -EINVAL;
goto fail_unmap;
} }
/* /*
...@@ -734,8 +729,8 @@ static int __init macfb_init(void) ...@@ -734,8 +729,8 @@ static int __init macfb_init(void)
case MAC_MODEL_Q950: case MAC_MODEL_Q950:
strcpy(macfb_fix.id, "DAFB"); strcpy(macfb_fix.id, "DAFB");
macfb_setpalette = dafb_setpalette; macfb_setpalette = dafb_setpalette;
macfb_defined.activate = FB_ACTIVATE_NOW;
dafb_cmap_regs = ioremap(DAFB_BASE, 0x1000); dafb_cmap_regs = ioremap(DAFB_BASE, 0x1000);
macfb_defined.activate = FB_ACTIVATE_NOW;
break; break;
/* /*
...@@ -744,8 +739,8 @@ static int __init macfb_init(void) ...@@ -744,8 +739,8 @@ static int __init macfb_init(void)
case MAC_MODEL_LCII: case MAC_MODEL_LCII:
strcpy(macfb_fix.id, "V8"); strcpy(macfb_fix.id, "V8");
macfb_setpalette = v8_brazil_setpalette; macfb_setpalette = v8_brazil_setpalette;
macfb_defined.activate = FB_ACTIVATE_NOW;
v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000); v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000);
macfb_defined.activate = FB_ACTIVATE_NOW;
break; break;
/* /*
...@@ -758,8 +753,8 @@ static int __init macfb_init(void) ...@@ -758,8 +753,8 @@ static int __init macfb_init(void)
case MAC_MODEL_P600: case MAC_MODEL_P600:
strcpy(macfb_fix.id, "Brazil"); strcpy(macfb_fix.id, "Brazil");
macfb_setpalette = v8_brazil_setpalette; macfb_setpalette = v8_brazil_setpalette;
macfb_defined.activate = FB_ACTIVATE_NOW;
v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000); v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000);
macfb_defined.activate = FB_ACTIVATE_NOW;
break; break;
/* /*
...@@ -773,10 +768,10 @@ static int __init macfb_init(void) ...@@ -773,10 +768,10 @@ static int __init macfb_init(void)
case MAC_MODEL_P520: case MAC_MODEL_P520:
case MAC_MODEL_P550: case MAC_MODEL_P550:
case MAC_MODEL_P460: case MAC_MODEL_P460:
macfb_setpalette = v8_brazil_setpalette;
macfb_defined.activate = FB_ACTIVATE_NOW;
strcpy(macfb_fix.id, "Sonora"); strcpy(macfb_fix.id, "Sonora");
macfb_setpalette = v8_brazil_setpalette;
v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000); v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000);
macfb_defined.activate = FB_ACTIVATE_NOW;
break; break;
/* /*
...@@ -786,10 +781,10 @@ static int __init macfb_init(void) ...@@ -786,10 +781,10 @@ static int __init macfb_init(void)
*/ */
case MAC_MODEL_IICI: case MAC_MODEL_IICI:
case MAC_MODEL_IISI: case MAC_MODEL_IISI:
macfb_setpalette = rbv_setpalette;
macfb_defined.activate = FB_ACTIVATE_NOW;
strcpy(macfb_fix.id, "RBV"); strcpy(macfb_fix.id, "RBV");
macfb_setpalette = rbv_setpalette;
rbv_cmap_regs = ioremap(DAC_BASE, 0x1000); rbv_cmap_regs = ioremap(DAC_BASE, 0x1000);
macfb_defined.activate = FB_ACTIVATE_NOW;
break; break;
/* /*
...@@ -797,10 +792,10 @@ static int __init macfb_init(void) ...@@ -797,10 +792,10 @@ static int __init macfb_init(void)
*/ */
case MAC_MODEL_Q840: case MAC_MODEL_Q840:
case MAC_MODEL_C660: case MAC_MODEL_C660:
macfb_setpalette = civic_setpalette;
macfb_defined.activate = FB_ACTIVATE_NOW;
strcpy(macfb_fix.id, "Civic"); strcpy(macfb_fix.id, "Civic");
macfb_setpalette = civic_setpalette;
civic_cmap_regs = ioremap(CIVIC_BASE, 0x1000); civic_cmap_regs = ioremap(CIVIC_BASE, 0x1000);
macfb_defined.activate = FB_ACTIVATE_NOW;
break; break;
...@@ -809,26 +804,26 @@ static int __init macfb_init(void) ...@@ -809,26 +804,26 @@ static int __init macfb_init(void)
* We think this may be like the LC II * We think this may be like the LC II
*/ */
case MAC_MODEL_LC: case MAC_MODEL_LC:
strcpy(macfb_fix.id, "LC");
if (vidtest) { if (vidtest) {
macfb_setpalette = v8_brazil_setpalette; macfb_setpalette = v8_brazil_setpalette;
macfb_defined.activate = FB_ACTIVATE_NOW;
v8_brazil_cmap_regs = v8_brazil_cmap_regs =
ioremap(DAC_BASE, 0x1000); ioremap(DAC_BASE, 0x1000);
macfb_defined.activate = FB_ACTIVATE_NOW;
} }
strcpy(macfb_fix.id, "LC");
break; break;
/* /*
* We think this may be like the LC II * We think this may be like the LC II
*/ */
case MAC_MODEL_CCL: case MAC_MODEL_CCL:
strcpy(macfb_fix.id, "Color Classic");
if (vidtest) { if (vidtest) {
macfb_setpalette = v8_brazil_setpalette; macfb_setpalette = v8_brazil_setpalette;
macfb_defined.activate = FB_ACTIVATE_NOW;
v8_brazil_cmap_regs = v8_brazil_cmap_regs =
ioremap(DAC_BASE, 0x1000); ioremap(DAC_BASE, 0x1000);
macfb_defined.activate = FB_ACTIVATE_NOW;
} }
strcpy(macfb_fix.id, "Color Classic");
break; break;
/* /*
...@@ -893,10 +888,10 @@ static int __init macfb_init(void) ...@@ -893,10 +888,10 @@ static int __init macfb_init(void)
case MAC_MODEL_PB270C: case MAC_MODEL_PB270C:
case MAC_MODEL_PB280: case MAC_MODEL_PB280:
case MAC_MODEL_PB280C: case MAC_MODEL_PB280C:
macfb_setpalette = csc_setpalette;
macfb_defined.activate = FB_ACTIVATE_NOW;
strcpy(macfb_fix.id, "CSC"); strcpy(macfb_fix.id, "CSC");
macfb_setpalette = csc_setpalette;
csc_cmap_regs = ioremap(CSC_BASE, 0x1000); csc_cmap_regs = ioremap(CSC_BASE, 0x1000);
macfb_defined.activate = FB_ACTIVATE_NOW;
break; break;
default: default:
...@@ -918,8 +913,9 @@ static int __init macfb_init(void) ...@@ -918,8 +913,9 @@ static int __init macfb_init(void)
if (err) if (err)
goto fail_dealloc; goto fail_dealloc;
printk("fb%d: %s frame buffer device\n", pr_info("fb%d: %s frame buffer device\n",
fb_info.node, fb_info.fix.id); fb_info.node, fb_info.fix.id);
return 0; return 0;
fail_dealloc: fail_dealloc:
......
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