m68k patches should be applied for m68k only
svn path=/dists/trunk/linux-2.6/; revision=10095
This commit is contained in:
parent
6141cb3a19
commit
50ea01cf50
|
@ -1,23 +0,0 @@
|
|||
Subject: [PATCH] Local m68k changes
|
||||
|
||||
Local m68k changes, _NEVER_ to be submitted upstream:
|
||||
- Force ARCH to be m68k
|
||||
- Append `-m68k' to EXTRAVERSION
|
||||
|
||||
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> for m68k CVS only
|
||||
---
|
||||
Makefile | 2 +-
|
||||
localversion.m68k | 1 +
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -190,7 +190,7 @@ SUBARCH := $(shell uname -m | sed -e s/i
|
||||
# Default value for CROSS_COMPILE is not to prefix executables
|
||||
# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
|
||||
|
||||
-ARCH ?= $(SUBARCH)
|
||||
+ARCH ?= m68k
|
||||
CROSS_COMPILE ?=
|
||||
|
||||
# Architecture as present in compile.h
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,145 @@
|
|||
To: linus, alan
|
||||
Cc: lkml
|
||||
Subject: [PATCH] MC68681 DUART
|
||||
|
||||
From: Linux/m68k legacy
|
||||
|
||||
MC68681 DUART register definitions for the Amiga MultiFace III serial driver.
|
||||
---
|
||||
drivers/char/mc68681.h | 131 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 131 insertions(+)
|
||||
|
||||
--- /dev/null
|
||||
+++ b/drivers/char/mc68681.h
|
||||
@@ -0,0 +1,131 @@
|
||||
+#ifndef _MC68681_H_
|
||||
+#define _MC68681_H_
|
||||
+
|
||||
+/*
|
||||
+ * This describes an MC68681 DUART. It has almost only overlayed registers, which
|
||||
+ * the structure very ugly.
|
||||
+ * Note that the ri-register isn't really a register of the duart but a kludge of bsc
|
||||
+ * to make the ring indicator available.
|
||||
+ *
|
||||
+ * The data came from the MFC-31-Developer Kit (from Ralph Seidel,
|
||||
+ * zodiac@darkness.gun.de) and the data sheet of Phillip's clone device (SCN68681)
|
||||
+ * (from Richard Hirst, srh@gpt.co.uk)
|
||||
+ *
|
||||
+ * 11.11.95 copyright Joerg Dorchain (dorchain@mpi-sb.mpg.de)
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+struct duarthalf {
|
||||
+union {
|
||||
+volatile u_char mr1; /* rw */
|
||||
+volatile u_char mr2; /* rw */
|
||||
+} mr;
|
||||
+volatile u_char ri; /* special, read */
|
||||
+union {
|
||||
+volatile u_char sr; /* read */
|
||||
+volatile u_char csr; /* write */
|
||||
+} sr_csr;
|
||||
+u_char pad1;
|
||||
+volatile u_char cr; /* write */
|
||||
+u_char pad2;
|
||||
+union {
|
||||
+volatile u_char rhr; /* read */
|
||||
+volatile u_char thr; /* write */
|
||||
+} hr;
|
||||
+u_char pad3;
|
||||
+};
|
||||
+
|
||||
+struct duart {
|
||||
+struct duarthalf pa;
|
||||
+union {
|
||||
+volatile u_char ipcr; /* read */
|
||||
+volatile u_char acr; /* write */
|
||||
+} ipcr_acr;
|
||||
+u_char pad1;
|
||||
+union {
|
||||
+volatile u_char isr; /* read */
|
||||
+volatile u_char imr; /* write */
|
||||
+} ir;
|
||||
+u_char pad2;
|
||||
+volatile u_char ctu;
|
||||
+u_char pad3;
|
||||
+volatile u_char ctl;
|
||||
+u_char pad4;
|
||||
+struct duarthalf pb;
|
||||
+volatile u_char ivr;
|
||||
+u_char pad5;
|
||||
+union {
|
||||
+volatile u_char ipr; /* read */
|
||||
+volatile u_char opcr; /* write */
|
||||
+} ipr_opcr;
|
||||
+u_char pad6;
|
||||
+union {
|
||||
+volatile u_char start; /* read */
|
||||
+volatile u_char sopc; /* write */
|
||||
+} start_sopc;
|
||||
+u_char pad7;
|
||||
+union {
|
||||
+volatile u_char stop; /* read */
|
||||
+volatile u_char ropc; /* write */
|
||||
+} stop_ropc;
|
||||
+u_char pad8;
|
||||
+};
|
||||
+
|
||||
+#define MR1_BITS 3
|
||||
+#define MR1_5BITS 0
|
||||
+#define MR1_6BITS 1
|
||||
+#define MR1_7BITS 2
|
||||
+#define MR1_8BITS 3
|
||||
+
|
||||
+#define MR1_PARITY_ODD 4
|
||||
+
|
||||
+#define MR1_PARITY 24
|
||||
+#define MR1_PARITY_WITH 0
|
||||
+#define MR1_PARITY_FORCE 8
|
||||
+#define MR1_PARITY_NO 16
|
||||
+#define MR1_PARITY_MULTIDROP 24
|
||||
+
|
||||
+#define MR1_ERROR_BLOCK 32
|
||||
+#define MR1_FFULL_IRQ 64
|
||||
+#define MR1_RxRTS_ON 128
|
||||
+
|
||||
+#define MR2_STOPS 15
|
||||
+#define MR2_1STOP 7
|
||||
+#define MR2_2STOP 15
|
||||
+
|
||||
+#define MR2_CTS_ON 16
|
||||
+#define MR2_TxRTS_ON 32
|
||||
+
|
||||
+#define MR2_MODE 192
|
||||
+#define MR2_NORMAL 0
|
||||
+#define MR2_ECHO 64
|
||||
+#define MR2_LOCALLOOP 128
|
||||
+#define MR2_REMOTELOOP 192
|
||||
+
|
||||
+#define CR_RXCOMMAND 3
|
||||
+#define CR_NONE 0
|
||||
+#define CR_RX_ON 1
|
||||
+#define CR_RX_OFF 2
|
||||
+#define CR_TXCOMMAND 12
|
||||
+#define CR_TX_ON 4
|
||||
+#define CR_TX_OFF 8
|
||||
+#define CR_MISC 112
|
||||
+#define CR_RESET_MR 16
|
||||
+#define CR_RESET_RX 32
|
||||
+#define CR_RESET_TX 48
|
||||
+#define CR_RESET_ERR 64
|
||||
+#define CR_RESET_BREAK 80
|
||||
+#define CR_START_BREAK 96
|
||||
+#define CR_STOP_BREAK 112
|
||||
+
|
||||
+#define SR_RXRDY 1
|
||||
+#define SR_FFULL 2
|
||||
+#define SR_TXRDY 4
|
||||
+#define SR_TXEMPT 8
|
||||
+#define SR_OVERRUN 16
|
||||
+#define SR_PARITY 32
|
||||
+#define SR_FRAMING 64
|
||||
+#define SR_BREAK 128
|
||||
+
|
||||
+
|
||||
+#endif
|
|
@ -0,0 +1,20 @@
|
|||
To: linus, alan
|
||||
Cc: lkml
|
||||
Subject: [PATCH] M68k PCI
|
||||
|
||||
First steps in making m68k PCI support compilable again
|
||||
---
|
||||
arch/m68k/kernel/bios32.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/m68k/kernel/bios32.c
|
||||
+++ b/arch/m68k/kernel/bios32.c
|
||||
@@ -284,7 +284,7 @@ static void __init layout_bus(struct pci
|
||||
|
||||
DBG_DEVS(("layout_bus: starting bus %d\n", bus->number));
|
||||
|
||||
- if (!bus->devices && !bus->children)
|
||||
+ if (list_empty(&bus->devices) && list_empty(&bus->children))
|
||||
return;
|
||||
|
||||
/*
|
|
@ -0,0 +1,22 @@
|
|||
To: linus, akpm, B.Zolnierkiewicz@elka.pw.edu.pl
|
||||
Cc: lkml
|
||||
Subject: [PATCH] m68k IDE compiler bug
|
||||
|
||||
From: Roman Zippel <zippel@linux-m68k.org>
|
||||
|
||||
IDE: Avoid compiler bug in gcc 3.2 (from Roman Zippel)
|
||||
---
|
||||
include/linux/ide.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/include/linux/ide.h
|
||||
+++ b/include/linux/ide.h
|
||||
@@ -502,7 +502,7 @@ typedef union {
|
||||
* sense_key : Sense key of the last failed packet command
|
||||
*/
|
||||
typedef union {
|
||||
- unsigned all :8;
|
||||
+ u8 all;
|
||||
struct {
|
||||
#if defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
unsigned ili :1;
|
|
@ -0,0 +1,29 @@
|
|||
To: linus, akpm
|
||||
Cc: lkml
|
||||
Subject: [PATCH] M68k SERIAL_PORT_DFNS only if CONFIG_ISA
|
||||
|
||||
From: Kars de Jong <jongk@linux-m68k.org>
|
||||
|
||||
M68k serial: Only define SERIAL_PORT_DFNS when CONFIG_ISA is defined. Otherwise
|
||||
the first 4 slots in the 8250 driver are unavailable on non-ISA machines.
|
||||
|
||||
Signed-off-by: Kars de Jong <jongk@linux-m68k.org>
|
||||
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
---
|
||||
include/asm-m68k/serial.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/include/asm-m68k/serial.h
|
||||
+++ b/include/asm-m68k/serial.h
|
||||
@@ -25,9 +25,11 @@
|
||||
#define STD_COM4_FLAGS ASYNC_BOOT_AUTOCONF
|
||||
#endif
|
||||
|
||||
+#ifdef CONFIG_ISA
|
||||
#define SERIAL_PORT_DFNS \
|
||||
/* UART CLK PORT IRQ FLAGS */ \
|
||||
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \
|
||||
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ \
|
||||
{ 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \
|
||||
{ 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */
|
||||
+#endif
|
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
arch/m68k/amiga/config.c | 30 +++++++++++++++++++++---------
|
||||
1 file changed, 21 insertions(+), 9 deletions(-)
|
||||
|
||||
--- a/arch/m68k/amiga/config.c
|
||||
+++ b/arch/m68k/amiga/config.c
|
||||
@@ -109,6 +109,7 @@ static void amiga_mem_console_write(stru
|
||||
unsigned int count);
|
||||
void amiga_serial_console_write(struct console *co, const char *s,
|
||||
unsigned int count);
|
||||
+static void __init amiga_savekmsg_init(void);
|
||||
#ifdef CONFIG_HEARTBEAT
|
||||
static void amiga_heartbeat(int on);
|
||||
#endif
|
||||
@@ -119,6 +120,8 @@ static struct console amiga_console_driv
|
||||
.index = -1,
|
||||
};
|
||||
|
||||
+static int __initdata amiga_enable_debug_mem;
|
||||
+
|
||||
|
||||
/*
|
||||
* Motherboard Resources present in all Amiga models
|
||||
@@ -465,6 +468,9 @@ void __init config_amiga(void)
|
||||
/* initialize chipram allocator */
|
||||
amiga_chip_init();
|
||||
|
||||
+ if (amiga_enable_debug_mem && AMIGAHW_PRESENT(CHIP_RAM))
|
||||
+ amiga_savekmsg_init();
|
||||
+
|
||||
/* our beloved beeper */
|
||||
if (AMIGAHW_PRESENT(AMI_AUDIO))
|
||||
amiga_init_sound();
|
||||
@@ -783,18 +789,10 @@ static void amiga_mem_console_write(stru
|
||||
}
|
||||
}
|
||||
|
||||
-static int __init amiga_savekmsg_setup(char *arg)
|
||||
+static void __init amiga_savekmsg_init(void)
|
||||
{
|
||||
static struct resource debug_res = { .name = "Debug" };
|
||||
|
||||
- if (!MACH_IS_AMIGA || strcmp(arg, "mem"))
|
||||
- goto done;
|
||||
-
|
||||
- if (!AMIGAHW_PRESENT(CHIP_RAM)) {
|
||||
- printk("Warning: no chipram present for debugging\n");
|
||||
- goto done;
|
||||
- }
|
||||
-
|
||||
savekmsg = amiga_chip_alloc_res(SAVEKMSG_MAXMEM, &debug_res);
|
||||
savekmsg->magic1 = SAVEKMSG_MAGIC1;
|
||||
savekmsg->magic2 = SAVEKMSG_MAGIC2;
|
||||
@@ -803,6 +801,20 @@ static int __init amiga_savekmsg_setup(c
|
||||
|
||||
amiga_console_driver.write = amiga_mem_console_write;
|
||||
register_console(&amiga_console_driver);
|
||||
+}
|
||||
+
|
||||
+static int __init amiga_savekmsg_setup(char *arg)
|
||||
+{
|
||||
+ if (!MACH_IS_AMIGA || strcmp(arg, "mem"))
|
||||
+ goto done;
|
||||
+
|
||||
+ if (!AMIGAHW_PRESENT(CHIP_RAM)) {
|
||||
+ printk("Warning: no chipram present for debugging\n");
|
||||
+ amiga_enable_debug_mem = 1;
|
||||
+ goto done;
|
||||
+ }
|
||||
+
|
||||
+ amiga_savekmsg_init();
|
||||
|
||||
done:
|
||||
return 0;
|
|
@ -0,0 +1,191 @@
|
|||
|
||||
static int __init xxx_probe(struct platform_device *pdev)
|
||||
{
|
||||
regs = platform_get_resource(pdev, IORESOURCE_MEM, CTRL_IOMEM_ID);
|
||||
fifo = platform_get_resource(pdev, IORESOURCE_MEM, FIFO_IOMEM_ID);
|
||||
if (!regs || !fifo)
|
||||
return -ENXIO;
|
||||
|
||||
irq = platform_get_irq(pdev, 0);
|
||||
if (irq < 0)
|
||||
return irq;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
platform_set_drvdata(pdev, xxx);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
static int __exit xxx_remove(struct platform_device *pdev)
|
||||
{
|
||||
xxx = platform_get_drvdata(pdev);
|
||||
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct platform_driver xxx_driver = {
|
||||
.remove = __exit_p(xxx_remove),
|
||||
.driver = {
|
||||
.name = "xxx",
|
||||
},
|
||||
};
|
||||
|
||||
static int __init xxx_init(void)
|
||||
{
|
||||
return platform_driver_probe(&xxx_driver, xxx_probe);
|
||||
}
|
||||
module_init(xxx_init);
|
||||
|
||||
static void __exit xxx_exit(void)
|
||||
{
|
||||
platform_driver_unregister(&xxx_driver);
|
||||
}
|
||||
module_exit(xxx_exit);
|
||||
|
||||
arch/m68k/amiga/amiints.c: if (AMIGAHW_PRESENT(PCMCIA))
|
||||
arch/m68k/amiga/chipram.c: if (!AMIGAHW_PRESENT(CHIP_RAM))
|
||||
arch/m68k/amiga/config.c: if (AMIGAHW_PRESENT(name)) \
|
||||
arch/m68k/amiga/config.c: if (AMIGAHW_PRESENT(ZORRO))
|
||||
arch/m68k/amiga/config.c: printk("ZORRO%s ", AMIGAHW_PRESENT(ZORRO3) ? "3" : "");
|
||||
arch/m68k/amiga/config.c: if (AMIGAHW_PRESENT(A3000_CLK)) {
|
||||
arch/m68k/amiga/config.c: } else /* if (AMIGAHW_PRESENT(A2000_CLK)) */ {
|
||||
arch/m68k/amiga/config.c: if (AMIGAHW_PRESENT(ZORRO3)) {
|
||||
arch/m68k/amiga/config.c: if (amiga_enable_debug_mem && AMIGAHW_PRESENT(CHIP_RAM))
|
||||
arch/m68k/amiga/config.c: if (AMIGAHW_PRESENT(AMI_AUDIO))
|
||||
arch/m68k/amiga/config.c: if (AMIGAHW_PRESENT(MAGIC_REKICK))
|
||||
arch/m68k/amiga/config.c: if (AMIGAHW_PRESENT(A3000_CLK)) {
|
||||
arch/m68k/amiga/config.c: } else /* if (AMIGAHW_PRESENT(A2000_CLK)) */ {
|
||||
arch/m68k/amiga/config.c: if (AMIGAHW_PRESENT(A3000_CLK)) {
|
||||
arch/m68k/amiga/config.c: } else /* if (AMIGAHW_PRESENT(A2000_CLK)) */ {
|
||||
arch/m68k/amiga/config.c: if (!AMIGAHW_PRESENT(CHIP_RAM)) {
|
||||
arch/m68k/amiga/config.c: if (AMIGAHW_PRESENT(CHIP_RAM))
|
||||
arch/m68k/amiga/config.c: if (AMIGAHW_PRESENT(AMI_VIDEO)) {
|
||||
arch/m68k/amiga/config.c: if (AMIGAHW_PRESENT(name)) \
|
||||
arch/m68k/amiga/config.c: if (AMIGAHW_PRESENT(ZORRO))
|
||||
arch/m68k/amiga/config.c: AMIGAHW_PRESENT(ZORRO3) ? "I" : "",
|
||||
arch/m68k/kernel/setup.c: if (MACH_IS_AMIGA && AMIGAHW_PRESENT(GG2_ISA)) {
|
||||
arch/m68k/kernel/setup.c: if (MACH_IS_AMIGA && AMIGAHW_PRESENT(PCMCIA)) {
|
||||
drivers/block/amiflop.c: if (!AMIGAHW_PRESENT(AMI_FLOPPY))
|
||||
drivers/char/amiserial.c: if (!MACH_IS_AMIGA || !AMIGAHW_PRESENT(AMI_SERIAL))
|
||||
drivers/ide/legacy/gayle.c: if ((a4000 = AMIGAHW_PRESENT(A4000_IDE)) || AMIGAHW_PRESENT(A1200_IDE))
|
||||
drivers/input/keyboard/amikbd.c: if (!AMIGAHW_PRESENT(AMI_KEYBOARD))
|
||||
drivers/input/mouse/amimouse.c: if (!MACH_IS_AMIGA || !AMIGAHW_PRESENT(AMI_MOUSE))
|
||||
drivers/net/apne.c: if ( !(AMIGAHW_PRESENT(PCMCIA)) )
|
||||
drivers/parport/parport_amiga.c: if (!MACH_IS_AMIGA || !AMIGAHW_PRESENT(AMI_PARALLEL))
|
||||
drivers/scsi/a3000.c: if (!MACH_IS_AMIGA || !AMIGAHW_PRESENT(A3000_SCSI))
|
||||
drivers/scsi/a4000t.c: if (!(MACH_IS_AMIGA && AMIGAHW_PRESENT(A4000_SCSI)))
|
||||
drivers/video/amifb.c: if (!MACH_IS_AMIGA || !AMIGAHW_PRESENT(AMI_VIDEO))
|
||||
drivers/video/amifb.c: if (AMIGAHW_PRESENT(AMBER_FF))
|
||||
drivers/video/amifb.c: } else if (AMIGAHW_PRESENT(AGNUS_HR_PAL) ||
|
||||
drivers/video/amifb.c: AMIGAHW_PRESENT(AGNUS_HR_NTSC)) {
|
||||
drivers/video/amifb.c: } else if (AMIGAHW_PRESENT(AGNUS_HR_PAL) ||
|
||||
drivers/video/amifb.c: AMIGAHW_PRESENT(AGNUS_HR_NTSC)) {
|
||||
drivers/zorro/proc.c: if (MACH_IS_AMIGA && AMIGAHW_PRESENT(ZORRO)) {
|
||||
drivers/zorro/zorro.c: if (!MACH_IS_AMIGA || !AMIGAHW_PRESENT(ZORRO))
|
||||
drivers/zorro/zorro.c: if (!MACH_IS_AMIGA || !AMIGAHW_PRESENT(ZORRO))
|
||||
drivers/zorro/zorro.c: zorro_bus.num_resources = AMIGAHW_PRESENT(ZORRO3) ? 4 : 2;
|
||||
include/asm-m68k/amigahw.h:#define AMIGAHW_PRESENT(name) (amiga_hw_present.name)
|
||||
sound/oss/dmasound/dmasound_paula.c: if (MACH_IS_AMIGA && AMIGAHW_PRESENT(AMI_AUDIO)) {
|
||||
---
|
||||
arch/m68k/amiga/Makefile | 2 -
|
||||
arch/m68k/amiga/platform.c | 73 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 74 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/m68k/amiga/Makefile
|
||||
+++ b/arch/m68k/amiga/Makefile
|
||||
@@ -2,6 +2,6 @@
|
||||
# Makefile for Linux arch/m68k/amiga source directory
|
||||
#
|
||||
|
||||
-obj-y := config.o amiints.o cia.o chipram.o amisound.o
|
||||
+obj-y := config.o amiints.o cia.o chipram.o amisound.o platform.o
|
||||
|
||||
obj-$(CONFIG_AMIGA_PCMCIA) += pcmcia.o
|
||||
--- /dev/null
|
||||
+++ b/arch/m68k/amiga/platform.c
|
||||
@@ -0,0 +1,73 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2007 Geert Uytterhoeven
|
||||
+ *
|
||||
+ * This file is subject to the terms and conditions of the GNU General Public
|
||||
+ * License. See the file COPYING in the main directory of this archive
|
||||
+ * for more details.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/platform_device.h>
|
||||
+#include <linux/mm.h> // FIXME show_mem()
|
||||
+
|
||||
+#include <asm/amigahw.h>
|
||||
+
|
||||
+
|
||||
+static struct platform_device amiga_serial = {
|
||||
+ .name = "amiga-serial",
|
||||
+ .id = -1,
|
||||
+};
|
||||
+
|
||||
+static int __init amiga_init_devices(void)
|
||||
+{
|
||||
+ if (AMIGAHW_PRESENT(AMI_FLOPPY))
|
||||
+ platform_device_register_simple("amiga-floppy", -1, NULL, 0);
|
||||
+
|
||||
+ if (AMIGAHW_PRESENT(AMI_SERIAL))
|
||||
+ platform_device_register(&amiga_serial);
|
||||
+
|
||||
+#if 0
|
||||
+ /* video hardware */
|
||||
+[ ] AMIGAHW_PRESENT(AMI_VIDEO); /* Amiga Video */
|
||||
+[ ] AMIGAHW_PRESENT(AMI_BLITTER); /* Amiga Blitter */
|
||||
+[ ] AMIGAHW_PRESENT(AMBER_FF); /* Amber Flicker Fixer */
|
||||
+ /* sound hardware */
|
||||
+[ ] AMIGAHW_PRESENT(AMI_AUDIO); /* Amiga Audio */
|
||||
+ /* disk storage interfaces */
|
||||
+[ ] AMIGAHW_PRESENT(AMI_FLOPPY); /* Amiga Floppy */
|
||||
+[ ] AMIGAHW_PRESENT(A3000_SCSI); /* SCSI (wd33c93, A3000 alike) */
|
||||
+[ ] AMIGAHW_PRESENT(A4000_SCSI); /* SCSI (ncr53c710, A4000T alike) */
|
||||
+[ ] AMIGAHW_PRESENT(A1200_IDE); /* IDE (A1200 alike) */
|
||||
+[ ] AMIGAHW_PRESENT(A4000_IDE); /* IDE (A4000 alike) */
|
||||
+[ ] AMIGAHW_PRESENT(CD_ROM); /* CD ROM drive */
|
||||
+ /* other I/O hardware */
|
||||
+[ ] AMIGAHW_PRESENT(AMI_KEYBOARD); /* Amiga Keyboard */
|
||||
+[ ] AMIGAHW_PRESENT(AMI_MOUSE); /* Amiga Mouse */
|
||||
+[ ] AMIGAHW_PRESENT(AMI_SERIAL); /* Amiga Serial */
|
||||
+[ ] AMIGAHW_PRESENT(AMI_PARALLEL); /* Amiga Parallel */
|
||||
+ /* real time clocks */
|
||||
+[ ] AMIGAHW_PRESENT(A2000_CLK); /* Hardware Clock (A2000 alike) */
|
||||
+[ ] AMIGAHW_PRESENT(A3000_CLK); /* Hardware Clock (A3000 alike) */
|
||||
+ /* supporting hardware */
|
||||
+[ ] AMIGAHW_PRESENT(CHIP_RAM); /* Chip RAM */
|
||||
+[ ] AMIGAHW_PRESENT(PAULA); /* Paula (8364) */
|
||||
+[ ] AMIGAHW_PRESENT(DENISE); /* Denise (8362) */
|
||||
+[ ] AMIGAHW_PRESENT(DENISE_HR); /* Denise (8373) */
|
||||
+[ ] AMIGAHW_PRESENT(LISA); /* Lisa (8375) */
|
||||
+[ ] AMIGAHW_PRESENT(AGNUS_PAL); /* Normal/Fat PAL Agnus (8367/8371) */
|
||||
+[ ] AMIGAHW_PRESENT(AGNUS_NTSC); /* Normal/Fat NTSC Agnus (8361/8370) */
|
||||
+[ ] AMIGAHW_PRESENT(AGNUS_HR_PAL); /* Fat Hires PAL Agnus (8372) */
|
||||
+[ ] AMIGAHW_PRESENT(AGNUS_HR_NTSC); /* Fat Hires NTSC Agnus (8372) */
|
||||
+[ ] AMIGAHW_PRESENT(ALICE_PAL); /* PAL Alice (8374) */
|
||||
+[ ] AMIGAHW_PRESENT(ALICE_NTSC); /* NTSC Alice (8374) */
|
||||
+[ ] AMIGAHW_PRESENT(MAGIC_REKICK); /* A3000 Magic Hard Rekick */
|
||||
+[ ] AMIGAHW_PRESENT(PCMCIA); /* PCMCIA Slot */
|
||||
+[ ] AMIGAHW_PRESENT(GG2_ISA); /* GG2 Zorro2ISA Bridge */
|
||||
+[ ] AMIGAHW_PRESENT(ZORRO); /* Zorro AutoConfig */
|
||||
+[ ] AMIGAHW_PRESENT(ZORRO3); /* Zorro III */
|
||||
+#endif
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+device_initcall(amiga_init_devices);
|
||||
+
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
arch/m68k/amiga/platform.c | 18 ++++++++++++++++--
|
||||
1 file changed, 16 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/arch/m68k/amiga/platform.c
|
||||
+++ b/arch/m68k/amiga/platform.c
|
||||
@@ -12,9 +12,23 @@
|
||||
#include <asm/amigahw.h>
|
||||
|
||||
|
||||
+static struct resource amiga_serial_resources[] = {
|
||||
+ {
|
||||
+ /*
|
||||
+ * We request SERDAT and SERPER only, because the serial
|
||||
+ * registers are too spread over the custom register space
|
||||
+ */
|
||||
+ .start = CUSTOM_PHYSADDR+0x30,
|
||||
+ .end = CUSTOM_PHYSADDR+0x33,
|
||||
+ .flags = IORESOURCE_MEM,
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
static struct platform_device amiga_serial = {
|
||||
- .name = "amiga-serial",
|
||||
- .id = -1,
|
||||
+ .name = "amiga-serial",
|
||||
+ .id = -1,
|
||||
+ .num_resources = ARRAY_SIZE(amiga_serial_resources),
|
||||
+ .resource = amiga_serial_resources,
|
||||
};
|
||||
|
||||
static int __init amiga_init_devices(void)
|
|
@ -0,0 +1,534 @@
|
|||
Subject: [PATCH] m68k: Atari ARAnyM support
|
||||
|
||||
From: Michael Schmitz <schmitz@opal.biophys.uni-duesseldorf.de>
|
||||
|
||||
This isn't really my kettle of fish, but I post it anyway unless Petr
|
||||
complains :-)
|
||||
|
||||
This is what makes it possible for me to test 2.6 builds on the
|
||||
emulator...
|
||||
|
||||
Should be signed off by Petr, really.
|
||||
|
||||
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
---
|
||||
arch/m68k/Kconfig | 15 ++
|
||||
arch/m68k/Makefile | 1
|
||||
arch/m68k/emu/Makefile | 7 +
|
||||
arch/m68k/emu/natfeat.c | 113 +++++++++++++++++
|
||||
arch/m68k/emu/nfeth.c | 284 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
arch/m68k/kernel/setup.c | 5
|
||||
drivers/net/Kconfig | 8 +
|
||||
include/asm-m68k/natfeat.h | 22 +++
|
||||
8 files changed, 455 insertions(+)
|
||||
|
||||
--- a/arch/m68k/Kconfig
|
||||
+++ b/arch/m68k/Kconfig
|
||||
@@ -267,6 +267,21 @@ config Q40
|
||||
Q60. Select your CPU below. For 68LC060 don't forget to enable FPU
|
||||
emulation.
|
||||
|
||||
+config NATFEAT
|
||||
+ bool "ARAnyM emulator support"
|
||||
+ depends on ATARI
|
||||
+ help
|
||||
+ This option enables support for ARAnyM native features, such as
|
||||
+ access to a disk image as /dev/hda. Useful with the ARANYM option.
|
||||
+
|
||||
+config NFETH
|
||||
+ tristate "NatFeat Ethernet support"
|
||||
+ depends on NET_ETHERNET && NATFEAT
|
||||
+ help
|
||||
+ Say Y to include support for the ARAnyM NatFeat network device
|
||||
+ which will emulate a regular ethernet device while presenting an
|
||||
+ ethertap device to the host system.
|
||||
+
|
||||
comment "Processor type"
|
||||
|
||||
config M68020
|
||||
--- a/arch/m68k/Makefile
|
||||
+++ b/arch/m68k/Makefile
|
||||
@@ -74,6 +74,7 @@ core-$(CONFIG_MVME16x) += arch/m68k/mvm
|
||||
core-$(CONFIG_BVME6000) += arch/m68k/bvme6000/
|
||||
core-$(CONFIG_SUN3X) += arch/m68k/sun3x/ arch/m68k/sun3/
|
||||
core-$(CONFIG_SUN3) += arch/m68k/sun3/ arch/m68k/sun3/prom/
|
||||
+core-$(CONFIG_NATFEAT) += arch/m68k/emu/
|
||||
core-$(CONFIG_M68040) += arch/m68k/fpsp040/
|
||||
core-$(CONFIG_M68060) += arch/m68k/ifpsp060/
|
||||
core-$(CONFIG_M68KFPU_EMU) += arch/m68k/math-emu/
|
||||
--- /dev/null
|
||||
+++ b/arch/m68k/emu/Makefile
|
||||
@@ -0,0 +1,7 @@
|
||||
+#
|
||||
+# Makefile for Linux arch/m68k/emu source directory
|
||||
+#
|
||||
+
|
||||
+obj-y += natfeat.o
|
||||
+
|
||||
+obj-$(CONFIG_NFETH) += nfeth.o
|
||||
--- /dev/null
|
||||
+++ b/arch/m68k/emu/natfeat.c
|
||||
@@ -0,0 +1,113 @@
|
||||
+/*
|
||||
+ * natfeat.c - ARAnyM hardware support via Native Features (natfeats)
|
||||
+ *
|
||||
+ * Copyright (c) 2005 Petr Stehlik of ARAnyM dev team
|
||||
+ *
|
||||
+ * Reworked for Linux by Roman Zippel <zippel@linux-m68k.org>
|
||||
+ *
|
||||
+ * This software may be used and distributed according to the terms of
|
||||
+ * the GNU General Public License (GPL), incorporated herein by reference.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/types.h>
|
||||
+#include <linux/console.h>
|
||||
+#include <linux/string.h>
|
||||
+#include <linux/kernel.h>
|
||||
+#include <linux/io.h>
|
||||
+#include <asm/machdep.h>
|
||||
+#include <asm/natfeat.h>
|
||||
+
|
||||
+asm("\n"
|
||||
+" .global nf_get_id,nf_call\n"
|
||||
+"nf_get_id:\n"
|
||||
+" .short 0x7300\n"
|
||||
+" rts\n"
|
||||
+"nf_call:\n"
|
||||
+" .short 0x7301\n"
|
||||
+" rts\n"
|
||||
+"1: moveq.l #0,%d0\n"
|
||||
+" rts\n"
|
||||
+" .section __ex_table,\"a\"\n"
|
||||
+" .long nf_get_id,1b\n"
|
||||
+" .long nf_call,1b\n"
|
||||
+" .previous");
|
||||
+
|
||||
+static int stderr_id;
|
||||
+
|
||||
+static void nf_write(struct console *co, const char *str, unsigned int count)
|
||||
+{
|
||||
+ char buf[68];
|
||||
+
|
||||
+ buf[64] = 0;
|
||||
+ while (count > 64) {
|
||||
+ memcpy(buf, str, 64);
|
||||
+ nf_call(stderr_id, buf);
|
||||
+ str += 64;
|
||||
+ count -= 64;
|
||||
+ }
|
||||
+ memcpy(buf, str, count);
|
||||
+ buf[count] = 0;
|
||||
+ nf_call(stderr_id, buf);
|
||||
+}
|
||||
+
|
||||
+void nfprint(const char *fmt, ...)
|
||||
+{
|
||||
+ static char buf[256];
|
||||
+ va_list ap;
|
||||
+ int n;
|
||||
+
|
||||
+ va_start(ap, fmt);
|
||||
+ n = vsnprintf(buf, 256, fmt, ap);
|
||||
+ nf_call(nf_get_id("NF_STDERR"), buf);
|
||||
+ va_end(ap);
|
||||
+}
|
||||
+
|
||||
+static struct console nf_console_driver = {
|
||||
+ .name = "debug",
|
||||
+ .write = nf_write,
|
||||
+ .flags = CON_PRINTBUFFER,
|
||||
+ .index = -1,
|
||||
+};
|
||||
+
|
||||
+static int __init nf_debug_setup(char *arg)
|
||||
+{
|
||||
+ if (strcmp(arg, "emu"))
|
||||
+ return 0;
|
||||
+
|
||||
+ stderr_id = nf_get_id("NF_STDERR");
|
||||
+ if (stderr_id)
|
||||
+ register_console(&nf_console_driver);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+early_param("debug", nf_debug_setup);
|
||||
+
|
||||
+static void nf_poweroff(void)
|
||||
+{
|
||||
+ long id = nf_get_id("NF_SHUTDOWN");
|
||||
+
|
||||
+ if (id)
|
||||
+ nf_call(id);
|
||||
+}
|
||||
+
|
||||
+void nf_init(void)
|
||||
+{
|
||||
+ unsigned long id, version;
|
||||
+ char buf[256];
|
||||
+
|
||||
+ id = nf_get_id("NF_VERSION");
|
||||
+ if (!id)
|
||||
+ return;
|
||||
+ version = nf_call(id);
|
||||
+
|
||||
+ id = nf_get_id("NF_NAME");
|
||||
+ if (!id)
|
||||
+ return;
|
||||
+ nf_call(id, buf, 256);
|
||||
+ buf[255] = 0;
|
||||
+
|
||||
+ pr_info("NatFeats found (%s, %lu.%lu)\n", buf, version >> 16,
|
||||
+ version & 0xffff);
|
||||
+
|
||||
+ mach_power_off = nf_poweroff;
|
||||
+}
|
||||
--- /dev/null
|
||||
+++ b/arch/m68k/emu/nfeth.c
|
||||
@@ -0,0 +1,284 @@
|
||||
+/*
|
||||
+ * atari_nfeth.c - ARAnyM ethernet card driver for GNU/Linux
|
||||
+ *
|
||||
+ * Copyright (c) 2005 Milan Jurik, Petr Stehlik of ARAnyM dev team
|
||||
+ *
|
||||
+ * Based on ARAnyM driver for FreeMiNT written by Standa Opichal
|
||||
+ *
|
||||
+ * This software may be used and distributed according to the terms of
|
||||
+ * the GNU General Public License (GPL), incorporated herein by reference.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/netdevice.h>
|
||||
+#include <linux/etherdevice.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <net/ieee80211.h>
|
||||
+#include <asm/natfeat.h>
|
||||
+#include <asm/virtconvert.h>
|
||||
+
|
||||
+enum {
|
||||
+ GET_VERSION = 0, /* no parameters, return NFAPI_VERSION in d0 */
|
||||
+ XIF_INTLEVEL, /* no parameters, return Interrupt Level in d0 */
|
||||
+ XIF_IRQ, /* acknowledge interrupt from host */
|
||||
+ XIF_START, /* (ethX), called on 'ifup', start receiver thread */
|
||||
+ XIF_STOP, /* (ethX), called on 'ifdown', stop the thread */
|
||||
+ XIF_READLENGTH, /* (ethX), return size of network data block to read */
|
||||
+ XIF_READBLOCK, /* (ethX, buffer, size), read block of network data */
|
||||
+ XIF_WRITEBLOCK, /* (ethX, buffer, size), write block of network data */
|
||||
+ XIF_GET_MAC, /* (ethX, buffer, size), return MAC HW addr in buffer */
|
||||
+ XIF_GET_IPHOST, /* (ethX, buffer, size), return IP address of host */
|
||||
+ XIF_GET_IPATARI, /* (ethX, buffer, size), return IP address of atari */
|
||||
+ XIF_GET_NETMASK /* (ethX, buffer, size), return IP netmask */
|
||||
+};
|
||||
+
|
||||
+#define DRV_NAME "nfeth"
|
||||
+#define DRV_VERSION "0.3"
|
||||
+#define DRV_RELDATE "10/12/2005"
|
||||
+
|
||||
+#define MAX_UNIT 8
|
||||
+
|
||||
+/* These identify the driver base version and may not be removed. */
|
||||
+static char version[] __devinitdata =
|
||||
+KERN_INFO DRV_NAME ".c:v" DRV_VERSION " " DRV_RELDATE " S.Opichal, M.Jurik, P.Stehlik\n"
|
||||
+KERN_INFO " http://aranym.atari.org/\n";
|
||||
+
|
||||
+MODULE_AUTHOR("Milan Jurik");
|
||||
+MODULE_DESCRIPTION("Atari NFeth driver");
|
||||
+MODULE_LICENSE("GPL");
|
||||
+/*
|
||||
+MODULE_PARM(nfeth_debug, "i");
|
||||
+MODULE_PARM_DESC(nfeth_debug, "nfeth_debug level (1-2)");
|
||||
+*/
|
||||
+
|
||||
+
|
||||
+static long nfEtherID;
|
||||
+static int nfEtherIRQ;
|
||||
+
|
||||
+struct nfeth_private {
|
||||
+ int ethX;
|
||||
+ struct net_device_stats stats;
|
||||
+};
|
||||
+
|
||||
+static struct net_device *nfeth_dev[MAX_UNIT];
|
||||
+
|
||||
+int nfeth_open(struct net_device *dev);
|
||||
+int nfeth_stop(struct net_device *dev);
|
||||
+irqreturn_t nfeth_interrupt(int irq, void *dev_id);
|
||||
+int nfeth_xmit(struct sk_buff *skb, struct net_device *dev);
|
||||
+
|
||||
+int nfeth_open(struct net_device *dev)
|
||||
+{
|
||||
+ struct nfeth_private *priv = netdev_priv(dev);
|
||||
+ int res;
|
||||
+
|
||||
+ res = nf_call(nfEtherID + XIF_START, priv->ethX);
|
||||
+
|
||||
+ /* Clean statistics */
|
||||
+ memset(&priv->stats, 0, sizeof(struct net_device_stats));
|
||||
+
|
||||
+ pr_debug(DRV_NAME ": open %d\n", res);
|
||||
+
|
||||
+ /* Ready for data */
|
||||
+ netif_start_queue(dev);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+int nfeth_stop(struct net_device *dev)
|
||||
+{
|
||||
+ struct nfeth_private *priv = netdev_priv(dev);
|
||||
+
|
||||
+ /* No more data */
|
||||
+ netif_stop_queue(dev);
|
||||
+
|
||||
+ nf_call(nfEtherID + XIF_STOP, priv->ethX);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Read a packet out of the adapter and pass it to the upper layers
|
||||
+ */
|
||||
+static inline void recv_packet(struct net_device *dev)
|
||||
+{
|
||||
+ struct nfeth_private *priv = netdev_priv(dev);
|
||||
+ int handled = 0;
|
||||
+ unsigned short pktlen;
|
||||
+ struct sk_buff *skb;
|
||||
+
|
||||
+ /* read packet length (excluding 32 bit crc) */
|
||||
+ pktlen = nf_call(nfEtherID + XIF_READLENGTH, priv->ethX);
|
||||
+
|
||||
+ pr_debug(DRV_NAME ": recv_packet: %i\n", pktlen);
|
||||
+
|
||||
+ if (!pktlen) {
|
||||
+ pr_debug(DRV_NAME ": recv_packet: pktlen == 0\n");
|
||||
+ priv->stats.rx_errors++;
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ skb = dev_alloc_skb(pktlen + 2);
|
||||
+ if (!skb) {
|
||||
+ pr_debug(DRV_NAME
|
||||
+ ": recv_packet: out of mem (buf_alloc failed)\n");
|
||||
+ priv->stats.rx_dropped++;
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ skb->dev = dev;
|
||||
+ skb_reserve(skb, 2); /* 16 Byte align */
|
||||
+ skb_put(skb, pktlen); /* make room */
|
||||
+ nf_call(nfEtherID + XIF_READBLOCK, priv->ethX, virt_to_phys(skb->data),
|
||||
+ pktlen);
|
||||
+
|
||||
+ skb->protocol = eth_type_trans(skb, dev);
|
||||
+ netif_rx(skb);
|
||||
+ dev->last_rx = jiffies;
|
||||
+ priv->stats.rx_packets++;
|
||||
+ priv->stats.rx_bytes += pktlen;
|
||||
+
|
||||
+ /* and enqueue packet */
|
||||
+ handled = 1;
|
||||
+ return;
|
||||
+}
|
||||
+
|
||||
+irqreturn_t nfeth_interrupt(int irq, void *dev_id)
|
||||
+{
|
||||
+ int i, m, mask;
|
||||
+
|
||||
+ mask = nf_call(nfEtherID + XIF_IRQ, 0);
|
||||
+ for (i = 0, m = 1; i < MAX_UNIT; m <<= 1, i++) {
|
||||
+ if (mask & m && nfeth_dev[i]) {
|
||||
+ recv_packet(nfeth_dev[i]);
|
||||
+ nf_call(nfEtherID + XIF_IRQ, m);
|
||||
+ }
|
||||
+ }
|
||||
+ return IRQ_HANDLED;
|
||||
+}
|
||||
+
|
||||
+int nfeth_xmit(struct sk_buff *skb, struct net_device *dev)
|
||||
+{
|
||||
+ int len;
|
||||
+ char *data, shortpkt[ETH_ZLEN];
|
||||
+ struct nfeth_private *priv = netdev_priv(dev);
|
||||
+
|
||||
+ data = skb->data;
|
||||
+ len = skb->len;
|
||||
+ if (len < ETH_ZLEN) {
|
||||
+ memset(shortpkt, 0, ETH_ZLEN);
|
||||
+ memcpy(shortpkt, data, len);
|
||||
+ data = shortpkt;
|
||||
+ len = ETH_ZLEN;
|
||||
+ }
|
||||
+
|
||||
+ dev->trans_start = jiffies;
|
||||
+
|
||||
+ pr_debug(DRV_NAME ": send %d bytes\n", len);
|
||||
+ nf_call(nfEtherID + XIF_WRITEBLOCK, priv->ethX, virt_to_phys(data),
|
||||
+ len);
|
||||
+
|
||||
+ priv->stats.tx_packets++;
|
||||
+ priv->stats.tx_bytes += len;
|
||||
+
|
||||
+ dev_kfree_skb(skb);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void nfeth_tx_timeout(struct net_device *dev)
|
||||
+{
|
||||
+ struct nfeth_private *priv = netdev_priv(dev);
|
||||
+ priv->stats.tx_errors++;
|
||||
+ netif_wake_queue(dev);
|
||||
+}
|
||||
+
|
||||
+static struct net_device_stats *nfeth_get_stats(struct net_device *dev)
|
||||
+{
|
||||
+ struct nfeth_private *priv = netdev_priv(dev);
|
||||
+ return &priv->stats;
|
||||
+}
|
||||
+
|
||||
+struct net_device * __init nfeth_probe(int unit)
|
||||
+{
|
||||
+ struct net_device *dev;
|
||||
+ struct nfeth_private *priv;
|
||||
+ char mac[ETH_ALEN], host_ip[32], local_ip[32];
|
||||
+ DECLARE_MAC_BUF(macfmt);
|
||||
+ int err;
|
||||
+
|
||||
+ if (!nf_call(nfEtherID + XIF_GET_MAC, unit, mac, ETH_ALEN))
|
||||
+ return NULL;
|
||||
+
|
||||
+ dev = alloc_etherdev(sizeof(struct nfeth_private));
|
||||
+ if (!dev)
|
||||
+ return NULL;
|
||||
+
|
||||
+ dev->irq = nfEtherIRQ;
|
||||
+ dev->open = nfeth_open;
|
||||
+ dev->stop = nfeth_stop;
|
||||
+ dev->hard_start_xmit = nfeth_xmit;
|
||||
+ dev->tx_timeout = nfeth_tx_timeout;
|
||||
+ dev->get_stats = nfeth_get_stats;
|
||||
+ dev->flags |= NETIF_F_NO_CSUM;
|
||||
+ memcpy(dev->dev_addr, mac, ETH_ALEN);
|
||||
+
|
||||
+ priv = netdev_priv(dev);
|
||||
+ priv->ethX = unit;
|
||||
+
|
||||
+ err = register_netdev(dev);
|
||||
+ if (err) {
|
||||
+ free_netdev(dev);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ nf_call(nfEtherID + XIF_GET_IPHOST, unit,
|
||||
+ host_ip, sizeof(host_ip));
|
||||
+ nf_call(nfEtherID + XIF_GET_IPATARI, unit,
|
||||
+ local_ip, sizeof(local_ip));
|
||||
+
|
||||
+ pr_info("%s: nfeth addr:%s (%s) HWaddr:%s\n", dev->name, host_ip,
|
||||
+ local_ip, print_mac(macfmt, mac));
|
||||
+
|
||||
+ return dev;
|
||||
+}
|
||||
+
|
||||
+int __init nfeth_init(void)
|
||||
+{
|
||||
+ long ver;
|
||||
+ int i;
|
||||
+
|
||||
+ nfEtherID = nf_get_id("ETHERNET");
|
||||
+ if (!nfEtherID)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ ver = nf_call(nfEtherID + GET_VERSION);
|
||||
+ pr_info("nfeth API %lu\n", ver);
|
||||
+
|
||||
+ nfEtherIRQ = nf_call(nfEtherID + XIF_INTLEVEL);
|
||||
+ if (request_irq(nfEtherIRQ, nfeth_interrupt, IRQF_SHARED,
|
||||
+ "eth emu", nfeth_interrupt)) {
|
||||
+ printk(KERN_ERR "nfeth: request for irq %d failed",
|
||||
+ nfEtherIRQ);
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; i < MAX_UNIT; i++)
|
||||
+ nfeth_dev[i] = nfeth_probe(i);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+void __exit nfeth_cleanup(void)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < MAX_UNIT; i++) {
|
||||
+ if (nfeth_dev[i]) {
|
||||
+ unregister_netdev(nfeth_dev[0]);
|
||||
+ free_netdev(nfeth_dev[0]);
|
||||
+ }
|
||||
+ }
|
||||
+ free_irq(nfEtherIRQ, nfeth_interrupt);
|
||||
+}
|
||||
+
|
||||
+module_init(nfeth_init);
|
||||
+module_exit(nfeth_cleanup);
|
||||
--- a/arch/m68k/kernel/setup.c
|
||||
+++ b/arch/m68k/kernel/setup.c
|
||||
@@ -39,6 +39,7 @@
|
||||
#ifdef CONFIG_SUN3X
|
||||
#include <asm/dvma.h>
|
||||
#endif
|
||||
+#include <asm/natfeat.h>
|
||||
|
||||
unsigned long m68k_machtype;
|
||||
unsigned long m68k_cputype;
|
||||
@@ -314,6 +315,10 @@ void __init setup_arch(char **cmdline_p)
|
||||
panic("No configuration setup");
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_NATFEAT
|
||||
+ nf_init();
|
||||
+#endif
|
||||
+
|
||||
paging_init();
|
||||
|
||||
#ifndef CONFIG_SUN3
|
||||
--- a/drivers/net/Kconfig
|
||||
+++ b/drivers/net/Kconfig
|
||||
@@ -428,6 +428,14 @@ config ATARILANCE
|
||||
on the AMD Lance chipset: RieblCard (with or without battery), or
|
||||
PAMCard VME (also the version by Rhotron, with different addresses).
|
||||
|
||||
+config ATARI_ETHERNEC
|
||||
+ tristate "Atari EtherNEC Ethernet support"
|
||||
+ depends on NET_ETHERNET && ATARI && ATARI_ROM_ISA
|
||||
+ help
|
||||
+ Say Y to include support for the EtherNEC network adapter for the
|
||||
+ ROM port. The driver works by polling instead of interrupts, so it
|
||||
+ is quite slow.
|
||||
+
|
||||
config SUN3LANCE
|
||||
tristate "Sun3/Sun3x on-board LANCE support"
|
||||
depends on SUN3 || SUN3X
|
||||
--- /dev/null
|
||||
+++ b/include/asm-m68k/natfeat.h
|
||||
@@ -0,0 +1,22 @@
|
||||
+/*
|
||||
+ * ARAnyM hardware support via Native Features (natfeats)
|
||||
+ *
|
||||
+ * Copyright (c) 2005 Petr Stehlik of ARAnyM dev team
|
||||
+ *
|
||||
+ * This software may be used and distributed according to the terms of
|
||||
+ * the GNU General Public License (GPL), incorporated herein by reference.
|
||||
+ */
|
||||
+
|
||||
+#ifndef _NATFEAT_H
|
||||
+#define _NATFEAT_H
|
||||
+
|
||||
+long nf_get_id(const char *feature_name);
|
||||
+long nf_call(long id, ...);
|
||||
+
|
||||
+void nf_init(void);
|
||||
+void nf_shutdown(void);
|
||||
+
|
||||
+void nfprint(const char *fmt, ...)
|
||||
+ __attribute__ ((format (printf, 1, 2)));
|
||||
+
|
||||
+# endif /* _NATFEAT_H */
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,73 @@
|
|||
arch/m68k/atari/ataints.c: ATARIHW_PRESENT(TT_MFP)) || \
|
||||
arch/m68k/atari/ataints.c: !((n) & 1) && ATARIHW_PRESENT(SCC)) || \
|
||||
arch/m68k/atari/ataints.c: if (ATARIHW_PRESENT(TT_MFP)) {
|
||||
arch/m68k/atari/ataints.c: if (ATARIHW_PRESENT(SCC) && !atari_SCC_reset_done) {
|
||||
arch/m68k/atari/ataints.c: if (ATARIHW_PRESENT(SCU)) {
|
||||
arch/m68k/atari/ataints.c: if (ATARIHW_PRESENT(PCM_8BIT) && ATARIHW_PRESENT(MICROWIRE)) {
|
||||
arch/m68k/atari/config.c: if (!MACH_IS_HADES && !ATARIHW_PRESENT(ST_SCSI)) {
|
||||
arch/m68k/atari/config.c: if (ATARIHW_PRESENT(MSTE_CLK))
|
||||
arch/m68k/atari/config.c: if (ATARIHW_PRESENT(name)) \
|
||||
arch/m68k/atari/debug.c: if (ATARIHW_PRESENT(TT_MFP) && baud >= 6) {
|
||||
drivers/block/ataflop.c: if (ATARIHW_PRESENT(FDCSPEED))
|
||||
drivers/block/ataflop.c: if (ATARIHW_PRESENT(FDCSPEED))
|
||||
drivers/block/ataflop.c: if (ATARIHW_PRESENT(FDCSPEED))
|
||||
drivers/block/ataflop.c: if (ATARIHW_PRESENT(FDCSPEED)) {
|
||||
drivers/block/ataflop.c: if (ATARIHW_PRESENT(FDCSPEED))
|
||||
drivers/block/ataflop.c: if (ATARIHW_PRESENT(EXTD_DMA)) {
|
||||
drivers/block/ataflop.c: paddr = ATARIHW_PRESENT(EXTD_DMA) ?
|
||||
drivers/block/ataflop.c: if (ATARIHW_PRESENT(EXTD_DMA))
|
||||
drivers/block/ataflop.c: if (ATARIHW_PRESENT( EXTD_DMA ))
|
||||
drivers/block/ataflop.c: if (ATARIHW_PRESENT(FDCSPEED)) {
|
||||
drivers/block/ataflop.c: addr = ATARIHW_PRESENT( EXTD_DMA ) ? ReqData : DMABuffer;
|
||||
drivers/block/ataflop.c: if (!ATARIHW_PRESENT( EXTD_DMA ))
|
||||
drivers/block/ataflop.c: if (ATARIHW_PRESENT( EXTD_DMA ))
|
||||
drivers/block/ataflop.c: if (ATARIHW_PRESENT( FDCSPEED ) || MACH_IS_MEDUSA)
|
||||
drivers/block/ataflop.c: if (ATARIHW_PRESENT(FDCSPEED))
|
||||
drivers/char/dsp56k.c: if(!MACH_IS_ATARI || !ATARIHW_PRESENT(DSP56K)) {
|
||||
drivers/char/nvram.c:#define CHECK_DRIVER_INIT() (MACH_IS_ATARI && ATARIHW_PRESENT(TT_CLK))
|
||||
drivers/ide/legacy/falconide.c: if (MACH_IS_ATARI && ATARIHW_PRESENT(IDE)) {
|
||||
drivers/input/keyboard/atakbd.c: if (!MACH_IS_ATARI || !ATARIHW_PRESENT(ST_MFP))
|
||||
drivers/input/mouse/atarimouse.c: if (!MACH_IS_ATARI || !ATARIHW_PRESENT(ST_MFP))
|
||||
drivers/scsi/atari_scsi.c:#define IS_A_TT() ATARIHW_PRESENT(TT_SCSI)
|
||||
drivers/scsi/atari_scsi.c: (!ATARIHW_PRESENT(ST_SCSI) && !ATARIHW_PRESENT(TT_SCSI)) ||
|
||||
drivers/scsi/atari_scsi.c: if (ATARIHW_PRESENT(TT_CLK) && nvram_check_checksum()) {
|
||||
drivers/scsi/atari_scsi.c: if (MACH_IS_ATARI && ATARIHW_PRESENT(ST_SCSI) &&
|
||||
drivers/scsi/atari_scsi.c: !ATARIHW_PRESENT(EXTD_DMA) && m68k_num_memory > 1) {
|
||||
drivers/scsi/atari_scsi.c: atari_dma_stram_mask = (ATARIHW_PRESENT(EXTD_DMA) ? 0x00000000
|
||||
drivers/video/atafb.c: if (ATARIHW_PRESENT(PCM_8BIT)) {
|
||||
drivers/video/atafb.c: if (ATARIHW_PRESENT(EXTD_SHIFTER)) {
|
||||
drivers/video/atafb.c: var->red.length = ATARIHW_PRESENT(EXTD_SHIFTER) ? 4 : 3;
|
||||
drivers/video/atafb.c: if (ATARIHW_PRESENT(EXTD_SHIFTER))
|
||||
drivers/video/atafb.c: if (ATARIHW_PRESENT(EXTD_SHIFTER))
|
||||
drivers/video/atafb.c: if (ATARIHW_PRESENT(PCM_8BIT)) {
|
||||
drivers/video/atafb.c: if (!ATARIHW_PRESENT(EXTD_SHIFTER))
|
||||
drivers/video/atafb.c: if (ATARIHW_PRESENT(EXTD_SHIFTER))
|
||||
drivers/video/atafb.c: (!ATARIHW_PRESENT(EXTD_SHIFTER) && var->xoffset))
|
||||
drivers/video/atafb.c: if (ATARIHW_PRESENT(TT_SHIFTER)) {
|
||||
drivers/video/atafb.c: if (ATARIHW_PRESENT(VIDEL_SHIFTER)) {
|
||||
drivers/video/atafb.c: if (ATARIHW_PRESENT(STND_SHIFTER) ||
|
||||
drivers/video/atafb.c: ATARIHW_PRESENT(EXTD_SHIFTER)) {
|
||||
include/asm-m68k/atarihw.h:#define ATARIHW_PRESENT(name) (atari_hw_present.name)
|
||||
sound/oss/dmasound/dmasound_atari.c: if (MACH_IS_ATARI && ATARIHW_PRESENT(PCM_8BIT)) {
|
||||
sound/oss/dmasound/dmasound_atari.c: if (ATARIHW_PRESENT(CODEC)) {
|
||||
sound/oss/dmasound/dmasound_atari.c: } else if (ATARIHW_PRESENT(MICROWIRE)) {
|
||||
drivers/char/atari_scc.c: int escc = ATARIHW_PRESENT(ST_ESCC);
|
||||
drivers/char/atari_scc.c: if (!(ATARIHW_PRESENT(SCC) || ATARIHW_PRESENT(ST_ESCC)))
|
||||
drivers/char/atari_scc.c: if (ATARIHW_PRESENT(TT_MFP) && baud >= 6) {
|
||||
---
|
||||
arch/m68k/atari/platform.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
--- /dev/null
|
||||
+++ b/arch/m68k/atari/platform.c
|
||||
@@ -0,0 +1,10 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2007 Geert Uytterhoeven
|
||||
+ *
|
||||
+ * This file is subject to the terms and conditions of the GNU General Public
|
||||
+ * License. See the file COPYING in the main directory of this archive
|
||||
+ * for more details.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/platform_device.h>
|
||||
+
|
|
@ -0,0 +1,401 @@
|
|||
Subject: [PATCH] m68k: Atari ROM port ISA adapter support
|
||||
|
||||
From: Michael Schmitz <schmitz@opal.biophys.uni-duesseldorf.de>
|
||||
|
||||
Atari ROM port ISA adapter support
|
||||
|
||||
Signed-off-by: Michael Schmitz <schmitz@debian.org>
|
||||
Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
|
||||
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
---
|
||||
arch/m68k/Kconfig | 10 +++
|
||||
include/asm-m68k/io.h | 137 ++++++++++++++++++++++++++++++++++++++++++++--
|
||||
include/asm-m68k/raw_io.h | 116 ++++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 258 insertions(+), 5 deletions(-)
|
||||
|
||||
--- a/arch/m68k/Kconfig
|
||||
+++ b/arch/m68k/Kconfig
|
||||
@@ -150,6 +150,16 @@ config PCI
|
||||
information about which PCI hardware does work under Linux and which
|
||||
doesn't.
|
||||
|
||||
+config ATARI_ROM_ISA
|
||||
+ bool "Atari ROM port ISA adapter support"
|
||||
+ depends on ATARI
|
||||
+ help
|
||||
+ This option enables support for the ROM port ISA adapter used to
|
||||
+ operate ISA cards on Atari. Only 8 bit cards are supported, and
|
||||
+ no interrupt lines are connected.
|
||||
+ The only driver currently using this adapter is the EtherNEC
|
||||
+ driver for RTL8019AS based NE2000 compatible network cards.
|
||||
+
|
||||
config MAC
|
||||
bool "Macintosh support"
|
||||
depends on !MMU_SUN3
|
||||
--- a/include/asm-m68k/io.h
|
||||
+++ b/include/asm-m68k/io.h
|
||||
@@ -83,9 +83,26 @@ extern unsigned long gg2_isa_base;
|
||||
#endif
|
||||
#endif /* AMIGA_PCMCIA */
|
||||
|
||||
+#ifdef CONFIG_ATARI_ROM_ISA
|
||||
|
||||
+#define enec_isa_read_base 0xfffa0000
|
||||
+#define enec_isa_write_base 0xfffb0000
|
||||
|
||||
-#ifdef CONFIG_ISA
|
||||
+#define ENEC_ISA_IO_B(ioaddr) (enec_isa_read_base+((((unsigned long)(ioaddr))&0x1F)<<9))
|
||||
+#define ENEC_ISA_IO_W(ioaddr) (enec_isa_read_base+((((unsigned long)(ioaddr))&0x1F)<<9))
|
||||
+#define ENEC_ISA_MEM_B(madr) (enec_isa_read_base+((((unsigned long)(madr))&0x1F)<<9))
|
||||
+#define ENEC_ISA_MEM_W(madr) (enec_isa_read_base+((((unsigned long)(madr))&0x1F)<<9))
|
||||
+
|
||||
+#ifndef MULTI_ISA
|
||||
+#define MULTI_ISA 0
|
||||
+#else
|
||||
+#undef MULTI_ISA
|
||||
+#define MULTI_ISA 1
|
||||
+#endif
|
||||
+#endif /* ATARI */
|
||||
+
|
||||
+
|
||||
+#if defined(CONFIG_ISA) || defined(CONFIG_ATARI_ROM_ISA)
|
||||
|
||||
#if MULTI_ISA == 0
|
||||
#undef MULTI_ISA
|
||||
@@ -94,6 +111,7 @@ extern unsigned long gg2_isa_base;
|
||||
#define Q40_ISA (1)
|
||||
#define GG2_ISA (2)
|
||||
#define AG_ISA (3)
|
||||
+#define ENEC_ISA (4)
|
||||
|
||||
#if defined(CONFIG_Q40) && !defined(MULTI_ISA)
|
||||
#define ISA_TYPE Q40_ISA
|
||||
@@ -107,6 +125,10 @@ extern unsigned long gg2_isa_base;
|
||||
#define ISA_TYPE GG2_ISA
|
||||
#define ISA_SEX 0
|
||||
#endif
|
||||
+#if defined(CONFIG_ATARI_ROM_ISA) && !defined(MULTI_ISA)
|
||||
+#define ISA_TYPE ENEC_ISA
|
||||
+#define ISA_SEX 0
|
||||
+#endif
|
||||
|
||||
#ifdef MULTI_ISA
|
||||
extern int isa_type;
|
||||
@@ -134,6 +156,9 @@ static inline u8 __iomem *isa_itb(unsign
|
||||
#ifdef CONFIG_AMIGA_PCMCIA
|
||||
case AG_ISA: return (u8 __iomem *)AG_ISA_IO_B(addr);
|
||||
#endif
|
||||
+#ifdef CONFIG_ATARI_ROM_ISA
|
||||
+ case ENEC_ISA: return (u8 __iomem *)ENEC_ISA_IO_B(addr);
|
||||
+#endif
|
||||
default: return NULL; /* avoid warnings, just in case */
|
||||
}
|
||||
}
|
||||
@@ -150,6 +175,9 @@ static inline u16 __iomem *isa_itw(unsig
|
||||
#ifdef CONFIG_AMIGA_PCMCIA
|
||||
case AG_ISA: return (u16 __iomem *)AG_ISA_IO_W(addr);
|
||||
#endif
|
||||
+#ifdef CONFIG_ATARI_ROM_ISA
|
||||
+ case ENEC_ISA: return (u16 __iomem *)ENEC_ISA_IO_W(addr);
|
||||
+#endif
|
||||
default: return NULL; /* avoid warnings, just in case */
|
||||
}
|
||||
}
|
||||
@@ -160,7 +188,7 @@ static inline u32 __iomem *isa_itl(unsig
|
||||
#ifdef CONFIG_AMIGA_PCMCIA
|
||||
case AG_ISA: return (u32 __iomem *)AG_ISA_IO_W(addr);
|
||||
#endif
|
||||
- default: return 0; /* avoid warnings, just in case */
|
||||
+ default: return NULL; /* avoid warnings, just in case */
|
||||
}
|
||||
}
|
||||
static inline u8 __iomem *isa_mtb(unsigned long addr)
|
||||
@@ -176,6 +204,9 @@ static inline u8 __iomem *isa_mtb(unsign
|
||||
#ifdef CONFIG_AMIGA_PCMCIA
|
||||
case AG_ISA: return (u8 __iomem *)addr;
|
||||
#endif
|
||||
+#ifdef CONFIG_ATARI_ROM_ISA
|
||||
+ case ENEC_ISA: return (u8 __iomem *)ENEC_ISA_MEM_B(addr);
|
||||
+#endif
|
||||
default: return NULL; /* avoid warnings, just in case */
|
||||
}
|
||||
}
|
||||
@@ -192,6 +223,9 @@ static inline u16 __iomem *isa_mtw(unsig
|
||||
#ifdef CONFIG_AMIGA_PCMCIA
|
||||
case AG_ISA: return (u16 __iomem *)addr;
|
||||
#endif
|
||||
+#ifdef CONFIG_ATARI_ROM_ISA
|
||||
+ case ENEC_ISA: return (u16 __iomem *)ENEC_ISA_MEM_W(addr);
|
||||
+#endif
|
||||
default: return NULL; /* avoid warnings, just in case */
|
||||
}
|
||||
}
|
||||
@@ -213,6 +247,34 @@ static inline u16 __iomem *isa_mtw(unsig
|
||||
(ISA_SEX ? out_be16(isa_mtw((unsigned long)(p)),(val)) \
|
||||
: out_le16(isa_mtw((unsigned long)(p)),(val)))
|
||||
|
||||
+#if defined(CONFIG_ATARI_ROM_ISA)
|
||||
+#define isa_rom_inb(port) rom_in_8(isa_itb(port))
|
||||
+#define isa_rom_inw(port) \
|
||||
+ (ISA_SEX ? rom_in_be16(isa_itw(port)) \
|
||||
+ : rom_in_le16(isa_itw(port)))
|
||||
+#define isa_rom_inl(port) \
|
||||
+ (ISA_SEX ? rom_in_be32(isa_itw(port)) \
|
||||
+ : rom_in_le32(isa_itw(port)))
|
||||
+
|
||||
+#define isa_rom_outb(val, port) rom_out_8(isa_itb(port), (val))
|
||||
+#define isa_rom_outw(val, port) \
|
||||
+ (ISA_SEX ? rom_out_be16(isa_itw(port), (val)) \
|
||||
+ : rom_out_le16(isa_itw(port), (val)))
|
||||
+#define isa_rom_outl(val, port) \
|
||||
+ (ISA_SEX ? rom_out_be32(isa_itw(port), (val)) \
|
||||
+ : rom_out_le32(isa_itw(port), (val)))
|
||||
+
|
||||
+#define isa_rom_readb(p) rom_in_8(isa_mtb((unsigned long)(p)))
|
||||
+#define isa_rom_readw(p) \
|
||||
+ (ISA_SEX ? rom_in_be16(isa_mtw((unsigned long)(p))) \
|
||||
+ : rom_in_le16(isa_mtw((unsigned long)(p))))
|
||||
+
|
||||
+#define isa_rom_writeb(val, p) rom_out_8(isa_mtb((unsigned long)(p)), (val))
|
||||
+#define isa_rom_writew(val, p) \
|
||||
+ (ISA_SEX ? rom_out_be16(isa_mtw((unsigned long)(p)), (val)) \
|
||||
+ : rom_out_le16(isa_mtw((unsigned long)(p)), (val)))
|
||||
+#endif
|
||||
+
|
||||
static inline void isa_delay(void)
|
||||
{
|
||||
switch(ISA_TYPE)
|
||||
@@ -226,6 +288,9 @@ static inline void isa_delay(void)
|
||||
#ifdef CONFIG_AMIGA_PCMCIA
|
||||
case AG_ISA: break;
|
||||
#endif
|
||||
+#ifdef CONFIG_ATARI_ROM_ISA
|
||||
+ case ENEC_ISA: break;
|
||||
+#endif
|
||||
default: break; /* avoid warnings */
|
||||
}
|
||||
}
|
||||
@@ -256,10 +321,40 @@ static inline void isa_delay(void)
|
||||
(ISA_SEX ? raw_outsl(isa_itl(port), (u32 *)(buf), (nr)) : \
|
||||
raw_outsw_swapw(isa_itw(port), (u16 *)(buf), (nr)<<1))
|
||||
|
||||
+
|
||||
+#if defined(CONFIG_ATARI_ROM_ISA)
|
||||
+#define isa_rom_inb_p(p) ({ u8 _v = isa_rom_inb(p); isa_delay(); _v; })
|
||||
+#define isa_rom_inw_p(p) ({ u16 _v = isa_rom_inw(p); isa_delay(); _v; })
|
||||
+#define isa_rom_inl_p(p) ({ u32 _v = isa_rom_inl(p); isa_delay(); _v; })
|
||||
+#define isa_rom_outb_p(v, p) ({ isa_rom_outb((v), (p)); isa_delay(); })
|
||||
+#define isa_rom_outw_p(v, p) ({ isa_rom_outw((v), (p)); isa_delay(); })
|
||||
+#define isa_rom_outl_p(v, p) ({ isa_rom_outl((v), (p)); isa_delay(); })
|
||||
+
|
||||
+#define isa_rom_insb(port, buf, nr) raw_rom_insb(isa_itb(port), (u8 *)(buf), (nr))
|
||||
+
|
||||
+#define isa_rom_insw(port, buf, nr) \
|
||||
+ (ISA_SEX ? raw_rom_insw(isa_itw(port), (u16 *)(buf), (nr)) : \
|
||||
+ raw_rom_insw_swapw(isa_itw(port), (u16 *)(buf), (nr)))
|
||||
+
|
||||
+#define isa_rom_insl(port, buf, nr) \
|
||||
+ (ISA_SEX ? raw_rom_insl(isa_itw(port), (u32 *)(buf), (nr)) : \
|
||||
+ raw_rom_insw_swapw(isa_itw(port), (u16 *)(buf), (nr)<<1))
|
||||
+
|
||||
+#define isa_rom_outsb(port, buf, nr) raw_rom_outsb(isa_itb(port), (u8 *)(buf), (nr))
|
||||
+
|
||||
+#define isa_rom_outsw(port, buf, nr) \
|
||||
+ (ISA_SEX ? raw_rom_outsw(isa_itw(port), (u16 *)(buf), (nr)) : \
|
||||
+ raw_rom_outsw_swapw(isa_itw(port), (u16 *)(buf), (nr)))
|
||||
+
|
||||
+#define isa_rom_outsl(port, buf, nr) \
|
||||
+ (ISA_SEX ? raw_rom_outsl(isa_itw(port), (u32 *)(buf), (nr)) : \
|
||||
+ raw_rom_outsw_swapw(isa_itw(port), (u16 *)(buf), (nr)<<1))
|
||||
+#endif
|
||||
+
|
||||
#endif /* CONFIG_ISA */
|
||||
|
||||
|
||||
-#if defined(CONFIG_ISA) && !defined(CONFIG_PCI)
|
||||
+#if defined(CONFIG_ISA) && !defined(CONFIG_PCI) && !defined(CONFIG_ATARI_ROM_ISA)
|
||||
#define inb isa_inb
|
||||
#define inb_p isa_inb_p
|
||||
#define outb isa_outb
|
||||
@@ -330,7 +425,41 @@ static inline void isa_delay(void)
|
||||
#endif
|
||||
#endif /* CONFIG_PCI */
|
||||
|
||||
-#if !defined(CONFIG_ISA) && !defined(CONFIG_PCI)
|
||||
+#if defined(CONFIG_ATARI_ROM_ISA)
|
||||
+/*
|
||||
+ * kernel with both ROM port ISA and IDE compiled in, those have
|
||||
+ * conflicting defs for in/out. Simply consider port < 1024
|
||||
+ * ROM port ISA and everything else regular ISA for IDE. read,write not defined
|
||||
+ * in this case
|
||||
+ */
|
||||
+#define inb(port) ((port) < 1024 ? isa_rom_inb(port) : in_8(port))
|
||||
+#define inb_p(port) ((port) < 1024 ? isa_rom_inb_p(port) : in_8(port))
|
||||
+#define inw(port) ((port) < 1024 ? isa_rom_inw(port) : in_le16(port))
|
||||
+#define inw_p(port) ((port) < 1024 ? isa_rom_inw_p(port) : in_le16(port))
|
||||
+#define inl(port) ((port) < 1024 ? isa_rom_inl(port) : in_le32(port))
|
||||
+#define inl_p(port) ((port) < 1024 ? isa_rom_inl_p(port) : in_le32(port))
|
||||
+
|
||||
+#define outb(val, port) ((port) < 1024 ? isa_rom_outb((val), (port)) : out_8((port), (val)))
|
||||
+#define outb_p(val, port) ((port) < 1024 ? isa_rom_outb_p((val), (port)) : out_8((port), (val)))
|
||||
+#define outw(val, port) ((port) < 1024 ? isa_rom_outw((val), (port)) : out_le16((port), (val)))
|
||||
+#define outw_p(val, port) ((port) < 1024 ? isa_rom_outw_p((val), (port)) : out_le16((port), (val)))
|
||||
+#define outl(val, port) ((port) < 1024 ? isa_rom_outl((val), (port)) : out_le32((port), (val)))
|
||||
+#define outl_p(val, port) ((port) < 1024 ? isa_rom_outl_p((val), (port)) : out_le32((port), (val)))
|
||||
+
|
||||
+#define insb isa_rom_insb
|
||||
+#define insw isa_rom_insw
|
||||
+#define insl isa_rom_insl
|
||||
+#define outsb isa_rom_outsb
|
||||
+#define outsw isa_rom_outsw
|
||||
+#define outsl isa_rom_outsl
|
||||
+
|
||||
+#define readb isa_readb
|
||||
+#define readw isa_readw
|
||||
+#define writeb isa_writeb
|
||||
+#define writew isa_writew
|
||||
+#endif
|
||||
+
|
||||
+#if !defined(CONFIG_ISA) && !defined(CONFIG_PCI) && !defined(CONFIG_ATARI_ROM_ISA)
|
||||
/*
|
||||
* We need to define dummy functions for GENERIC_IOMAP support.
|
||||
*/
|
||||
--- a/include/asm-m68k/raw_io.h
|
||||
+++ b/include/asm-m68k/raw_io.h
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
-#include <asm/types.h>
|
||||
+#include <asm/byteorder.h>
|
||||
|
||||
|
||||
/* Values for nocacheflag and cmode */
|
||||
@@ -60,6 +60,46 @@ extern void __iounmap(void *addr, unsign
|
||||
#define __raw_writew(val,addr) out_be16((addr),(val))
|
||||
#define __raw_writel(val,addr) out_be32((addr),(val))
|
||||
|
||||
+/*
|
||||
+ * Atari ROM port (cartridge port) ISA adapter, used for the EtherNEC NE2000
|
||||
+ * network card driver.
|
||||
+ * The ISA adapter connects address lines A9-A13 to ISA address lines A0-A4,
|
||||
+ * and hardwires the rest of the ISA addresses for a base address of 0x300.
|
||||
+ *
|
||||
+ * Data lines D8-D15 are connected to ISA data lines D0-D7 for reading.
|
||||
+ * For writes, address lines A1-A8 are latched to ISA data lines D0-D7
|
||||
+ * (meaning the bit pattern on A1-A8 can be read back as byte).
|
||||
+ *
|
||||
+ * Reads and writes are byte only.
|
||||
+ */
|
||||
+
|
||||
+#if defined(CONFIG_ATARI_ROM_ISA)
|
||||
+#define rom_in_8(addr) \
|
||||
+ ({ u16 __v = (*(__force volatile u16 *) (addr)); __v >>= 8; __v; })
|
||||
+#define rom_in_be16(addr) \
|
||||
+ ({ u16 __v = (*(__force volatile u16 *) (addr)); __v >>= 8; __v; })
|
||||
+#define rom_in_be32(addr) \
|
||||
+ ({ u32 __v = (*(__force volatile u32 *) (addr)); __v >>= 8; __v; })
|
||||
+#define rom_in_le16(addr) \
|
||||
+ ({ u16 __v = le16_to_cpu(*(__force volatile u16 *) (addr)); __v >>= 8; __v; })
|
||||
+#define rom_in_le32(addr) \
|
||||
+ ({ u32 __v = le32_to_cpu(*(__force volatile u32 *) (addr)); __v >>= 8; __v; })
|
||||
+
|
||||
+#define rom_out_8(addr, b) ({u8 __w, __v = (b); __w = ((*(__force volatile u8 *) ((addr) + 0x10000 + (__v<<1)))); })
|
||||
+#define rom_out_be16(addr, w) ({u16 __w, __v = (w); __w = ((*(__force volatile u16 *) ((addr) + 0x10000 + (__v<<1)))); })
|
||||
+#define rom_out_be32(addr, l) ({u32 __w, __v = (l); __w = ((*(__force volatile u32 *) ((addr) + 0x10000 + (__v<<1)))); })
|
||||
+#define rom_out_le16(addr, w) ({u16 __w, __v = cpu_to_le16(w); __w = ((*(__force volatile u16 *) ((addr) + 0x10000 + (__v<<1)))); })
|
||||
+#define rom_out_le32(addr, l) ({u32 __w, __v = cpu_to_le32(l); __w = ((*(__force volatile u32 *) ((addr) + 0x10000 + (__v<<1)))); })
|
||||
+
|
||||
+#define raw_rom_inb rom_in_8
|
||||
+#define raw_rom_inw rom_in_be16
|
||||
+#define raw_rom_inl rom_in_be32
|
||||
+
|
||||
+#define raw_rom_outb(val, port) rom_out_8((port), (val))
|
||||
+#define raw_rom_outw(val, port) rom_out_be16((port), (val))
|
||||
+#define raw_rom_outl(val, port) rom_out_be32((port), (val))
|
||||
+#endif /* CONFIG_ATARI_ROM_ISA */
|
||||
+
|
||||
static inline void raw_insb(volatile u8 __iomem *port, u8 *buf, unsigned int len)
|
||||
{
|
||||
unsigned int i;
|
||||
@@ -342,6 +382,80 @@ static inline void raw_outsw_swapw(volat
|
||||
: "d0", "a0", "a1", "d6");
|
||||
}
|
||||
|
||||
+
|
||||
+#if defined(CONFIG_ATARI_ROM_ISA)
|
||||
+static inline void raw_rom_insb(volatile u8 __iomem *port, u8 *buf, unsigned int len)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ for (i = 0; i < len; i++)
|
||||
+ *buf++ = rom_in_8(port);
|
||||
+}
|
||||
+
|
||||
+static inline void raw_rom_outsb(volatile u8 __iomem *port, const u8 *buf,
|
||||
+ unsigned int len)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ for (i = 0; i < len; i++)
|
||||
+ rom_out_8(port, *buf++);
|
||||
+}
|
||||
+
|
||||
+static inline void raw_rom_insw(volatile u16 __iomem *port, u16 *buf,
|
||||
+ unsigned int nr)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ for (i = 0; i < nr; i++)
|
||||
+ *buf++ = rom_in_be16(port);
|
||||
+}
|
||||
+
|
||||
+static inline void raw_rom_outsw(volatile u16 __iomem *port, const u16 *buf,
|
||||
+ unsigned int nr)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ for (i = 0; i < nr; i++)
|
||||
+ rom_out_be16(port, *buf++);
|
||||
+}
|
||||
+
|
||||
+static inline void raw_rom_insw_swapw(volatile u16 __iomem *port, u16 *buf,
|
||||
+ unsigned int nr)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ for (i = 0; i < nr; i++)
|
||||
+ *buf++ = rom_in_le16(port);
|
||||
+}
|
||||
+
|
||||
+static inline void raw_rom_outsw_swapw(volatile u16 __iomem *port, const u16 *buf,
|
||||
+ unsigned int nr)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ for (i = 0; i < nr; i++)
|
||||
+ rom_out_le16(port, *buf++);
|
||||
+}
|
||||
+
|
||||
+static inline void raw_rom_insl(volatile u16 __iomem *port, u32 *buf,
|
||||
+ unsigned int nr)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ for (i = 0; i < nr; i++)
|
||||
+ *buf++ = rom_in_be32(port);
|
||||
+}
|
||||
+
|
||||
+static inline void raw_rom_outsl(volatile u16 __iomem *port, const u32 *buf,
|
||||
+ unsigned int nr)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ for (i = 0; i < nr; i++)
|
||||
+ rom_out_be32(port, *buf++);
|
||||
+}
|
||||
+#endif /* CONFIG_ATARI_ROM_ISA */
|
||||
+
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _RAW_IO_H */
|
|
@ -0,0 +1,32 @@
|
|||
Subject: b43 should depend on HAS_DMA
|
||||
To: Michael Buesch <mb@bu3sch.de>, Stefano Brivio <st3@riseup.net>
|
||||
Cc: linux-wireless@vger.kernel.org
|
||||
|
||||
b43 should depend on HAS_DMA
|
||||
|
||||
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
---
|
||||
drivers/net/wireless/b43/Kconfig | 2 +-
|
||||
drivers/net/wireless/b43legacy/Kconfig | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/drivers/net/wireless/b43/Kconfig
|
||||
+++ b/drivers/net/wireless/b43/Kconfig
|
||||
@@ -1,6 +1,6 @@
|
||||
config B43
|
||||
tristate "Broadcom 43xx wireless support (mac80211 stack)"
|
||||
- depends on SSB_POSSIBLE && MAC80211 && WLAN_80211
|
||||
+ depends on SSB_POSSIBLE && MAC80211 && WLAN_80211 && HAS_DMA
|
||||
select SSB
|
||||
select FW_LOADER
|
||||
select HW_RANDOM
|
||||
--- a/drivers/net/wireless/b43legacy/Kconfig
|
||||
+++ b/drivers/net/wireless/b43legacy/Kconfig
|
||||
@@ -1,6 +1,6 @@
|
||||
config B43LEGACY
|
||||
tristate "Broadcom 43xx-legacy wireless support (mac80211 stack)"
|
||||
- depends on SSB_POSSIBLE && MAC80211 && WLAN_80211
|
||||
+ depends on SSB_POSSIBLE && MAC80211 && WLAN_80211 && HAS_DMA
|
||||
select SSB
|
||||
select FW_LOADER
|
||||
select HW_RANDOM
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
MAINTAINERS | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -1323,7 +1323,7 @@ S: Supported
|
||||
DOUBLETALK DRIVER
|
||||
P: James R. Van Zandt
|
||||
M: jrv@vanzandt.mv.com
|
||||
-L: blinux-list@redhat.com
|
||||
+L: blinux-list@redhat.com (subscribers-only)
|
||||
S: Maintained
|
||||
|
||||
DRIVER CORE, KOBJECTS, AND SYSFS
|
|
@ -0,0 +1,28 @@
|
|||
Subject: checkpatch: Print filenames of patches
|
||||
|
||||
checkpatch: Print filenames of patches instead of the very uninformative
|
||||
`Your patch'.
|
||||
|
||||
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
---
|
||||
This patch is not `checkpatch' clean :-)
|
||||
Although I shortened 2 lines, they're still longer than 80 characters...
|
||||
|
||||
scripts/checkpatch.pl | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/scripts/checkpatch.pl
|
||||
+++ b/scripts/checkpatch.pl
|
||||
@@ -1408,10 +1408,10 @@ sub process {
|
||||
}
|
||||
}
|
||||
if ($clean == 1 && $quiet == 0) {
|
||||
- print "Your patch has no obvious style problems and is ready for submission.\n"
|
||||
+ print "$filename has no obvious style problems and is ready for submission.\n"
|
||||
}
|
||||
if ($clean == 0 && $quiet == 0) {
|
||||
- print "Your patch has style problems, please review. If any of these errors\n";
|
||||
+ print "$filename has style problems, please review. If any of these errors\n";
|
||||
print "are false positives report them to the maintainer, see\n";
|
||||
print "CHECKPATCH in MAINTAINERS.\n";
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
Subject: [PATCH] m68k: Ratelimit ide_release_lock bug messages
|
||||
|
||||
Ratelimit the annoying ide_release_lock bug messages as attempting to release
|
||||
the already released lock does not appear to cause any harm in practice.
|
||||
|
||||
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
---
|
||||
include/asm-m68k/ide.h | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/include/asm-m68k/ide.h
|
||||
+++ b/include/asm-m68k/ide.h
|
||||
@@ -114,7 +114,8 @@ static __inline__ void ide_release_lock
|
||||
{
|
||||
if (MACH_IS_ATARI) {
|
||||
if (falconide_intr_lock == 0) {
|
||||
- printk("ide_release_lock: bug\n");
|
||||
+ if (printk_ratelimit())
|
||||
+ printk("ide_release_lock: bug\n");
|
||||
return;
|
||||
}
|
||||
falconide_intr_lock = 0;
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
arch/m68k/q40/q40ints.c: In function 'q40_irq_handler':
|
||||
arch/m68k/q40/q40ints.c:214: error: implicit declaration of function 'floppy_hardint'
|
||||
|
||||
FIXME q40_irq_handler() calls floppy_hardint():
|
||||
|
||||
arch/m68k/q40/q40ints.c:215: error: too few arguments to function 'floppy_hardint'
|
||||
|
||||
---
|
||||
arch/m68k/q40/q40ints.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/arch/m68k/q40/q40ints.c
|
||||
+++ b/arch/m68k/q40/q40ints.c
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <linux/errno.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
||||
+#include <asm/floppy.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/irq.h>
|
244
debian/patches/bugfix/m68k/2.6.24/m68k-replace-linux-68k-by-linux-m68k.diff
vendored
Normal file
244
debian/patches/bugfix/m68k/2.6.24/m68k-replace-linux-68k-by-linux-m68k.diff
vendored
Normal file
|
@ -0,0 +1,244 @@
|
|||
Subject: m68k: Replace `Linux/68k' by `Linux/m68k'
|
||||
|
||||
m68k: Replace `Linux/68k' by `Linux/m68k'
|
||||
|
||||
We switched to `Linux/m68k' a very long time ago
|
||||
|
||||
From: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
---
|
||||
CREDITS | 4 ++--
|
||||
Documentation/devices.txt | 10 +++++-----
|
||||
Documentation/m68k/kernel-options.txt | 2 +-
|
||||
arch/m68k/Kconfig | 2 +-
|
||||
arch/m68k/ifpsp060/iskeleton.S | 6 +++---
|
||||
arch/m68k/ifpsp060/os.S | 4 ++--
|
||||
arch/m68k/kernel/head.S | 2 +-
|
||||
arch/m68knommu/Kconfig | 2 +-
|
||||
drivers/net/a2065.c | 4 ++--
|
||||
drivers/net/a2065.h | 4 ++--
|
||||
drivers/net/apne.c | 2 +-
|
||||
include/asm-m68knommu/bootstd.h | 2 +-
|
||||
include/linux/major.h | 2 +-
|
||||
13 files changed, 23 insertions(+), 23 deletions(-)
|
||||
|
||||
--- a/CREDITS
|
||||
+++ b/CREDITS
|
||||
@@ -174,7 +174,7 @@ N: Ralf Baechle
|
||||
E: ralf@gnu.org
|
||||
P: 1024/AF7B30C1 CF 97 C2 CC 6D AE A7 FE C8 BA 9C FC 88 DE 32 C3
|
||||
D: Linux/MIPS port
|
||||
-D: Linux/68k hacker
|
||||
+D: Linux/m68k hacker
|
||||
S: Hauptstrasse 19
|
||||
S: 79837 St. Blasien
|
||||
S: Germany
|
||||
@@ -2123,7 +2123,7 @@ D: dv1394
|
||||
|
||||
N: Hamish Macdonald
|
||||
E: hamishm@lucent.com
|
||||
-D: Linux/68k port
|
||||
+D: Linux/m68k port
|
||||
S: 32 Clydesdale Avenue
|
||||
S: Kanata, Ontario
|
||||
S: Canada K2M-2G7
|
||||
--- a/Documentation/devices.txt
|
||||
+++ b/Documentation/devices.txt
|
||||
@@ -19,8 +19,8 @@ The LaTeX version of this document is no
|
||||
This document is included by reference into the Filesystem Hierarchy
|
||||
Standard (FHS). The FHS is available from http://www.pathname.com/fhs/.
|
||||
|
||||
-Allocations marked (68k/Amiga) apply to Linux/68k on the Amiga
|
||||
-platform only. Allocations marked (68k/Atari) apply to Linux/68k on
|
||||
+Allocations marked (m68k/Amiga) apply to Linux/m68k on the Amiga
|
||||
+platform only. Allocations marked (m68k/Atari) apply to Linux/m68k on
|
||||
the Atari platform only.
|
||||
|
||||
The symbol {2.6} means the allocation is obsolete and scheduled for
|
||||
@@ -328,7 +328,7 @@ Your cooperation is appreciated.
|
||||
2 = /dev/inportbm Microsoft Inport bus mouse
|
||||
3 = /dev/atibm ATI XL bus mouse
|
||||
4 = /dev/jbm J-mouse
|
||||
- 4 = /dev/amigamouse Amiga mouse (68k/Amiga)
|
||||
+ 4 = /dev/amigamouse Amiga mouse (m68k/Amiga)
|
||||
5 = /dev/atarimouse Atari mouse
|
||||
6 = /dev/sunmouse Sun mouse
|
||||
7 = /dev/amigamouse1 Second Amiga mouse
|
||||
@@ -691,7 +691,7 @@ Your cooperation is appreciated.
|
||||
2 = /dev/staliomem2 Third Stallion card I/O memory
|
||||
3 = /dev/staliomem3 Fourth Stallion card I/O memory
|
||||
|
||||
- 28 char Atari SLM ACSI laser printer (68k/Atari)
|
||||
+ 28 char Atari SLM ACSI laser printer (m68k/Atari)
|
||||
0 = /dev/slm0 First SLM laser printer
|
||||
1 = /dev/slm1 Second SLM laser printer
|
||||
...
|
||||
@@ -701,7 +701,7 @@ Your cooperation is appreciated.
|
||||
2 = /dev/sbpcd14 Panasonic CD-ROM controller 3 unit 2
|
||||
3 = /dev/sbpcd15 Panasonic CD-ROM controller 3 unit 3
|
||||
|
||||
- 28 block ACSI disk (68k/Atari)
|
||||
+ 28 block ACSI disk (m68k/Atari)
|
||||
0 = /dev/ada First ACSI disk whole disk
|
||||
16 = /dev/adb Second ACSI disk whole disk
|
||||
32 = /dev/adc Third ACSI disk whole disk
|
||||
--- a/Documentation/m68k/kernel-options.txt
|
||||
+++ b/Documentation/m68k/kernel-options.txt
|
||||
@@ -852,7 +852,7 @@ use of this option is now highly unrecom
|
||||
Incorrect use can lead to unpredictable behavior, so please only use
|
||||
this option if you *know* what you are doing and have a reason to do
|
||||
so. In any case if you experience problems and need to use this
|
||||
-option, please inform us about it by mailing to the Linux/68k kernel
|
||||
+option, please inform us about it by mailing to the Linux/m68k kernel
|
||||
mailing list.
|
||||
|
||||
The address mask set by this option specifies which addresses are
|
||||
--- a/arch/m68k/Kconfig
|
||||
+++ b/arch/m68k/Kconfig
|
||||
@@ -52,7 +52,7 @@ config NO_IOPORT
|
||||
config NO_DMA
|
||||
def_bool SUN3
|
||||
|
||||
-mainmenu "Linux/68k Kernel Configuration"
|
||||
+mainmenu "Linux/m68k Kernel Configuration"
|
||||
|
||||
source "init/Kconfig"
|
||||
|
||||
--- a/arch/m68k/ifpsp060/iskeleton.S
|
||||
+++ b/arch/m68k/ifpsp060/iskeleton.S
|
||||
@@ -65,7 +65,7 @@
|
||||
| To simply continue execution at the next instruction, just
|
||||
| do an "rte".
|
||||
|
|
||||
-| Linux/68k: If returning to user space, check for needed reselections.
|
||||
+| Linux/m68k: If returning to user space, check for needed reselections.
|
||||
|
||||
.global _060_isp_done
|
||||
_060_isp_done:
|
||||
@@ -87,7 +87,7 @@ _060_isp_done:
|
||||
| a CHK exception stack frame from the Unimplemented Integer Instrcution
|
||||
| stack frame and branches to this routine.
|
||||
|
|
||||
-| Linux/68k: commented out test for tracing
|
||||
+| Linux/m68k: commented out test for tracing
|
||||
|
||||
.global _060_real_chk
|
||||
_060_real_chk:
|
||||
@@ -127,7 +127,7 @@ real_chk_end:
|
||||
| then it create a Trace exception stack frame from the "chk" exception
|
||||
| stack frame and branches to the _real_trace() entry point.
|
||||
|
|
||||
-| Linux/68k: commented out test for tracing
|
||||
+| Linux/m68k: commented out test for tracing
|
||||
|
||||
.global _060_real_divbyzero
|
||||
_060_real_divbyzero:
|
||||
--- a/arch/m68k/ifpsp060/os.S
|
||||
+++ b/arch/m68k/ifpsp060/os.S
|
||||
@@ -65,7 +65,7 @@
|
||||
| The result is that Unix processes are allowed to sleep as a consequence
|
||||
| of a page fault during a _copyout.
|
||||
|
|
||||
-| Linux/68k: The _060_[id]mem_{read,write}_{byte,word,long} functions
|
||||
+| Linux/m68k: The _060_[id]mem_{read,write}_{byte,word,long} functions
|
||||
| (i.e. all the known length <= 4) are implemented by single moves
|
||||
| statements instead of (more expensive) copy{in,out} calls, if
|
||||
| working in user space
|
||||
@@ -305,7 +305,7 @@ dmwls: move.l %d0,(%a0) | store super
|
||||
| Assumes that D0/D1/A0/A1 are scratch registers. The _copyin/_copyout
|
||||
| below assume that the SFC/DFC have been set previously.
|
||||
|
|
||||
-| Linux/68k: These are basically non-inlined versions of
|
||||
+| Linux/m68k: These are basically non-inlined versions of
|
||||
| memcpy_{to,from}fs, but without long-transfer optimization
|
||||
| Note: Assumed that SFC/DFC are pointing correctly to user data
|
||||
| space... Should be right, or are there any exceptions?
|
||||
--- a/arch/m68k/kernel/head.S
|
||||
+++ b/arch/m68k/kernel/head.S
|
||||
@@ -1,7 +1,7 @@
|
||||
/* -*- mode: asm -*-
|
||||
**
|
||||
** head.S -- This file contains the initial boot code for the
|
||||
-** Linux/68k kernel.
|
||||
+** Linux/m68k kernel.
|
||||
**
|
||||
** Copyright 1993 by Hamish Macdonald
|
||||
**
|
||||
--- a/arch/m68knommu/Kconfig
|
||||
+++ b/arch/m68knommu/Kconfig
|
||||
@@ -3,7 +3,7 @@
|
||||
# see Documentation/kbuild/kconfig-language.txt.
|
||||
#
|
||||
|
||||
-mainmenu "uClinux/68k (w/o MMU) Kernel Configuration"
|
||||
+mainmenu "uClinux/m68k (w/o MMU) Kernel Configuration"
|
||||
|
||||
config M68K
|
||||
bool
|
||||
--- a/drivers/net/a2065.c
|
||||
+++ b/drivers/net/a2065.c
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- * Amiga Linux/68k A2065 Ethernet Driver
|
||||
+ * Amiga Linux/m68k A2065 Ethernet Driver
|
||||
*
|
||||
* (C) Copyright 1995-2003 by Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
*
|
||||
@@ -12,7 +12,7 @@
|
||||
*
|
||||
* This program is based on
|
||||
*
|
||||
- * ariadne.?: Amiga Linux/68k Ariadne Ethernet Driver
|
||||
+ * ariadne.?: Amiga Linux/m68k Ariadne Ethernet Driver
|
||||
* (C) Copyright 1995 by Geert Uytterhoeven,
|
||||
* Peter De Schrijver
|
||||
*
|
||||
--- a/drivers/net/a2065.h
|
||||
+++ b/drivers/net/a2065.h
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- * Amiga Linux/68k A2065 Ethernet Driver
|
||||
+ * Amiga Linux/m68k A2065 Ethernet Driver
|
||||
*
|
||||
* (C) Copyright 1995 by Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
*
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
* This program is based on
|
||||
*
|
||||
- * ariadne.?: Amiga Linux/68k Ariadne Ethernet Driver
|
||||
+ * ariadne.?: Amiga Linux/m68k Ariadne Ethernet Driver
|
||||
* (C) Copyright 1995 by Geert Uytterhoeven,
|
||||
* Peter De Schrijver
|
||||
*
|
||||
--- a/drivers/net/apne.c
|
||||
+++ b/drivers/net/apne.c
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- * Amiga Linux/68k 8390 based PCMCIA Ethernet Driver for the Amiga 1200
|
||||
+ * Amiga Linux/m68k 8390 based PCMCIA Ethernet Driver for the Amiga 1200
|
||||
*
|
||||
* (C) Copyright 1997 Alain Malek
|
||||
* (Alain.Malek@cryogen.com)
|
||||
--- a/include/asm-m68knommu/bootstd.h
|
||||
+++ b/include/asm-m68knommu/bootstd.h
|
||||
@@ -30,7 +30,7 @@
|
||||
#define __BN_flash_erase_range 19
|
||||
#define __BN_flash_write_range 20
|
||||
|
||||
-/* Calling conventions compatible to (uC)linux/68k
|
||||
+/* Calling conventions compatible to (uC)linux/m68k
|
||||
* We use simmilar macros to call into the bootloader as for uClinux
|
||||
*/
|
||||
|
||||
--- a/include/linux/major.h
|
||||
+++ b/include/linux/major.h
|
||||
@@ -53,7 +53,7 @@
|
||||
#define STL_SIOMEMMAJOR 28
|
||||
#define ACSI_MAJOR 28
|
||||
#define AZTECH_CDROM_MAJOR 29
|
||||
-#define GRAPHDEV_MAJOR 29 /* SparcLinux & Linux/68k /dev/fb */
|
||||
+#define GRAPHDEV_MAJOR 29 /* SparcLinux & Linux/m68k /dev/fb */
|
||||
#define CM206_CDROM_MAJOR 32
|
||||
#define IDE2_MAJOR 33
|
||||
#define IDE3_MAJOR 34
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
FIXME a few more to take care of
|
||||
FIXME merge include files that are included only once into the .c file
|
||||
|
||||
git grep HOSTS_C
|
||||
|
||||
---
|
||||
drivers/scsi/mvme147.c | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
--- a/drivers/scsi/mvme147.c
|
||||
+++ b/drivers/scsi/mvme147.c
|
||||
@@ -125,9 +125,6 @@ static int mvme147_bus_reset(struct scsi
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
-#define HOSTS_C
|
||||
-
|
||||
-#include "mvme147.h"
|
||||
|
||||
static struct scsi_host_template driver_template = {
|
||||
.proc_name = "MVME147",
|
|
@ -0,0 +1,20 @@
|
|||
drivers/scsi/mac_esp.c: if (MACHW_PRESENT(MAC_SCSI_96)) {
|
||||
drivers/scsi/mac_esp.c: if (MACHW_PRESENT(MAC_SCSI_96_2)) {
|
||||
include/asm-m68k/machw.h:#define MACHW_PRESENT(name) (mac_hw_present.name)
|
||||
---
|
||||
arch/m68k/mac/platform.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
--- /dev/null
|
||||
+++ b/arch/m68k/mac/platform.c
|
||||
@@ -0,0 +1,10 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2007 Geert Uytterhoeven
|
||||
+ *
|
||||
+ * This file is subject to the terms and conditions of the GNU General Public
|
||||
+ * License. See the file COPYING in the main directory of this archive
|
||||
+ * for more details.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/platform_device.h>
|
||||
+
|
|
@ -0,0 +1,50 @@
|
|||
# --- submitted
|
||||
+ bugfix/m68k/2.6.24/m68k-cc-cross-prefix.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-initrd-fix.diff m68k
|
||||
|
||||
# --- for 2.6.24 ---
|
||||
|
||||
# --- for 2.6.25 ---
|
||||
+ bugfix/m68k/2.6.24/m68k-ARRAY_SIZE-cleanup.diff m68k
|
||||
+ bugfix/m68k/2.6.24/dio-ARRAY_SIZE-cleanup.diff m68k
|
||||
+ bugfix/m68k/2.6.24/atari-hades-pci-balance-iomap-and-iounmap.diff m68k
|
||||
+ bugfix/m68k/2.6.24/nubus-kill-drivers-nubus-nubus_syms-c.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-mac-mac_ksyms-c.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-hp300-ksyms-c.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-amiga-amiga_ksyms-c.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-atari-atari_ksyms-c.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-mvme16x-mvme16x_ksyms-c.diff m68k
|
||||
+ bugfix/m68k/2.6.24/mac68k-macii-adb-comment-correction.diff m68k
|
||||
+ bugfix/m68k/2.6.24/mac68k-remove-dead-code.diff m68k
|
||||
+ bugfix/m68k/2.6.24/mac68k-add-nubus-card-definitions-and-a-typo-fix.diff m68k
|
||||
+ bugfix/m68k/2.6.24/mac68k-remove-dead-MAC_ADBKEYCODES.diff m68k
|
||||
|
||||
# --- pending ---
|
||||
+ bugfix/m68k/2.6.24/633-atari_scc.diff m68k
|
||||
+ bugfix/m68k/2.6.24/130-adbraw.diff m68k
|
||||
#+ bugfix/m68k/2.6.24/133-arch.diff m68k
|
||||
+ bugfix/m68k/2.6.24/134-atari-fat.diff m68k
|
||||
+ bugfix/m68k/2.6.24/141-ide.diff m68k
|
||||
+ bugfix/m68k/2.6.24/143-ioext.diff m68k
|
||||
+ bugfix/m68k/2.6.24/149-mc68681.diff m68k
|
||||
+ bugfix/m68k/2.6.24/152-pci.diff m68k
|
||||
+ bugfix/m68k/2.6.24/448-ide.diff m68k
|
||||
+ bugfix/m68k/2.6.24/478-serial.diff m68k
|
||||
+ bugfix/m68k/2.6.24/atari-rom-isa.diff m68k
|
||||
+ bugfix/m68k/2.6.24/atari-ethernec.diff m68k
|
||||
+ bugfix/m68k/2.6.24/atari-aranym.diff m68k
|
||||
+ bugfix/m68k/2.6.24/atari-ethernat.diff m68k
|
||||
|
||||
+ bugfix/m68k/2.6.24/falconide_intr_lock-ratelimit.diff m68k
|
||||
+ bugfix/m68k/2.6.24/zorro-module-device-table.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-q40ints.c-needs-asm-floppy.h.diff m68k
|
||||
+ bugfix/m68k/2.6.24/blinux-list-is-subscribers-only.diff m68k
|
||||
+ bugfix/m68k/2.6.24/b43-depends-on-HAS_DMA.diff m68k
|
||||
+ bugfix/m68k/2.6.24/amiga-debug=mem.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-scsi-HOST_C-cleanup.diff m68k
|
||||
+ bugfix/m68k/2.6.24/amiga-platform-device.diff m68k
|
||||
+ bugfix/m68k/2.6.24/atari-platform-device.diff m68k
|
||||
+ bugfix/m68k/2.6.24/mac-platform-device.diff m68k
|
||||
#+ bugfix/m68k/2.6.24/checkpatch-print-filenames.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-replace-linux-68k-by-linux-m68k.diff m68k
|
||||
+ bugfix/m68k/2.6.24/amiga-platform-device2.diff m68k
|
|
@ -0,0 +1,238 @@
|
|||
Subject: [PATCH] Add Amiga Zorro bus modalias support
|
||||
|
||||
Add Amiga Zorro bus modalias and uevent support
|
||||
|
||||
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
---
|
||||
drivers/net/a2065.c | 1 +
|
||||
drivers/net/ariadne.c | 1 +
|
||||
drivers/net/hydra.c | 1 +
|
||||
drivers/net/zorro8390.c | 1 +
|
||||
drivers/scsi/zorro7xx.c | 1 +
|
||||
drivers/video/cirrusfb.c | 1 +
|
||||
drivers/video/fm2fb.c | 1 +
|
||||
drivers/zorro/zorro-driver.c | 24 ++++++++++++++++++++++++
|
||||
drivers/zorro/zorro-sysfs.c | 11 +++++++++++
|
||||
include/linux/mod_devicetable.h | 11 +++++++++++
|
||||
include/linux/zorro.h | 13 +------------
|
||||
scripts/mod/file2alias.c | 14 ++++++++++++++
|
||||
12 files changed, 68 insertions(+), 12 deletions(-)
|
||||
|
||||
--- a/drivers/net/a2065.c
|
||||
+++ b/drivers/net/a2065.c
|
||||
@@ -700,6 +700,7 @@ static struct zorro_device_id a2065_zorr
|
||||
{ ZORRO_PROD_AMERISTAR_A2065 },
|
||||
{ 0 }
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(zorro, a2065_zorro_tbl);
|
||||
|
||||
static struct zorro_driver a2065_driver = {
|
||||
.name = "a2065",
|
||||
--- a/drivers/net/ariadne.c
|
||||
+++ b/drivers/net/ariadne.c
|
||||
@@ -148,6 +148,7 @@ static struct zorro_device_id ariadne_zo
|
||||
{ ZORRO_PROD_VILLAGE_TRONIC_ARIADNE },
|
||||
{ 0 }
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(zorro, ariadne_zorro_tbl);
|
||||
|
||||
static struct zorro_driver ariadne_driver = {
|
||||
.name = "ariadne",
|
||||
--- a/drivers/net/hydra.c
|
||||
+++ b/drivers/net/hydra.c
|
||||
@@ -72,6 +72,7 @@ static struct zorro_device_id hydra_zorr
|
||||
{ ZORRO_PROD_HYDRA_SYSTEMS_AMIGANET },
|
||||
{ 0 }
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(zorro, hydra_zorro_tbl);
|
||||
|
||||
static struct zorro_driver hydra_driver = {
|
||||
.name = "hydra",
|
||||
--- a/drivers/net/zorro8390.c
|
||||
+++ b/drivers/net/zorro8390.c
|
||||
@@ -102,6 +102,7 @@ static struct zorro_device_id zorro8390_
|
||||
{ ZORRO_PROD_INDIVIDUAL_COMPUTERS_X_SURF, },
|
||||
{ 0 }
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(zorro, zorro8390_zorro_tbl);
|
||||
|
||||
static struct zorro_driver zorro8390_driver = {
|
||||
.name = "zorro8390",
|
||||
--- a/drivers/scsi/zorro7xx.c
|
||||
+++ b/drivers/scsi/zorro7xx.c
|
||||
@@ -65,6 +65,7 @@ static struct zorro_device_id zorro7xx_z
|
||||
},
|
||||
{ 0 }
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(zorro, zorro7xx_zorro_tbl);
|
||||
|
||||
static int __devinit zorro7xx_init_one(struct zorro_dev *z,
|
||||
const struct zorro_device_id *ent)
|
||||
--- a/drivers/video/cirrusfb.c
|
||||
+++ b/drivers/video/cirrusfb.c
|
||||
@@ -298,6 +298,7 @@ static const struct zorro_device_id cirr
|
||||
},
|
||||
{ 0 }
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(zorro, cirrusfb_zorro_table);
|
||||
|
||||
static const struct {
|
||||
zorro_id id2;
|
||||
--- a/drivers/video/fm2fb.c
|
||||
+++ b/drivers/video/fm2fb.c
|
||||
@@ -219,6 +219,7 @@ static struct zorro_device_id fm2fb_devi
|
||||
{ ZORRO_PROD_HELFRICH_RAINBOW_II },
|
||||
{ 0 }
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(zorro, fm2fb_devices);
|
||||
|
||||
static struct zorro_driver fm2fb_driver = {
|
||||
.name = "fm2fb",
|
||||
--- a/drivers/zorro/zorro-driver.c
|
||||
+++ b/drivers/zorro/zorro-driver.c
|
||||
@@ -137,10 +137,34 @@ static int zorro_bus_match(struct device
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int zorro_uevent(struct device *dev, struct kobj_uevent_env *env)
|
||||
+{
|
||||
+#ifdef CONFIG_HOTPLUG
|
||||
+ struct zorro_dev *z;
|
||||
+
|
||||
+ if (!dev)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ z = to_zorro_dev(dev);
|
||||
+ if (!z)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ if (add_uevent_var(env, "ZORRO_ID=%08X", z->id) ||
|
||||
+ add_uevent_var(env, "ZORRO_SLOT_NAME=%s", z->dev.bus_id) ||
|
||||
+ add_uevent_var(env, "ZORRO_SLOT_ADDR=%04X", z->slotaddr) ||
|
||||
+ add_uevent_var(env, "MODALIAS=" ZORRO_DEVICE_MODALIAS_FMT, z->id))
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ return 0;
|
||||
+#else /* !CONFIG_HOTPLUG */
|
||||
+ return -ENODEV;
|
||||
+#endif /* !CONFIG_HOTPLUG */
|
||||
+}
|
||||
|
||||
struct bus_type zorro_bus_type = {
|
||||
.name = "zorro",
|
||||
.match = zorro_bus_match,
|
||||
+ .uevent = zorro_uevent,
|
||||
.probe = zorro_device_probe,
|
||||
.remove = zorro_device_remove,
|
||||
};
|
||||
--- a/drivers/zorro/zorro-sysfs.c
|
||||
+++ b/drivers/zorro/zorro-sysfs.c
|
||||
@@ -84,6 +84,16 @@ static struct bin_attribute zorro_config
|
||||
.read = zorro_read_config,
|
||||
};
|
||||
|
||||
+static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
|
||||
+ char *buf)
|
||||
+{
|
||||
+ struct zorro_dev *z = to_zorro_dev(dev);
|
||||
+
|
||||
+ return sprintf(buf, ZORRO_DEVICE_MODALIAS_FMT "\n", z->id);
|
||||
+}
|
||||
+
|
||||
+static DEVICE_ATTR(modalias, S_IRUGO, modalias_show, NULL);
|
||||
+
|
||||
void zorro_create_sysfs_dev_files(struct zorro_dev *z)
|
||||
{
|
||||
struct device *dev = &z->dev;
|
||||
@@ -95,6 +105,7 @@ void zorro_create_sysfs_dev_files(struct
|
||||
device_create_file(dev, &dev_attr_slotaddr);
|
||||
device_create_file(dev, &dev_attr_slotsize);
|
||||
device_create_file(dev, &dev_attr_resource);
|
||||
+ device_create_file(dev, &dev_attr_modalias);
|
||||
sysfs_create_bin_file(&dev->kobj, &zorro_config_attr);
|
||||
}
|
||||
|
||||
--- a/include/linux/mod_devicetable.h
|
||||
+++ b/include/linux/mod_devicetable.h
|
||||
@@ -367,4 +367,15 @@ struct virtio_device_id {
|
||||
};
|
||||
#define VIRTIO_DEV_ANY_ID 0xffffffff
|
||||
|
||||
+
|
||||
+struct zorro_device_id {
|
||||
+ __u32 id; /* Device ID or ZORRO_WILDCARD */
|
||||
+ kernel_ulong_t driver_data; /* Data private to the driver */
|
||||
+};
|
||||
+
|
||||
+#define ZORRO_WILDCARD (0xffffffff) /* not official */
|
||||
+
|
||||
+#define ZORRO_DEVICE_MODALIAS_FMT "zorro:i%08X"
|
||||
+
|
||||
+
|
||||
#endif /* LINUX_MOD_DEVICETABLE_H */
|
||||
--- a/include/linux/zorro.h
|
||||
+++ b/include/linux/zorro.h
|
||||
@@ -38,8 +38,6 @@
|
||||
typedef __u32 zorro_id;
|
||||
|
||||
|
||||
-#define ZORRO_WILDCARD (0xffffffff) /* not official */
|
||||
-
|
||||
/* Include the ID list */
|
||||
#include <linux/zorro_ids.h>
|
||||
|
||||
@@ -116,6 +114,7 @@ struct ConfigDev {
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/ioport.h>
|
||||
+#include <linux/mod_devicetable.h>
|
||||
|
||||
#include <asm/zorro.h>
|
||||
|
||||
@@ -155,16 +154,6 @@ extern struct bus_type zorro_bus_type;
|
||||
|
||||
|
||||
/*
|
||||
- * Zorro device IDs
|
||||
- */
|
||||
-
|
||||
-struct zorro_device_id {
|
||||
- zorro_id id; /* Device ID or ZORRO_WILDCARD */
|
||||
- unsigned long driver_data; /* Data private to the driver */
|
||||
-};
|
||||
-
|
||||
-
|
||||
- /*
|
||||
* Zorro device drivers
|
||||
*/
|
||||
|
||||
--- a/scripts/mod/file2alias.c
|
||||
+++ b/scripts/mod/file2alias.c
|
||||
@@ -539,6 +539,16 @@ static int do_virtio_entry(const char *f
|
||||
return 1;
|
||||
}
|
||||
|
||||
+/* Looks like: zorro:iN. */
|
||||
+static int do_zorro_entry(const char *filename, struct zorro_device_id *id,
|
||||
+ char *alias)
|
||||
+{
|
||||
+ id->id = TO_NATIVE(id->id);
|
||||
+ strcpy(alias, "zorro:");
|
||||
+ ADD(alias, "i", id->id != ZORRO_WILDCARD, id->id);
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
/* Ignore any prefix, eg. v850 prepends _ */
|
||||
static inline int sym_is(const char *symbol, const char *name)
|
||||
{
|
||||
@@ -669,6 +679,10 @@ void handle_moddevtable(struct module *m
|
||||
do_table(symval, sym->st_size,
|
||||
sizeof(struct virtio_device_id), "virtio",
|
||||
do_virtio_entry, mod);
|
||||
+ else if (sym_is(symname, "__mod_zorro_device_table"))
|
||||
+ do_table(symval, sym->st_size,
|
||||
+ sizeof(struct zorro_device_id), "zorro",
|
||||
+ do_zorro_entry, mod);
|
||||
free(zeros);
|
||||
}
|
||||
|
|
@ -1,22 +1,52 @@
|
|||
+ features/all/vserver/vs2.2.0-rc5.patch *_vserver *_xen-vserver
|
||||
+ features/all/vserver/bindmount-dev.patch *_vserver *_xen-vserver
|
||||
+ bugfix/m68k/2.6.24/m68k-cc-cross-prefix.diff
|
||||
+ bugfix/m68k/2.6.24/m68k-initrd-fix.diff
|
||||
+ bugfix/m68k/2.6.24/m68k-ARRAY_SIZE-cleanup.diff
|
||||
+ bugfix/m68k/2.6.24/dio-ARRAY_SIZE-cleanup.diff
|
||||
+ bugfix/m68k/2.6.24/atari-hades-pci-balance-iomap-and-iounmap.diff
|
||||
+ bugfix/m68k/2.6.24/nubus-kill-drivers-nubus-nubus_syms-c.diff
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-mac-mac_ksyms-c.diff
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-hp300-ksyms-c.diff
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-amiga-amiga_ksyms-c.diff
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-atari-atari_ksyms-c.diff
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-mvme16x-mvme16x_ksyms-c.diff
|
||||
+ bugfix/m68k/2.6.24/mac68k-macii-adb-comment-correction.diff
|
||||
+ bugfix/m68k/2.6.24/mac68k-remove-dead-code.diff
|
||||
+ bugfix/m68k/2.6.24/mac68k-add-nubus-card-definitions-and-a-typo-fix.diff
|
||||
+ bugfix/m68k/2.6.24/mac68k-remove-dead-MAC_ADBKEYCODES.diff
|
||||
+ bugfix/m68k/2.6.24/633-atari_scc.diff
|
||||
+ bugfix/m68k/2.6.24/130-adbraw.diff
|
||||
+ bugfix/m68k/2.6.24/133-arch.diff
|
||||
+ bugfix/m68k/2.6.24/134-atari-fat.diff
|
||||
+ bugfix/m68k/2.6.24/141-ide.diff
|
||||
# --- submitted
|
||||
+ bugfix/m68k/2.6.24/m68k-cc-cross-prefix.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-initrd-fix.diff m68k
|
||||
|
||||
# --- for 2.6.24 ---
|
||||
|
||||
# --- for 2.6.25 ---
|
||||
+ bugfix/m68k/2.6.24/m68k-ARRAY_SIZE-cleanup.diff m68k
|
||||
+ bugfix/m68k/2.6.24/dio-ARRAY_SIZE-cleanup.diff m68k
|
||||
+ bugfix/m68k/2.6.24/atari-hades-pci-balance-iomap-and-iounmap.diff m68k
|
||||
+ bugfix/m68k/2.6.24/nubus-kill-drivers-nubus-nubus_syms-c.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-mac-mac_ksyms-c.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-hp300-ksyms-c.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-amiga-amiga_ksyms-c.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-atari-atari_ksyms-c.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-kill-arch-m68k-mvme16x-mvme16x_ksyms-c.diff m68k
|
||||
+ bugfix/m68k/2.6.24/mac68k-macii-adb-comment-correction.diff m68k
|
||||
+ bugfix/m68k/2.6.24/mac68k-remove-dead-code.diff m68k
|
||||
+ bugfix/m68k/2.6.24/mac68k-add-nubus-card-definitions-and-a-typo-fix.diff m68k
|
||||
+ bugfix/m68k/2.6.24/mac68k-remove-dead-MAC_ADBKEYCODES.diff m68k
|
||||
|
||||
# --- pending ---
|
||||
+ bugfix/m68k/2.6.24/633-atari_scc.diff m68k
|
||||
+ bugfix/m68k/2.6.24/130-adbraw.diff m68k
|
||||
#+ bugfix/m68k/2.6.24/133-arch.diff m68k
|
||||
+ bugfix/m68k/2.6.24/134-atari-fat.diff m68k
|
||||
+ bugfix/m68k/2.6.24/141-ide.diff m68k
|
||||
+ bugfix/m68k/2.6.24/143-ioext.diff m68k
|
||||
+ bugfix/m68k/2.6.24/149-mc68681.diff m68k
|
||||
+ bugfix/m68k/2.6.24/152-pci.diff m68k
|
||||
+ bugfix/m68k/2.6.24/448-ide.diff m68k
|
||||
+ bugfix/m68k/2.6.24/478-serial.diff m68k
|
||||
+ bugfix/m68k/2.6.24/atari-rom-isa.diff m68k
|
||||
+ bugfix/m68k/2.6.24/atari-ethernec.diff m68k
|
||||
+ bugfix/m68k/2.6.24/atari-aranym.diff m68k
|
||||
+ bugfix/m68k/2.6.24/atari-ethernat.diff m68k
|
||||
|
||||
+ bugfix/m68k/2.6.24/falconide_intr_lock-ratelimit.diff m68k
|
||||
+ bugfix/m68k/2.6.24/zorro-module-device-table.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-q40ints.c-needs-asm-floppy.h.diff m68k
|
||||
+ bugfix/m68k/2.6.24/blinux-list-is-subscribers-only.diff m68k
|
||||
+ bugfix/m68k/2.6.24/b43-depends-on-HAS_DMA.diff m68k
|
||||
+ bugfix/m68k/2.6.24/amiga-debug=mem.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-scsi-HOST_C-cleanup.diff m68k
|
||||
+ bugfix/m68k/2.6.24/amiga-platform-device.diff m68k
|
||||
+ bugfix/m68k/2.6.24/atari-platform-device.diff m68k
|
||||
+ bugfix/m68k/2.6.24/mac-platform-device.diff m68k
|
||||
#+ bugfix/m68k/2.6.24/checkpatch-print-filenames.diff m68k
|
||||
+ bugfix/m68k/2.6.24/m68k-replace-linux-68k-by-linux-m68k.diff m68k
|
||||
+ bugfix/m68k/2.6.24/amiga-platform-device2.diff m68k
|
||||
|
|
Loading…
Reference in New Issue