Delaying the device inventory detection time.
PATCH 1/1 Delaying the device inventory detection time.
Hello parisc-linux hackers,
This is the first patch of a series that will hopefully get the long awaited iotree into the cvs kernel repository. The goal of this patch was to delay the parisc device detection until main memory had been setup.
The current scheme relies upon a static, non-freeable array which must be large enough to contain all the devices the parisc box could inventory. By delaying the parisc device detection routines until after main memory is setup will allow us to use kmalloc and only allocate memory for the number of parisc devices present in the system. Delaying the parisc device detection routines also simplify the code required for setting up the iotree.
This patch does not do all that yet.... this patch still leaves the static table in place, and the detection routines. This patch just changes the location the parisc device inventory is called from setup_arch() to parisc_init() [formerly know as gsc_init]. I am posting this patch to the list and asking people to test it with different class machines, because this patch is a dependency for the rest of the iotree stuff I'm working on. It is also a small enough, logical change that if problems arise, it will be easier to debug then if it was bundled in with the rest of the iotree.
Patch Summary:
* Move the do_device_inventory() from setup_arch() to parisc_init().
* Renames the poorly named gsc_init function to parisc_init and moves from drivers/gsc/gsc.c to arch/parisc/kernel/setup.c
* Seperates the arch/parisc/kernel/setup.c file into setup routines and the processor driver.
* Removes the register_fallback_cpu code, it should now be obsolete.
Feedback, testing welcome. I have tested this patch on the C200+ and a 712/100.
Thanks,
- Ryan
Makefile +1 -1
@@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 9 -EXTRAVERSION = -pa13 +EXTRAVERSION = -pa14 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
parisc/kernel/Makefile +1 -1
@@ -24,7 +24,7 @@ obj-y += cache.o pacache.o set pa7300lc.o pci-dma.o syscall.o entry.o sys_parisc.o \ firmware.o ptrace.o hardware.o inventory.o drivers.o \ semaphore.o signal.o hpmc.o real2.o parisc_ksyms.o \ - unaligned.o + unaligned.o processor.o export-objs := parisc_ksyms.o
parisc/kernel/processor.c new file +335 -0
335 lines not on this page · raw message
parisc/kernelsetup.c renamed from parisc/kernel/setup.c +79 -313
446 lines not on this page · raw message
gsc/gsc.c +0 -75
85 lines not on this page · raw message
main.c +2 -2
@@ -112,7 +112,7 @@ extern void ipc_init(void);#endif #ifdef CONFIG_PARISC -extern void gsc_init (void ); +extern void parisc_init (void );#endif /*
@@ -681,7 +681,7 @@ static void __init do_basic_setup(void)#endif #ifdef CONFIG_PARISC -gsc_init (); +parisc_init ();#endif #ifdef CONFIG_PCI pci_init ();