Add 2.6.22 patches from linux-m68k CVS
svn path=/dists/trunk/linux-2.6/; revision=9136
This commit is contained in:
parent
a4815da7f0
commit
6502789f15
|
@ -16,7 +16,8 @@ linux-2.6 (2.6.22-1~experimental.1) UNRELEASED; urgency=low
|
|||
[ 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 @@ linux-2.6 (2.6.22-1~experimental.1) UNRELEASED; urgency=low
|
|||
[ dann frazier ]
|
||||
* Enable vserver flavour for ia64 (closes: #423232)
|
||||
|
||||
-- Christian T. Steigies <cts@debian.org> Fri, 13 Jul 2007 23:39:57 +0200
|
||||
-- Christian T. Steigies <cts@debian.org> Sun, 15 Jul 2007 14:58:22 +0200
|
||||
|
||||
linux-2.6 (2.6.22~rc5-1~experimental.1) experimental; urgency=low
|
||||
|
||||
|
|
|
@ -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@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. */
|
|
@ -0,0 +1,374 @@
|
|||
From alan@lxorguk.ukuu.org.uk Wed May 23 21:55:17 2007
|
||||
Date: Wed, 23 May 2007 20:56:45 +0100
|
||||
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
|
||||
To: Geert Uytterhoeven <geert@linux-m68k.org>
|
||||
Cc: Roman Zippel <zippel@linux-m68k.org>, Linux Kernel Development <linux-kernel@vger.kernel.org>, akpm@osdl.org, rmk@arm.linux.kernel.org, spyro@f2s.com, starvik@axis.com, ysato@users.sourceforge.jp, "Luck, Tony" <tony.luck@intel.com>, takata@linux-m32r.org, chris@zankel.net, uclinux-v850@lsi.nec.co.jp, kyle@parisc-linux.org, linux-mips@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@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 */
|
|
@ -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)
|
|
@ -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,186 @@
|
|||
Subject: [PATCH] scsi: m68k 53c7xx codingstyle cleanups
|
||||
|
||||
scsi: m68k 53c7xx codingstyle cleanups, as suggested by Christoph Hellwig
|
||||
|
||||
Signed-off-by: Geert Uytterhoeven <geert@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);
|
|
@ -0,0 +1,27 @@
|
|||
Subject: [PATCH] drivers/block/z2ram: Remove TRUE/FALSE defines
|
||||
Cc: Jens Axboe <jens.axboe@oracle.com>
|
||||
|
||||
From: Richard Knutsson <ricknu-0@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@student.ltu.se>
|
||||
Signed-off-by: Geert Uytterhoeven <geert@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)
|
|
@ -0,0 +1,68 @@
|
|||
From alan@lxorguk.ukuu.org.uk Wed May 23 18:43:50 2007
|
||||
Date: Wed, 23 May 2007 17:44:46 +0100
|
||||
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
|
||||
To: geert@linux-m68k.org, zippel@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@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__ */
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
Subject: [PATCH] m68k: Don't include RODATA into text segment
|
||||
|
||||
From: Roman Zippel <zippel@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@linux-m68k.org>
|
||||
Signed-off-by: Geert Uytterhoeven <geert@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
|
|
@ -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@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)
|
|
@ -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@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"
|
|
@ -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@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)
|
|
@ -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@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@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@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@fairlite.demon.co.uk> / Kars de Jong <jongk@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@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@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@fairlite.demon.co.uk> / Kars de Jong <jongk@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@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@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@fairlite.demon.co.uk> / Kars de Jong <jongk@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);
|
|
@ -0,0 +1,205 @@
|
|||
Subject: [PATCH] Add Amiga Zorro bus modalias support
|
||||
|
||||
Add Amiga Zorro bus modalias 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-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 */
|
|
@ -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@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),
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue