1bdcd8170SKalle Valo /*
2bdcd8170SKalle Valo  * Copyright (c) 2004-2011 Atheros Communications Inc.
3bdcd8170SKalle Valo  *
4bdcd8170SKalle Valo  * Permission to use, copy, modify, and/or distribute this software for any
5bdcd8170SKalle Valo  * purpose with or without fee is hereby granted, provided that the above
6bdcd8170SKalle Valo  * copyright notice and this permission notice appear in all copies.
7bdcd8170SKalle Valo  *
8bdcd8170SKalle Valo  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9bdcd8170SKalle Valo  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10bdcd8170SKalle Valo  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11bdcd8170SKalle Valo  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12bdcd8170SKalle Valo  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13bdcd8170SKalle Valo  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14bdcd8170SKalle Valo  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15bdcd8170SKalle Valo  */
16bdcd8170SKalle Valo 
17bdcd8170SKalle Valo #ifndef HIF_OPS_H
18bdcd8170SKalle Valo #define HIF_OPS_H
19bdcd8170SKalle Valo 
20bdcd8170SKalle Valo #include "hif.h"
21bdcd8170SKalle Valo 
22bdcd8170SKalle Valo static inline int hif_read_write_sync(struct ath6kl *ar, u32 addr, u8 *buf,
23bdcd8170SKalle Valo 				      u32 len, u32 request)
24bdcd8170SKalle Valo {
25bdcd8170SKalle Valo 	return ar->hif_ops->read_write_sync(ar, addr, buf, len, request);
26bdcd8170SKalle Valo }
27bdcd8170SKalle Valo 
28bdcd8170SKalle Valo static inline int hif_write_async(struct ath6kl *ar, u32 address, u8 *buffer,
29bdcd8170SKalle Valo 				  u32 length, u32 request,
30bdcd8170SKalle Valo 				  struct htc_packet *packet)
31bdcd8170SKalle Valo {
32bdcd8170SKalle Valo 	return ar->hif_ops->write_async(ar, address, buffer, length,
33bdcd8170SKalle Valo 					request, packet);
34bdcd8170SKalle Valo }
35bdcd8170SKalle Valo static inline void ath6kl_hif_irq_enable(struct ath6kl *ar)
36bdcd8170SKalle Valo {
37bdcd8170SKalle Valo 	return ar->hif_ops->irq_enable(ar);
38bdcd8170SKalle Valo }
39bdcd8170SKalle Valo 
40bdcd8170SKalle Valo static inline void ath6kl_hif_irq_disable(struct ath6kl *ar)
41bdcd8170SKalle Valo {
42bdcd8170SKalle Valo 	return ar->hif_ops->irq_disable(ar);
43bdcd8170SKalle Valo }
44bdcd8170SKalle Valo 
45bdcd8170SKalle Valo static inline struct hif_scatter_req *hif_scatter_req_get(struct ath6kl *ar)
46bdcd8170SKalle Valo {
47bdcd8170SKalle Valo 	return ar->hif_ops->scatter_req_get(ar);
48bdcd8170SKalle Valo }
49bdcd8170SKalle Valo 
50bdcd8170SKalle Valo static inline void hif_scatter_req_add(struct ath6kl *ar,
51bdcd8170SKalle Valo 				       struct hif_scatter_req *s_req)
52bdcd8170SKalle Valo {
53bdcd8170SKalle Valo 	return ar->hif_ops->scatter_req_add(ar, s_req);
54bdcd8170SKalle Valo }
55bdcd8170SKalle Valo 
56bdcd8170SKalle Valo static inline int ath6kl_hif_enable_scatter(struct ath6kl *ar,
57bdcd8170SKalle Valo 					    struct hif_dev_scat_sup_info *info)
58bdcd8170SKalle Valo {
59bdcd8170SKalle Valo 	return ar->hif_ops->enable_scatter(ar, info);
60bdcd8170SKalle Valo }
61bdcd8170SKalle Valo 
62f74a7361SVasanthakumar Thiagarajan static inline int ath6kl_hif_scat_req_rw(struct ath6kl *ar,
63f74a7361SVasanthakumar Thiagarajan 					 struct hif_scatter_req *scat_req)
64f74a7361SVasanthakumar Thiagarajan {
65f74a7361SVasanthakumar Thiagarajan 	return ar->hif_ops->scat_req_rw(ar, scat_req);
66f74a7361SVasanthakumar Thiagarajan }
67f74a7361SVasanthakumar Thiagarajan 
68bdcd8170SKalle Valo static inline void ath6kl_hif_cleanup_scatter(struct ath6kl *ar)
69bdcd8170SKalle Valo {
70bdcd8170SKalle Valo 	return ar->hif_ops->cleanup_scatter(ar);
71bdcd8170SKalle Valo }
72bdcd8170SKalle Valo 
73bdcd8170SKalle Valo #endif
74