1/* 2 * dspchnl.h 3 * 4 * DSP-BIOS Bridge driver support functions for TI OMAP processors. 5 * 6 * Declares the upper edge channel class library functions required by 7 * all Bridge driver / DSP API driver interface tables. These functions are 8 * implemented by every class of Bridge channel library. 9 * 10 * Notes: 11 * The function comment headers reside in dspdefs.h. 12 * 13 * Copyright (C) 2005-2006 Texas Instruments, Inc. 14 * 15 * This package is free software; you can redistribute it and/or modify 16 * it under the terms of the GNU General Public License version 2 as 17 * published by the Free Software Foundation. 18 * 19 * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 20 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 21 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 22 */ 23 24#ifndef DSPCHNL_ 25#define DSPCHNL_ 26 27extern int bridge_chnl_create(struct chnl_mgr **channel_mgr, 28 struct dev_object *hdev_obj, 29 const struct chnl_mgrattrs 30 *mgr_attrts); 31 32extern int bridge_chnl_destroy(struct chnl_mgr *hchnl_mgr); 33 34extern int bridge_chnl_open(struct chnl_object **chnl, 35 struct chnl_mgr *hchnl_mgr, 36 s8 chnl_mode, 37 u32 ch_id, 38 const struct chnl_attr 39 *pattrs); 40 41extern int bridge_chnl_close(struct chnl_object *chnl_obj); 42 43extern int bridge_chnl_add_io_req(struct chnl_object *chnl_obj, 44 void *host_buf, 45 u32 byte_size, u32 buf_size, 46 u32 dw_dsp_addr, u32 dw_arg); 47 48extern int bridge_chnl_get_ioc(struct chnl_object *chnl_obj, 49 u32 timeout, struct chnl_ioc *chan_ioc); 50 51extern int bridge_chnl_cancel_io(struct chnl_object *chnl_obj); 52 53extern int bridge_chnl_flush_io(struct chnl_object *chnl_obj, 54 u32 timeout); 55 56extern int bridge_chnl_get_info(struct chnl_object *chnl_obj, 57 struct chnl_info *channel_info); 58 59extern int bridge_chnl_get_mgr_info(struct chnl_mgr *hchnl_mgr, 60 u32 ch_id, struct chnl_mgrinfo 61 *mgr_info); 62 63extern int bridge_chnl_idle(struct chnl_object *chnl_obj, 64 u32 timeout, bool flush_data); 65 66extern int bridge_chnl_register_notify(struct chnl_object *chnl_obj, 67 u32 event_mask, 68 u32 notify_type, 69 struct dsp_notification 70 *hnotification); 71 72#endif /* DSPCHNL_ */ 73