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

Commit a4e6d5d3 authored by Al Viro's avatar Al Viro Committed by Linus Torvalds
Browse files

fix the broken annotations in fsldma



 a) every bitwise declaration will give a unique type; use typedefs.

 b) no need to bother with the stuff pointed to by iomem pointers,
    unless it's accessed directly.  noderef will force us to use helpers
    anyway.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f0bb3cfd
Loading
Loading
Loading
Loading
+27 −20
Original line number Diff line number Diff line
@@ -75,12 +75,15 @@
#define FSL_DMA_DGSR_EOSI	0x02
#define FSL_DMA_DGSR_EOLSI	0x01

typedef u64 __bitwise v64;
typedef u32 __bitwise v32;

struct fsl_dma_ld_hw {
	u64 __bitwise	src_addr;
	u64 __bitwise	dst_addr;
	u64 __bitwise	next_ln_addr;
	u32 __bitwise	count;
	u32 __bitwise	reserve;
	v64 src_addr;
	v64 dst_addr;
	v64 next_ln_addr;
	v32 count;
	v32 reserve;
} __attribute__((aligned(32)));

struct fsl_desc_sw {
@@ -92,13 +95,13 @@ struct fsl_desc_sw {
} __attribute__((aligned(32)));

struct fsl_dma_chan_regs {
	u32 __bitwise	mr;	/* 0x00 - Mode Register */
	u32 __bitwise	sr;	/* 0x04 - Status Register */
	u64 __bitwise	cdar;	/* 0x08 - Current descriptor address register */
	u64 __bitwise	sar;	/* 0x10 - Source Address Register */
	u64 __bitwise	dar;	/* 0x18 - Destination Address Register */
	u32 __bitwise	bcr;	/* 0x20 - Byte Count Register */
	u64 __bitwise	ndar;	/* 0x24 - Next Descriptor Address Register */
	u32 mr;	/* 0x00 - Mode Register */
	u32 sr;	/* 0x04 - Status Register */
	u64 cdar;	/* 0x08 - Current descriptor address register */
	u64 sar;	/* 0x10 - Source Address Register */
	u64 dar;	/* 0x18 - Destination Address Register */
	u32 bcr;	/* 0x20 - Byte Count Register */
	u64 ndar;	/* 0x24 - Next Descriptor Address Register */
};

struct fsl_dma_chan;
@@ -151,25 +154,27 @@ struct fsl_dma_chan {
#ifndef __powerpc64__
static u64 in_be64(const u64 __iomem *addr)
{
	return ((u64)in_be32((u32 *)addr) << 32) | (in_be32((u32 *)addr + 1));
	return ((u64)in_be32((u32 __iomem *)addr) << 32) |
		(in_be32((u32 __iomem *)addr + 1));
}

static void out_be64(u64 __iomem *addr, u64 val)
{
	out_be32((u32 *)addr, val >> 32);
	out_be32((u32 *)addr + 1, (u32)val);
	out_be32((u32 __iomem *)addr, val >> 32);
	out_be32((u32 __iomem *)addr + 1, (u32)val);
}

/* There is no asm instructions for 64 bits reverse loads and stores */
static u64 in_le64(const u64 __iomem *addr)
{
	return ((u64)in_le32((u32 *)addr + 1) << 32) | (in_le32((u32 *)addr));
	return ((u64)in_le32((u32 __iomem *)addr + 1) << 32) |
		(in_le32((u32 __iomem *)addr));
}

static void out_le64(u64 __iomem *addr, u64 val)
{
	out_le32((u32 *)addr + 1, val >> 32);
	out_le32((u32 *)addr, (u32)val);
	out_le32((u32 __iomem *)addr + 1, val >> 32);
	out_le32((u32 __iomem *)addr, (u32)val);
}
#endif

@@ -182,9 +187,11 @@ static void out_le64(u64 __iomem *addr, u64 val)

#define DMA_TO_CPU(fsl_chan, d, width)					\
		(((fsl_chan)->feature & FSL_DMA_BIG_ENDIAN) ?		\
			be##width##_to_cpu(d) :	le##width##_to_cpu(d))
			be##width##_to_cpu((__force __be##width)(v##width)d) : \
			le##width##_to_cpu((__force __le##width)(v##width)d))
#define CPU_TO_DMA(fsl_chan, c, width)					\
		(((fsl_chan)->feature & FSL_DMA_BIG_ENDIAN) ?		\
			cpu_to_be##width(c) : cpu_to_le##width(c))
			(__force v##width)cpu_to_be##width(c) :		\
			(__force v##width)cpu_to_le##width(c))

#endif	/* __DMA_FSLDMA_H */