diff options
Diffstat (limited to 'lib/swiotlb.c')
| -rw-r--r-- | lib/swiotlb.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/swiotlb.c b/lib/swiotlb.c index bfe02b8fc55b..d23762e6652c 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c | |||
| @@ -105,9 +105,9 @@ setup_io_tlb_npages(char *str) | |||
| 105 | if (!strcmp(str, "force")) | 105 | if (!strcmp(str, "force")) |
| 106 | swiotlb_force = 1; | 106 | swiotlb_force = 1; |
| 107 | 107 | ||
| 108 | return 1; | 108 | return 0; |
| 109 | } | 109 | } |
| 110 | __setup("swiotlb=", setup_io_tlb_npages); | 110 | early_param("swiotlb", setup_io_tlb_npages); |
| 111 | /* make io_tlb_overflow tunable too? */ | 111 | /* make io_tlb_overflow tunable too? */ |
| 112 | 112 | ||
| 113 | unsigned long swiotlb_nr_tbl(void) | 113 | unsigned long swiotlb_nr_tbl(void) |
| @@ -115,6 +115,18 @@ unsigned long swiotlb_nr_tbl(void) | |||
| 115 | return io_tlb_nslabs; | 115 | return io_tlb_nslabs; |
| 116 | } | 116 | } |
| 117 | EXPORT_SYMBOL_GPL(swiotlb_nr_tbl); | 117 | EXPORT_SYMBOL_GPL(swiotlb_nr_tbl); |
| 118 | |||
| 119 | /* default to 64MB */ | ||
| 120 | #define IO_TLB_DEFAULT_SIZE (64UL<<20) | ||
| 121 | unsigned long swiotlb_size_or_default(void) | ||
| 122 | { | ||
| 123 | unsigned long size; | ||
| 124 | |||
| 125 | size = io_tlb_nslabs << IO_TLB_SHIFT; | ||
| 126 | |||
| 127 | return size ? size : (IO_TLB_DEFAULT_SIZE); | ||
| 128 | } | ||
| 129 | |||
| 118 | /* Note that this doesn't work with highmem page */ | 130 | /* Note that this doesn't work with highmem page */ |
| 119 | static dma_addr_t swiotlb_virt_to_bus(struct device *hwdev, | 131 | static dma_addr_t swiotlb_virt_to_bus(struct device *hwdev, |
| 120 | volatile void *address) | 132 | volatile void *address) |
| @@ -188,8 +200,7 @@ int __init swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose) | |||
| 188 | void __init | 200 | void __init |
| 189 | swiotlb_init(int verbose) | 201 | swiotlb_init(int verbose) |
| 190 | { | 202 | { |
| 191 | /* default to 64MB */ | 203 | size_t default_size = IO_TLB_DEFAULT_SIZE; |
| 192 | size_t default_size = 64UL<<20; | ||
| 193 | unsigned char *vstart; | 204 | unsigned char *vstart; |
| 194 | unsigned long bytes; | 205 | unsigned long bytes; |
| 195 | 206 | ||
