Пример #1
0
static void elan_104nc_write32(struct map_info *map, __u32 d, unsigned long adr)
{
    spin_lock(&elan_104nc_spin);
    elan_104nc_page(map, adr);
    writel(d, iomapadr + (adr & WINDOW_MASK));
    spin_unlock(&elan_104nc_spin);
}
Пример #2
0
static map_word elan_104nc_read16(struct map_info *map, unsigned long ofs)
{
	map_word ret;
	spin_lock(&elan_104nc_spin);
	elan_104nc_page(map, ofs);
	ret.x[0] = readw(iomapadr + (ofs & WINDOW_MASK));
	spin_unlock(&elan_104nc_spin);
	return ret;
}
Пример #3
0
static __u32 elan_104nc_read32(struct map_info *map, unsigned long ofs)
{
	__u32 ret;
	spin_lock(&elan_104nc_spin);
	elan_104nc_page(map, ofs);
	ret = readl(iomapadr + (ofs & WINDOW_MASK));
	spin_unlock(&elan_104nc_spin);
	return ret;
}
Пример #4
0
static void elan_104nc_copy_to(struct map_info *map, unsigned long to, const void *from, ssize_t len)
{	
	while(len) {
		unsigned long thislen = len;
		if (len > (WINDOW_LENGTH - (to & WINDOW_MASK)))
			thislen = WINDOW_LENGTH-(to & WINDOW_MASK);
		
		spin_lock(&elan_104nc_spin);
		elan_104nc_page(map, to);
		memcpy_toio(iomapadr + (to & WINDOW_MASK), from, thislen);
		spin_unlock(&elan_104nc_spin);
		to += thislen;
		from += thislen;
		len -= thislen;
	}
}
Пример #5
0
static void elan_104nc_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len)
{
	while (len) {
		unsigned long thislen = len;
		if (len > (WINDOW_LENGTH - (from & WINDOW_MASK)))
			thislen = WINDOW_LENGTH-(from & WINDOW_MASK);
		
		spin_lock(&elan_104nc_spin);
		elan_104nc_page(map, from);
		memcpy_fromio(to, iomapadr + (from & WINDOW_MASK), thislen);
		spin_unlock(&elan_104nc_spin);
		to += thislen;
		from += thislen;
		len -= thislen;
	}
}