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