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.
This commit is contained in:
Коммит
0dbfe8ddaa
|
@ -414,9 +414,9 @@ void __init config_atari(void)
|
|||
* FDC val = 4 -> Supervisor only */
|
||||
asm volatile ("\n"
|
||||
" .chip 68030\n"
|
||||
" pmove %0@,%/tt1\n"
|
||||
" pmove %0,%/tt1\n"
|
||||
" .chip 68k"
|
||||
: : "a" (&tt1_val));
|
||||
: : "m" (tt1_val));
|
||||
} else {
|
||||
asm volatile ("\n"
|
||||
" .chip 68040\n"
|
||||
|
@ -569,10 +569,10 @@ static void atari_reset(void)
|
|||
: "d0");
|
||||
} else
|
||||
asm volatile ("\n"
|
||||
" pmove %0@,%%tc\n"
|
||||
" pmove %0,%%tc\n"
|
||||
" jmp %1@"
|
||||
: /* no outputs */
|
||||
: "a" (&tc_val), "a" (reset_addr));
|
||||
: "m" (tc_val), "a" (reset_addr));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -50,19 +50,6 @@
|
|||
|
||||
#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_chip;
|
||||
struct irq_desc;
|
||||
|
|
|
@ -172,7 +172,7 @@ void flush_thread(void)
|
|||
|
||||
current->thread.fs = __USER_DS;
|
||||
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)
|
|||
#ifdef CONFIG_FPU
|
||||
if (!FPU_IS_EMU)
|
||||
asm volatile (".chip 68k/68881\n\t"
|
||||
"frestore %0@\n\t"
|
||||
".chip 68k" : : "a" (&zero));
|
||||
"frestore %0\n\t"
|
||||
".chip 68k" : : "m" (zero));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -552,13 +552,13 @@ static inline void bus_error030 (struct frame *fp)
|
|||
|
||||
#ifdef DEBUG
|
||||
asm volatile ("ptestr %3,%2@,#7,%0\n\t"
|
||||
"pmove %%psr,%1@"
|
||||
: "=a&" (desc)
|
||||
: "a" (&temp), "a" (addr), "d" (ssw));
|
||||
"pmove %%psr,%1"
|
||||
: "=a&" (desc), "=m" (temp)
|
||||
: "a" (addr), "d" (ssw));
|
||||
#else
|
||||
asm volatile ("ptestr %2,%1@,#7\n\t"
|
||||
"pmove %%psr,%0@"
|
||||
: : "a" (&temp), "a" (addr), "d" (ssw));
|
||||
"pmove %%psr,%0"
|
||||
: "=m" (temp) : "a" (addr), "d" (ssw));
|
||||
#endif
|
||||
mmusr = temp;
|
||||
|
||||
|
@ -605,20 +605,18 @@ static inline void bus_error030 (struct frame *fp)
|
|||
!(ssw & RW) ? "write" : "read", addr,
|
||||
fp->ptregs.pc, ssw);
|
||||
asm volatile ("ptestr #1,%1@,#0\n\t"
|
||||
"pmove %%psr,%0@"
|
||||
: /* no outputs */
|
||||
: "a" (&temp), "a" (addr));
|
||||
"pmove %%psr,%0"
|
||||
: "=m" (temp)
|
||||
: "a" (addr));
|
||||
mmusr = temp;
|
||||
|
||||
printk ("level 0 mmusr is %#x\n", mmusr);
|
||||
#if 0
|
||||
asm volatile ("pmove %%tt0,%0@"
|
||||
: /* no outputs */
|
||||
: "a" (&tlong));
|
||||
asm volatile ("pmove %%tt0,%0"
|
||||
: "=m" (tlong));
|
||||
printk("tt0 is %#lx, ", tlong);
|
||||
asm volatile ("pmove %%tt1,%0@"
|
||||
: /* no outputs */
|
||||
: "a" (&tlong));
|
||||
asm volatile ("pmove %%tt1,%0"
|
||||
: "=m" (tlong));
|
||||
printk("tt1 is %#lx\n", tlong);
|
||||
#endif
|
||||
#ifdef DEBUG
|
||||
|
@ -668,13 +666,13 @@ static inline void bus_error030 (struct frame *fp)
|
|||
|
||||
#ifdef DEBUG
|
||||
asm volatile ("ptestr #1,%2@,#7,%0\n\t"
|
||||
"pmove %%psr,%1@"
|
||||
: "=a&" (desc)
|
||||
: "a" (&temp), "a" (addr));
|
||||
"pmove %%psr,%1"
|
||||
: "=a&" (desc), "=m" (temp)
|
||||
: "a" (addr));
|
||||
#else
|
||||
asm volatile ("ptestr #1,%1@,#7\n\t"
|
||||
"pmove %%psr,%0@"
|
||||
: : "a" (&temp), "a" (addr));
|
||||
"pmove %%psr,%0"
|
||||
: "=m" (temp) : "a" (addr));
|
||||
#endif
|
||||
mmusr = temp;
|
||||
|
||||
|
|
|
@ -52,9 +52,9 @@ static unsigned long virt_to_phys_slow(unsigned long vaddr)
|
|||
unsigned long *descaddr;
|
||||
|
||||
asm volatile ("ptestr %3,%2@,#7,%0\n\t"
|
||||
"pmove %%psr,%1@"
|
||||
: "=a&" (descaddr)
|
||||
: "a" (&mmusr), "a" (vaddr), "d" (get_fs().seg));
|
||||
"pmove %%psr,%1"
|
||||
: "=a&" (descaddr), "=m" (mmusr)
|
||||
: "a" (vaddr), "d" (get_fs().seg));
|
||||
if (mmusr & (MMU_I|MMU_B|MMU_L))
|
||||
return 0;
|
||||
descaddr = phys_to_virt((unsigned long)descaddr);
|
||||
|
|
|
@ -565,8 +565,7 @@ static int __devinit esp_mac_probe(struct platform_device *dev)
|
|||
esp_chips[dev->id] = esp;
|
||||
mb();
|
||||
if (esp_chips[!dev->id] == NULL) {
|
||||
err = request_irq(host->irq, mac_scsi_esp_intr, 0,
|
||||
"Mac ESP", NULL);
|
||||
err = request_irq(host->irq, mac_scsi_esp_intr, 0, "ESP", NULL);
|
||||
if (err < 0) {
|
||||
esp_chips[dev->id] = NULL;
|
||||
goto fail_free_priv;
|
||||
|
|
|
@ -339,9 +339,6 @@ static void mac_scsi_reset_boot(struct Scsi_Host *instance)
|
|||
|
||||
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 */
|
||||
NCR5380_write( TARGET_COMMAND_REG,
|
||||
PHASE_SR_TO_TCR( NCR5380_read(STATUS_REG) ));
|
||||
|
@ -357,9 +354,6 @@ static void mac_scsi_reset_boot(struct Scsi_Host *instance)
|
|||
for( end = jiffies + AFTER_RESET_DELAY; time_before(jiffies, end); )
|
||||
barrier();
|
||||
|
||||
/* switch on SCSI IRQ again */
|
||||
enable_irq(IRQ_MAC_SCSI);
|
||||
|
||||
printk(KERN_INFO " done\n" );
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -592,12 +592,12 @@ static int __init macfb_init(void)
|
|||
if (!fb_info.screen_base)
|
||||
return -ENODEV;
|
||||
|
||||
printk("macfb: framebuffer at 0x%08lx, mapped to 0x%p, size %dk\n",
|
||||
macfb_fix.smem_start, fb_info.screen_base,
|
||||
macfb_fix.smem_len / 1024);
|
||||
printk("macfb: mode is %dx%dx%d, linelength=%d\n",
|
||||
macfb_defined.xres, macfb_defined.yres,
|
||||
macfb_defined.bits_per_pixel, macfb_fix.line_length);
|
||||
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_len / 1024);
|
||||
pr_info("macfb: mode is %dx%dx%d, linelength=%d\n",
|
||||
macfb_defined.xres, macfb_defined.yres,
|
||||
macfb_defined.bits_per_pixel, macfb_fix.line_length);
|
||||
|
||||
/* Fill in the available video resolution */
|
||||
macfb_defined.xres_virtual = macfb_defined.xres;
|
||||
|
@ -613,14 +613,10 @@ static int __init macfb_init(void)
|
|||
|
||||
switch (macfb_defined.bits_per_pixel) {
|
||||
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.green.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;
|
||||
break;
|
||||
case 2:
|
||||
|
@ -660,11 +656,10 @@ static int __init macfb_init(void)
|
|||
macfb_fix.visual = FB_VISUAL_TRUECOLOR;
|
||||
break;
|
||||
default:
|
||||
video_cmap_len = 0;
|
||||
macfb_fix.visual = FB_VISUAL_MONO01;
|
||||
printk("macfb: unknown or unsupported bit depth: %d\n",
|
||||
pr_err("macfb: unknown or unsupported bit depth: %d\n",
|
||||
macfb_defined.bits_per_pixel);
|
||||
break;
|
||||
err = -EINVAL;
|
||||
goto fail_unmap;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -734,8 +729,8 @@ static int __init macfb_init(void)
|
|||
case MAC_MODEL_Q950:
|
||||
strcpy(macfb_fix.id, "DAFB");
|
||||
macfb_setpalette = dafb_setpalette;
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
dafb_cmap_regs = ioremap(DAFB_BASE, 0x1000);
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
break;
|
||||
|
||||
/*
|
||||
|
@ -744,8 +739,8 @@ static int __init macfb_init(void)
|
|||
case MAC_MODEL_LCII:
|
||||
strcpy(macfb_fix.id, "V8");
|
||||
macfb_setpalette = v8_brazil_setpalette;
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000);
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
break;
|
||||
|
||||
/*
|
||||
|
@ -758,8 +753,8 @@ static int __init macfb_init(void)
|
|||
case MAC_MODEL_P600:
|
||||
strcpy(macfb_fix.id, "Brazil");
|
||||
macfb_setpalette = v8_brazil_setpalette;
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000);
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
break;
|
||||
|
||||
/*
|
||||
|
@ -773,10 +768,10 @@ static int __init macfb_init(void)
|
|||
case MAC_MODEL_P520:
|
||||
case MAC_MODEL_P550:
|
||||
case MAC_MODEL_P460:
|
||||
macfb_setpalette = v8_brazil_setpalette;
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
strcpy(macfb_fix.id, "Sonora");
|
||||
macfb_setpalette = v8_brazil_setpalette;
|
||||
v8_brazil_cmap_regs = ioremap(DAC_BASE, 0x1000);
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
break;
|
||||
|
||||
/*
|
||||
|
@ -786,10 +781,10 @@ static int __init macfb_init(void)
|
|||
*/
|
||||
case MAC_MODEL_IICI:
|
||||
case MAC_MODEL_IISI:
|
||||
macfb_setpalette = rbv_setpalette;
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
strcpy(macfb_fix.id, "RBV");
|
||||
macfb_setpalette = rbv_setpalette;
|
||||
rbv_cmap_regs = ioremap(DAC_BASE, 0x1000);
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
break;
|
||||
|
||||
/*
|
||||
|
@ -797,10 +792,10 @@ static int __init macfb_init(void)
|
|||
*/
|
||||
case MAC_MODEL_Q840:
|
||||
case MAC_MODEL_C660:
|
||||
macfb_setpalette = civic_setpalette;
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
strcpy(macfb_fix.id, "Civic");
|
||||
macfb_setpalette = civic_setpalette;
|
||||
civic_cmap_regs = ioremap(CIVIC_BASE, 0x1000);
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
break;
|
||||
|
||||
|
||||
|
@ -809,26 +804,26 @@ static int __init macfb_init(void)
|
|||
* We think this may be like the LC II
|
||||
*/
|
||||
case MAC_MODEL_LC:
|
||||
strcpy(macfb_fix.id, "LC");
|
||||
if (vidtest) {
|
||||
macfb_setpalette = v8_brazil_setpalette;
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
v8_brazil_cmap_regs =
|
||||
ioremap(DAC_BASE, 0x1000);
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
}
|
||||
strcpy(macfb_fix.id, "LC");
|
||||
break;
|
||||
|
||||
/*
|
||||
* We think this may be like the LC II
|
||||
*/
|
||||
case MAC_MODEL_CCL:
|
||||
strcpy(macfb_fix.id, "Color Classic");
|
||||
if (vidtest) {
|
||||
macfb_setpalette = v8_brazil_setpalette;
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
v8_brazil_cmap_regs =
|
||||
ioremap(DAC_BASE, 0x1000);
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
}
|
||||
strcpy(macfb_fix.id, "Color Classic");
|
||||
break;
|
||||
|
||||
/*
|
||||
|
@ -893,10 +888,10 @@ static int __init macfb_init(void)
|
|||
case MAC_MODEL_PB270C:
|
||||
case MAC_MODEL_PB280:
|
||||
case MAC_MODEL_PB280C:
|
||||
macfb_setpalette = csc_setpalette;
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
strcpy(macfb_fix.id, "CSC");
|
||||
macfb_setpalette = csc_setpalette;
|
||||
csc_cmap_regs = ioremap(CSC_BASE, 0x1000);
|
||||
macfb_defined.activate = FB_ACTIVATE_NOW;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -918,8 +913,9 @@ static int __init macfb_init(void)
|
|||
if (err)
|
||||
goto fail_dealloc;
|
||||
|
||||
printk("fb%d: %s frame buffer device\n",
|
||||
fb_info.node, fb_info.fix.id);
|
||||
pr_info("fb%d: %s frame buffer device\n",
|
||||
fb_info.node, fb_info.fix.id);
|
||||
|
||||
return 0;
|
||||
|
||||
fail_dealloc:
|
||||
|
|
Загрузка…
Ссылка в новой задаче