aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrent Casavant <bcasavan@sgi.com>2006-10-17 03:09:25 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-17 11:18:42 -0400
commit59f148005cfd3d41537a4b872c266213d5fe4dc6 (patch)
tree1e769ca80218a39417f7d45759e1bd2a4dbf6452
parent107d5a72f2c6a6819b66eebcb0281c7a67b6baaa (diff)
[PATCH] ioc4: Enable build on non-SN2
The SGI PCI-RT card, based on the SGI IOC4 chip, will be made available on Altix XE (x86_64) platforms in the near future. As such it is now a misnomer for the IOC4 base device driver to live under drivers/sn, and would complicate builds for non-SN2. This patch moves the IOC4 base driver code from drivers/sn to drivers/misc, and updates the associated Makefiles and Kconfig files to allow building on non-SN2 configs. Due to the resulting change in link order, it is now necessary to use late_initcall() for IOC4 subdriver initialization. [akpm@osdl.org: __udivdi3 fix] [akpm@osdl.org: fix default in Kconfig] Acked-by: Pat Gefre <pfg@sgi.com> Acked-by: Jeremy Higdon <jeremy@sgi.com> Signed-off-by: Brent Casavant <bcasavan@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/Kconfig6
-rw-r--r--drivers/ide/pci/sgiioc4.c2
-rw-r--r--drivers/misc/Kconfig11
-rw-r--r--drivers/misc/Makefile1
-rw-r--r--drivers/misc/ioc4.c (renamed from drivers/sn/ioc4.c)11
-rw-r--r--drivers/serial/ioc4_serial.c2
-rw-r--r--drivers/sn/Kconfig12
-rw-r--r--drivers/sn/Makefile1
8 files changed, 23 insertions, 23 deletions
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 263e86ddc1a4..f39463418904 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -14,6 +14,10 @@ source "drivers/pnp/Kconfig"
14 14
15source "drivers/block/Kconfig" 15source "drivers/block/Kconfig"
16 16
17# misc before ide - BLK_DEV_SGIIOC4 depends on SGI_IOC4
18
19source "drivers/misc/Kconfig"
20
17source "drivers/ide/Kconfig" 21source "drivers/ide/Kconfig"
18 22
19source "drivers/scsi/Kconfig" 23source "drivers/scsi/Kconfig"
@@ -52,8 +56,6 @@ source "drivers/w1/Kconfig"
52 56
53source "drivers/hwmon/Kconfig" 57source "drivers/hwmon/Kconfig"
54 58
55source "drivers/misc/Kconfig"
56
57source "drivers/mfd/Kconfig" 59source "drivers/mfd/Kconfig"
58 60
59source "drivers/media/Kconfig" 61source "drivers/media/Kconfig"
diff --git a/drivers/ide/pci/sgiioc4.c b/drivers/ide/pci/sgiioc4.c
index f3fe287fbd89..244f7eb7006d 100644
--- a/drivers/ide/pci/sgiioc4.c
+++ b/drivers/ide/pci/sgiioc4.c
@@ -774,7 +774,7 @@ ioc4_ide_exit(void)
774 ioc4_unregister_submodule(&ioc4_ide_submodule); 774 ioc4_unregister_submodule(&ioc4_ide_submodule);
775} 775}
776 776
777module_init(ioc4_ide_init); 777late_initcall(ioc4_ide_init); /* Call only after IDE init is done */
778module_exit(ioc4_ide_exit); 778module_exit(ioc4_ide_exit);
779 779
780MODULE_AUTHOR("Aniket Malatpure/Jeremy Higdon"); 780MODULE_AUTHOR("Aniket Malatpure/Jeremy Higdon");
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index fa7acc2c5c6d..b6c045dc97b4 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -28,6 +28,17 @@ config IBM_ASM
28 28
29 If unsure, say N. 29 If unsure, say N.
30 30
31config SGI_IOC4
32 tristate "SGI IOC4 Base IO support"
33 ---help---
34 This option enables basic support for the IOC4 chip on certain
35 SGI IO controller cards (IO9, IO10, and PCI-RT). This option
36 does not enable any specific functions on such a card, but provides
37 necessary infrastructure for other drivers to utilize.
38
39 If you have an SGI Altix with an IOC4-based card say Y.
40 Otherwise say N.
41
31config TIFM_CORE 42config TIFM_CORE
32 tristate "TI Flash Media interface support (EXPERIMENTAL)" 43 tristate "TI Flash Media interface support (EXPERIMENTAL)"
33 depends on EXPERIMENTAL 44 depends on EXPERIMENTAL
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index 9a91c1ee8497..c9e98ab021c5 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -9,3 +9,4 @@ obj-$(CONFIG_MSI_LAPTOP) += msi-laptop.o
9obj-$(CONFIG_LKDTM) += lkdtm.o 9obj-$(CONFIG_LKDTM) += lkdtm.o
10obj-$(CONFIG_TIFM_CORE) += tifm_core.o 10obj-$(CONFIG_TIFM_CORE) += tifm_core.o
11obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o 11obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o
12obj-$(CONFIG_SGI_IOC4) += ioc4.o
diff --git a/drivers/sn/ioc4.c b/drivers/misc/ioc4.c
index 83d2e90c581c..1c3c14a3839c 100644
--- a/drivers/sn/ioc4.c
+++ b/drivers/misc/ioc4.c
@@ -32,9 +32,6 @@
32#include <linux/ktime.h> 32#include <linux/ktime.h>
33#include <linux/mutex.h> 33#include <linux/mutex.h>
34#include <linux/time.h> 34#include <linux/time.h>
35#include <asm/sn/addrs.h>
36#include <asm/sn/clksupport.h>
37#include <asm/sn/shub_mmr.h>
38 35
39/*************** 36/***************
40 * Definitions * 37 * Definitions *
@@ -208,10 +205,12 @@ ioc4_clock_calibrate(struct ioc4_driver_data *idd)
208 IOC4_CALIBRATE_DEFAULT / IOC4_EXTINT_COUNT_DIVISOR); 205 IOC4_CALIBRATE_DEFAULT / IOC4_EXTINT_COUNT_DIVISOR);
209 period = IOC4_CALIBRATE_DEFAULT; 206 period = IOC4_CALIBRATE_DEFAULT;
210 } else { 207 } else {
208 u64 ns = period;
209
210 do_div(ns, IOC4_EXTINT_COUNT_DIVISOR);
211 printk(KERN_DEBUG 211 printk(KERN_DEBUG
212 "IOC4 %s: PCI clock is %ld ns.\n", 212 "IOC4 %s: PCI clock is %lld ns.\n",
213 pci_name(idd->idd_pdev), 213 pci_name(idd->idd_pdev), ns);
214 period / IOC4_EXTINT_COUNT_DIVISOR);
215 } 214 }
216 215
217 /* Remember results. We store the extint clock period rather 216 /* Remember results. We store the extint clock period rather
diff --git a/drivers/serial/ioc4_serial.c b/drivers/serial/ioc4_serial.c
index 98ce88d80207..ff4fa25f9fd1 100644
--- a/drivers/serial/ioc4_serial.c
+++ b/drivers/serial/ioc4_serial.c
@@ -2935,7 +2935,7 @@ static void __devexit ioc4_serial_exit(void)
2935 uart_unregister_driver(&ioc4_uart_rs422); 2935 uart_unregister_driver(&ioc4_uart_rs422);
2936} 2936}
2937 2937
2938module_init(ioc4_serial_init); 2938late_initcall(ioc4_serial_init); /* Call only after tty init is done */
2939module_exit(ioc4_serial_exit); 2939module_exit(ioc4_serial_exit);
2940 2940
2941MODULE_AUTHOR("Pat Gefre - Silicon Graphics Inc. (SGI) <pfg@sgi.com>"); 2941MODULE_AUTHOR("Pat Gefre - Silicon Graphics Inc. (SGI) <pfg@sgi.com>");
diff --git a/drivers/sn/Kconfig b/drivers/sn/Kconfig
index 34d4fde51a79..c66ba9ad833d 100644
--- a/drivers/sn/Kconfig
+++ b/drivers/sn/Kconfig
@@ -5,18 +5,6 @@
5menu "SN Devices" 5menu "SN Devices"
6 depends on SGI_SN 6 depends on SGI_SN
7 7
8config SGI_IOC4
9 tristate "SGI IOC4 Base IO support"
10 default m
11 ---help---
12 This option enables basic support for the IOC4 chip on certain
13 SGI IO controller cards (IO9, IO10, and PCI-RT). This option
14 does not enable any specific functions on such a card, but provides
15 necessary infrastructure for other drivers to utilize.
16
17 If you have an SGI Altix with an IOC4-based card say Y.
18 Otherwise say N.
19
20config SGI_IOC3 8config SGI_IOC3
21 tristate "SGI IOC3 Base IO support" 9 tristate "SGI IOC3 Base IO support"
22 default m 10 default m
diff --git a/drivers/sn/Makefile b/drivers/sn/Makefile
index 2cda011597c0..693db8bb8d9c 100644
--- a/drivers/sn/Makefile
+++ b/drivers/sn/Makefile
@@ -3,5 +3,4 @@
3# 3#
4# 4#
5 5
6obj-$(CONFIG_SGI_IOC4) += ioc4.o
7obj-$(CONFIG_SGI_IOC3) += ioc3.o 6obj-$(CONFIG_SGI_IOC3) += ioc3.o