Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sh: dma: Remove unused functionality

dma_extend(), get_dma_info_by_name(), register_chan_caps(), and
request_dma_bycap() are unused. Remove them, and all related code.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Link: https://lore.kernel.org/r/2beb81fdd7592a94329e3c9a6ba56959f6094019.1709326528.git.geert+renesas@glider.be
Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>

authored by

Geert Uytterhoeven and committed by
John Paul Adrian Glaubitz
89256d73 106398fd

-123
-116
arch/sh/drivers/dma/dma-api.c
··· 41 41 } 42 42 EXPORT_SYMBOL(get_dma_info); 43 43 44 - struct dma_info *get_dma_info_by_name(const char *dmac_name) 45 - { 46 - struct dma_info *info; 47 - 48 - list_for_each_entry(info, &registered_dmac_list, list) { 49 - if (dmac_name && (strcmp(dmac_name, info->name) != 0)) 50 - continue; 51 - else 52 - return info; 53 - } 54 - 55 - return NULL; 56 - } 57 - EXPORT_SYMBOL(get_dma_info_by_name); 58 - 59 44 static unsigned int get_nr_channels(void) 60 45 { 61 46 struct dma_info *info; ··· 85 100 return 0; 86 101 } 87 102 EXPORT_SYMBOL(get_dma_residue); 88 - 89 - static int search_cap(const char **haystack, const char *needle) 90 - { 91 - const char **p; 92 - 93 - for (p = haystack; *p; p++) 94 - if (strcmp(*p, needle) == 0) 95 - return 1; 96 - 97 - return 0; 98 - } 99 - 100 - /** 101 - * request_dma_bycap - Allocate a DMA channel based on its capabilities 102 - * @dmac: List of DMA controllers to search 103 - * @caps: List of capabilities 104 - * 105 - * Search all channels of all DMA controllers to find a channel which 106 - * matches the requested capabilities. The result is the channel 107 - * number if a match is found, or %-ENODEV if no match is found. 108 - * 109 - * Note that not all DMA controllers export capabilities, in which 110 - * case they can never be allocated using this API, and so 111 - * request_dma() must be used specifying the channel number. 112 - */ 113 - int request_dma_bycap(const char **dmac, const char **caps, const char *dev_id) 114 - { 115 - unsigned int found = 0; 116 - struct dma_info *info; 117 - const char **p; 118 - int i; 119 - 120 - BUG_ON(!dmac || !caps); 121 - 122 - list_for_each_entry(info, &registered_dmac_list, list) 123 - if (strcmp(*dmac, info->name) == 0) { 124 - found = 1; 125 - break; 126 - } 127 - 128 - if (!found) 129 - return -ENODEV; 130 - 131 - for (i = 0; i < info->nr_channels; i++) { 132 - struct dma_channel *channel = &info->channels[i]; 133 - 134 - if (unlikely(!channel->caps)) 135 - continue; 136 - 137 - for (p = caps; *p; p++) { 138 - if (!search_cap(channel->caps, *p)) 139 - break; 140 - if (request_dma(channel->chan, dev_id) == 0) 141 - return channel->chan; 142 - } 143 - } 144 - 145 - return -EINVAL; 146 - } 147 - EXPORT_SYMBOL(request_dma_bycap); 148 103 149 104 int request_dma(unsigned int chan, const char *dev_id) 150 105 { ··· 138 213 } 139 214 EXPORT_SYMBOL(dma_wait_for_completion); 140 215 141 - int register_chan_caps(const char *dmac, struct dma_chan_caps *caps) 142 - { 143 - struct dma_info *info; 144 - unsigned int found = 0; 145 - int i; 146 - 147 - list_for_each_entry(info, &registered_dmac_list, list) 148 - if (strcmp(dmac, info->name) == 0) { 149 - found = 1; 150 - break; 151 - } 152 - 153 - if (unlikely(!found)) 154 - return -ENODEV; 155 - 156 - for (i = 0; i < info->nr_channels; i++, caps++) { 157 - struct dma_channel *channel; 158 - 159 - if ((info->first_channel_nr + i) != caps->ch_num) 160 - return -EINVAL; 161 - 162 - channel = &info->channels[i]; 163 - channel->caps = caps->caplist; 164 - } 165 - 166 - return 0; 167 - } 168 - EXPORT_SYMBOL(register_chan_caps); 169 - 170 216 void dma_configure_channel(unsigned int chan, unsigned long flags) 171 217 { 172 218 struct dma_info *info = get_dma_info(chan); ··· 162 266 return info->ops->xfer(channel); 163 267 } 164 268 EXPORT_SYMBOL(dma_xfer); 165 - 166 - int dma_extend(unsigned int chan, unsigned long op, void *param) 167 - { 168 - struct dma_info *info = get_dma_info(chan); 169 - struct dma_channel *channel = get_dma_channel(chan); 170 - 171 - if (info->ops->extend) 172 - return info->ops->extend(channel, op, param); 173 - 174 - return -ENOSYS; 175 - } 176 - EXPORT_SYMBOL(dma_extend); 177 269 178 270 static int dma_proc_show(struct seq_file *m, void *v) 179 271 {
-7
arch/sh/include/asm/dma.h
··· 56 56 int (*get_residue)(struct dma_channel *chan); 57 57 int (*xfer)(struct dma_channel *chan); 58 58 int (*configure)(struct dma_channel *chan, unsigned long flags); 59 - int (*extend)(struct dma_channel *chan, unsigned long op, void *param); 60 59 }; 61 60 62 61 struct dma_channel { ··· 117 118 #define dma_read_page(chan, from, to) \ 118 119 dma_read(chan, from, to, PAGE_SIZE) 119 120 120 - extern int request_dma_bycap(const char **dmac, const char **caps, 121 - const char *dev_id); 122 121 extern int get_dma_residue(unsigned int chan); 123 122 extern struct dma_info *get_dma_info(unsigned int chan); 124 123 extern struct dma_channel *get_dma_channel(unsigned int chan); ··· 125 128 126 129 extern int register_dmac(struct dma_info *info); 127 130 extern void unregister_dmac(struct dma_info *info); 128 - extern struct dma_info *get_dma_info_by_name(const char *dmac_name); 129 - 130 - extern int dma_extend(unsigned int chan, unsigned long op, void *param); 131 - extern int register_chan_caps(const char *dmac, struct dma_chan_caps *capslist); 132 131 133 132 /* arch/sh/drivers/dma/dma-sysfs.c */ 134 133 extern int dma_create_sysfs_files(struct dma_channel *, struct dma_info *);