From: Michael Schmitz <schmitzmic@gmail.com>
To: geert@linux-m68k.org
Cc: linux-m68k@vger.kernel.org, debian-68k@lists.debian.org,
Michael Schmitz <schmitz@debian.org>
Subject: [PATCH 04/14] m68k/atari: EtherNAT - change number of Atari interrupt sources
Date: Mon, 25 Mar 2013 14:16:22 +1300 [thread overview]
Message-ID: <1364174192-25406-5-git-send-email-schmitz@debian.org> (raw)
In-Reply-To: <1364174192-25406-1-git-send-email-schmitz@debian.org>
Increase the number of Atari interrupt sources to include EtherNAT
interrupts (interrupt nunbers 139/140, vectors 0xc3/0xc4).
Signed-off-by: Michael Schmitz <schmitz@debian.org>
---
arch/m68k/atari/config.c | 20 +++++++++++++++++---
arch/m68k/include/asm/atariints.h | 2 +-
arch/m68k/include/asm/irq.h | 6 +++++-
3 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c
index ee9bb70..6c3e885 100644
--- a/arch/m68k/atari/config.c
+++ b/arch/m68k/atari/config.c
@@ -661,7 +661,7 @@ static void atari_get_hardware_list(struct seq_file *m)
* MSch: initial platform device support for Atari, required for EtherNAT
*/
-#define ATARI_ETHERNAT_IRQ 0xc3
+#define ATARI_ETHERNAT_IRQ 140
static struct resource smc91x_resources[] = {
[0] = {
@@ -685,16 +685,30 @@ static struct platform_device smc91x_device = {
.resource = smc91x_resources,
};
-static struct platform_device *atari_platform_devices[] __initdata = {
+static struct platform_device *atari_ethernat_devices[] __initdata = {
&smc91x_device
};
int __init atari_platform_init(void)
{
+ int rv = 0;
+
if (!MACH_IS_ATARI)
return -ENODEV;
- return platform_add_devices(atari_platform_devices, ARRAY_SIZE(atari_platform_devices));
+#ifdef CONFIG_ATARI_ETHERNAT
+ {
+ unsigned char *enatc_virt;
+ enatc_virt = (unsigned char *)ioremap((ATARI_ETHERNAT_PHYS_ADDR+0x23), 0xf);
+ if (hwreg_present(enatc_virt)) {
+ rv = platform_add_devices(atari_ethernat_devices,
+ ARRAY_SIZE(atari_ethernat_devices));
+ }
+ iounmap(enatc_virt);
+ }
+#endif
+
+ return rv;
}
arch_initcall(atari_platform_init);
diff --git a/arch/m68k/include/asm/atariints.h b/arch/m68k/include/asm/atariints.h
index 5fc13bd..12c759a 100644
--- a/arch/m68k/include/asm/atariints.h
+++ b/arch/m68k/include/asm/atariints.h
@@ -32,7 +32,7 @@
#define VME_SOURCE_BASE 56
#define VME_MAX_SOURCES 16
-#define NUM_ATARI_SOURCES (VME_SOURCE_BASE+VME_MAX_SOURCES-STMFP_SOURCE_BASE)
+#define NUM_ATARI_SOURCES 141
/* convert vector number to int source number */
#define IRQ_VECTOR_TO_SOURCE(v) ((v) - ((v) < 0x20 ? 0x18 : (0x40-8)))
diff --git a/arch/m68k/include/asm/irq.h b/arch/m68k/include/asm/irq.h
index c1155f0..81ca118 100644
--- a/arch/m68k/include/asm/irq.h
+++ b/arch/m68k/include/asm/irq.h
@@ -6,12 +6,16 @@
* different m68k hosts compiled into the kernel.
* Currently the Atari has 72 and the Amiga 24, but if both are
* supported in the kernel it is better to make room for 72.
+ * With EtherNAT add-on card on Atari, the highest interrupt
+ * number is 140 so NR_IRQS needs to be 141.
*/
#if defined(CONFIG_COLDFIRE)
#define NR_IRQS 256
#elif defined(CONFIG_VME) || defined(CONFIG_SUN3) || defined(CONFIG_SUN3X)
#define NR_IRQS 200
-#elif defined(CONFIG_ATARI) || defined(CONFIG_MAC)
+#elif defined(CONFIG_ATARI)
+#define NR_IRQS 141
+#elif defined(CONFIG_MAC)
#define NR_IRQS 72
#elif defined(CONFIG_Q40)
#define NR_IRQS 43
--
1.7.0.4
next prev parent reply other threads:[~2013-03-25 1:16 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-25 1:16 (unknown), Michael Schmitz
2013-03-25 1:16 ` [PATCH 01/14] m68k/atari EtherNEC: remove original EtherNEC driver Michael Schmitz
2013-03-25 1:16 ` [PATCH 02/14] m68k/atari EtherNAT: remove original EtherNAT driver Michael Schmitz
2013-03-25 1:16 ` [PATCH 03/14] m68k/atari: use CONFIG_ATARI in smc91x.h Michael Schmitz
2013-03-25 1:16 ` Michael Schmitz [this message]
2013-03-25 1:16 ` [PATCH 05/14] m68k/irq: add handle_polled_irq() for timer based soft interrupts Michael Schmitz
2013-03-25 1:16 ` [PATCH 06/14] m68k/atari: use dedicated irq_chip for timer D interrupts Michael Schmitz
2013-03-25 1:16 ` [PATCH 07/14] m68k/atari: EtherNEC - add platform device support Michael Schmitz
2013-03-25 1:16 ` [PATCH 08/14] m68k/atari: EtherNAT - ethernet support - new driver (smc91x) Michael Schmitz
2013-03-25 1:16 ` [PATCH 09/14] m68k/atari: EtherNEC - ethernet support - new driver (ne.c) Michael Schmitz
2013-03-25 1:16 ` [PATCH 10/14] m68k/atari: EtherNAT - add interrupt chip for Ethernet and USB interrupts Michael Schmitz
2013-03-25 1:16 ` [PATCH 11/14] m68k/atari: Implement 16 bit access macros for ROM port Michael Schmitz
2013-03-25 1:16 ` [PATCH 12/14] m68k: Implement ndelay() based on the existing udelay() logic Michael Schmitz
2013-03-25 1:16 ` [PATCH 13/14] m68k/atari: USB - add platform device definitions for ISP1160 HCD Michael Schmitz
2013-03-25 1:16 ` [PATCH 14/14] m68k/atari: USB - Add ISP1160 USB host controller support Michael Schmitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1364174192-25406-5-git-send-email-schmitz@debian.org \
--to=schmitzmic@gmail.com \
--cc=debian-68k@lists.debian.org \
--cc=geert@linux-m68k.org \
--cc=linux-m68k@vger.kernel.org \
--cc=schmitz@debian.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox