Skip to content

Commit

Permalink
[PATCH] ioc4: Enable build on non-SN2
Browse files Browse the repository at this point in the history
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.

[[email protected]: __udivdi3 fix]
[[email protected]: fix default in Kconfig]
Acked-by: Pat Gefre <[email protected]>
Acked-by: Jeremy Higdon <[email protected]>
Signed-off-by: Brent Casavant <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Brent Casavant authored and Linus Torvalds committed Oct 17, 2006
1 parent 107d5a7 commit 59f1480
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 23 deletions.
6 changes: 4 additions & 2 deletions drivers/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ source "drivers/pnp/Kconfig"

source "drivers/block/Kconfig"

# misc before ide - BLK_DEV_SGIIOC4 depends on SGI_IOC4

source "drivers/misc/Kconfig"

source "drivers/ide/Kconfig"

source "drivers/scsi/Kconfig"
Expand Down Expand Up @@ -52,8 +56,6 @@ source "drivers/w1/Kconfig"

source "drivers/hwmon/Kconfig"

source "drivers/misc/Kconfig"

source "drivers/mfd/Kconfig"

source "drivers/media/Kconfig"
Expand Down
2 changes: 1 addition & 1 deletion drivers/ide/pci/sgiioc4.c
Original file line number Diff line number Diff line change
Expand Up @@ -774,7 +774,7 @@ ioc4_ide_exit(void)
ioc4_unregister_submodule(&ioc4_ide_submodule);
}

module_init(ioc4_ide_init);
late_initcall(ioc4_ide_init); /* Call only after IDE init is done */
module_exit(ioc4_ide_exit);

MODULE_AUTHOR("Aniket Malatpure/Jeremy Higdon");
Expand Down
11 changes: 11 additions & 0 deletions drivers/misc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,17 @@ config IBM_ASM

If unsure, say N.

config SGI_IOC4
tristate "SGI IOC4 Base IO support"
---help---
This option enables basic support for the IOC4 chip on certain
SGI IO controller cards (IO9, IO10, and PCI-RT). This option
does not enable any specific functions on such a card, but provides
necessary infrastructure for other drivers to utilize.

If you have an SGI Altix with an IOC4-based card say Y.
Otherwise say N.

config TIFM_CORE
tristate "TI Flash Media interface support (EXPERIMENTAL)"
depends on EXPERIMENTAL
Expand Down
1 change: 1 addition & 0 deletions drivers/misc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ obj-$(CONFIG_MSI_LAPTOP) += msi-laptop.o
obj-$(CONFIG_LKDTM) += lkdtm.o
obj-$(CONFIG_TIFM_CORE) += tifm_core.o
obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o
obj-$(CONFIG_SGI_IOC4) += ioc4.o
11 changes: 5 additions & 6 deletions drivers/sn/ioc4.c → drivers/misc/ioc4.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,6 @@
#include <linux/ktime.h>
#include <linux/mutex.h>
#include <linux/time.h>
#include <asm/sn/addrs.h>
#include <asm/sn/clksupport.h>
#include <asm/sn/shub_mmr.h>

/***************
* Definitions *
Expand Down Expand Up @@ -208,10 +205,12 @@ ioc4_clock_calibrate(struct ioc4_driver_data *idd)
IOC4_CALIBRATE_DEFAULT / IOC4_EXTINT_COUNT_DIVISOR);
period = IOC4_CALIBRATE_DEFAULT;
} else {
u64 ns = period;

do_div(ns, IOC4_EXTINT_COUNT_DIVISOR);
printk(KERN_DEBUG
"IOC4 %s: PCI clock is %ld ns.\n",
pci_name(idd->idd_pdev),
period / IOC4_EXTINT_COUNT_DIVISOR);
"IOC4 %s: PCI clock is %lld ns.\n",
pci_name(idd->idd_pdev), ns);
}

/* Remember results. We store the extint clock period rather
Expand Down
2 changes: 1 addition & 1 deletion drivers/serial/ioc4_serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -2935,7 +2935,7 @@ static void __devexit ioc4_serial_exit(void)
uart_unregister_driver(&ioc4_uart_rs422);
}

module_init(ioc4_serial_init);
late_initcall(ioc4_serial_init); /* Call only after tty init is done */
module_exit(ioc4_serial_exit);

MODULE_AUTHOR("Pat Gefre - Silicon Graphics Inc. (SGI) <[email protected]>");
Expand Down
12 changes: 0 additions & 12 deletions drivers/sn/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,6 @@
menu "SN Devices"
depends on SGI_SN

config SGI_IOC4
tristate "SGI IOC4 Base IO support"
default m
---help---
This option enables basic support for the IOC4 chip on certain
SGI IO controller cards (IO9, IO10, and PCI-RT). This option
does not enable any specific functions on such a card, but provides
necessary infrastructure for other drivers to utilize.

If you have an SGI Altix with an IOC4-based card say Y.
Otherwise say N.

config SGI_IOC3
tristate "SGI IOC3 Base IO support"
default m
Expand Down
1 change: 0 additions & 1 deletion drivers/sn/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,4 @@
#
#

obj-$(CONFIG_SGI_IOC4) += ioc4.o
obj-$(CONFIG_SGI_IOC3) += ioc3.o

0 comments on commit 59f1480

Please sign in to comment.