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

Commit 51946b10 authored by Mike Frysinger's avatar Mike Frysinger
Browse files

Blackfin: bf533: merge fio_flag back into normal mach headers



We don't want the BF533 to be different in terms of its MMR headers, so
merge the FIO_FLAG helpers back into the normal place.  To avoid circular
dependencies with headers, turn the inline C funcs into CPP defines.  Not
like there will be any code size differences.

Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent c31b3f73
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -99,6 +99,47 @@
#define bfin_read_FIO_MASKB_T()              bfin_read16(FIO_MASKB_T)
#define bfin_write_FIO_MASKB_T(val)          bfin_write16(FIO_MASKB_T,val)

#if ANOMALY_05000311
/* Keep at the CPP expansion to avoid circular header dependency loops */
#define BFIN_WRITE_FIO_FLAG(name, val) \
	do { \
		unsigned long __flags; \
		__flags = hard_local_irq_save(); \
		bfin_write16(FIO_FLAG_##name, val); \
		bfin_read_CHIPID(); \
		hard_local_irq_restore(__flags); \
	} while (0)
#define bfin_write_FIO_FLAG_D(val)           BFIN_WRITE_FIO_FLAG(D, val)
#define bfin_write_FIO_FLAG_C(val)           BFIN_WRITE_FIO_FLAG(C, val)
#define bfin_write_FIO_FLAG_S(val)           BFIN_WRITE_FIO_FLAG(S, val)
#define bfin_write_FIO_FLAG_T(val)           BFIN_WRITE_FIO_FLAG(T, val)

#define BFIN_READ_FIO_FLAG(name) \
	({ \
		unsigned long __flags; \
		u16 __ret; \
		__flags = hard_local_irq_save(); \
		__ret = bfin_read16(FIO_FLAG_##name); \
		bfin_read_CHIPID(); \
		hard_local_irq_restore(__flags); \
		__ret; \
	})
#define bfin_read_FIO_FLAG_D()               BFIN_READ_FIO_FLAG(D)
#define bfin_read_FIO_FLAG_C()               BFIN_READ_FIO_FLAG(C)
#define bfin_read_FIO_FLAG_S()               BFIN_READ_FIO_FLAG(S)
#define bfin_read_FIO_FLAG_T()               BFIN_READ_FIO_FLAG(T)

#else
#define bfin_write_FIO_FLAG_D(val)           bfin_write16(FIO_FLAG_D, val)
#define bfin_write_FIO_FLAG_C(val)           bfin_write16(FIO_FLAG_C, val)
#define bfin_write_FIO_FLAG_S(val)           bfin_write16(FIO_FLAG_S, val)
#define bfin_write_FIO_FLAG_T(val)           bfin_write16(FIO_FLAG_T, val)
#define bfin_read_FIO_FLAG_D()               bfin_read16(FIO_FLAG_D)
#define bfin_read_FIO_FLAG_C()               bfin_read16(FIO_FLAG_C)
#define bfin_read_FIO_FLAG_S()               bfin_read16(FIO_FLAG_S)
#define bfin_read_FIO_FLAG_T()               bfin_read16(FIO_FLAG_T)
#endif

/* DMA Controller */
#define bfin_read_DMA0_CONFIG()              bfin_read16(DMA0_CONFIG)
#define bfin_write_DMA0_CONFIG(val)          bfin_write16(DMA0_CONFIG,val)
+0 −55
Original line number Diff line number Diff line
/*
 * Copyright 2005-2008 Analog Devices Inc.
 *
 * Licensed under the GPL-2 or later
 */

#ifndef _MACH_FIO_FLAG_H
#define _MACH_FIO_FLAG_H

#include <asm/blackfin.h>
#include <asm/irqflags.h>

#if ANOMALY_05000311
#define BFIN_WRITE_FIO_FLAG(name) \
static inline void bfin_write_FIO_FLAG_##name(unsigned short val) \
{ \
	unsigned long flags; \
	flags = hard_local_irq_save(); \
	bfin_write16(FIO_FLAG_##name, val); \
	bfin_read_CHIPID(); \
	hard_local_irq_restore(flags); \
}
BFIN_WRITE_FIO_FLAG(D)
BFIN_WRITE_FIO_FLAG(C)
BFIN_WRITE_FIO_FLAG(S)
BFIN_WRITE_FIO_FLAG(T)

#define BFIN_READ_FIO_FLAG(name) \
static inline u16 bfin_read_FIO_FLAG_##name(void) \
{ \
	unsigned long flags; \
	u16 ret; \
	flags = hard_local_irq_save(); \
	ret = bfin_read16(FIO_FLAG_##name); \
	bfin_read_CHIPID(); \
	hard_local_irq_restore(flags); \
	return ret; \
}
BFIN_READ_FIO_FLAG(D)
BFIN_READ_FIO_FLAG(C)
BFIN_READ_FIO_FLAG(S)
BFIN_READ_FIO_FLAG(T)

#else
#define bfin_write_FIO_FLAG_D(val)           bfin_write16(FIO_FLAG_D, val)
#define bfin_write_FIO_FLAG_C(val)           bfin_write16(FIO_FLAG_C, val)
#define bfin_write_FIO_FLAG_S(val)           bfin_write16(FIO_FLAG_S, val)
#define bfin_write_FIO_FLAG_T(val)           bfin_write16(FIO_FLAG_T, val)
#define bfin_read_FIO_FLAG_T()               bfin_read16(FIO_FLAG_T)
#define bfin_read_FIO_FLAG_C()               bfin_read16(FIO_FLAG_C)
#define bfin_read_FIO_FLAG_S()               bfin_read16(FIO_FLAG_S)
#define bfin_read_FIO_FLAG_D()               bfin_read16(FIO_FLAG_D)
#endif

#endif /* _MACH_FIO_FLAG_H */