sh: select memchunk size using kernel cmdline

Allow user to pass parameters on kernel command line to override
default size for physically contiguous memory buffers. The default
VPU buffer size is too small for VGA harware encoding, but instead
of just bumping up the number we allow the user to override the
default size using the command line. Supports SuperH Mobile hardware
blocks such as VEU, VPU and CEU.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

authored by Magnus Damm and committed by Paul Mundt 0c13bf1e 2a5323cd

+27
+27
arch/sh/mm/consistent.c
··· 95 95 } 96 96 EXPORT_SYMBOL(dma_cache_sync); 97 97 98 + static int __init memchunk_setup(char *str) 99 + { 100 + return 1; /* accept anything that begins with "memchunk." */ 101 + } 102 + __setup("memchunk.", memchunk_setup); 103 + 104 + static void memchunk_cmdline_override(char *name, unsigned long *sizep) 105 + { 106 + char *p = boot_command_line; 107 + int k = strlen(name); 108 + 109 + while ((p = strstr(p, "memchunk."))) { 110 + p += 9; /* strlen("memchunk.") */ 111 + if (!strncmp(name, p, k) && p[k] == '=') { 112 + p += k + 1; 113 + *sizep = memparse(p, NULL); 114 + pr_info("%s: forcing memory chunk size to 0x%08lx\n", 115 + name, *sizep); 116 + break; 117 + } 118 + } 119 + } 120 + 98 121 int platform_resource_setup_memory(struct platform_device *pdev, 99 122 char *name, unsigned long memsize) 100 123 { ··· 131 108 name); 132 109 return -EINVAL; 133 110 } 111 + 112 + memchunk_cmdline_override(name, &memsize); 113 + if (!memsize) 114 + return 0; 134 115 135 116 buf = dma_alloc_coherent(NULL, memsize, &dma_handle, GFP_KERNEL); 136 117 if (!buf) {