From patchwork Fri Jun 21 03:50:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vasanthakumar Thiagarajan X-Patchwork-Id: 11008423 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 791CE6C5 for ; Fri, 21 Jun 2019 03:51:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5700E286E4 for ; Fri, 21 Jun 2019 03:51:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4772A28898; Fri, 21 Jun 2019 03:51:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id C2C42286E4 for ; Fri, 21 Jun 2019 03:51:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date:Subject:To: From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=U8+sqne/6ucyDkDQfwebaGyKTRtS9lDfHqa0RvHOxCU=; b=EwB/nS/iMk4Il3 yFs8kG0lAgQRP6oBI40vqpOp1+EJZ/hhZ9v9N6+uku+sINvFSlw2m/BdWzlIlbD34nQ0/c3wl+7TJ BKvzoLUkJxGU1PLoCv531Bgtt903kuOV6XypB0b4s4ZxwpTwl+86UKygY229m5ZREagzlaG/fsVmO nEOzgV+w4DFYnnJGry027GPGO89Qjs7Fr5uwpR/gw9ckVKCP37ZEI2ePFa90ilFkz+u0f8ZgRpwlE BEdR/s7/BonTrtOIzZay5SsJDmBcAcTGj+VSWtlfFtRI3B5BNcebgl/1PQwz86e/JA3GD3RxAf3qy HyJe8g9RY9J+hx0wZY5Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1heAa3-0001lC-8e; Fri, 21 Jun 2019 03:51:15 +0000 Received: from smtp.codeaurora.org ([198.145.29.96]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1heAa0-0001kr-5j for ath11k@lists.infradead.org; Fri, 21 Jun 2019 03:51:13 +0000 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 82721609D4; Fri, 21 Jun 2019 03:51:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1561089071; bh=H6YrcHrnftvOg1xfn4XWQ86Je+e5PFsYR7wCbz/BCfg=; h=From:To:Subject:Date:From; b=QcuIk4chEELjhzpOT7WVqVO1/qgYoK9MvDEv8GwSlDpWJm1oGhdlqkG7Q2ZeoRROa CrFL19sItTyj2Q1ZXUj/lMrE2U3+VOcEiTanuC3vVfoa5O6AGPl2Khq4iiPmKzFcoJ MYOwtUhjXdOMAiCmxjVI9J8SWpLg8iABdLbcmdT8= Received: from vasanth-lnx.qca.qualcomm.com (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: vthiagar@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 981C6602F2 for ; Fri, 21 Jun 2019 03:51:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1561089071; bh=H6YrcHrnftvOg1xfn4XWQ86Je+e5PFsYR7wCbz/BCfg=; h=From:To:Subject:Date:From; b=QcuIk4chEELjhzpOT7WVqVO1/qgYoK9MvDEv8GwSlDpWJm1oGhdlqkG7Q2ZeoRROa CrFL19sItTyj2Q1ZXUj/lMrE2U3+VOcEiTanuC3vVfoa5O6AGPl2Khq4iiPmKzFcoJ MYOwtUhjXdOMAiCmxjVI9J8SWpLg8iABdLbcmdT8= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 981C6602F2 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=vthiagar@codeaurora.org From: Vasanthakumar Thiagarajan To: ath11k@lists.infradead.org Subject: [PATCH] ath11k/dp: Cleanup type casting in WBM link descriptor setup Date: Fri, 21 Jun 2019 09:20:55 +0530 Message-Id: <1561089055-7355-1-git-send-email-vthiagar@codeaurora.org> X-Mailer: git-send-email 1.9.1 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190620_205112_256324_244E6FBE X-CRM114-Status: GOOD ( 10.51 ) X-BeenThere: ath11k@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "ath11k" Errors-To: ath11k-bounces+patchwork-ath11k=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Change the type of virtual address of struct hal_wbm_idle_scatter_list from u32 * to struct hal_wbm_link_desc *. This also makes the pointer arithmetic simpler. This also fixes a bug in pointer arithmetic on scatter buffer address. Scatter buffer address was incremented by HAL_LINK_DESC_SIZE instead of sizeof(hal_wbm_link_desc). Signed-off-by: Vasanthakumar Thiagarajan --- drivers/net/wireless/ath/ath11k/dp.c | 21 +++++++++------------ drivers/net/wireless/ath/ath11k/hal.c | 17 ++++++++--------- drivers/net/wireless/ath/ath11k/hal.h | 5 +++-- 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/dp.c b/drivers/net/wireless/ath/ath11k/dp.c index c4770bb..0e09d07 100644 --- a/drivers/net/wireless/ath/ath11k/dp.c +++ b/drivers/net/wireless/ath/ath11k/dp.c @@ -338,12 +338,13 @@ static int ath11k_dp_scatter_idle_link_desc_setup(struct ath11k_base *ab, struct hal_wbm_idle_scatter_list *slist = dp->scatter_list; u32 n_entries_per_buf; int num_scatter_buf, scatter_idx; - u32 *scatter_buf; + struct hal_wbm_link_desc *scatter_buf; int align_bytes, n_entries; dma_addr_t paddr; int rem_entries; int i; int ret = 0; + u32 end_offset; n_entries_per_buf = HAL_WBM_IDLE_SCATTER_BUF_SIZE / ath11k_hal_srng_get_entrysize(HAL_WBM_IDLE_LINK); @@ -373,15 +374,12 @@ static int ath11k_dp_scatter_idle_link_desc_setup(struct ath11k_base *ab, HAL_LINK_DESC_SIZE; paddr = link_desc_banks[i].paddr; while (n_entries) { - ath11k_hal_set_link_desc_addr( - (struct buffer_addr *)scatter_buf, i, - paddr); + ath11k_hal_set_link_desc_addr(scatter_buf, i, paddr); n_entries--; paddr += HAL_LINK_DESC_SIZE; if (rem_entries) { rem_entries--; - scatter_buf = (u32 *)((u8 *)scatter_buf + - HAL_LINK_DESC_SIZE); + scatter_buf++; continue; } @@ -391,10 +389,10 @@ static int ath11k_dp_scatter_idle_link_desc_setup(struct ath11k_base *ab, } } + end_offset = (scatter_buf - slist[scatter_idx].vaddr) * + sizeof(struct hal_wbm_link_desc); ath11k_hal_setup_link_idle_list(ab, slist, num_scatter_buf, - n_link_desc, - (u8 *)scatter_buf - - (u8 *)slist[scatter_idx].vaddr); + n_link_desc, end_offset); return 0; @@ -577,9 +575,8 @@ int ath11k_dp_link_desc_setup(struct ath11k_base *ab, paddr = link_desc_banks[i].paddr; while (n_entries && (desc = ath11k_hal_srng_src_get_next_entry(ab, srng))) { - ath11k_hal_set_link_desc_addr( - (struct buffer_addr *)desc, i, - paddr); + ath11k_hal_set_link_desc_addr((struct hal_wbm_link_desc *)desc, i, + paddr); n_entries--; paddr += HAL_LINK_DESC_SIZE; } diff --git a/drivers/net/wireless/ath/ath11k/hal.c b/drivers/net/wireless/ath/ath11k/hal.c index b7b9b9c..26a8eda 100644 --- a/drivers/net/wireless/ath/ath11k/hal.c +++ b/drivers/net/wireless/ath/ath11k/hal.c @@ -689,16 +689,15 @@ u32 ath11k_hal_ce_dst_status_get_length(void *buf) return len; } -void ath11k_hal_set_link_desc_addr(void *buf, u32 cookie, dma_addr_t paddr) +void ath11k_hal_set_link_desc_addr(struct hal_wbm_link_desc *desc, u32 cookie, + dma_addr_t paddr) { - struct buffer_addr *desc = (struct buffer_addr *)buf; - - desc->info0 = FIELD_PREP(BUFFER_ADDR_INFO0_ADDR, - (paddr & HAL_ADDR_LSB_REG_MASK)); - desc->info1 = FIELD_PREP(BUFFER_ADDR_INFO1_ADDR, - ((u64)paddr >> HAL_ADDR_MSB_REG_SHIFT)) | - FIELD_PREP(BUFFER_ADDR_INFO1_RET_BUF_MGR, 1) | - FIELD_PREP(BUFFER_ADDR_INFO1_SW_COOKIE, cookie); + desc->buf_addr_info.info0 = FIELD_PREP(BUFFER_ADDR_INFO0_ADDR, + (paddr & HAL_ADDR_LSB_REG_MASK)); + desc->buf_addr_info.info1 = FIELD_PREP(BUFFER_ADDR_INFO1_ADDR, + ((u64)paddr >> HAL_ADDR_MSB_REG_SHIFT)) | + FIELD_PREP(BUFFER_ADDR_INFO1_RET_BUF_MGR, 1) | + FIELD_PREP(BUFFER_ADDR_INFO1_SW_COOKIE, cookie); } u32 *ath11k_hal_srng_dst_peek(struct ath11k_base *ab, struct hal_srng *srng) diff --git a/drivers/net/wireless/ath/ath11k/hal.h b/drivers/net/wireless/ath/ath11k/hal.h index 6649dd2..71d3884 100644 --- a/drivers/net/wireless/ath/ath11k/hal.h +++ b/drivers/net/wireless/ath/ath11k/hal.h @@ -445,7 +445,7 @@ enum hal_reo_cmd_status { struct hal_wbm_idle_scatter_list { dma_addr_t paddr; - u32 *vaddr; + struct hal_wbm_link_desc *vaddr; }; struct hal_srng_params { @@ -875,7 +875,8 @@ dma_addr_t ath11k_hal_srng_get_tp_addr(struct ath11k_base *ab, struct hal_srng *srng); dma_addr_t ath11k_hal_srng_get_hp_addr(struct ath11k_base *ab, struct hal_srng *srng); -void ath11k_hal_set_link_desc_addr(void *buf, u32 cookie, dma_addr_t paddr); +void ath11k_hal_set_link_desc_addr(struct hal_wbm_link_desc *desc, u32 cookie, + dma_addr_t paddr); u32 ath11k_hal_ce_get_desc_size(enum hal_ce_desc type); void ath11k_hal_ce_src_set_desc(void *buf, dma_addr_t paddr, u32 len, u32 id, u8 byte_swap_data);