[kernel] r9136 - in dists/trunk/linux-2.6/debian: . patches/bugfix/m68k patches/series
Christian T. Steigies
cts at alioth.debian.org
Sun Jul 15 13:01:35 UTC 2007
Author: cts
Date: Sun Jul 15 13:01:35 2007
New Revision: 9136
Log:
Add 2.6.22 patches from linux-m68k CVS
Added:
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/630-extern-cleanup.diff.1
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/add-termios2.diff
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/ask-m68k-io.h-missing.diff
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/falconide_intr_lock-ratelimit.diff
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-53c700-cleanups.diff
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-amiga-z2ram-kill-TRUE-FALSE.diff
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-arbitary-speed-tty-support.diff
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-do-not-include-RODATA-in-text-segment.diff
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-page.h-needs-compiler.h.diff
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-scsi-Kconfig-hickups.diff
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-use-_AC.diff
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/split-amiga7xx.diff
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/zorro-module-device-table.diff
dists/trunk/linux-2.6/debian/patches/bugfix/m68k/zorro_config_attr-read-only.diff
Modified:
dists/trunk/linux-2.6/debian/changelog
dists/trunk/linux-2.6/debian/patches/series/1~experimental.1-extra
Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog (original)
+++ dists/trunk/linux-2.6/debian/changelog Sun Jul 15 13:01:35 2007
@@ -16,7 +16,8 @@
[ Christian T. Steigies ]
* Add module.lds to kernel headers
* Re-enable atari-scsi and atari-rom-isa patches
- * enable INPUT_UINPUT on mac
+ * Enable INPUT_UINPUT on mac
+ * Add 2.6.22 patches from linux-m68k CVS
[ Martin Michlmayr ]
* [mips] Add patch from Yoichi Yuasa to fix IDE on Cobalt.
@@ -24,7 +25,7 @@
[ dann frazier ]
* Enable vserver flavour for ia64 (closes: #423232)
- -- Christian T. Steigies <cts at debian.org> Fri, 13 Jul 2007 23:39:57 +0200
+ -- Christian T. Steigies <cts at debian.org> Sun, 15 Jul 2007 14:58:22 +0200
linux-2.6 (2.6.22~rc5-1~experimental.1) experimental; urgency=low
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/630-extern-cleanup.diff.1
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/630-extern-cleanup.diff.1 Sun Jul 15 13:01:35 2007
@@ -0,0 +1,26 @@
+To: linus, akpm
+Cc: lkml
+Subject: [PATCH] m68k: Kill superfluous externs
+
+Kill a few superfluous extern declarations.
+
+Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
+---
+ arch/m68k/mm/motorola.c | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+--- a/arch/m68k/mm/motorola.c
++++ b/arch/m68k/mm/motorola.c
+@@ -210,11 +210,7 @@ void __init paging_init(void)
+ int i;
+
+ #ifdef DEBUG
+- {
+- extern unsigned long availmem;
+- printk ("start of paging_init (%p, %lx)\n",
+- kernel_pg_dir, availmem);
+- }
++ printk ("start of paging_init (%p, %lx)\n", kernel_pg_dir, availmem);
+ #endif
+
+ /* Fix the cache mode in the page descriptors for the 680[46]0. */
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/add-termios2.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/add-termios2.diff Sun Jul 15 13:01:35 2007
@@ -0,0 +1,374 @@
+From alan at lxorguk.ukuu.org.uk Wed May 23 21:55:17 2007
+Date: Wed, 23 May 2007 20:56:45 +0100
+From: Alan Cox <alan at lxorguk.ukuu.org.uk>
+To: Geert Uytterhoeven <geert at linux-m68k.org>
+Cc: Roman Zippel <zippel at linux-m68k.org>, Linux Kernel Development <linux-kernel at vger.kernel.org>, akpm at osdl.org, rmk at arm.linux.kernel.org, spyro at f2s.com, starvik at axis.com, ysato at users.sourceforge.jp, "Luck, Tony" <tony.luck at intel.com>, takata at linux-m32r.org, chris at zankel.net, uclinux-v850 at lsi.nec.co.jp, kyle at parisc-linux.org, linux-mips at linux-mips.org
+Subject: Re: [PATCH] m68k: Enable arbitary speed tty support
+
+> > +#define TCSETS2 _IOW('T',0x2B, struct termios2)
+> > +#define TCSETSW2 _IOW('T',0x2C, struct termios2)
+> > +#define TCSETSF2 _IOW('T',0x2D, struct termios2)
+>
+> Where is `struct termios2' defined? Right now it doesn't compile because
+> of that.
+>
+
+Sorry, shortage of qualified gnomes: One of them forgot to post this diff first
+
+Add the termios2 structure ready for enabling on most platforms. One or two like
+Sparc are plain weird so have been left alone. Most can use the same structure as
+ktermios for termios2 (ie the newer ioctl uses the structure matching the current
+kernel structure)
+
+(cc'd various maintainers who get stuff)
+
+Signed-off-by: Alan Cox <alan at redhat.com>
+
+ddiff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.22-rc1-mm1/include/asm-arm/termbits.h linux-2.6.22-rc1-mm1/include/asm-arm/termbits.h
+---
+ include/asm-arm/termbits.h | 11 +++++++++++
+ include/asm-arm26/termbits.h | 12 +++++++++++-
+ include/asm-avr32/termbits.h | 11 +++++++++++
+ include/asm-blackfin/termbits.h | 11 +++++++++++
+ include/asm-cris/termbits.h | 11 +++++++++++
+ include/asm-frv/termbits.h | 11 +++++++++++
+ include/asm-h8300/termbits.h | 11 +++++++++++
+ include/asm-ia64/termbits.h | 11 +++++++++++
+ include/asm-m32r/termbits.h | 11 +++++++++++
+ include/asm-m68k/termbits.h | 11 +++++++++++
+ include/asm-mips/termbits.h | 11 +++++++++++
+ include/asm-parisc/termbits.h | 11 +++++++++++
+ include/asm-s390/termbits.h | 11 +++++++++++
+ include/asm-sh/termbits.h | 11 +++++++++++
+ include/asm-v850/termbits.h | 11 +++++++++++
+ include/asm-xtensa/termbits.h | 11 +++++++++++
+ 16 files changed, 176 insertions(+), 1 deletion(-)
+
+--- a/include/asm-arm/termbits.h
++++ b/include/asm-arm/termbits.h
+@@ -26,6 +26,17 @@ struct termios2 {
+ speed_t c_ospeed; /* output speed */
+ };
+
++struct termios_2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-arm26/termbits.h
++++ b/include/asm-arm26/termbits.h
+@@ -15,7 +15,7 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
+-struct ktermios {
++struct termios2 {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+@@ -26,6 +26,16 @@ struct ktermios {
+ speed_t c_ospeed; /* output speed */
+ };
+
++struct ktermios {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
+
+ /* c_cc characters */
+ #define VINTR 0
+--- a/include/asm-avr32/termbits.h
++++ b/include/asm-avr32/termbits.h
+@@ -17,6 +17,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-blackfin/termbits.h
++++ b/include/asm-blackfin/termbits.h
+@@ -17,6 +17,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-cris/termbits.h
++++ b/include/asm-cris/termbits.h
+@@ -19,6 +19,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-frv/termbits.h
++++ b/include/asm-frv/termbits.h
+@@ -17,6 +17,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-h8300/termbits.h
++++ b/include/asm-h8300/termbits.h
+@@ -17,6 +17,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-ia64/termbits.h
++++ b/include/asm-ia64/termbits.h
+@@ -26,6 +26,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-m32r/termbits.h
++++ b/include/asm-m32r/termbits.h
+@@ -17,6 +17,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-m68k/termbits.h
++++ b/include/asm-m68k/termbits.h
+@@ -17,6 +17,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-mips/termbits.h
++++ b/include/asm-mips/termbits.h
+@@ -30,6 +30,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-parisc/termbits.h
++++ b/include/asm-parisc/termbits.h
+@@ -17,6 +17,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-s390/termbits.h
++++ b/include/asm-s390/termbits.h
+@@ -25,6 +25,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-sh/termbits.h
++++ b/include/asm-sh/termbits.h
+@@ -17,6 +17,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-v850/termbits.h
++++ b/include/asm-v850/termbits.h
+@@ -17,6 +17,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+--- a/include/asm-xtensa/termbits.h
++++ b/include/asm-xtensa/termbits.h
+@@ -30,6 +30,17 @@ struct termios {
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
++struct termios2 {
++ tcflag_t c_iflag; /* input mode flags */
++ tcflag_t c_oflag; /* output mode flags */
++ tcflag_t c_cflag; /* control mode flags */
++ tcflag_t c_lflag; /* local mode flags */
++ cc_t c_line; /* line discipline */
++ cc_t c_cc[NCCS]; /* control characters */
++ speed_t c_ispeed; /* input speed */
++ speed_t c_ospeed; /* output speed */
++};
++
+ struct ktermios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/ask-m68k-io.h-missing.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/ask-m68k-io.h-missing.diff Sun Jul 15 13:01:35 2007
@@ -0,0 +1,57 @@
+--- build-m68k-none-atari/include/asm-m68k/io.h 2007-07-13 00:44:22.000000000 +0200
++++ build-m68k-none-atari/include/asm-m68k/io.h 2007-05-27 21:27:29.000000000 +0200
+@@ -245,9 +245,16 @@
+ #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) \
+@@ -315,12 +322,20 @@
+ (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 */
+@@ -421,8 +436,16 @@
+
+ #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)
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/falconide_intr_lock-ratelimit.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/falconide_intr_lock-ratelimit.diff Sun Jul 15 13:01:35 2007
@@ -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 at 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;
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-53c700-cleanups.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-53c700-cleanups.diff Sun Jul 15 13:01:35 2007
@@ -0,0 +1,186 @@
+Subject: [PATCH] scsi: m68k 53c7xx codingstyle cleanups
+
+scsi: m68k 53c7xx codingstyle cleanups, as suggested by Christoph Hellwig
+
+Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
+---
+ drivers/scsi/amiga7xx.c | 29 +++++++++++++++++------------
+ drivers/scsi/bvme6000_scsi.c | 20 ++++++++++++--------
+ drivers/scsi/mvme16x_scsi.c | 20 ++++++++++++--------
+ 3 files changed, 41 insertions(+), 28 deletions(-)
+
+--- a/drivers/scsi/amiga7xx.c
++++ b/drivers/scsi/amiga7xx.c
+@@ -101,7 +101,6 @@ static int __devinit amiga7xx_init_one(s
+ }
+
+ hostdata = kmalloc(sizeof(struct NCR_700_Host_Parameters), GFP_KERNEL);
+-
+ if (hostdata == NULL) {
+ printk(KERN_ERR "amiga7xx: Failed to allocate host data\n");
+ goto out_release;
+@@ -124,9 +123,11 @@ static int __devinit amiga7xx_init_one(s
+ amiga7xx_scsi_driver_template.name = zdd->name;
+
+ /* and register the chip */
+- if ((host = NCR_700_detect(&amiga7xx_scsi_driver_template, hostdata, &z->dev))
+- == NULL) {
+- printk(KERN_ERR "amiga7xx-scsi: No host detected; board configuration problem?\n");
++ host = NCR_700_detect(&amiga7xx_scsi_driver_template,
++ hostdata, &z->dev);
++ if (!host) {
++ printk(KERN_ERR "amiga7xx-scsi: No host detected; "
++ "board configuration problem?\n");
+ goto out_free;
+ }
+
+@@ -134,7 +135,8 @@ static int __devinit amiga7xx_init_one(s
+ host->base = ioaddr;
+ host->irq = IRQ_AMIGA_PORTS;
+
+- if (request_irq(host->irq, NCR_700_intr, IRQF_SHARED, "amiga7xx-scsi", host)) {
++ if (request_irq(host->irq, NCR_700_intr, IRQF_SHARED,
++ "amiga7xx-scsi", host)) {
+ printk(KERN_ERR "amiga7xx-scsi: request_irq failed\n");
+ goto out_put_host;
+ }
+@@ -188,7 +190,8 @@ static int __devinit a4000t_probe(struct
+ if (!(MACH_IS_AMIGA && AMIGAHW_PRESENT(A4000_SCSI)))
+ goto out;
+
+- if (!request_mem_region(A4000T_SCSI_ADDR, 0x1000, "A4000T builtin SCSI"))
++ if (!request_mem_region(A4000T_SCSI_ADDR, 0x1000,
++ "A4000T builtin SCSI"))
+ goto out;
+
+ hostdata = kmalloc(sizeof(struct NCR_700_Host_Parameters), GFP_KERNEL);
+@@ -206,9 +209,10 @@ static int __devinit a4000t_probe(struct
+ hostdata->dcntl_extra = EA_710;
+
+ /* and register the chip */
+- if ((host = NCR_700_detect(&amiga7xx_scsi_driver_template, hostdata, dev))
+- == NULL) {
+- printk(KERN_ERR "a4000t-scsi: No host detected; board configuration problem?\n");
++ host = NCR_700_detect(&amiga7xx_scsi_driver_template, hostdata, dev);
++ if (!host) {
++ printk(KERN_ERR "a4000t-scsi: No host detected; "
++ "board configuration problem?\n");
+ goto out_free;
+ }
+
+@@ -262,11 +266,12 @@ static int __init amiga7xx_scsi_init(voi
+ {
+ int err;
+
+- if ((err = driver_register(&a4000t_scsi_driver)))
++ err = driver_register(&a4000t_scsi_driver);
++ if (err)
+ return err;
+
+- a4000t_scsi_device = platform_device_register_simple("a4000t-scsi", -1, NULL, 0);
+-
++ a4000t_scsi_device = platform_device_register_simple("a4000t-scsi",
++ -1, NULL, 0);
+ if (IS_ERR(a4000t_scsi_device)) {
+ driver_unregister(&a4000t_scsi_driver);
+ return PTR_ERR(a4000t_scsi_device);
+--- a/drivers/scsi/bvme6000_scsi.c
++++ b/drivers/scsi/bvme6000_scsi.c
+@@ -44,7 +44,8 @@ bvme6000_probe(struct device *dev)
+
+ hostdata = kmalloc(sizeof(struct NCR_700_Host_Parameters), GFP_KERNEL);
+ if (hostdata == NULL) {
+- printk(KERN_ERR "bvme6000-scsi: Failed to allocate host data\n");
++ printk(KERN_ERR "bvme6000-scsi: "
++ "Failed to allocate host data\n");
+ goto out;
+ }
+ memset(hostdata, 0, sizeof(struct NCR_700_Host_Parameters));
+@@ -58,15 +59,17 @@ bvme6000_probe(struct device *dev)
+ hostdata->ctest7_extra = CTEST7_TT1;
+
+ /* and register the chip */
+- if ((host = NCR_700_detect(&bvme6000_scsi_driver_template, hostdata, dev))
+- == NULL) {
+- printk(KERN_ERR "bvme6000-scsi: No host detected; board configuration problem?\n");
++ host = NCR_700_detect(&bvme6000_scsi_driver_template, hostdata, dev);
++ if (!host) {
++ printk(KERN_ERR "bvme6000-scsi: No host detected; "
++ "board configuration problem?\n");
+ goto out_free;
+ }
+ host->base = BVME_NCR53C710_BASE;
+ host->this_id = 7;
+ host->irq = BVME_IRQ_SCSI;
+- if (request_irq(BVME_IRQ_SCSI, NCR_700_intr, 0, "bvme6000-scsi", host)) {
++ if (request_irq(BVME_IRQ_SCSI, NCR_700_intr, 0, "bvme6000-scsi",
++ host)) {
+ printk(KERN_ERR "bvme6000-scsi: request_irq failed\n");
+ goto out_put_host;
+ }
+@@ -109,11 +112,12 @@ static int __init bvme6000_scsi_init(voi
+ {
+ int err;
+
+- if ((err = driver_register(&bvme6000_scsi_driver)))
++ err = driver_register(&bvme6000_scsi_driver);
++ if (err)
+ return err;
+
+- bvme6000_scsi_device = platform_device_register_simple("bvme6000-scsi", -1, NULL, 0);
+-
++ bvme6000_scsi_device = platform_device_register_simple("bvme6000-scsi",
++ -1, NULL, 0);
+ if (IS_ERR(bvme6000_scsi_device)) {
+ driver_unregister(&bvme6000_scsi_driver);
+ return PTR_ERR(bvme6000_scsi_device);
+--- a/drivers/scsi/mvme16x_scsi.c
++++ b/drivers/scsi/mvme16x_scsi.c
+@@ -43,13 +43,15 @@ mvme16x_probe(struct device *dev)
+ goto out;
+
+ if (mvme16x_config & MVME16x_CONFIG_NO_SCSICHIP) {
+- printk(KERN_INFO "mvme16x-scsi: detection disabled, SCSI chip not present\n");
++ printk(KERN_INFO "mvme16x-scsi: detection disabled, "
++ "SCSI chip not present\n");
+ goto out;
+ }
+
+ hostdata = kmalloc(sizeof(struct NCR_700_Host_Parameters), GFP_KERNEL);
+ if (hostdata == NULL) {
+- printk(KERN_ERR "mvme16x-scsi: Failed to allocate host data\n");
++ printk(KERN_ERR "mvme16x-scsi: "
++ "Failed to allocate host data\n");
+ goto out;
+ }
+ memset(hostdata, 0, sizeof(struct NCR_700_Host_Parameters));
+@@ -63,9 +65,10 @@ mvme16x_probe(struct device *dev)
+ hostdata->ctest7_extra = CTEST7_TT1;
+
+ /* and register the chip */
+- if ((host = NCR_700_detect(&mvme16x_scsi_driver_template, hostdata, dev))
+- == NULL) {
+- printk(KERN_ERR "mvme16x-scsi: No host detected; board configuration problem?\n");
++ host = NCR_700_detect(&mvme16x_scsi_driver_template, hostdata, dev);
++ if (!host) {
++ printk(KERN_ERR "mvme16x-scsi: No host detected; "
++ "board configuration problem?\n");
+ goto out_free;
+ }
+ host->this_id = 7;
+@@ -132,11 +135,12 @@ static int __init mvme16x_scsi_init(void
+ {
+ int err;
+
+- if ((err = driver_register(&mvme16x_scsi_driver)))
++ err = driver_register(&mvme16x_scsi_driver);
++ if (err)
+ return err;
+
+- mvme16x_scsi_device = platform_device_register_simple("mvme16x-scsi", -1, NULL, 0);
+-
++ mvme16x_scsi_device = platform_device_register_simple("mvme16x-scsi",
++ -1, NULL, 0);
+ if (IS_ERR(mvme16x_scsi_device)) {
+ driver_unregister(&mvme16x_scsi_driver);
+ return PTR_ERR(mvme16x_scsi_device);
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-amiga-z2ram-kill-TRUE-FALSE.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-amiga-z2ram-kill-TRUE-FALSE.diff Sun Jul 15 13:01:35 2007
@@ -0,0 +1,27 @@
+Subject: [PATCH] drivers/block/z2ram: Remove TRUE/FALSE defines
+Cc: Jens Axboe <jens.axboe at oracle.com>
+
+From: Richard Knutsson <ricknu-0 at student.ltu.se>
+
+Remove defines of TRUE and FALSE
+ * not used in the file
+ * the file is not included somewhere else
+
+Signed-off-by: Richard Knutsson <ricknu-0 at student.ltu.se>
+Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
+---
+ drivers/block/z2ram.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+--- a/drivers/block/z2ram.c
++++ b/drivers/block/z2ram.c
+@@ -44,9 +44,6 @@
+ extern int m68k_realnum_memory;
+ extern struct mem_info m68k_memory[NUM_MEMINFO];
+
+-#define TRUE (1)
+-#define FALSE (0)
+-
+ #define Z2MINOR_COMBINED (0)
+ #define Z2MINOR_Z2ONLY (1)
+ #define Z2MINOR_CHIPONLY (2)
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-arbitary-speed-tty-support.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-arbitary-speed-tty-support.diff Sun Jul 15 13:01:35 2007
@@ -0,0 +1,68 @@
+From alan at lxorguk.ukuu.org.uk Wed May 23 18:43:50 2007
+Date: Wed, 23 May 2007 17:44:46 +0100
+From: Alan Cox <alan at lxorguk.ukuu.org.uk>
+To: geert at linux-m68k.org, zippel at linux-m68k.org
+Subject: [PATCH] m68k: Enable arbitary speed tty support
+
+Add the needed constants and defines to activate the existing code.
+
+Signed-off-by: Alan Cox <alan at redhat.com>
+
+---
+ include/asm-m68k/ioctls.h | 4 ++++
+ include/asm-m68k/termbits.h | 5 ++++-
+ include/asm-m68k/termios.h | 6 ++++--
+ 3 files changed, 12 insertions(+), 3 deletions(-)
+
+--- a/include/asm-m68k/ioctls.h
++++ b/include/asm-m68k/ioctls.h
+@@ -46,6 +46,10 @@
+ #define TIOCSBRK 0x5427 /* BSD compatibility */
+ #define TIOCCBRK 0x5428 /* BSD compatibility */
+ #define TIOCGSID 0x5429 /* Return the session ID of FD */
++#define TCGETS2 _IOR('T',0x2A, struct termios2)
++#define TCSETS2 _IOW('T',0x2B, struct termios2)
++#define TCSETSW2 _IOW('T',0x2C, struct termios2)
++#define TCSETSF2 _IOW('T',0x2D, struct termios2)
+ #define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
+ #define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */
+
+--- a/include/asm-m68k/termbits.h
++++ b/include/asm-m68k/termbits.h
+@@ -141,6 +141,7 @@ struct ktermios {
+ #define HUPCL 0002000
+ #define CLOCAL 0004000
+ #define CBAUDEX 0010000
++#define BOTHER 0010000
+ #define B57600 0010001
+ #define B115200 0010002
+ #define B230400 0010003
+@@ -156,10 +157,12 @@ struct ktermios {
+ #define B3000000 0010015
+ #define B3500000 0010016
+ #define B4000000 0010017
+-#define CIBAUD 002003600000 /* input baud rate (not used) */
++#define CIBAUD 002003600000 /* input baud rate */
+ #define CMSPAR 010000000000 /* mark or space (stick) parity */
+ #define CRTSCTS 020000000000 /* flow control */
+
++#define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */
++
+ /* c_lflag bits */
+ #define ISIG 0000001
+ #define ICANON 0000002
+--- a/include/asm-m68k/termios.h
++++ b/include/asm-m68k/termios.h
+@@ -82,8 +82,10 @@ struct termio {
+ copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \
+ })
+
+-#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios))
+-#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios))
++#define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2))
++#define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2))
++#define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios))
++#define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios))
+
+ #endif /* __KERNEL__ */
+
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-do-not-include-RODATA-in-text-segment.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-do-not-include-RODATA-in-text-segment.diff Sun Jul 15 13:01:35 2007
@@ -0,0 +1,36 @@
+Subject: [PATCH] m68k: Don't include RODATA into text segment
+
+From: Roman Zippel <zippel at linux-m68k.org>
+
+Don't include RODATA into text segment as it includes the kallsyms data
+and can cause spurious link failures (layout differences can change the
+number of symbols in kallsym, i.e. when a symbol is equal to _etext it's
+not included).
+
+Signed-off-by: Roman Zippel <zippel at linux-m68k.org>
+Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
+
+---
+ arch/m68k/kernel/vmlinux-std.lds | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/m68k/kernel/vmlinux-std.lds
++++ b/arch/m68k/kernel/vmlinux-std.lds
+@@ -18,6 +18,8 @@ SECTIONS
+ *(.gnu.warning)
+ } :text = 0x4e75
+
++ _etext = .; /* End of text section */
++
+ . = ALIGN(16); /* Exception table */
+ __start___ex_table = .;
+ __ex_table : { *(__ex_table) }
+@@ -25,8 +27,6 @@ SECTIONS
+
+ RODATA
+
+- _etext = .; /* End of text section */
+-
+ .data : { /* Data */
+ DATA_DATA
+ CONSTRUCTORS
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-page.h-needs-compiler.h.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-page.h-needs-compiler.h.diff Sun Jul 15 13:01:35 2007
@@ -0,0 +1,20 @@
+Subject: [PATCH] m68k: <asm/page.h> needs <linux/compiler.h>
+
+m68k: <asm/page.h> needs <linux/compiler.h> because of __attribute_const__
+
+Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
+---
+ include/asm-m68k/page.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/include/asm-m68k/page.h
++++ b/include/asm-m68k/page.h
+@@ -27,6 +27,8 @@
+
+ #ifndef __ASSEMBLY__
+
++#include <linux/compiler.h>
++
+ #include <asm/module.h>
+
+ #define get_user_page(vaddr) __get_free_page(GFP_KERNEL)
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-scsi-Kconfig-hickups.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-scsi-Kconfig-hickups.diff Sun Jul 15 13:01:35 2007
@@ -0,0 +1,29 @@
+Subject: m68k: Fix a few hickups in drivers/scsi/Kconfig
+
+m68k: Fix a few hickups in drivers/scsi/Kconfig
+
+Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
+---
+ drivers/scsi/Kconfig | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/scsi/Kconfig
++++ b/drivers/scsi/Kconfig
+@@ -1551,7 +1551,7 @@ config A3000_SCSI
+ built-in SCSI controller, say Y. Otherwise, say N.
+
+ To compile this driver as a module, choose M here: the
+- module will be called wd33c93.
++ module will be called a3000.
+
+ config A2091_SCSI
+ tristate "A2091/A590 WD33C93A support"
+@@ -1561,7 +1561,7 @@ config A2091_SCSI
+ say N.
+
+ To compile this driver as a module, choose M here: the
+- module will be called wd33c93.
++ module will be called a2091.
+
+ config GVP11_SCSI
+ tristate "GVP Series II WD33C93A support"
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-use-_AC.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/m68k-use-_AC.diff Sun Jul 15 13:01:35 2007
@@ -0,0 +1,43 @@
+Subject: m68k: Use _AC() instead of #ifdef __ASSEMBLY__
+
+m68k: Use _AC() instead of #ifdef __ASSEMBLY__ hackery
+
+Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
+---
+ include/asm-m68k/page.h | 8 +++-----
+ include/asm-m68k/processor.h | 1 +
+ 2 files changed, 4 insertions(+), 5 deletions(-)
+
+--- a/include/asm-m68k/page.h
++++ b/include/asm-m68k/page.h
+@@ -4,17 +4,15 @@
+
+ #ifdef __KERNEL__
+
++#include <linux/const.h>
++
+ /* PAGE_SHIFT determines the page size */
+ #ifndef CONFIG_SUN3
+ #define PAGE_SHIFT (12)
+ #else
+ #define PAGE_SHIFT (13)
+ #endif
+-#ifdef __ASSEMBLY__
+-#define PAGE_SIZE (1 << PAGE_SHIFT)
+-#else
+-#define PAGE_SIZE (1UL << PAGE_SHIFT)
+-#endif
++#define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
+ #define PAGE_MASK (~(PAGE_SIZE-1))
+
+ #include <asm/setup.h>
+--- a/include/asm-m68k/processor.h
++++ b/include/asm-m68k/processor.h
+@@ -39,6 +39,7 @@ static inline void wrusp(unsigned long u
+ #define TASK_SIZE (0xF0000000UL)
+ #else
+ #ifdef __ASSEMBLY__
++#error This cannot happen
+ #define TASK_SIZE (0x0E000000)
+ #else
+ #define TASK_SIZE (0x0E000000UL)
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/split-amiga7xx.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/split-amiga7xx.diff Sun Jul 15 13:01:35 2007
@@ -0,0 +1,709 @@
+Subject: [PATCH] m68k: split amiga7xx.c into a4000t.c and zorro7xx.c
+
+Split drivers/scsi/amiga7xx.c into drivers/scsi/a4000t.c (A4000T built-in)
+and drivers/scsi/zorro7xx.c (Zorro boards)
+
+Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
+---
+ drivers/scsi/Kconfig | 25 ++--
+ drivers/scsi/Makefile | 3
+ drivers/scsi/a4000t.c | 144 +++++++++++++++++++++++
+ drivers/scsi/amiga7xx.c | 297 ------------------------------------------------
+ drivers/scsi/zorro7xx.c | 181 +++++++++++++++++++++++++++++
+ 5 files changed, 343 insertions(+), 307 deletions(-)
+
+--- a/drivers/scsi/Kconfig
++++ b/drivers/scsi/Kconfig
+@@ -1008,7 +1008,7 @@ config SCSI_STEX
+
+ config 53C700_BE_BUS
+ bool
+- depends on SCSI_AMIGA7XX || MVME16x_SCSI || BVME6000_SCSI
++ depends on SCSI_A4000T || SCSI_ZORRO7XX || MVME16x_SCSI || BVME6000_SCSI
+ default y
+
+ config SCSI_SYM53C8XX_2
+@@ -1615,14 +1615,25 @@ config FASTLANE_SCSI
+ If you have the Phase5 Fastlane Z3 SCSI controller, or plan to use
+ one in the near future, say Y to this question. Otherwise, say N.
+
+-config SCSI_AMIGA7XX
+- tristate "Amiga NCR53c710 SCSI support (EXPERIMENTAL)"
++config SCSI_A4000T
++ tristate "A4000T NCR53c710 SCSI support (EXPERIMENTAL)"
+ depends on AMIGA && SCSI && EXPERIMENTAL
+ select SCSI_SPI_ATTRS
+ help
+- Support for various NCR53c710-based SCSI controllers on the Amiga.
++ If you have an Amiga 4000T and have SCSI devices connected to the
++ built-in SCSI controller, say Y. Otherwise, say N.
++
++ To compile this driver as a module, choose M here: the
++ module will be called a4000t.
++
++config SCSI_ZORRO7XX
++ tristate "Zorro NCR53c710 SCSI support (EXPERIMENTAL)"
++ depends on ZORRO && SCSI && EXPERIMENTAL
++ select SCSI_SPI_ATTRS
++ help
++ Support for various NCR53c710-based SCSI controllers on Zorro
++ expansion boards for the Amiga.
+ This includes:
+- - the builtin SCSI controller on the Amiga 4000T,
+ - the Amiga 4091 Zorro III SCSI-2 controller,
+ - the MacroSystem Development's WarpEngine Amiga SCSI-2 controller
+ (info at
+@@ -1630,10 +1641,6 @@ config SCSI_AMIGA7XX
+ - the SCSI controller on the Phase5 Blizzard PowerUP 603e+
+ accelerator card for the Amiga 1200,
+ - the SCSI controller on the GVP Turbo 040/060 accelerator.
+- Note that all of the above SCSI controllers, except for the builtin
+- SCSI controller on the Amiga 4000T, reside on the Zorro expansion
+- bus, so you also have to enable Zorro bus support if you want to use
+- them.
+
+ config OKTAGON_SCSI
+ tristate "BSC Oktagon SCSI support (EXPERIMENTAL)"
+--- a/drivers/scsi/Makefile
++++ b/drivers/scsi/Makefile
+@@ -37,7 +37,8 @@ obj-$(CONFIG_SCSI_SAS_LIBSAS) += libsas/
+
+ obj-$(CONFIG_ISCSI_TCP) += libiscsi.o iscsi_tcp.o
+ obj-$(CONFIG_INFINIBAND_ISER) += libiscsi.o
+-obj-$(CONFIG_SCSI_AMIGA7XX) += 53c700.o amiga7xx.o
++obj-$(CONFIG_SCSI_A4000T) += 53c700.o a4000t.o
++obj-$(CONFIG_SCSI_ZORRO7XX) += 53c700.o zorro7xx.o
+ obj-$(CONFIG_A3000_SCSI) += a3000.o wd33c93.o
+ obj-$(CONFIG_A2091_SCSI) += a2091.o wd33c93.o
+ obj-$(CONFIG_GVP11_SCSI) += gvp11.o wd33c93.o
+--- /dev/null
++++ b/drivers/scsi/a4000t.c
+@@ -0,0 +1,144 @@
++/*
++ * Detection routine for the NCR53c710 based Amiga SCSI Controllers for Linux.
++ * Amiga Technologies A4000T SCSI controller.
++ *
++ * Written 1997 by Alan Hourihane <alanh at fairlite.demon.co.uk>
++ * plus modifications of the 53c7xx.c driver to support the Amiga.
++ *
++ * Rewritten to use 53c700.c by Kars de Jong <jongk at linux-m68k.org>
++ */
++
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/init.h>
++#include <linux/interrupt.h>
++#include <asm/amigahw.h>
++#include <asm/amigaints.h>
++#include <scsi/scsi_host.h>
++#include <scsi/scsi_transport_spi.h>
++
++#include "53c700.h"
++
++MODULE_AUTHOR("Alan Hourihane <alanh at fairlite.demon.co.uk> / Kars de Jong <jongk at linux-m68k.org>");
++MODULE_DESCRIPTION("Amiga A4000T NCR53C710 driver");
++MODULE_LICENSE("GPL");
++
++
++static struct scsi_host_template a4000t_scsi_driver_template = {
++ .name = "A4000T builtin SCSI",
++ .proc_name = "A4000t",
++ .this_id = 7,
++ .module = THIS_MODULE,
++};
++
++static struct platform_device *a4000t_scsi_device;
++
++#define A4000T_SCSI_ADDR 0xdd0040
++
++static int __devinit a4000t_probe(struct device *dev)
++{
++ struct Scsi_Host * host = NULL;
++ struct NCR_700_Host_Parameters *hostdata;
++
++ if (!(MACH_IS_AMIGA && AMIGAHW_PRESENT(A4000_SCSI)))
++ goto out;
++
++ if (!request_mem_region(A4000T_SCSI_ADDR, 0x1000,
++ "A4000T builtin SCSI"))
++ goto out;
++
++ hostdata = kmalloc(sizeof(struct NCR_700_Host_Parameters), GFP_KERNEL);
++ if (hostdata == NULL) {
++ printk(KERN_ERR "a4000t-scsi: Failed to allocate host data\n");
++ goto out_release;
++ }
++ memset(hostdata, 0, sizeof(struct NCR_700_Host_Parameters));
++
++ /* Fill in the required pieces of hostdata */
++ hostdata->base = (void __iomem *)ZTWO_VADDR(A4000T_SCSI_ADDR);
++ hostdata->clock = 50;
++ hostdata->chip710 = 1;
++ hostdata->dmode_extra = DMODE_FC2;
++ hostdata->dcntl_extra = EA_710;
++
++ /* and register the chip */
++ host = NCR_700_detect(&a4000t_scsi_driver_template, hostdata, dev);
++ if (!host) {
++ printk(KERN_ERR "a4000t-scsi: No host detected; "
++ "board configuration problem?\n");
++ goto out_free;
++ }
++
++ host->this_id = 7;
++ host->base = A4000T_SCSI_ADDR;
++ host->irq = IRQ_AMIGA_PORTS;
++
++ if (request_irq(host->irq, NCR_700_intr, IRQF_SHARED, "a4000t-scsi",
++ host)) {
++ printk(KERN_ERR "a4000t-scsi: request_irq failed\n");
++ goto out_put_host;
++ }
++
++ scsi_scan_host(host);
++
++ return 0;
++
++ out_put_host:
++ scsi_host_put(host);
++ out_free:
++ kfree(hostdata);
++ out_release:
++ release_mem_region(A4000T_SCSI_ADDR, 0x1000);
++ out:
++ return -ENODEV;
++}
++
++static __devexit int a4000t_device_remove(struct device *dev)
++{
++ struct Scsi_Host *host = dev_to_shost(dev);
++ struct NCR_700_Host_Parameters *hostdata =
++ (struct NCR_700_Host_Parameters *)host->hostdata[0];
++
++ scsi_remove_host(host);
++
++ NCR_700_release(host);
++ kfree(hostdata);
++ free_irq(host->irq, host);
++ release_mem_region(A4000T_SCSI_ADDR, 0x1000);
++
++ return 0;
++}
++
++static struct device_driver a4000t_scsi_driver = {
++ .name = "a4000t-scsi",
++ .bus = &platform_bus_type,
++ .probe = a4000t_probe,
++ .remove = __devexit_p(a4000t_device_remove),
++};
++
++static int __init a4000t_scsi_init(void)
++{
++ int err;
++
++ err = driver_register(&a4000t_scsi_driver);
++ if (err)
++ return err;
++
++ a4000t_scsi_device = platform_device_register_simple("a4000t-scsi",
++ -1, NULL, 0);
++ if (IS_ERR(a4000t_scsi_device)) {
++ driver_unregister(&a4000t_scsi_driver);
++ return PTR_ERR(a4000t_scsi_device);
++ }
++
++ return err;
++}
++
++static void __exit a4000t_scsi_exit(void)
++{
++ platform_device_unregister(a4000t_scsi_device);
++ driver_unregister(&a4000t_scsi_driver);
++}
++
++module_init(a4000t_scsi_init);
++module_exit(a4000t_scsi_exit);
+--- a/drivers/scsi/amiga7xx.c
++++ /dev/null
+@@ -1,297 +0,0 @@
+-/*
+- * Detection routine for the NCR53c710 based Amiga SCSI Controllers for Linux.
+- * Amiga MacroSystemUS WarpEngine SCSI controller.
+- * Amiga Technologies A4000T SCSI controller.
+- * Amiga Technologies/DKB A4091 SCSI controller.
+- *
+- * Written 1997 by Alan Hourihane <alanh at fairlite.demon.co.uk>
+- * plus modifications of the 53c7xx.c driver to support the Amiga.
+- *
+- * Rewritten to use 53c700.c by Kars de Jong <jongk at linux-m68k.org>
+- */
+-
+-#include <linux/module.h>
+-#include <linux/blkdev.h>
+-#include <linux/device.h>
+-#include <linux/platform_device.h>
+-#include <linux/init.h>
+-#include <linux/interrupt.h>
+-#include <linux/zorro.h>
+-#include <asm/amigahw.h>
+-#include <asm/amigaints.h>
+-#include <scsi/scsi_host.h>
+-#include <scsi/scsi_device.h>
+-#include <scsi/scsi_transport.h>
+-#include <scsi/scsi_transport_spi.h>
+-
+-#include "53c700.h"
+-
+-MODULE_AUTHOR("Alan Hourihane <alanh at fairlite.demon.co.uk> / Kars de Jong <jongk at linux-m68k.org>");
+-MODULE_DESCRIPTION("Amiga NCR53C710 driver");
+-MODULE_LICENSE("GPL");
+-
+-static struct scsi_host_template amiga7xx_scsi_driver_template = {
+- .name = "A4000T builtin SCSI",
+- .proc_name = "Amiga7xx",
+- .this_id = 7,
+- .module = THIS_MODULE,
+-};
+-
+-static struct platform_device *a4000t_scsi_device;
+-
+-#ifdef CONFIG_ZORRO
+-
+-static struct zorro_driver_data {
+- const char *name;
+- unsigned long offset;
+- int absolute; /* offset is absolute address */
+-} amiga7xx_driver_data[] __devinitdata = {
+- { .name = "PowerUP 603e+", .offset = 0xf40000, .absolute = 1 },
+- { .name = "WarpEngine 40xx", .offset = 0x40000 },
+- { .name = "A4091", .offset = 0x800000 },
+- { .name = "GForce 040/060", .offset = 0x40000 },
+- { 0 }
+-};
+-
+-static struct zorro_device_id amiga7xx_zorro_tbl[] __devinitdata = {
+- {
+- .id = ZORRO_PROD_PHASE5_BLIZZARD_603E_PLUS,
+- .driver_data = (unsigned long)&amiga7xx_driver_data[0],
+- },
+- {
+- .id = ZORRO_PROD_MACROSYSTEMS_WARP_ENGINE_40xx,
+- .driver_data = (unsigned long)&amiga7xx_driver_data[1],
+- },
+- {
+- .id = ZORRO_PROD_CBM_A4091_1,
+- .driver_data = (unsigned long)&amiga7xx_driver_data[2],
+- },
+- {
+- .id = ZORRO_PROD_CBM_A4091_2,
+- .driver_data = (unsigned long)&amiga7xx_driver_data[2],
+- },
+- {
+- .id = ZORRO_PROD_GVP_GFORCE_040_060,
+- .driver_data = (unsigned long)&amiga7xx_driver_data[3],
+- },
+- { 0 }
+-};
+-
+-static int __devinit amiga7xx_init_one(struct zorro_dev *z,
+- const struct zorro_device_id *ent)
+-{
+- struct Scsi_Host * host = NULL;
+- struct NCR_700_Host_Parameters *hostdata;
+- struct zorro_driver_data *zdd;
+- unsigned long board, ioaddr;
+-
+- board = zorro_resource_start(z);
+- zdd = (struct zorro_driver_data *)ent->driver_data;
+-
+- if (zdd->absolute) {
+- ioaddr = zdd->offset;
+- } else {
+- ioaddr = board + zdd->offset;
+- }
+-
+- if (!zorro_request_device(z, zdd->name)) {
+- printk(KERN_ERR "amiga7xx: cannot reserve region 0x%lx, abort\n",
+- board);
+- return -EBUSY;
+- }
+-
+- hostdata = kmalloc(sizeof(struct NCR_700_Host_Parameters), GFP_KERNEL);
+- if (hostdata == NULL) {
+- printk(KERN_ERR "amiga7xx: Failed to allocate host data\n");
+- goto out_release;
+- }
+-
+- memset(hostdata, 0, sizeof(struct NCR_700_Host_Parameters));
+-
+- /* Fill in the required pieces of hostdata */
+- if (ioaddr > 0x01000000)
+- hostdata->base = ioremap(ioaddr, zorro_resource_len(z));
+- else
+- hostdata->base = (void __iomem *)ZTWO_VADDR(ioaddr);
+-
+- hostdata->clock = 50;
+- hostdata->chip710 = 1;
+-
+- /* Settings for at least WarpEngine 40xx */
+- hostdata->ctest7_extra = CTEST7_TT1;
+-
+- amiga7xx_scsi_driver_template.name = zdd->name;
+-
+- /* and register the chip */
+- host = NCR_700_detect(&amiga7xx_scsi_driver_template,
+- hostdata, &z->dev);
+- if (!host) {
+- printk(KERN_ERR "amiga7xx-scsi: No host detected; "
+- "board configuration problem?\n");
+- goto out_free;
+- }
+-
+- host->this_id = 7;
+- host->base = ioaddr;
+- host->irq = IRQ_AMIGA_PORTS;
+-
+- if (request_irq(host->irq, NCR_700_intr, IRQF_SHARED,
+- "amiga7xx-scsi", host)) {
+- printk(KERN_ERR "amiga7xx-scsi: request_irq failed\n");
+- goto out_put_host;
+- }
+-
+- scsi_scan_host(host);
+-
+- return 0;
+-
+- out_put_host:
+- scsi_host_put(host);
+- out_free:
+- if (ioaddr > 0x01000000)
+- iounmap(hostdata->base);
+- kfree(hostdata);
+- out_release:
+- zorro_release_device(z);
+-
+- return -ENODEV;
+-}
+-
+-static __devexit void amiga7xx_remove_one(struct zorro_dev *z)
+-{
+- struct Scsi_Host *host = dev_to_shost(&z->dev);
+- struct NCR_700_Host_Parameters *hostdata =
+- (struct NCR_700_Host_Parameters *)host->hostdata[0];
+-
+- scsi_remove_host(host);
+-
+- NCR_700_release(host);
+- kfree(hostdata);
+- free_irq(host->irq, host);
+- zorro_release_device(z);
+-}
+-
+-static struct zorro_driver amiga7xx_driver = {
+- .name = "amiga7xx-scsi",
+- .id_table = amiga7xx_zorro_tbl,
+- .probe = amiga7xx_init_one,
+- .remove = __devexit_p(amiga7xx_remove_one),
+-};
+-
+-#endif /* CONFIG_ZORRO */
+-
+-#define A4000T_SCSI_ADDR 0xdd0040
+-
+-static int __devinit a4000t_probe(struct device *dev)
+-{
+- struct Scsi_Host * host = NULL;
+- struct NCR_700_Host_Parameters *hostdata;
+-
+- if (!(MACH_IS_AMIGA && AMIGAHW_PRESENT(A4000_SCSI)))
+- goto out;
+-
+- if (!request_mem_region(A4000T_SCSI_ADDR, 0x1000,
+- "A4000T builtin SCSI"))
+- goto out;
+-
+- hostdata = kmalloc(sizeof(struct NCR_700_Host_Parameters), GFP_KERNEL);
+- if (hostdata == NULL) {
+- printk(KERN_ERR "a4000t-scsi: Failed to allocate host data\n");
+- goto out_release;
+- }
+- memset(hostdata, 0, sizeof(struct NCR_700_Host_Parameters));
+-
+- /* Fill in the required pieces of hostdata */
+- hostdata->base = (void __iomem *)ZTWO_VADDR(A4000T_SCSI_ADDR);
+- hostdata->clock = 50;
+- hostdata->chip710 = 1;
+- hostdata->dmode_extra = DMODE_FC2;
+- hostdata->dcntl_extra = EA_710;
+-
+- /* and register the chip */
+- host = NCR_700_detect(&amiga7xx_scsi_driver_template, hostdata, dev);
+- if (!host) {
+- printk(KERN_ERR "a4000t-scsi: No host detected; "
+- "board configuration problem?\n");
+- goto out_free;
+- }
+-
+- host->this_id = 7;
+- host->base = A4000T_SCSI_ADDR;
+- host->irq = IRQ_AMIGA_PORTS;
+-
+- if (request_irq(host->irq, NCR_700_intr, IRQF_SHARED, "a4000t-scsi", host)) {
+- printk(KERN_ERR "a4000t-scsi: request_irq failed\n");
+- goto out_put_host;
+- }
+-
+- scsi_scan_host(host);
+-
+- return 0;
+-
+- out_put_host:
+- scsi_host_put(host);
+- out_free:
+- kfree(hostdata);
+- out_release:
+- release_mem_region(A4000T_SCSI_ADDR, 0x1000);
+- out:
+- return -ENODEV;
+-}
+-
+-static __devexit int a4000t_device_remove(struct device *dev)
+-{
+- struct Scsi_Host *host = dev_to_shost(dev);
+- struct NCR_700_Host_Parameters *hostdata =
+- (struct NCR_700_Host_Parameters *)host->hostdata[0];
+-
+- scsi_remove_host(host);
+-
+- NCR_700_release(host);
+- kfree(hostdata);
+- free_irq(host->irq, host);
+- release_mem_region(A4000T_SCSI_ADDR, 0x1000);
+-
+- return 0;
+-}
+-
+-static struct device_driver a4000t_scsi_driver = {
+- .name = "a4000t-scsi",
+- .bus = &platform_bus_type,
+- .probe = a4000t_probe,
+- .remove = __devexit_p(a4000t_device_remove),
+-};
+-
+-static int __init amiga7xx_scsi_init(void)
+-{
+- int err;
+-
+- err = driver_register(&a4000t_scsi_driver);
+- if (err)
+- return err;
+-
+- a4000t_scsi_device = platform_device_register_simple("a4000t-scsi",
+- -1, NULL, 0);
+- if (IS_ERR(a4000t_scsi_device)) {
+- driver_unregister(&a4000t_scsi_driver);
+- return PTR_ERR(a4000t_scsi_device);
+- }
+-
+-#ifdef CONFIG_ZORRO
+- err = zorro_register_driver(&amiga7xx_driver);
+-#endif
+-
+- return err;
+-}
+-
+-static void __exit amiga7xx_scsi_exit(void)
+-{
+- platform_device_unregister(a4000t_scsi_device);
+- driver_unregister(&a4000t_scsi_driver);
+-#ifdef CONFIG_ZORRO
+- zorro_unregister_driver(&amiga7xx_driver);
+-#endif
+-}
+-
+-module_init(amiga7xx_scsi_init);
+-module_exit(amiga7xx_scsi_exit);
+--- /dev/null
++++ b/drivers/scsi/zorro7xx.c
+@@ -0,0 +1,181 @@
++/*
++ * Detection routine for the NCR53c710 based Amiga SCSI Controllers for Linux.
++ * Amiga MacroSystemUS WarpEngine SCSI controller.
++ * Amiga Technologies/DKB A4091 SCSI controller.
++ *
++ * Written 1997 by Alan Hourihane <alanh at fairlite.demon.co.uk>
++ * plus modifications of the 53c7xx.c driver to support the Amiga.
++ *
++ * Rewritten to use 53c700.c by Kars de Jong <jongk at linux-m68k.org>
++ */
++
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/interrupt.h>
++#include <linux/zorro.h>
++#include <asm/amigaints.h>
++#include <scsi/scsi_host.h>
++#include <scsi/scsi_transport_spi.h>
++
++#include "53c700.h"
++
++MODULE_AUTHOR("Alan Hourihane <alanh at fairlite.demon.co.uk> / Kars de Jong <jongk at linux-m68k.org>");
++MODULE_DESCRIPTION("Amiga Zorro NCR53C710 driver");
++MODULE_LICENSE("GPL");
++
++
++static struct scsi_host_template zorro7xx_scsi_driver_template = {
++ .proc_name = "zorro7xx",
++ .this_id = 7,
++ .module = THIS_MODULE,
++};
++
++static struct zorro_driver_data {
++ const char *name;
++ unsigned long offset;
++ int absolute; /* offset is absolute address */
++} zorro7xx_driver_data[] __devinitdata = {
++ { .name = "PowerUP 603e+", .offset = 0xf40000, .absolute = 1 },
++ { .name = "WarpEngine 40xx", .offset = 0x40000 },
++ { .name = "A4091", .offset = 0x800000 },
++ { .name = "GForce 040/060", .offset = 0x40000 },
++ { 0 }
++};
++
++static struct zorro_device_id zorro7xx_zorro_tbl[] __devinitdata = {
++ {
++ .id = ZORRO_PROD_PHASE5_BLIZZARD_603E_PLUS,
++ .driver_data = (unsigned long)&zorro7xx_driver_data[0],
++ },
++ {
++ .id = ZORRO_PROD_MACROSYSTEMS_WARP_ENGINE_40xx,
++ .driver_data = (unsigned long)&zorro7xx_driver_data[1],
++ },
++ {
++ .id = ZORRO_PROD_CBM_A4091_1,
++ .driver_data = (unsigned long)&zorro7xx_driver_data[2],
++ },
++ {
++ .id = ZORRO_PROD_CBM_A4091_2,
++ .driver_data = (unsigned long)&zorro7xx_driver_data[2],
++ },
++ {
++ .id = ZORRO_PROD_GVP_GFORCE_040_060,
++ .driver_data = (unsigned long)&zorro7xx_driver_data[3],
++ },
++ { 0 }
++};
++
++static int __devinit zorro7xx_init_one(struct zorro_dev *z,
++ const struct zorro_device_id *ent)
++{
++ struct Scsi_Host * host = NULL;
++ struct NCR_700_Host_Parameters *hostdata;
++ struct zorro_driver_data *zdd;
++ unsigned long board, ioaddr;
++
++ board = zorro_resource_start(z);
++ zdd = (struct zorro_driver_data *)ent->driver_data;
++
++ if (zdd->absolute) {
++ ioaddr = zdd->offset;
++ } else {
++ ioaddr = board + zdd->offset;
++ }
++
++ if (!zorro_request_device(z, zdd->name)) {
++ printk(KERN_ERR "zorro7xx: cannot reserve region 0x%lx, abort\n",
++ board);
++ return -EBUSY;
++ }
++
++ hostdata = kmalloc(sizeof(struct NCR_700_Host_Parameters), GFP_KERNEL);
++ if (hostdata == NULL) {
++ printk(KERN_ERR "zorro7xx: Failed to allocate host data\n");
++ goto out_release;
++ }
++
++ memset(hostdata, 0, sizeof(struct NCR_700_Host_Parameters));
++
++ /* Fill in the required pieces of hostdata */
++ if (ioaddr > 0x01000000)
++ hostdata->base = ioremap(ioaddr, zorro_resource_len(z));
++ else
++ hostdata->base = (void __iomem *)ZTWO_VADDR(ioaddr);
++
++ hostdata->clock = 50;
++ hostdata->chip710 = 1;
++
++ /* Settings for at least WarpEngine 40xx */
++ hostdata->ctest7_extra = CTEST7_TT1;
++
++ zorro7xx_scsi_driver_template.name = zdd->name;
++
++ /* and register the chip */
++ host = NCR_700_detect(&zorro7xx_scsi_driver_template, hostdata,
++ &z->dev);
++ if (!host) {
++ printk(KERN_ERR "zorro7xx: No host detected; "
++ "board configuration problem?\n");
++ goto out_free;
++ }
++
++ host->this_id = 7;
++ host->base = ioaddr;
++ host->irq = IRQ_AMIGA_PORTS;
++
++ if (request_irq(host->irq, NCR_700_intr, IRQF_SHARED, "zorro7xx-scsi",
++ host)) {
++ printk(KERN_ERR "zorro7xx: request_irq failed\n");
++ goto out_put_host;
++ }
++
++ scsi_scan_host(host);
++
++ return 0;
++
++ out_put_host:
++ scsi_host_put(host);
++ out_free:
++ if (ioaddr > 0x01000000)
++ iounmap(hostdata->base);
++ kfree(hostdata);
++ out_release:
++ zorro_release_device(z);
++
++ return -ENODEV;
++}
++
++static __devexit void zorro7xx_remove_one(struct zorro_dev *z)
++{
++ struct Scsi_Host *host = dev_to_shost(&z->dev);
++ struct NCR_700_Host_Parameters *hostdata =
++ (struct NCR_700_Host_Parameters *)host->hostdata[0];
++
++ scsi_remove_host(host);
++
++ NCR_700_release(host);
++ kfree(hostdata);
++ free_irq(host->irq, host);
++ zorro_release_device(z);
++}
++
++static struct zorro_driver zorro7xx_driver = {
++ .name = "zorro7xx-scsi",
++ .id_table = zorro7xx_zorro_tbl,
++ .probe = zorro7xx_init_one,
++ .remove = __devexit_p(zorro7xx_remove_one),
++};
++
++static int __init zorro7xx_scsi_init(void)
++{
++ return zorro_register_driver(&zorro7xx_driver);
++}
++
++static void __exit zorro7xx_scsi_exit(void)
++{
++ zorro_unregister_driver(&zorro7xx_driver);
++}
++
++module_init(zorro7xx_scsi_init);
++module_exit(zorro7xx_scsi_exit);
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/zorro-module-device-table.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/zorro-module-device-table.diff Sun Jul 15 13:01:35 2007
@@ -0,0 +1,205 @@
+Subject: [PATCH] Add Amiga Zorro bus modalias support
+
+Add Amiga Zorro bus modalias support
+
+Signed-off-by: Geert Uytterhoeven <geert at 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-sysfs.c | 11 +++++++++++
+ include/linux/mod_devicetable.h | 8 ++++++++
+ include/linux/zorro.h | 13 +------------
+ scripts/mod/file2alias.c | 15 +++++++++++++++
+ 11 files changed, 42 insertions(+), 12 deletions(-)
+
+--- a/drivers/net/a2065.c
++++ b/drivers/net/a2065.c
+@@ -708,6 +708,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
+@@ -305,6 +305,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
+@@ -217,6 +217,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-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:i%08X\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
+@@ -333,4 +333,12 @@ struct parisc_device_id {
+ #define PA_HVERSION_ANY_ID 0xffff
+ #define PA_SVERSION_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 */
++
+ #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
+@@ -390,6 +390,7 @@ static int do_vio_entry(const char *file
+
+ static int do_i2c_entry(const char *filename, struct i2c_device_id *i2c, char *alias)
+ {
++ i2c->id = TO_NATIVE(i2c->id);
+ strcpy(alias, "i2c:");
+ ADD(alias, "id", 1, i2c->id);
+ return 1;
+@@ -476,6 +477,16 @@ static int do_parisc_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)
+ {
+@@ -587,6 +598,10 @@ void handle_moddevtable(struct module *m
+ do_table(symval, sym->st_size,
+ sizeof(struct parisc_device_id), "parisc",
+ do_parisc_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);
+ }
+
+ /* Now add out buffered information to the generated C source */
Added: dists/trunk/linux-2.6/debian/patches/bugfix/m68k/zorro_config_attr-read-only.diff
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/m68k/zorro_config_attr-read-only.diff Sun Jul 15 13:01:35 2007
@@ -0,0 +1,21 @@
+Subject: [PATCH] zorro: Make sysfs `config' attribute read-only
+
+zorro: Make the sysfs `config' attribute read-only, as you cannot write to it
+(there's no .write function neither).
+
+Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
+---
+ drivers/zorro/zorro-sysfs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/zorro/zorro-sysfs.c
++++ b/drivers/zorro/zorro-sysfs.c
+@@ -77,7 +77,7 @@ static ssize_t zorro_read_config(struct
+ static struct bin_attribute zorro_config_attr = {
+ .attr = {
+ .name = "config",
+- .mode = S_IRUGO | S_IWUSR,
++ .mode = S_IRUGO,
+ .owner = THIS_MODULE
+ },
+ .size = sizeof(struct ConfigDev),
Modified: dists/trunk/linux-2.6/debian/patches/series/1~experimental.1-extra
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/1~experimental.1-extra (original)
+++ dists/trunk/linux-2.6/debian/patches/series/1~experimental.1-extra Sun Jul 15 13:01:35 2007
@@ -6,9 +6,8 @@
+ features/all/xen/vserver-update.patch *_xen-vserver
+ bugfix/arm/nas100d-pata-artop-single-port.patch arm
-# Submitted
-+ bugfix/m68k/falconide_intr_lock-reentrant.diff m68k
-#+ bugfix/m68k/600-task_thread_info.diff m68k
++ bugfix/m68k/m68k-page.h-needs-compiler.h.diff m68k
++ bugfix/m68k/630-extern-cleanup.diff.1 m68k
+ bugfix/m68k/633-atari_scc.diff m68k
+ bugfix/m68k/130-adbraw.diff m68k
#+ bugfix/m68k/133-arch.diff m68k
@@ -33,6 +32,17 @@
+ bugfix/m68k/m68k-mvme-scsi-rename.diff m68k
+ bugfix/m68k/m68k-53c700-scsi.diff m68k
+ bugfix/m68k/via-pmu68k-dead-code.diff m68k
++ bugfix/m68k/m68k-use-_AC.diff m68k
++ bugfix/m68k/m68k-amiga-z2ram-kill-TRUE-FALSE.diff m68k
++ bugfix/m68k/add-termios2.diff m68k
++ bugfix/m68k/m68k-arbitary-speed-tty-support.diff m68k
++ bugfix/m68k/m68k-do-not-include-RODATA-in-text-segment.diff m68k
++ bugfix/m68k/m68k-53c700-cleanups.diff m68k
++ bugfix/m68k/split-amiga7xx.diff m68k
++ bugfix/m68k/m68k-scsi-Kconfig-hickups.diff m68k
++ bugfix/m68k/zorro_config_attr-read-only.diff m68k
++ bugfix/m68k/zorro-module-device-table.diff m68k
++ bugfix/m68k/falconide_intr_lock-ratelimit.diff m68k
+ bugfix/m68k/dmasound_paula.diff m68k
+ bugfix/m68k/disable-mac-broken-config-options.diff m68k
More information about the Kernel-svn-changes
mailing list