Commit 0b51b02e authored by Anton Vorontsov's avatar Anton Vorontsov Committed by Kumar Gala

[POWERPC] QE: implement qe_muram_offset

qe_muram_offset is the reverse of the qe_muram_addr, will be
used for the Freescale QE USB Host Controller driver.

This patch also moves qe_muram_addr into the qe.h header, plus
adds __iomem hints to use with sparse.
Signed-off-by: default avatarAnton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
parent acaa7aa3
...@@ -55,7 +55,7 @@ struct qe_snum { ...@@ -55,7 +55,7 @@ struct qe_snum {
/* We allocate this here because it is used almost exclusively for /* We allocate this here because it is used almost exclusively for
* the communication processor devices. * the communication processor devices.
*/ */
struct qe_immap *qe_immr = NULL; struct qe_immap __iomem *qe_immr;
EXPORT_SYMBOL(qe_immr); EXPORT_SYMBOL(qe_immr);
static struct qe_snum snums[QE_NUM_OF_SNUM]; /* Dynamically allocated SNUMs */ static struct qe_snum snums[QE_NUM_OF_SNUM]; /* Dynamically allocated SNUMs */
...@@ -415,12 +415,6 @@ void qe_muram_dump(void) ...@@ -415,12 +415,6 @@ void qe_muram_dump(void)
} }
EXPORT_SYMBOL(qe_muram_dump); EXPORT_SYMBOL(qe_muram_dump);
void *qe_muram_addr(unsigned long offset)
{
return (void *)&qe_immr->muram[offset];
}
EXPORT_SYMBOL(qe_muram_addr);
/* The maximum number of RISCs we support */ /* The maximum number of RISCs we support */
#define MAX_QE_RISC 2 #define MAX_QE_RISC 2
......
...@@ -468,7 +468,7 @@ struct qe_immap { ...@@ -468,7 +468,7 @@ struct qe_immap {
u8 res18[0xC0000]; /* 0x140000 - 0x200000 */ u8 res18[0xC0000]; /* 0x140000 - 0x200000 */
} __attribute__ ((packed)); } __attribute__ ((packed));
extern struct qe_immap *qe_immr; extern struct qe_immap __iomem *qe_immr;
extern phys_addr_t get_qe_base(void); extern phys_addr_t get_qe_base(void);
static inline unsigned long immrbar_virt_to_phys(void *address) static inline unsigned long immrbar_virt_to_phys(void *address)
......
...@@ -92,7 +92,16 @@ unsigned long qe_muram_alloc(int size, int align); ...@@ -92,7 +92,16 @@ unsigned long qe_muram_alloc(int size, int align);
int qe_muram_free(unsigned long offset); int qe_muram_free(unsigned long offset);
unsigned long qe_muram_alloc_fixed(unsigned long offset, int size); unsigned long qe_muram_alloc_fixed(unsigned long offset, int size);
void qe_muram_dump(void); void qe_muram_dump(void);
void *qe_muram_addr(unsigned long offset);
static inline void __iomem *qe_muram_addr(unsigned long offset)
{
return (void __iomem *)&qe_immr->muram[offset];
}
static inline unsigned long qe_muram_offset(void __iomem *addr)
{
return addr - (void __iomem *)qe_immr->muram;
}
/* Structure that defines QE firmware binary files. /* Structure that defines QE firmware binary files.
* *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment