diff options
author | Brent Casavant <bcasavan@sgi.com> | 2006-10-17 03:09:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-17 11:18:42 -0400 |
commit | 59f148005cfd3d41537a4b872c266213d5fe4dc6 (patch) | |
tree | 1e769ca80218a39417f7d45759e1bd2a4dbf6452 | |
parent | 107d5a72f2c6a6819b66eebcb0281c7a67b6baaa (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/Kconfig | 6 | ||||
-rw-r--r-- | drivers/ide/pci/sgiioc4.c | 2 | ||||
-rw-r--r-- | drivers/misc/Kconfig | 11 | ||||
-rw-r--r-- | drivers/misc/Makefile | 1 | ||||
-rw-r--r-- | drivers/misc/ioc4.c (renamed from drivers/sn/ioc4.c) | 11 | ||||
-rw-r--r-- | drivers/serial/ioc4_serial.c | 2 | ||||
-rw-r--r-- | drivers/sn/Kconfig | 12 | ||||
-rw-r--r-- | drivers/sn/Makefile | 1 |
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 | ||
15 | source "drivers/block/Kconfig" | 15 | source "drivers/block/Kconfig" |
16 | 16 | ||
17 | # misc before ide - BLK_DEV_SGIIOC4 depends on SGI_IOC4 | ||
18 | |||
19 | source "drivers/misc/Kconfig" | ||
20 | |||
17 | source "drivers/ide/Kconfig" | 21 | source "drivers/ide/Kconfig" |
18 | 22 | ||
19 | source "drivers/scsi/Kconfig" | 23 | source "drivers/scsi/Kconfig" |
@@ -52,8 +56,6 @@ source "drivers/w1/Kconfig" | |||
52 | 56 | ||
53 | source "drivers/hwmon/Kconfig" | 57 | source "drivers/hwmon/Kconfig" |
54 | 58 | ||
55 | source "drivers/misc/Kconfig" | ||
56 | |||
57 | source "drivers/mfd/Kconfig" | 59 | source "drivers/mfd/Kconfig" |
58 | 60 | ||
59 | source "drivers/media/Kconfig" | 61 | source "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 | ||
777 | module_init(ioc4_ide_init); | 777 | late_initcall(ioc4_ide_init); /* Call only after IDE init is done */ |
778 | module_exit(ioc4_ide_exit); | 778 | module_exit(ioc4_ide_exit); |
779 | 779 | ||
780 | MODULE_AUTHOR("Aniket Malatpure/Jeremy Higdon"); | 780 | MODULE_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 | ||
31 | config 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 | |||
31 | config TIFM_CORE | 42 | config 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 | |||
9 | obj-$(CONFIG_LKDTM) += lkdtm.o | 9 | obj-$(CONFIG_LKDTM) += lkdtm.o |
10 | obj-$(CONFIG_TIFM_CORE) += tifm_core.o | 10 | obj-$(CONFIG_TIFM_CORE) += tifm_core.o |
11 | obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o | 11 | obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o |
12 | obj-$(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 | ||
2938 | module_init(ioc4_serial_init); | 2938 | late_initcall(ioc4_serial_init); /* Call only after tty init is done */ |
2939 | module_exit(ioc4_serial_exit); | 2939 | module_exit(ioc4_serial_exit); |
2940 | 2940 | ||
2941 | MODULE_AUTHOR("Pat Gefre - Silicon Graphics Inc. (SGI) <pfg@sgi.com>"); | 2941 | MODULE_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 @@ | |||
5 | menu "SN Devices" | 5 | menu "SN Devices" |
6 | depends on SGI_SN | 6 | depends on SGI_SN |
7 | 7 | ||
8 | config 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 | |||
20 | config SGI_IOC3 | 8 | config 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 | ||
6 | obj-$(CONFIG_SGI_IOC4) += ioc4.o | ||
7 | obj-$(CONFIG_SGI_IOC3) += ioc3.o | 6 | obj-$(CONFIG_SGI_IOC3) += ioc3.o |