Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
69e1d8a6
Commit
69e1d8a6
authored
Dec 25, 2009
by
Mike Frysinger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Blackfin: unify MMR helpers
Signed-off-by:
Mike Frysinger
<
vapier@gentoo.org
>
parent
f05ede3a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
44 deletions
+12
-44
arch/blackfin/include/asm/def_LPBlackfin.h
arch/blackfin/include/asm/def_LPBlackfin.h
+12
-44
No files found.
arch/blackfin/include/asm/def_LPBlackfin.h
View file @
69e1d8a6
...
@@ -25,62 +25,30 @@
...
@@ -25,62 +25,30 @@
# define NOP_PAD_ANOMALY_05000198
# define NOP_PAD_ANOMALY_05000198
#endif
#endif
#define
bfin_read8(addr
) ({ \
#define
_bfin_readX(addr, size, asm_size, asm_ext
) ({ \
u
int32_t
__v; \
u
32
__v; \
__asm__ __volatile__( \
__asm__ __volatile__( \
NOP_PAD_ANOMALY_05000198 \
NOP_PAD_ANOMALY_05000198 \
"%0 =
b[%1] (z)
;" \
"%0 =
" #asm_size "[%1]" #asm_ext "
;" \
: "=d" (__v) \
: "=d" (__v) \
: "a" (addr) \
: "a" (addr) \
); \
); \
__v; })
__v; })
#define _bfin_writeX(addr, val, size, asm_size) \
#define bfin_read16(addr) ({ \
uint32_t __v; \
__asm__ __volatile__( \
NOP_PAD_ANOMALY_05000198 \
"%0 = w[%1] (z);" \
: "=d" (__v) \
: "a" (addr) \
); \
__v; })
#define bfin_read32(addr) ({ \
uint32_t __v; \
__asm__ __volatile__( \
NOP_PAD_ANOMALY_05000198 \
"%0 = [%1];" \
: "=d" (__v) \
: "a" (addr) \
); \
__v; })
#define bfin_write8(addr, val) \
__asm__ __volatile__( \
__asm__ __volatile__( \
NOP_PAD_ANOMALY_05000198 \
NOP_PAD_ANOMALY_05000198 \
"b
[%0] = %1;" \
#asm_size "
[%0] = %1;" \
: \
: \
: "a" (addr), "d" ((u
int8_t
)(val)) \
: "a" (addr), "d" ((u
##size
)(val)) \
: "memory" \
: "memory" \
)
)
#define bfin_write16(addr, val) \
#define bfin_read8(addr) _bfin_readX(addr, 8, b, (z))
__asm__ __volatile__( \
#define bfin_read16(addr) _bfin_readX(addr, 16, w, (z))
NOP_PAD_ANOMALY_05000198 \
#define bfin_read32(addr) _bfin_readX(addr, 32, , )
"w[%0] = %1;" \
#define bfin_write8(addr, val) _bfin_writeX(addr, val, 8, b)
: \
#define bfin_write16(addr, val) _bfin_writeX(addr, val, 16, w)
: "a" (addr), "d" ((uint16_t)(val)) \
#define bfin_write32(addr, val) _bfin_writeX(addr, val, 32, )
: "memory" \
)
#define bfin_write32(addr, val) \
__asm__ __volatile__( \
NOP_PAD_ANOMALY_05000198 \
"[%0] = %1;" \
: \
: "a" (addr), "d" (val) \
: "memory" \
)
#endif
/* __ASSEMBLY__ */
#endif
/* __ASSEMBLY__ */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment