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 ]
|
[ Christian T. Steigies ]
|
||||||
* Add module.lds to kernel headers
|
* Add module.lds to kernel headers
|
||||||
* Re-enable atari-scsi and atari-rom-isa patches
|
* 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 ]
|
[ Martin Michlmayr ]
|
||||||
* [mips] Add patch from Yoichi Yuasa to fix IDE on Cobalt.
|
* [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 ]
|
[ dann frazier ]
|
||||||
* Enable vserver flavour for ia64 (closes: #423232)
|
* 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
|
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
|
+ features/all/xen/vserver-update.patch *_xen-vserver
|
||||||
+ bugfix/arm/nas100d-pata-artop-single-port.patch arm
|
+ bugfix/arm/nas100d-pata-artop-single-port.patch arm
|
||||||
|
|
||||||
# Submitted
|
+ bugfix/m68k/m68k-page.h-needs-compiler.h.diff m68k
|
||||||
+ bugfix/m68k/falconide_intr_lock-reentrant.diff m68k
|
+ bugfix/m68k/630-extern-cleanup.diff.1 m68k
|
||||||
#+ bugfix/m68k/600-task_thread_info.diff m68k
|
|
||||||
+ bugfix/m68k/633-atari_scc.diff m68k
|
+ bugfix/m68k/633-atari_scc.diff m68k
|
||||||
+ bugfix/m68k/130-adbraw.diff m68k
|
+ bugfix/m68k/130-adbraw.diff m68k
|
||||||
#+ bugfix/m68k/133-arch.diff m68k
|
#+ bugfix/m68k/133-arch.diff m68k
|
||||||
|
@ -33,6 +32,17 @@
|
||||||
+ bugfix/m68k/m68k-mvme-scsi-rename.diff m68k
|
+ bugfix/m68k/m68k-mvme-scsi-rename.diff m68k
|
||||||
+ bugfix/m68k/m68k-53c700-scsi.diff m68k
|
+ bugfix/m68k/m68k-53c700-scsi.diff m68k
|
||||||
+ bugfix/m68k/via-pmu68k-dead-code.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/dmasound_paula.diff m68k
|
||||||
+ bugfix/m68k/disable-mac-broken-config-options.diff m68k
|
+ bugfix/m68k/disable-mac-broken-config-options.diff m68k
|
||||||
|
|
Loading…
Reference in New Issue