diff options
author | John Crispin <john@openwrt.org> | 2010-11-03 19:12:34 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2010-11-03 19:12:34 +0000 |
commit | a8b2a07f375edefec242de9f20d4aefafa927517 (patch) | |
tree | d15f5bb696bfa9dfd9555788d411e0ba59b99a65 /package/lqtapi/src/mps/vmmc.h | |
parent | 72ae8452cda47d6e18e664097a4adbc0eee3fc7b (diff) | |
download | mtk-20170518-a8b2a07f375edefec242de9f20d4aefafa927517.zip mtk-20170518-a8b2a07f375edefec242de9f20d4aefafa927517.tar.gz mtk-20170518-a8b2a07f375edefec242de9f20d4aefafa927517.tar.bz2 |
* adds a rewrite of the tapi drivers + sip app. this is the result of lars' gsoc 2010 project, Thanks !
SVN-Revision: 23840
Diffstat (limited to 'package/lqtapi/src/mps/vmmc.h')
-rw-r--r-- | package/lqtapi/src/mps/vmmc.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/package/lqtapi/src/mps/vmmc.h b/package/lqtapi/src/mps/vmmc.h new file mode 100644 index 0000000..f442a9a --- /dev/null +++ b/package/lqtapi/src/mps/vmmc.h @@ -0,0 +1,68 @@ +#ifndef __VMMC_H__ + +#include <linux/list.h> +#include <linux/tapi/tapi.h> + +#include "mps.h" +#include "vmmc-module.h" + +struct vmmc +{ + struct mps *mps; + struct device *dev; + + struct vmmc_port *ports; + + struct completion firmware_loaded_completion; + struct completion cmd_completion; + + struct mps_mailbox mbox_cmd; + struct mps_mailbox mbox_data; + struct mps_fifo fifo_event; + + int irq_fw_loaded; + int irq_mbox_cmd; + int irq_mbox_data; + int irq_event_fifo; + int irq_cmd_error; + + unsigned int num_coders; + struct vmmc_coder *coder; + unsigned long coder_used; + + struct list_head modules; + + struct tapi_device tdev; + + struct sk_buff_head recv_queue; + struct sk_buff_head send_queue; +}; + +static inline struct vmmc *tdev_to_vmmc(struct tapi_device *tdev) +{ + return container_of(tdev, struct vmmc, tdev); +} + +static inline void vmmc_register_module(struct vmmc *vmmc, + struct vmmc_module *module) +{ + list_add_tail(&module->head, &vmmc->modules); +} + +static inline void vmmc_unregister_module(struct vmmc *vmmc, + struct vmmc_module *module) +{ + list_del(&module->head); +} + +int vmmc_command_write(struct vmmc *vmmc, uint32_t cmd, + const uint32_t *data); +int vmmc_command_read(struct vmmc *vmmc, uint32_t cmd, uint32_t *result); + +struct vmmc_coder *vmmc_coder_get(struct vmmc *); +void vmmc_coder_put(struct vmmc *, struct vmmc_coder *); +void vmmc_init_coders(struct vmmc *); + +void vmmc_send_paket(struct vmmc *vmmc, unsigned int chan, struct sk_buff *skb); + +#endif |