Commit 6dc7d410 authored by Linus Torvalds's avatar Linus Torvalds

Import 2.3.45pre2

parent 0c050f6b
......@@ -270,7 +270,7 @@ CONFIG_NET_ETHERNET=y
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_DEPCA is not set
# CONFIG_NET_ISA is not set
CONFIG_NET_EISA=y
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_APRICOT is not set
# CONFIG_CS89x0 is not set
......@@ -279,6 +279,7 @@ CONFIG_NET_EISA=y
# CONFIG_DGRS is not set
CONFIG_EEXPRESS_PRO100=y
# CONFIG_NE2K_PCI is not set
# CONFIG_8139TOO is not set
# CONFIG_SIS900 is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
......@@ -453,7 +454,6 @@ CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_SYSV_FS_WRITE is not set
# CONFIG_UDF_FS is not set
# CONFIG_UDF_RW is not set
# CONFIG_UFS_FS is not set
# CONFIG_UFS_FS_WRITE is not set
......
......@@ -161,10 +161,17 @@ if [ "$CONFIG_SCSI" != "n" ]; then
comment 'SCSI support type (disk, tape, CD-ROM)'
dep_tristate ' SCSI disk support' CONFIG_BLK_DEV_SD $CONFIG_SCSI
if [ "$CONFIG_BLK_DEV_SD" != "n" ]; then
int 'Maximum number of SCSI disks that can be loaded as modules' CONFIG_SD_EXTRA_DEVS 40
fi
dep_tristate ' SCSI tape support' CONFIG_CHR_DEV_ST $CONFIG_SCSI
if [ "$CONFIG_BLK_DEV_ST" != "n" ]; then
int 'Maximum number of SCSI tapes that can be loaded as modules' CONFIG_ST_EXTRA_DEVS 2
fi
dep_tristate ' SCSI CD-ROM support' CONFIG_BLK_DEV_SR $CONFIG_SCSI
if [ "$CONFIG_BLK_DEV_SR" != "n" ]; then
bool ' Enable vendor-specific extensions (for SCSI CDROM)' CONFIG_BLK_DEV_SR_VENDOR
int 'Maximum number of CDROM devices that can be loaded as modules' CONFIG_SR_EXTRA_DEVS 2
fi
dep_tristate ' SCSI generic support' CONFIG_CHR_DEV_SG $CONFIG_SCSI
......@@ -273,9 +280,13 @@ if [ "$CONFIG_NET" = "y" ]; then
tristate ' Apollo 3c505 support' CONFIG_APOLLO_ELPLUS
fi
if [ "$CONFIG_MAC" = "y" ]; then
bool ' Mac NS 8390 based ethernet cards' CONFIG_DAYNAPORT
# bool ' Macintosh (AV) onboard MACE ethernet' CONFIG_MACMACE
bool ' Macintosh (Quadra) onboard SONIC ethernet' CONFIG_MACSONIC
bool ' Macintosh NS 8390 based ethernet cards' CONFIG_MAC8390
tristate ' Macintosh SONIC based ethernet (onboard, NuBus, LC, CS)' CONFIG_MACSONIC
tristate ' Macintosh SMC 9194 based ethernet cards' CONFIG_SMC9194
tristate ' Macintosh CS89x0 based ethernet cards' CONFIG_MAC89x0
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
bool ' Macintosh (AV) onboard MACE ethernet (EXPERIMENTAL)' CONFIG_MACMACE
fi
fi
if [ "$CONFIG_VME" = "y" -a "$CONFIG_MVME147" = "y" ]; then
tristate ' MVME147 (Lance) Ethernet support' CONFIG_MVME147_NET
......@@ -352,12 +363,6 @@ if [ "$CONFIG_ATARI" = "y" ]; then
define_bool CONFIG_BUSMOUSE y
fi
fi
if [ "$CONFIG_MAC" = "y" ]; then
bool 'Mac ADB mouse support' CONFIG_ADBMOUSE
if [ "$CONFIG_ADBMOUSE" != "n" ]; then
define_bool CONFIG_BUSMOUSE y
fi
fi
if [ "$CONFIG_ATARI" = "y" ]; then
tristate 'Atari MFP serial support' CONFIG_ATARI_MFPSER
tristate 'Atari SCC serial support' CONFIG_ATARI_SCC
......@@ -384,7 +389,20 @@ if [ "$CONFIG_PARPORT" = "n" ]; then
fi
fi
if [ "$CONFIG_MAC" = "y" ]; then
bool 'Mac SCC serial support' CONFIG_MAC_SCC
tristate 'Macintosh serial support' CONFIG_MAC_SCC
bool 'Apple Desktop Bus (ADB) support' CONFIG_ADB
if [ "$CONFIG_ADB" = "y" ]; then
bool ' Support for ADB keyboard' CONFIG_ADB_KEYBOARD
bool ' Support for ADB mouse' CONFIG_ADBMOUSE
bool ' Include Mac II ADB driver' CONFIG_ADB_MACII
bool ' Include Mac IIsi ADB driver' CONFIG_ADB_MACIISI
bool ' Include CUDA ADB driver' CONFIG_ADB_CUDA
bool ' Include IOP (IIfx/Quadra 9x0) ADB driver' CONFIG_ADB_IOP
bool ' Include PMU (Powerbook) ADB driver' CONFIG_ADB_PMU68K
fi
if [ "$CONFIG_ADBMOUSE" = "y" ]; then
define_bool CONFIG_BUSMOUSE y
fi
fi
if [ "$CONFIG_HP300" = "y" -a "$CONFIG_DIO" = "y" ]; then
tristate 'HP DCA serial support' CONFIG_HPDCA
......
......@@ -27,6 +27,8 @@ endif
head.o: head.S m68k_defs.h
entry.o: entry.S m68k_defs.h
sun3-head.o: sun3-head.S m68k_defs.h
m68k_defs.h: m68k_defs.c m68k_defs.head
......
......@@ -236,12 +236,12 @@ SYMBOL_NAME_LABEL(ret_from_interrupt)
#endif
/* check if we need to do software interrupts */
movel SYMBOL_NAME(bh_active),%d0
andl SYMBOL_NAME(bh_mask),%d0
movel SYMBOL_NAME(softirq_state),%d0
andl SYMBOL_NAME(softirq_state)+4,%d0
jeq SYMBOL_NAME(ret_from_exception)
pea SYMBOL_NAME(ret_from_exception)
jra SYMBOL_NAME(do_bottom_half)
jra SYMBOL_NAME(do_softirq)
/* Handler for uninitialized and spurious interrupts */
......
......@@ -18,7 +18,6 @@
#include <asm/checksum.h>
#include <asm/hardirq.h>
#include <asm/softirq.h>
#include <asm/m68kserial.h>
asmlinkage long long __ashrdi3 (long long, int);
asmlinkage long long __lshrdi3 (long long, int);
......
......@@ -10,6 +10,6 @@
O_TARGET := mac.o
OX_OBJS := mac_ksyms.o
O_OBJS := config.o bootparse.o macints.o iop.o via.o oss.o psc.o \
macboing.o debug.o misc.o
baboon.o macboing.o debug.o misc.o
include $(TOPDIR)/Rules.make
This diff is collapsed.
/*
* Baboon Custom IC Managment
*
* The Baboon custom IC controls the IDE, PCMCIA and media bay on the
* PowerBook 190. It multiplexes multiple interrupt sources onto the
* Nubus slot $C interrupt.
*/
#include <linux/config.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/ide.h>
#include <asm/traps.h>
#include <asm/bootinfo.h>
#include <asm/macintosh.h>
#include <asm/macints.h>
#include <asm/mac_baboon.h>
/* #define DEBUG_BABOON /**/
/* #define DEBUG_IRQS /**/
int baboon_present,baboon_active;
volatile struct baboon *baboon;
void baboon_irq(int, void *, struct pt_regs *);
extern int console_loglevel;
extern int macide_ack_intr(ide_hwif_t *);
/*
* Baboon initialization.
*/
void __init baboon_init(void)
{
if (macintosh_config->ident != MAC_MODEL_PB190) {
baboon = NULL;
baboon_present = 0;
return;
}
baboon = (struct baboon *) BABOON_BASE;
baboon_present = 1;
baboon_active = 0;
printk("Baboon detected at %p\n", baboon);
}
/*
* Register the Baboon interrupt dispatcher on nubus slot $C.
*/
void __init baboon_register_interrupts(void)
{
request_irq(IRQ_NUBUS_C, baboon_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST,
"baboon", (void *) baboon);
}
/*
* Baboon interrupt handler. This works a lot like a VIA.
*/
void baboon_irq(int irq, void *dev_id, struct pt_regs *regs)
{
int irq_bit,i;
unsigned char events;
#ifdef DEBUG_IRQS
printk("baboon_irq: mb_control %02X mb_ifr %02X mb_status %02X active %02X\n",
(uint) baboon->mb_control, (uint) baboon->mb_ifr,
(uint) baboon->mb_status, baboon_active);
#endif
if (!(events = baboon->mb_ifr & 0x07)) return;
for (i = 0, irq_bit = 1 ; i < 3 ; i++, irq_bit <<= 1) {
if (events & irq_bit/* & baboon_active*/) {
baboon_active &= ~irq_bit;
mac_do_irq_list(IRQ_BABOON_0 + i, regs);
baboon_active |= irq_bit;
baboon->mb_ifr &= ~irq_bit;
}
}
#if 0
if (baboon->mb_ifr & 0x02) macide_ack_intr(NULL);
/* for now we need to smash all interrupts */
baboon->mb_ifr &= ~events;
#endif
}
void baboon_irq_enable(int irq) {
int irq_idx = IRQ_IDX(irq);
#ifdef DEBUG_IRQUSE
printk("baboon_irq_enable(%d)\n", irq);
#endif
baboon_active |= (1 << irq_idx);
}
void baboon_irq_disable(int irq) {
int irq_idx = IRQ_IDX(irq);
#ifdef DEBUG_IRQUSE
printk("baboon_irq_disable(%d)\n", irq);
#endif
baboon_active &= ~(1 << irq_idx);
}
void baboon_irq_clear(int irq) {
int irq_idx = IRQ_IDX(irq);
baboon->mb_ifr &= ~(1 << irq_idx);
}
int baboon_irq_pending(int irq)
{
int irq_idx = IRQ_IDX(irq);
return baboon->mb_ifr & (1 << irq_idx);
}
This diff is collapsed.
......@@ -319,7 +319,7 @@ void __init iop_register_interrupts(void)
{
if (iop_ism_present) {
if (oss_present) {
request_irq(OSS_IRQLEV_IOPISM, iop_ism_irq,
sys_request_irq(OSS_IRQLEV_IOPISM, iop_ism_irq,
IRQ_FLG_LOCK, "ISM IOP",
(void *) IOP_NUM_ISM);
oss_irq_enable(IRQ_MAC_ADB);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -34,7 +34,7 @@ void oss_irq(int, void *, struct pt_regs *);
void oss_nubus_irq(int, void *, struct pt_regs *);
extern void via1_irq(int, void *, struct pt_regs *);
extern void mac_SCC_handler(int, void *, struct pt_regs *);
extern void mac_scc_dispatch(int, void *, struct pt_regs *);
extern int console_loglevel;
/*
......@@ -68,16 +68,16 @@ void __init oss_init(void)
void __init oss_register_interrupts(void)
{
request_irq(OSS_IRQLEV_SCSI, oss_irq, IRQ_FLG_LOCK,
"OSS SCSI Dispatch", (void *) oss);
request_irq(OSS_IRQLEV_IOPSCC, mac_SCC_handler, IRQ_FLG_LOCK,
"SCC Dispatch", mac_SCC_handler);
request_irq(OSS_IRQLEV_NUBUS, oss_nubus_irq, IRQ_FLG_LOCK,
"Nubus Dispatch", (void *) oss);
request_irq(OSS_IRQLEV_SOUND, oss_irq, IRQ_FLG_LOCK,
"OSS Sound Dispatch", (void *) oss);
request_irq(OSS_IRQLEV_VIA1, via1_irq, IRQ_FLG_LOCK,
"VIA1 Dispatch", (void *) via1);
sys_request_irq(OSS_IRQLEV_SCSI, oss_irq, IRQ_FLG_LOCK,
"scsi", (void *) oss);
sys_request_irq(OSS_IRQLEV_IOPSCC, mac_scc_dispatch, IRQ_FLG_LOCK,
"scc", mac_scc_dispatch);
sys_request_irq(OSS_IRQLEV_NUBUS, oss_nubus_irq, IRQ_FLG_LOCK,
"nubus", (void *) oss);
sys_request_irq(OSS_IRQLEV_SOUND, oss_irq, IRQ_FLG_LOCK,
"sound", (void *) oss);
sys_request_irq(OSS_IRQLEV_VIA1, via1_irq, IRQ_FLG_LOCK,
"via1", (void *) via1);
}
/*
......@@ -88,22 +88,6 @@ void __init oss_nubus_init(void)
{
}
/*
* Turn off the power via the ROM control register
*
* FIXME: not sure how this is supposed to work exactly...
*/
void oss_poweroff(void)
{
oss->rom_ctrl = OSS_POWEROFF;
/* We should never make it this far... */
printk ("It is now safe to switch off your machine.\n");
while(1);
}
/*
* Handle miscellaneous OSS interrupts. Right now that's just sound
* and SCSI; everything else is routed to its own autovector IRQ.
......
......@@ -119,13 +119,13 @@ void __init psc_init(void)
void __init psc_register_interrupts(void)
{
request_irq(3, psc_irq, IRQ_FLG_LOCK, "PSC Dispatch",
sys_request_irq(3, psc_irq, IRQ_FLG_LOCK, "psc3",
(void *) 0x30);
request_irq(4, psc_irq, IRQ_FLG_LOCK, "PSC Dispatch",
sys_request_irq(4, psc_irq, IRQ_FLG_LOCK, "psc4",
(void *) 0x40);
request_irq(5, psc_irq, IRQ_FLG_LOCK, "PSC Dispatch",
sys_request_irq(5, psc_irq, IRQ_FLG_LOCK, "psc5",
(void *) 0x50);
request_irq(6, psc_irq, IRQ_FLG_LOCK, "PSC Dispatch",
sys_request_irq(6, psc_irq, IRQ_FLG_LOCK, "psc6",
(void *) 0x60);
}
......
This diff is collapsed.
......@@ -207,7 +207,7 @@ void __init paging_init(void)
{
int chunk;
unsigned long mem_avail = 0;
unsigned int zones_size[3] = { 0, };
unsigned long zones_size[3] = { 0, };
#ifdef DEBUG
{
......
......@@ -30,7 +30,7 @@
extern void mmu_emu_init (void);
extern unsigned long free_area_init(unsigned long, unsigned long);
extern unsigned long free_area_init(unsigned long *zones_size);
const char bad_pmd_string[] = "Bad pmd in pte_alloc: %08lx\n";
......
......@@ -45,7 +45,11 @@ CONSOLE =console.o
SERIAL =serial.o
ifeq ($(ARCH),m68k)
ifdef CONFIG_AMIGA
KEYBD = amikeyb.o
else
KEYBD =
endif
SERIAL =
endif
......@@ -60,6 +64,7 @@ ifneq ($(CONFIG_SUN_SERIAL),)
SERIAL =
endif
obj-$(CONFIG_VT) += vt.o vc_screen.o consolemap.o consolemap_deftbl.o $(CONSOLE) selection.o
obj-$(CONFIG_SERIAL) += $(SERIAL)
obj-$(CONFIG_SERIAL_21285) += serial_21285.o
......@@ -96,6 +101,7 @@ obj-$(CONFIG_ESPSERIAL) += esp.o
obj-$(CONFIG_SYNCLINK) += synclink.o
obj-$(CONFIG_N_HDLC) += n_hdlc.o
obj-$(CONFIG_SPECIALIX) += specialix.o
obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += amiserial.o
ifeq ($(CONFIG_SX),y)
obj-y += sx.o generic_serial.o
......
......@@ -17,13 +17,14 @@
#include <linux/interrupt.h>
#include <linux/errno.h>
#include <linux/keyboard.h>
#include <linux/kd.h>
#include <linux/kbd_ll.h>
#include <linux/delay.h>
#include <linux/timer.h>
#include <linux/kd.h>
#include <linux/random.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/kbd_ll.h>
#include <linux/kbd_kern.h>
#include <asm/amigaints.h>
#include <asm/amigahw.h>
......@@ -230,7 +231,7 @@ static void keyboard_interrupt(int irq, void *dummy, struct pt_regs *fp)
/* switch CIA serial port to input mode */
ciaa.cra &= ~0x40;
mark_bh(KEYBOARD_BH);
tasklet_schedule(&keyboard_tasklet);
/* rotate scan code to get up/down bit in proper position */
scancode = ((scancode >> 1) & 0x7f) | ((scancode << 7) & 0x80);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -68,6 +68,10 @@ ifdef CONFIG_ADB_PMU
L_OBJS += via-pmu.o
endif
ifdef CONFIG_ADB_PMU68K
L_OBJS += via-pmu68k.o
endif
ifdef CONFIG_ADB_MACIO
L_OBJS += macio-adb.o
endif
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -160,6 +160,16 @@ int __init ariadne_probe(struct net_device *dev)
continue;
}
strcpy(z->name, "Ariadne Ethernet Card and Parallel Ports");
dev = init_etherdev(NULL, sizeof(struct ariadne_private));
if (dev == NULL) {
release_mem_region(base_addr, sizeof(struct Am79C960));
release_mem_region(ram_start, ARIADNE_RAM_SIZE);
return -ENOMEM;
}
memset(dev->priv, 0, sizeof(struct ariadne_private));
dev->dev_addr[0] = 0x00;
dev->dev_addr[1] = 0x60;
dev->dev_addr[2] = 0x30;
......@@ -171,16 +181,6 @@ int __init ariadne_probe(struct net_device *dev)
dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2],
dev->dev_addr[3], dev->dev_addr[4], dev->dev_addr[5]);
init_etherdev(dev, 0);
dev->priv = kmalloc(sizeof(struct ariadne_private), GFP_KERNEL);
if (dev->priv == NULL) {
release_mem_region(base_addr, sizeof(struct Am79C960));
release_mem_region(ram_start, ARIADNE_RAM_SIZE);
return -ENOMEM;
}
memset(dev->priv, 0, sizeof(struct ariadne_private));
dev->base_addr = ZTWO_VADDR(base_addr);
dev->mem_start = ZTWO_VADDR(ram_start);
dev->mem_end = dev->mem_start+ARIADNE_RAM_SIZE;
......
......@@ -175,16 +175,15 @@ int __init hydra_probe(struct net_device *dev)
}
strcpy(z->name, "Hydra Ethernet Card");
dev = init_etherdev(NULL, sizeof(struct hydra_private));
memset(dev->priv, 0, sizeof(struct hydra_private));
for(j = 0; j < ETHER_ADDR_LEN; j++)
dev->dev_addr[j] = *((u8 *)ZTWO_VADDR(board + HYDRA_ADDRPROM + 2*j));
printk("%s: hydra at 0x%08x, address %02x:%02x:%02x:%02x:%02x:%02x (hydra.c " HYDRA_VERSION ")\n",
dev->name, (int)board, dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2],
dev->dev_addr[3], dev->dev_addr[4], dev->dev_addr[5]);
init_etherdev(dev, 0);
dev->priv = kmalloc(sizeof(struct hydra_private), GFP_KERNEL);
memset(dev->priv, 0, sizeof(struct hydra_private));
dev->base_addr = ZTWO_VADDR(base_addr);
dev->mem_start = ZTWO_VADDR(board);
......
......@@ -417,7 +417,9 @@ int mac_esp_detect(Scsi_Host_Template * tpnt)
esp->irq = IRQ_MAC_SCSI;
request_irq(IRQ_MAC_SCSI, esp_intr, 0, "Mac ESP SCSI", esp);
#if 0 /* conflicts with IOP ADB */
request_irq(IRQ_MAC_SCSIDRQ, fake_drq, 0, "Mac ESP DRQ", esp);
#endif
if (macintosh_config->scsi_type == MAC_SCSI_QUADRA) {
esp->cfreq = 16500000;
......@@ -429,8 +431,9 @@ int mac_esp_detect(Scsi_Host_Template * tpnt)
} else { /* chipnum == 1 */
esp->irq = IRQ_MAC_SCSIDRQ;
#if 0 /* conflicts with IOP ADB */
request_irq(IRQ_MAC_SCSIDRQ, esp_intr, 0, "Mac ESP SCSI 2", esp);
#endif
esp->cfreq = 25000000;
......
This diff is collapsed.
......@@ -40,7 +40,7 @@ int mvme16x_scsi_detect(Scsi_Host_Template *tpnt)
if (called)
return 0;
tpnt->proc_name = "MVME16x"
tpnt->proc_name = "MVME16x";
options = OPTION_MEMORY_MAPPED|OPTION_DEBUG_TEST1|OPTION_INTFLY|OPTION_SYNCHRONOUS|OPTION_ALWAYS_SYNCHRONOUS|OPTION_DISCONNECT;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -73,6 +73,8 @@ if [ "$CONFIG_FB" = "y" ]; then
fi
if [ "$CONFIG_MAC" = "y" ]; then
define_bool CONFIG_FB_MAC y
bool ' Apple "valkyrie" display support' CONFIG_FB_VALKYRIE
# bool ' Apple DAFB display support' CONFIG_FB_DAFB
fi
if [ "$CONFIG_HP300" = "y" ]; then
define_bool CONFIG_FB_HP300 y
......@@ -89,6 +91,13 @@ if [ "$CONFIG_FB" = "y" ]; then
tristate ' SGI Visual Workstation framebuffer support' CONFIG_FB_SGIVW
define_bool CONFIG_BUS_I2C y
fi
if [ "$CONFIG_SUN3" = "y" -o "$CONFIG_SUN3X" = "y" ]; then
bool 'Sun3 framebuffer support' CONFIG_FB_SUN3
if [ "$CONFIG_FB_SUN3" != "n" ]; then
bool ' BWtwo support' CONFIG_FB_BWTWO
bool ' CGsix (GX,TurboGX) support' CONFIG_FB_CGSIX
fi
fi
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
if [ "$CONFIG_PCI" != "n" ]; then
tristate ' Matrox acceleration (EXPERIMENTAL)' CONFIG_FB_MATROX
......
......@@ -60,7 +60,7 @@ obj-$(CONFIG_FB_CYBER2000) += cyber2000fb.o
obj-$(CONFIG_FB_SGIVW) += sgivwfb.o
obj-$(CONFIG_FB_RIVA) += rivafb.o riva_hw.o
obj-$(CONFIG_FB_3DFX) += tdfxfb.o
obj-$(CONFIG_FB_MAC) += macfb.o
obj-$(CONFIG_FB_MAC) += macfb.o macmodes.o
obj-$(CONFIG_FB_HP300) += hpfb.o
obj-$(CONFIG_FB_OF) += offb.o macmodes.o
obj-$(CONFIG_FB_IMSTT) += imsttfb.o
......@@ -82,6 +82,8 @@ obj-$(CONFIG_FB_CGFOURTEEN) += cgfourteenfb.o sbusfb.o
obj-$(CONFIG_FB_P9100) += p9100fb.o sbusfb.o
obj-$(CONFIG_FB_LEO) += leofb.o sbusfb.o
obj-$(CONFIG_FB_MATROX) += matroxfb.o
obj-$(CONFIG_FB_SUN3) += sun3fb.o
obj-$(CONFIG_FB_BWTWO) += bwtwofb.o
obj-$(CONFIG_FB_VIRTUAL) += vfb.o
# Generic Low Level Drivers
......
......@@ -25,7 +25,7 @@
#include <video/sbusfb.h>
#include <asm/io.h>
#ifndef __sparc_v9__
#if !defined(__sparc_v9__) && !defined(__mc68000__)
#include <asm/sun4paddr.h>
#endif
......@@ -214,9 +214,11 @@ char __init *bwtwofb_init(struct fb_info_sbusfb *fb)
case BWTWO_SR_ID_NOCONN:
return NULL;
default:
#ifndef CONFIG_FB_SUN3
prom_printf("bw2: can't handle SR %02x\n",
status);
prom_halt();
#endif
return NULL; /* fool gcc. */
}
for ( ; *p; p += 2) {
......
......@@ -331,7 +331,8 @@ static void plot_pixel_mac(struct display *p, int bw, int pixel_x, int pixel_y)
u16 *dest16, pix16;
u32 *dest32, pix32;
if (pixel_x < 0 || pixel_y < 0 || pixel_x >= 832 || pixel_y >= 624) {
/* There *are* 68k Macs that support more than 832x624, you know :-) */
if (pixel_x < 0 || pixel_y < 0 || pixel_x >= p->var.xres || pixel_y >= p->var.yres) {
int cnt;
printk ("ERROR: pixel_x == %d, pixel_y == %d", pixel_x, pixel_y);
for(cnt = 0; cnt < 100000; cnt++)
......
......@@ -98,6 +98,8 @@ extern int g364fb_init(void);
extern int fm2fb_init(void);
extern int fm2fb_setup(char*);
extern int q40fb_init(void);
extern int sun3fb_init(void);
extern int sun3fb_setup(char *);
extern int sgivwfb_init(void);
extern int sgivwfb_setup(char*);
extern int rivafb_init(void);
......@@ -211,6 +213,9 @@ static struct {
#ifdef CONFIG_FB_FM2
{ "fm2fb", fm2fb_init, fm2fb_setup },
#endif
#ifdef CONFIG_FB_SUN3
{ "sun3", sun3fb_init, sun3fb_setup },
#endif
#ifdef CONFIG_GSP_RESOLVER
/* Not a real frame buffer device... */
{ "resolver", NULL, resolver_video_setup },
......@@ -471,6 +476,9 @@ fb_mmap(struct file *file, struct vm_area_struct * vma)
vma->vm_flags |= VM_IO;
#else
#if defined(__mc68000__)
#if defined(CONFIG_SUN3)
pgprot_val(vma->vm_page_prot) |= SUN3_PAGE_NOCACHE;
#else
if (CPU_IS_020_OR_030)
pgprot_val(vma->vm_page_prot) |= _PAGE_NOCACHE030;
if (CPU_IS_040_OR_060) {
......@@ -478,6 +486,7 @@ fb_mmap(struct file *file, struct vm_area_struct * vma)
/* Use no-cache mode, serialized */
pgprot_val(vma->vm_page_prot) |= _PAGE_NOCACHE_S;
}
#endif
#elif defined(__powerpc__)
pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE|_PAGE_GUARDED;
#elif defined(__alpha__)
......
This diff is collapsed.
This diff is collapsed.
......@@ -26,6 +26,7 @@ extern pgd_t swapper_pg_dir[1024];
#define flush_cache_page(vma, vmaddr) do { } while (0)
#define flush_page_to_ram(page) do { } while (0)
#define flush_icache_range(start, end) do { } while (0)
#define flush_icache_page(vma,pg) do { } while (0)
#define __flush_tlb() \
do { \
......
This diff is collapsed.
......@@ -7,6 +7,8 @@ extern unsigned int local_irq_count[NR_CPUS];
#define in_interrupt() (local_irq_count[smp_processor_id()] + local_bh_count[smp_processor_id()] != 0)
#define in_irq() (local_irq_count[smp_processor_id()] != 0)
#define hardirq_trylock(cpu) (local_irq_count[cpu] == 0)
#define hardirq_endlock(cpu) do { } while (0)
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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