Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b1c907f3 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'next' of git://git.monstr.eu/linux-2.6-microblaze:
  microblaze: Remove __ARCH_WANT_INTERRUPTS_ON_CTXSW usage
  microblaze: Use delay slot in __strnlen_user, __strncpy_user
  microblaze: Remove NET_IP_ALIGN from system.h
  microblaze: Add __ucmpdi2() helper function
  microblaze: Raise SIGFPE/FPE_INTDIV for div by zero
  microblaze: Switch ELF_ARCH code to 189
  microblaze: Added DMA sync operations
  microblaze: Moved __dma_sync() to dma-mapping.h
  microblaze: Add PVR for Microblaze v8.20.a
  microblaze: Fix access_ok macro
  microblaze: Add loop unrolling for PAGE in copy_tofrom_user
  microblaze: Simplify logic for unaligned byte copying
  microblaze: Change label names - copy_tofrom_user
  microblaze: Separate fixup section definition
  microblaze: Change label name in copy_tofrom_user
  microblaze: Clear top bit from cnt32_to_63
parents 91e67a99 84ac218f
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -28,12 +28,12 @@
#include <linux/dma-attrs.h>
#include <asm/io.h>
#include <asm-generic/dma-coherent.h>
#include <asm/cacheflush.h>

#define DMA_ERROR_CODE		(~(dma_addr_t)0x0)

#define __dma_alloc_coherent(dev, gfp, size, handle)	NULL
#define __dma_free_coherent(size, addr)		((void)0)
#define __dma_sync(addr, size, rw)		((void)0)

static inline unsigned long device_to_mask(struct device *dev)
{
@@ -95,6 +95,22 @@ static inline int dma_set_mask(struct device *dev, u64 dma_mask)

#include <asm-generic/dma-mapping-common.h>

static inline void __dma_sync(unsigned long paddr,
			      size_t size, enum dma_data_direction direction)
{
	switch (direction) {
	case DMA_TO_DEVICE:
	case DMA_BIDIRECTIONAL:
		flush_dcache_range(paddr, paddr + size);
		break;
	case DMA_FROM_DEVICE:
		invalidate_dcache_range(paddr, paddr + size);
		break;
	default:
		BUG();
	}
}

static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
{
	struct dma_map_ops *ops = get_dma_ops(dev);
@@ -135,7 +151,7 @@ static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size,
		enum dma_data_direction direction)
{
	BUG_ON(direction == DMA_NONE);
	__dma_sync(vaddr, size, (int)direction);
	__dma_sync(virt_to_phys(vaddr), size, (int)direction);
}

#endif	/* _ASM_MICROBLAZE_DMA_MAPPING_H */
+5 −3
Original line number Diff line number Diff line
@@ -16,13 +16,15 @@
 * I've snaffled the value from the microblaze binutils source code
 * /binutils/microblaze/include/elf/microblaze.h
 */
#define EM_XILINX_MICROBLAZE	0xbaab
#define ELF_ARCH		EM_XILINX_MICROBLAZE
#define EM_MICROBLAZE		189
#define EM_MICROBLAZE_OLD	0xbaab
#define ELF_ARCH		EM_MICROBLAZE

/*
 * This is used to ensure we don't load something for the wrong architecture.
 */
#define elf_check_arch(x)	((x)->e_machine == EM_XILINX_MICROBLAZE)
#define elf_check_arch(x)	((x)->e_machine == EM_MICROBLAZE \
				 || (x)->e_machine == EM_MICROBLAZE_OLD)

/*
 * These are used to set parameters in the core dumps.
+0 −9
Original line number Diff line number Diff line
@@ -17,8 +17,6 @@
#include <asm-generic/cmpxchg.h>
#include <asm-generic/cmpxchg-local.h>

#define __ARCH_WANT_INTERRUPTS_ON_CTXSW

struct task_struct;
struct thread_info;

@@ -96,11 +94,4 @@ extern struct dentry *of_debugfs_root;

#define arch_align_stack(x) (x)

/*
 * MicroBlaze doesn't handle unaligned accesses in hardware.
 *
 * Based on this we force the IP header alignment in network drivers.
 */
#define NET_IP_ALIGN	2

#endif /* _ASM_MICROBLAZE_SYSTEM_H */
+1 −1
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ static inline int ___range_ok(unsigned long addr, unsigned long size)
 *  - "addr", "addr + size" and "size" are all below the limit
 */
#define access_ok(type, addr, size) \
	(get_fs().seg > (((unsigned long)(addr)) | \
	(get_fs().seg >= (((unsigned long)(addr)) | \
		(size) | ((unsigned long)(addr) + (size))))

/* || printk("access_ok failed for %s at 0x%08lx (size %d), seg 0x%08x\n",
+1 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ const struct cpu_ver_key cpu_ver_lookup[] = {
	{"8.00.a", 0x12},
	{"8.00.b", 0x13},
	{"8.10.a", 0x14},
	{"8.20.a", 0x15},
	{NULL, 0},
};

Loading