diff options
author | Miles Bader <miles@gnu.org> | 2005-07-27 14:44:55 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-27 19:26:03 -0400 |
commit | 8b2bf06994b9cd6067e5c7620e270eec73fef70b (patch) | |
tree | cd3f29e3c32ff6d8b09eb3fc9d3813bf939cef8f /arch/v850/kernel | |
parent | 947ac8b9265e2a22552552d011db1e161f802a4a (diff) |
[PATCH] v850: Update PCI support
These changes are untested (I no longer have the hardware).
Signed-off-by: Miles Bader <miles@gnu.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/v850/kernel')
-rw-r--r-- | arch/v850/kernel/rte_mb_a_pci.c | 37 | ||||
-rw-r--r-- | arch/v850/kernel/vmlinux.lds.S | 14 |
2 files changed, 45 insertions, 6 deletions
diff --git a/arch/v850/kernel/rte_mb_a_pci.c b/arch/v850/kernel/rte_mb_a_pci.c index 074b50abc89d..ffbb6d073bf2 100644 --- a/arch/v850/kernel/rte_mb_a_pci.c +++ b/arch/v850/kernel/rte_mb_a_pci.c | |||
@@ -1,8 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * arch/v850/kernel/mb_a_pci.c -- PCI support for Midas lab RTE-MOTHER-A board | 2 | * arch/v850/kernel/mb_a_pci.c -- PCI support for Midas lab RTE-MOTHER-A board |
3 | * | 3 | * |
4 | * Copyright (C) 2001,02,03 NEC Electronics Corporation | 4 | * Copyright (C) 2001,02,03,05 NEC Electronics Corporation |
5 | * Copyright (C) 2001,02,03 Miles Bader <miles@gnu.org> | 5 | * Copyright (C) 2001,02,03,05 Miles Bader <miles@gnu.org> |
6 | * | 6 | * |
7 | * This file is subject to the terms and conditions of the GNU General | 7 | * This file is subject to the terms and conditions of the GNU General |
8 | * Public License. See the file COPYING in the main directory of this | 8 | * Public License. See the file COPYING in the main directory of this |
@@ -743,15 +743,17 @@ pci_unmap_sg (struct pci_dev *pdev, struct scatterlist *sg, int sg_len,int dir) | |||
743 | for a scatter-gather list, same rules and usage. */ | 743 | for a scatter-gather list, same rules and usage. */ |
744 | 744 | ||
745 | void | 745 | void |
746 | pci_dma_sync_sg_for_cpu (struct pci_dev *dev, struct scatterlist *sg, int sg_len, | 746 | pci_dma_sync_sg_for_cpu (struct pci_dev *dev, |
747 | int dir) | 747 | struct scatterlist *sg, int sg_len, |
748 | int dir) | ||
748 | { | 749 | { |
749 | BUG (); | 750 | BUG (); |
750 | } | 751 | } |
751 | 752 | ||
752 | void | 753 | void |
753 | pci_dma_sync_sg_for_device (struct pci_dev *dev, struct scatterlist *sg, int sg_len, | 754 | pci_dma_sync_sg_for_device (struct pci_dev *dev, |
754 | int dir) | 755 | struct scatterlist *sg, int sg_len, |
756 | int dir) | ||
755 | { | 757 | { |
756 | BUG (); | 758 | BUG (); |
757 | } | 759 | } |
@@ -786,6 +788,27 @@ pci_free_consistent (struct pci_dev *pdev, size_t size, void *cpu_addr, | |||
786 | } | 788 | } |
787 | 789 | ||
788 | 790 | ||
791 | /* iomap/iomap */ | ||
792 | |||
793 | void __iomem *pci_iomap (struct pci_dev *dev, int bar, unsigned long max) | ||
794 | { | ||
795 | unsigned long start = pci_resource_start (dev, bar); | ||
796 | unsigned long len = pci_resource_len (dev, bar); | ||
797 | |||
798 | if (!start || len == 0) | ||
799 | return 0; | ||
800 | |||
801 | /* None of the ioremap functions actually do anything, other than | ||
802 | re-casting their argument, so don't bother differentiating them. */ | ||
803 | return ioremap (start, len); | ||
804 | } | ||
805 | |||
806 | void pci_iounmap (struct pci_dev *dev, void __iomem *addr) | ||
807 | { | ||
808 | /* nothing */ | ||
809 | } | ||
810 | |||
811 | |||
789 | /* symbol exports (for modules) */ | 812 | /* symbol exports (for modules) */ |
790 | 813 | ||
791 | EXPORT_SYMBOL (pci_map_single); | 814 | EXPORT_SYMBOL (pci_map_single); |
@@ -794,3 +817,5 @@ EXPORT_SYMBOL (pci_alloc_consistent); | |||
794 | EXPORT_SYMBOL (pci_free_consistent); | 817 | EXPORT_SYMBOL (pci_free_consistent); |
795 | EXPORT_SYMBOL (pci_dma_sync_single_for_cpu); | 818 | EXPORT_SYMBOL (pci_dma_sync_single_for_cpu); |
796 | EXPORT_SYMBOL (pci_dma_sync_single_for_device); | 819 | EXPORT_SYMBOL (pci_dma_sync_single_for_device); |
820 | EXPORT_SYMBOL (pci_iomap); | ||
821 | EXPORT_SYMBOL (pci_iounmap); | ||
diff --git a/arch/v850/kernel/vmlinux.lds.S b/arch/v850/kernel/vmlinux.lds.S index c366a8b326ee..5be05f47109e 100644 --- a/arch/v850/kernel/vmlinux.lds.S +++ b/arch/v850/kernel/vmlinux.lds.S | |||
@@ -12,6 +12,7 @@ | |||
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | 14 | #include <linux/config.h> |
15 | |||
15 | #define VMLINUX_SYMBOL(_sym_) _##_sym_ | 16 | #define VMLINUX_SYMBOL(_sym_) _##_sym_ |
16 | #include <asm-generic/vmlinux.lds.h> | 17 | #include <asm-generic/vmlinux.lds.h> |
17 | 18 | ||
@@ -42,6 +43,19 @@ | |||
42 | *(.rodata) *(.rodata.*) \ | 43 | *(.rodata) *(.rodata.*) \ |
43 | *(__vermagic) /* Kernel version magic */ \ | 44 | *(__vermagic) /* Kernel version magic */ \ |
44 | *(.rodata1) \ | 45 | *(.rodata1) \ |
46 | /* PCI quirks */ \ | ||
47 | ___start_pci_fixups_early = . ; \ | ||
48 | *(.pci_fixup_early) \ | ||
49 | ___end_pci_fixups_early = . ; \ | ||
50 | ___start_pci_fixups_header = . ; \ | ||
51 | *(.pci_fixup_header) \ | ||
52 | ___end_pci_fixups_header = . ; \ | ||
53 | ___start_pci_fixups_final = . ; \ | ||
54 | *(.pci_fixup_final) \ | ||
55 | ___end_pci_fixups_final = . ; \ | ||
56 | ___start_pci_fixups_enable = . ; \ | ||
57 | *(.pci_fixup_enable) \ | ||
58 | ___end_pci_fixups_enable = . ; \ | ||
45 | /* Kernel symbol table: Normal symbols */ \ | 59 | /* Kernel symbol table: Normal symbols */ \ |
46 | ___start___ksymtab = .; \ | 60 | ___start___ksymtab = .; \ |
47 | *(__ksymtab) \ | 61 | *(__ksymtab) \ |