mbox_info
static int mbox_alloc(struct mbox_info *mbox, int inlen, int outlen)
static void mbox_free(struct mbox_info *mbox)
struct mbox_info *mbox, u16 uid, u32 ece)
struct mbox_info mbox;
static int init_mbox_info(struct hinic_recv_mbox *mbox_info)
mbox_info->seq_id = SEQ_ID_MAX_VAL;
mbox_info->mbox = kzalloc(MBOX_MAX_BUF_SZ, GFP_KERNEL);
if (!mbox_info->mbox)
mbox_info->buf_out = kzalloc(MBOX_MAX_BUF_SZ, GFP_KERNEL);
if (!mbox_info->buf_out) {
atomic_set(&mbox_info->msg_cnt, 0);
kfree(mbox_info->mbox);
static void clean_mbox_info(struct hinic_recv_mbox *mbox_info)
kfree(mbox_info->buf_out);
kfree(mbox_info->mbox);
struct hinic_recv_mbox *mbox_info)
err = init_mbox_info(&mbox_info[func_idx]);
clean_mbox_info(&mbox_info[i]);
static void free_mbox_info(struct hinic_recv_mbox *mbox_info)
clean_mbox_info(&mbox_info[func_idx]);
struct ath10k_mbox_info *mbox_info = &ar_sdio->mbox_info;
mbox_info->htc_addr = ATH10K_HIF_MBOX_BASE_ADDR;
mbox_info->block_size = ATH10K_HIF_MBOX_BLOCK_SIZE;
mbox_info->block_mask = ATH10K_HIF_MBOX_BLOCK_SIZE - 1;
mbox_info->gmbox_addr = ATH10K_HIF_GMBOX_BASE_ADDR;
mbox_info->gmbox_sz = ATH10K_HIF_GMBOX_WIDTH;
mbox_info->ext_info[0].htc_ext_addr = ATH10K_HIF_MBOX0_EXT_BASE_ADDR;
mbox_info->ext_info[0].htc_ext_sz =
mbox_info->ext_info[0].htc_ext_sz =
mbox_info->ext_info[0].htc_ext_sz =
mbox_info->ext_info[0].htc_ext_sz =
mbox_info->ext_info[1].htc_ext_addr =
mbox_info->ext_info[0].htc_ext_addr +
mbox_info->ext_info[0].htc_ext_sz +
mbox_info->ext_info[1].htc_ext_sz = ATH10K_HIF_MBOX1_EXT_WIDTH;
addr = ar_sdio->mbox_info.htc_addr;
addr = ar_sdio->mbox_info.htc_addr;
struct ath10k_mbox_info *mbox_info = &ar_sdio->mbox_info;
if (req->address >= mbox_info->htc_addr &&
ar_sdio->mbox_addr[0] = ar_sdio->mbox_info.ext_info[0].htc_ext_addr;
ar_sdio->mbox_size[0] = ar_sdio->mbox_info.ext_info[0].htc_ext_sz;
ret = sdio_set_block_size(func, ar_sdio->mbox_info.block_size);
htt_addr = ar_sdio->mbox_info.ext_info[0].htc_ext_addr;
wmi_addr = ar_sdio->mbox_info.ext_info[1].htc_ext_addr;
htt_mbox_size = ar_sdio->mbox_info.ext_info[0].htc_ext_sz;
wmi_mbox_size = ar_sdio->mbox_info.ext_info[1].htc_ext_sz;
htt_addr = ar_sdio->mbox_info.ext_info[1].htc_ext_addr;
wmi_addr = ar_sdio->mbox_info.ext_info[0].htc_ext_addr;
htt_mbox_size = ar_sdio->mbox_info.ext_info[1].htc_ext_sz;
wmi_mbox_size = ar_sdio->mbox_info.ext_info[0].htc_ext_sz;
ar_sdio->mbox_info.block_size, ret);
len = round_down(len, ar_sdio->mbox_info.block_size);
return __ALIGN_MASK((len), ar_sdio->mbox_info.block_mask);
ret = ath10k_sdio_readsb(ar, ar_sdio->mbox_info.htc_addr,
ret = ath10k_sdio_readsb(ar, ar_sdio->mbox_info.htc_addr,
struct ath10k_mbox_info mbox_info;
struct ath6kl_mbox_info mbox_info;
if (dev->ar->mbox_info.gmbox_addr != 0) {
scat_req->addr = dev->ar->mbox_info.htc_addr;
dev->ar->mbox_info.htc_ext_addr :
dev->ar->mbox_info.htc_addr;
dev->htc_cnxt->block_sz = dev->ar->mbox_info.block_size;
dev->htc_cnxt->block_sz, dev->ar->mbox_info.htc_addr);
padded_len, dev->ar->mbox_info.htc_addr);
dev->ar->mbox_info.htc_addr,
block_size = target->dev->ar->mbox_info.block_size;
target->dev->ar->mbox_info.htc_addr,
target->dev->ar->mbox_info.htc_addr,
target->dev->ar->mbox_info.htc_addr,
blk_size = ar->mbox_info.block_size;
mbox_info->htc_addr = HIF_MBOX_BASE_ADDR;
mbox_info->htc_ext_addr = HIF_MBOX0_EXT_BASE_ADDR;
mbox_info->htc_ext_sz = HIF_MBOX0_EXT_WIDTH;
mbox_info->block_size = HIF_MBOX_BLOCK_SIZE;
mbox_info->gmbox_addr = HIF_GMBOX_BASE_ADDR;
mbox_info->gmbox_sz = HIF_GMBOX_WIDTH;
addr = ar->mbox_info.htc_addr;
addr = ar->mbox_info.htc_addr;
struct ath6kl_mbox_info *mbox_info = &ar->mbox_info;
ar->mbox_info.block_size = 16;
struct mbox_info *ipi;
struct mbox_info *ipi;
struct mbox_info *ipi;
ipi = container_of(work, struct mbox_info, mbox_work);
struct mbox_info *ipi;
ipi = container_of(cl, struct mbox_info, mbox_cl);
static struct mbox_info *zynqmp_r5_setup_mbox(struct device *cdev)
struct mbox_info *ipi;
static void zynqmp_r5_free_mbox(struct mbox_info *ipi)
struct mbox_info *ipi;