[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: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
acaa7aa30a
commit
0b51b02edf
@ -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)
|
|||||||
}
|
}
|
||||||
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 {
|
|||||||
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);
|
|||||||
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.
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user