Skip to content

Commit

Permalink
powerpc/qe&cpm: Implement static inline stubs for non-QE/CPM builds
Browse files Browse the repository at this point in the history
This is needed to avoid ugly #ifdefs in drivers. Also update fsl_qe_udc
driver so that now it doesn't define its own versions that cause build
breakage when the generic stubs are used.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
  • Loading branch information
Anton Vorontsov authored and Kumar Gala committed Nov 12, 2009
1 parent 71d94fe commit 58c12bd
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 16 deletions.
44 changes: 44 additions & 0 deletions arch/powerpc/include/asm/cpm.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include <linux/compiler.h>
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/of.h>

/*
Expand Down Expand Up @@ -131,13 +132,56 @@ typedef struct cpm_buf_desc {
#define BD_I2C_START (0x0400)

int cpm_muram_init(void);

#if defined(CONFIG_CPM) || defined(CONFIG_QUICC_ENGINE)
unsigned long cpm_muram_alloc(unsigned long size, unsigned long align);
int cpm_muram_free(unsigned long offset);
unsigned long cpm_muram_alloc_fixed(unsigned long offset, unsigned long size);
void __iomem *cpm_muram_addr(unsigned long offset);
unsigned long cpm_muram_offset(void __iomem *addr);
dma_addr_t cpm_muram_dma(void __iomem *addr);
#else
static inline unsigned long cpm_muram_alloc(unsigned long size,
unsigned long align)
{
return -ENOSYS;
}

static inline int cpm_muram_free(unsigned long offset)
{
return -ENOSYS;
}

static inline unsigned long cpm_muram_alloc_fixed(unsigned long offset,
unsigned long size)
{
return -ENOSYS;
}

static inline void __iomem *cpm_muram_addr(unsigned long offset)
{
return NULL;
}

static inline unsigned long cpm_muram_offset(void __iomem *addr)
{
return -ENOSYS;
}

static inline dma_addr_t cpm_muram_dma(void __iomem *addr)
{
return 0;
}
#endif /* defined(CONFIG_CPM) || defined(CONFIG_QUICC_ENGINE) */

#ifdef CONFIG_CPM
int cpm_command(u32 command, u8 opcode);
#else
static inline int cpm_command(u32 command, u8 opcode)
{
return -ENOSYS;
}
#endif /* CONFIG_CPM */

int cpm2_gpiochip_add32(struct device_node *np);

Expand Down
11 changes: 10 additions & 1 deletion arch/powerpc/include/asm/qe.h
Original file line number Diff line number Diff line change
Expand Up @@ -145,8 +145,17 @@ static inline void qe_pin_set_gpio(struct qe_pin *qe_pin) {}
static inline void qe_pin_set_dedicated(struct qe_pin *pin) {}
#endif /* CONFIG_QE_GPIO */

/* QE internal API */
#ifdef CONFIG_QUICC_ENGINE
int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol, u32 cmd_input);
#else
static inline int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol,
u32 cmd_input)
{
return -ENOSYS;
}
#endif /* CONFIG_QUICC_ENGINE */

/* QE internal API */
enum qe_clock qe_clock_source(const char *source);
unsigned int qe_get_brg_clk(void);
int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier);
Expand Down
15 changes: 0 additions & 15 deletions drivers/usb/gadget/fsl_qe_udc.h
Original file line number Diff line number Diff line change
Expand Up @@ -419,19 +419,4 @@ struct qe_udc {
#define CPM_USB_RESTART_TX_OPCODE 0x0b
#define CPM_USB_EP_SHIFT 5

#ifndef CONFIG_CPM
inline int cpm_command(u32 command, u8 opcode)
{
return -EOPNOTSUPP;
}
#endif

#ifndef CONFIG_QUICC_ENGINE
inline int qe_issue_cmd(u32 cmd, u32 device, u8 mcn_protocol,
u32 cmd_input)
{
return -EOPNOTSUPP;
}
#endif

#endif /* __FSL_QE_UDC_H */

0 comments on commit 58c12bd

Please sign in to comment.