1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun * Copyright (c) 2004-2011 Atheros Communications Inc.
3*4882a593Smuzhiyun *
4*4882a593Smuzhiyun * Permission to use, copy, modify, and/or distribute this software for any
5*4882a593Smuzhiyun * purpose with or without fee is hereby granted, provided that the above
6*4882a593Smuzhiyun * copyright notice and this permission notice appear in all copies.
7*4882a593Smuzhiyun *
8*4882a593Smuzhiyun * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9*4882a593Smuzhiyun * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10*4882a593Smuzhiyun * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11*4882a593Smuzhiyun * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12*4882a593Smuzhiyun * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13*4882a593Smuzhiyun * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14*4882a593Smuzhiyun * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*4882a593Smuzhiyun */
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun #ifndef HTC_OPS_H
18*4882a593Smuzhiyun #define HTC_OPS_H
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun #include "htc.h"
21*4882a593Smuzhiyun #include "debug.h"
22*4882a593Smuzhiyun
ath6kl_htc_create(struct ath6kl * ar)23*4882a593Smuzhiyun static inline void *ath6kl_htc_create(struct ath6kl *ar)
24*4882a593Smuzhiyun {
25*4882a593Smuzhiyun return ar->htc_ops->create(ar);
26*4882a593Smuzhiyun }
27*4882a593Smuzhiyun
ath6kl_htc_wait_target(struct htc_target * target)28*4882a593Smuzhiyun static inline int ath6kl_htc_wait_target(struct htc_target *target)
29*4882a593Smuzhiyun {
30*4882a593Smuzhiyun return target->dev->ar->htc_ops->wait_target(target);
31*4882a593Smuzhiyun }
32*4882a593Smuzhiyun
ath6kl_htc_start(struct htc_target * target)33*4882a593Smuzhiyun static inline int ath6kl_htc_start(struct htc_target *target)
34*4882a593Smuzhiyun {
35*4882a593Smuzhiyun return target->dev->ar->htc_ops->start(target);
36*4882a593Smuzhiyun }
37*4882a593Smuzhiyun
ath6kl_htc_conn_service(struct htc_target * target,struct htc_service_connect_req * req,struct htc_service_connect_resp * resp)38*4882a593Smuzhiyun static inline int ath6kl_htc_conn_service(struct htc_target *target,
39*4882a593Smuzhiyun struct htc_service_connect_req *req,
40*4882a593Smuzhiyun struct htc_service_connect_resp *resp)
41*4882a593Smuzhiyun {
42*4882a593Smuzhiyun return target->dev->ar->htc_ops->conn_service(target, req, resp);
43*4882a593Smuzhiyun }
44*4882a593Smuzhiyun
ath6kl_htc_tx(struct htc_target * target,struct htc_packet * packet)45*4882a593Smuzhiyun static inline int ath6kl_htc_tx(struct htc_target *target,
46*4882a593Smuzhiyun struct htc_packet *packet)
47*4882a593Smuzhiyun {
48*4882a593Smuzhiyun return target->dev->ar->htc_ops->tx(target, packet);
49*4882a593Smuzhiyun }
50*4882a593Smuzhiyun
ath6kl_htc_stop(struct htc_target * target)51*4882a593Smuzhiyun static inline void ath6kl_htc_stop(struct htc_target *target)
52*4882a593Smuzhiyun {
53*4882a593Smuzhiyun return target->dev->ar->htc_ops->stop(target);
54*4882a593Smuzhiyun }
55*4882a593Smuzhiyun
ath6kl_htc_cleanup(struct htc_target * target)56*4882a593Smuzhiyun static inline void ath6kl_htc_cleanup(struct htc_target *target)
57*4882a593Smuzhiyun {
58*4882a593Smuzhiyun return target->dev->ar->htc_ops->cleanup(target);
59*4882a593Smuzhiyun }
60*4882a593Smuzhiyun
ath6kl_htc_flush_txep(struct htc_target * target,enum htc_endpoint_id endpoint,u16 tag)61*4882a593Smuzhiyun static inline void ath6kl_htc_flush_txep(struct htc_target *target,
62*4882a593Smuzhiyun enum htc_endpoint_id endpoint,
63*4882a593Smuzhiyun u16 tag)
64*4882a593Smuzhiyun {
65*4882a593Smuzhiyun return target->dev->ar->htc_ops->flush_txep(target, endpoint, tag);
66*4882a593Smuzhiyun }
67*4882a593Smuzhiyun
ath6kl_htc_flush_rx_buf(struct htc_target * target)68*4882a593Smuzhiyun static inline void ath6kl_htc_flush_rx_buf(struct htc_target *target)
69*4882a593Smuzhiyun {
70*4882a593Smuzhiyun return target->dev->ar->htc_ops->flush_rx_buf(target);
71*4882a593Smuzhiyun }
72*4882a593Smuzhiyun
ath6kl_htc_activity_changed(struct htc_target * target,enum htc_endpoint_id endpoint,bool active)73*4882a593Smuzhiyun static inline void ath6kl_htc_activity_changed(struct htc_target *target,
74*4882a593Smuzhiyun enum htc_endpoint_id endpoint,
75*4882a593Smuzhiyun bool active)
76*4882a593Smuzhiyun {
77*4882a593Smuzhiyun return target->dev->ar->htc_ops->activity_changed(target, endpoint,
78*4882a593Smuzhiyun active);
79*4882a593Smuzhiyun }
80*4882a593Smuzhiyun
ath6kl_htc_get_rxbuf_num(struct htc_target * target,enum htc_endpoint_id endpoint)81*4882a593Smuzhiyun static inline int ath6kl_htc_get_rxbuf_num(struct htc_target *target,
82*4882a593Smuzhiyun enum htc_endpoint_id endpoint)
83*4882a593Smuzhiyun {
84*4882a593Smuzhiyun return target->dev->ar->htc_ops->get_rxbuf_num(target, endpoint);
85*4882a593Smuzhiyun }
86*4882a593Smuzhiyun
ath6kl_htc_add_rxbuf_multiple(struct htc_target * target,struct list_head * pktq)87*4882a593Smuzhiyun static inline int ath6kl_htc_add_rxbuf_multiple(struct htc_target *target,
88*4882a593Smuzhiyun struct list_head *pktq)
89*4882a593Smuzhiyun {
90*4882a593Smuzhiyun return target->dev->ar->htc_ops->add_rxbuf_multiple(target, pktq);
91*4882a593Smuzhiyun }
92*4882a593Smuzhiyun
ath6kl_htc_credit_setup(struct htc_target * target,struct ath6kl_htc_credit_info * info)93*4882a593Smuzhiyun static inline int ath6kl_htc_credit_setup(struct htc_target *target,
94*4882a593Smuzhiyun struct ath6kl_htc_credit_info *info)
95*4882a593Smuzhiyun {
96*4882a593Smuzhiyun return target->dev->ar->htc_ops->credit_setup(target, info);
97*4882a593Smuzhiyun }
98*4882a593Smuzhiyun
ath6kl_htc_tx_complete(struct ath6kl * ar,struct sk_buff * skb)99*4882a593Smuzhiyun static inline void ath6kl_htc_tx_complete(struct ath6kl *ar,
100*4882a593Smuzhiyun struct sk_buff *skb)
101*4882a593Smuzhiyun {
102*4882a593Smuzhiyun ar->htc_ops->tx_complete(ar, skb);
103*4882a593Smuzhiyun }
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun
ath6kl_htc_rx_complete(struct ath6kl * ar,struct sk_buff * skb,u8 pipe)106*4882a593Smuzhiyun static inline void ath6kl_htc_rx_complete(struct ath6kl *ar,
107*4882a593Smuzhiyun struct sk_buff *skb, u8 pipe)
108*4882a593Smuzhiyun {
109*4882a593Smuzhiyun ar->htc_ops->rx_complete(ar, skb, pipe);
110*4882a593Smuzhiyun }
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun #endif
114