forked from luck/tmp_suning_uos_patched
9aa1fbc50d
The original form of these was added (to the HP zx1 platform only) by the following bitkeeper commit (by the way of the historic.git tree): commit 66b99421d118a5ddd98a72913670b0fcf0a38d45 Author: Andrew Morton <akpm@osdl.org> Date: Sat Mar 13 17:05:37 2004 -0800 [PATCH] DMA: Fill gaping hole in DMA API interfaces. From: "David S. Miller" <davem@redhat.com> The commit does not explain why we'd need the memory barrier on ia64, it never included the swiotlb or SGI IOMMU based platforms, and also failed to address the map/unmap parts of the dma mapping interface, which should provide the same ordering semantics and actually are commonly used. The conclusion of this is that they were added in error and should be removed. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Tony Luck <tony.luck@intel.com>
76 lines
1.4 KiB
C
76 lines
1.4 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
#include <linux/module.h>
|
|
#include <linux/dma-mapping.h>
|
|
#include <asm/machvec.h>
|
|
|
|
#ifdef CONFIG_IA64_GENERIC
|
|
|
|
#include <linux/kernel.h>
|
|
#include <linux/string.h>
|
|
|
|
#include <asm/page.h>
|
|
|
|
struct ia64_machine_vector ia64_mv;
|
|
EXPORT_SYMBOL(ia64_mv);
|
|
|
|
static struct ia64_machine_vector * __init
|
|
lookup_machvec (const char *name)
|
|
{
|
|
extern struct ia64_machine_vector machvec_start[];
|
|
extern struct ia64_machine_vector machvec_end[];
|
|
struct ia64_machine_vector *mv;
|
|
|
|
for (mv = machvec_start; mv < machvec_end; ++mv)
|
|
if (strcmp (mv->name, name) == 0)
|
|
return mv;
|
|
|
|
return 0;
|
|
}
|
|
|
|
void __init
|
|
machvec_init (const char *name)
|
|
{
|
|
struct ia64_machine_vector *mv;
|
|
|
|
if (!name)
|
|
name = acpi_get_sysname();
|
|
mv = lookup_machvec(name);
|
|
if (!mv)
|
|
panic("generic kernel failed to find machine vector for"
|
|
" platform %s!", name);
|
|
|
|
ia64_mv = *mv;
|
|
printk(KERN_INFO "booting generic kernel on platform %s\n", name);
|
|
}
|
|
|
|
void __init
|
|
machvec_init_from_cmdline(const char *cmdline)
|
|
{
|
|
char str[64];
|
|
const char *start;
|
|
char *end;
|
|
|
|
if (! (start = strstr(cmdline, "machvec=")) )
|
|
return machvec_init(NULL);
|
|
|
|
strlcpy(str, start + strlen("machvec="), sizeof(str));
|
|
if ( (end = strchr(str, ' ')) )
|
|
*end = '\0';
|
|
|
|
return machvec_init(str);
|
|
}
|
|
|
|
#endif /* CONFIG_IA64_GENERIC */
|
|
|
|
void
|
|
machvec_setup (char **arg)
|
|
{
|
|
}
|
|
EXPORT_SYMBOL(machvec_setup);
|
|
|
|
void
|
|
machvec_timer_interrupt (int irq, void *dev_id)
|
|
{
|
|
}
|
|
EXPORT_SYMBOL(machvec_timer_interrupt);
|