diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-11 00:31:24 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-11 00:31:24 -0500 |
| commit | 05f6ece6f37f987e9de643f6f76e8fb5d5b9e014 (patch) | |
| tree | 5244e85d0dfb2619b0af4bc80a2c99dd579f79a5 | |
| parent | 35d138ae22f826f95f0f8d0285947582ccf4508f (diff) | |
| parent | 58b6c58caef7a34eab7ec887288fa495696653e7 (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6
37 files changed, 373 insertions, 228 deletions
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index a065349aee37..d8a4ca021aac 100644 --- a/arch/parisc/kernel/cache.c +++ b/arch/parisc/kernel/cache.c | |||
| @@ -29,9 +29,9 @@ | |||
| 29 | #include <asm/processor.h> | 29 | #include <asm/processor.h> |
| 30 | #include <asm/sections.h> | 30 | #include <asm/sections.h> |
| 31 | 31 | ||
| 32 | int split_tlb; | 32 | int split_tlb __read_mostly; |
| 33 | int dcache_stride; | 33 | int dcache_stride __read_mostly; |
| 34 | int icache_stride; | 34 | int icache_stride __read_mostly; |
| 35 | EXPORT_SYMBOL(dcache_stride); | 35 | EXPORT_SYMBOL(dcache_stride); |
| 36 | 36 | ||
| 37 | 37 | ||
| @@ -45,29 +45,29 @@ DEFINE_SPINLOCK(pa_tlb_lock); | |||
| 45 | EXPORT_SYMBOL(pa_tlb_lock); | 45 | EXPORT_SYMBOL(pa_tlb_lock); |
| 46 | #endif | 46 | #endif |
| 47 | 47 | ||
| 48 | struct pdc_cache_info cache_info; | 48 | struct pdc_cache_info cache_info __read_mostly; |
| 49 | #ifndef CONFIG_PA20 | 49 | #ifndef CONFIG_PA20 |
| 50 | static struct pdc_btlb_info btlb_info; | 50 | static struct pdc_btlb_info btlb_info __read_mostly; |
| 51 | #endif | 51 | #endif |
| 52 | 52 | ||
| 53 | #ifdef CONFIG_SMP | 53 | #ifdef CONFIG_SMP |
| 54 | void | 54 | void |
| 55 | flush_data_cache(void) | 55 | flush_data_cache(void) |
| 56 | { | 56 | { |
| 57 | on_each_cpu((void (*)(void *))flush_data_cache_local, NULL, 1, 1); | 57 | on_each_cpu(flush_data_cache_local, NULL, 1, 1); |
| 58 | } | 58 | } |
| 59 | void | 59 | void |
| 60 | flush_instruction_cache(void) | 60 | flush_instruction_cache(void) |
| 61 | { | 61 | { |
| 62 | on_each_cpu((void (*)(void *))flush_instruction_cache_local, NULL, 1, 1); | 62 | on_each_cpu(flush_instruction_cache_local, NULL, 1, 1); |
| 63 | } | 63 | } |
| 64 | #endif | 64 | #endif |
| 65 | 65 | ||
| 66 | void | 66 | void |
| 67 | flush_cache_all_local(void) | 67 | flush_cache_all_local(void) |
| 68 | { | 68 | { |
| 69 | flush_instruction_cache_local(); | 69 | flush_instruction_cache_local(NULL); |
| 70 | flush_data_cache_local(); | 70 | flush_data_cache_local(NULL); |
| 71 | } | 71 | } |
| 72 | EXPORT_SYMBOL(flush_cache_all_local); | 72 | EXPORT_SYMBOL(flush_cache_all_local); |
| 73 | 73 | ||
| @@ -332,7 +332,7 @@ void clear_user_page_asm(void *page, unsigned long vaddr) | |||
| 332 | } | 332 | } |
| 333 | 333 | ||
| 334 | #define FLUSH_THRESHOLD 0x80000 /* 0.5MB */ | 334 | #define FLUSH_THRESHOLD 0x80000 /* 0.5MB */ |
| 335 | int parisc_cache_flush_threshold = FLUSH_THRESHOLD; | 335 | int parisc_cache_flush_threshold __read_mostly = FLUSH_THRESHOLD; |
| 336 | 336 | ||
| 337 | void parisc_setup_cache_timing(void) | 337 | void parisc_setup_cache_timing(void) |
| 338 | { | 338 | { |
diff --git a/arch/parisc/kernel/drivers.c b/arch/parisc/kernel/drivers.c index d016d672ec2b..1eaa0d37f677 100644 --- a/arch/parisc/kernel/drivers.c +++ b/arch/parisc/kernel/drivers.c | |||
| @@ -39,7 +39,7 @@ | |||
| 39 | #include <asm/parisc-device.h> | 39 | #include <asm/parisc-device.h> |
| 40 | 40 | ||
| 41 | /* See comments in include/asm-parisc/pci.h */ | 41 | /* See comments in include/asm-parisc/pci.h */ |
| 42 | struct hppa_dma_ops *hppa_dma_ops; | 42 | struct hppa_dma_ops *hppa_dma_ops __read_mostly; |
| 43 | EXPORT_SYMBOL(hppa_dma_ops); | 43 | EXPORT_SYMBOL(hppa_dma_ops); |
| 44 | 44 | ||
| 45 | static struct device root = { | 45 | static struct device root = { |
| @@ -515,8 +515,13 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path) | |||
| 515 | (iodc_data[5] << 8) | iodc_data[6]; | 515 | (iodc_data[5] << 8) | iodc_data[6]; |
| 516 | dev->hpa.name = parisc_pathname(dev); | 516 | dev->hpa.name = parisc_pathname(dev); |
| 517 | dev->hpa.start = hpa; | 517 | dev->hpa.start = hpa; |
| 518 | if (hpa == 0xf4000000 || hpa == 0xf6000000 || | 518 | /* This is awkward. The STI spec says that gfx devices may occupy |
| 519 | hpa == 0xf8000000 || hpa == 0xfa000000) { | 519 | * 32MB or 64MB. Unfortunately, we don't know how to tell whether |
| 520 | * it's the former or the latter. Assumptions either way can hurt us. | ||
| 521 | */ | ||
| 522 | if (hpa == 0xf4000000 || hpa == 0xf8000000) { | ||
| 523 | dev->hpa.end = hpa + 0x03ffffff; | ||
| 524 | } else if (hpa == 0xf6000000 || hpa == 0xfa000000) { | ||
| 520 | dev->hpa.end = hpa + 0x01ffffff; | 525 | dev->hpa.end = hpa + 0x01ffffff; |
| 521 | } else { | 526 | } else { |
| 522 | dev->hpa.end = hpa + 0xfff; | 527 | dev->hpa.end = hpa + 0xfff; |
| @@ -834,7 +839,7 @@ static void print_parisc_device(struct parisc_device *dev) | |||
| 834 | 839 | ||
| 835 | if (dev->num_addrs) { | 840 | if (dev->num_addrs) { |
| 836 | int k; | 841 | int k; |
| 837 | printk(", additional addresses: "); | 842 | printk(", additional addresses: "); |
| 838 | for (k = 0; k < dev->num_addrs; k++) | 843 | for (k = 0; k < dev->num_addrs; k++) |
| 839 | printk("0x%lx ", dev->addr[k]); | 844 | printk("0x%lx ", dev->addr[k]); |
| 840 | } | 845 | } |
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c index 553f8fe03224..2dc06b8e1817 100644 --- a/arch/parisc/kernel/firmware.c +++ b/arch/parisc/kernel/firmware.c | |||
| @@ -80,7 +80,7 @@ static unsigned long pdc_result2[32] __attribute__ ((aligned (8))); | |||
| 80 | 80 | ||
| 81 | /* Firmware needs to be initially set to narrow to determine the | 81 | /* Firmware needs to be initially set to narrow to determine the |
| 82 | * actual firmware width. */ | 82 | * actual firmware width. */ |
| 83 | int parisc_narrow_firmware = 1; | 83 | int parisc_narrow_firmware __read_mostly = 1; |
| 84 | #endif | 84 | #endif |
| 85 | 85 | ||
| 86 | /* On most currently-supported platforms, IODC I/O calls are 32-bit calls | 86 | /* On most currently-supported platforms, IODC I/O calls are 32-bit calls |
diff --git a/arch/parisc/kernel/hardware.c b/arch/parisc/kernel/hardware.c index 2071b5bba15c..3058bffd8a2c 100644 --- a/arch/parisc/kernel/hardware.c +++ b/arch/parisc/kernel/hardware.c | |||
| @@ -551,6 +551,7 @@ static struct hp_hardware hp_hardware_list[] __initdata = { | |||
| 551 | {HPHW_BCPORT, 0x804, 0x0000C, 0x10, "REO I/O BC Merced Port"}, | 551 | {HPHW_BCPORT, 0x804, 0x0000C, 0x10, "REO I/O BC Merced Port"}, |
| 552 | {HPHW_BCPORT, 0x782, 0x0000C, 0x00, "REO I/O BC Ropes Port"}, | 552 | {HPHW_BCPORT, 0x782, 0x0000C, 0x00, "REO I/O BC Ropes Port"}, |
| 553 | {HPHW_BCPORT, 0x784, 0x0000C, 0x00, "Pluto I/O BC Ropes Port"}, | 553 | {HPHW_BCPORT, 0x784, 0x0000C, 0x00, "Pluto I/O BC Ropes Port"}, |
| 554 | {HPHW_BRIDGE, 0x05D, 0x0000A, 0x00, "SummitHawk Dino PCI Bridge"}, | ||
| 554 | {HPHW_BRIDGE, 0x680, 0x0000A, 0x00, "Dino PCI Bridge"}, | 555 | {HPHW_BRIDGE, 0x680, 0x0000A, 0x00, "Dino PCI Bridge"}, |
| 555 | {HPHW_BRID | ||
