Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp23025ybp; Thu, 3 Oct 2019 09:38:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqyUXZm0ygq6cY3QvM7l0S/xg/XzrHmbq64wgb07lBVc0cvulSoD14wO52xCJMPvvTsoKKT8 X-Received: by 2002:a50:9f42:: with SMTP id b60mr10742560edf.192.1570120701135; Thu, 03 Oct 2019 09:38:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570120701; cv=none; d=google.com; s=arc-20160816; b=RQm2uATyh32kUt4NVBAtvuF4bx9HL5CINvAN805LSMQfZgGuUrqsqiFGyzxB2ksrQ7 k2TaLsHpqPxSnk4+bX4SaqccF456H9NkumIPEFnClnbmdwwKwEAzNZgI0aeqqL6cCNW1 lfA/SXE0FVpi9AVBfCl/5OPn/eK1IwLrT0FRIvS7ZdR7Chd6Pcgad1DpaEg54HbMwp4i Z/5lVxIZwdDM1lRVN9KqEjc0uAJRTWML/QtZ2Od/ARU6p60CXow4BmhXq+A4L9a+A0iT GUP+Ola95T1znsd6Ar8cAhPtFEyeJXOvDUX3DzYslImvh2cn/UdKS+XtkZTNrbnLzqBv Bm5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=+EsL8GIWpnFhljSkW9MINCOEKQZPeLEF+MLAhgIlY5Q=; b=gjh4w1R2ILFNVoBlus5gsK0Gj0IXRIksitM9p5H81JEkwl1GpIuTSRloPn2BTVSHyz RfURQW8v1WMtwhhenCSbqDT//qsAoMtcgLYZaan0RPNTSQPVXyKZEx5GawBIuXasLmjZ IOrUQDSRFtUhwjB7PtnpO33gNeoVlUAcbV1Xzbxlr47dEjD/I3L1+SO2VPetglc09r27 2CtIqojBqbRONiEvUlQYxiCR+oxkoKUudnBC+uD8/5yzKJq5MOPTepLwlL4VnVpq33S2 4TY2tA2hC0jxSHjC5La08mdU46mcaB4n2Tn0kCn9zo607A6OI7AQ5cXyvZZ4RR94FEo1 Segg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=d+RIQWcq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 64si2049675eda.384.2019.10.03.09.37.57; Thu, 03 Oct 2019 09:38:21 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=d+RIQWcq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2392229AbfJCQgV (ORCPT + 99 others); Thu, 3 Oct 2019 12:36:21 -0400 Received: from mail.kernel.org ([198.145.29.99]:45542 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2392204AbfJCQgT (ORCPT ); Thu, 3 Oct 2019 12:36:19 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D02AE20830; Thu, 3 Oct 2019 16:36:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570120578; bh=7m5SvWbRsWINvHAdfhGmsNmX/GYECeg7xIZ18asPn3o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=d+RIQWcqerSCCb/kX1x43ZdS86BfvH6jg9fLSvuHHUYsdisOr4nHZoXi4iuTpIuC1 22uDybQ39YIiI+i7k25Z3EaeklkmfE8D3nb1kZbxbSOu8FPnGeEZG6SH78+XUP+/+l hIPLGvHC37MX6J+vcQziqIgWmDHZh3K8XJ1c97mY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jian-Hong Pan , Kalle Valo Subject: [PATCH 5.2 273/313] rtw88: pci: Use DMA sync instead of remapping in RX ISR Date: Thu, 3 Oct 2019 17:54:11 +0200 Message-Id: <20191003154559.932293810@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191003154533.590915454@linuxfoundation.org> References: <20191003154533.590915454@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jian-Hong Pan commit 29b68a920f6abb7b5ba21ab4b779f62d536bac9b upstream. Since each skb in RX ring is reused instead of new allocation, we can treat the DMA in a more efficient way by DMA synchronization. Signed-off-by: Jian-Hong Pan Cc: Signed-off-by: Kalle Valo Signed-off-by: Greg Kroah-Hartman --- drivers/net/wireless/realtek/rtw88/pci.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) --- a/drivers/net/wireless/realtek/rtw88/pci.c +++ b/drivers/net/wireless/realtek/rtw88/pci.c @@ -206,6 +206,23 @@ static int rtw_pci_reset_rx_desc(struct return 0; } +static void rtw_pci_sync_rx_desc_device(struct rtw_dev *rtwdev, dma_addr_t dma, + struct rtw_pci_rx_ring *rx_ring, + u32 idx, u32 desc_sz) +{ + struct device *dev = rtwdev->dev; + struct rtw_pci_rx_buffer_desc *buf_desc; + int buf_sz = RTK_PCI_RX_BUF_SIZE; + + dma_sync_single_for_device(dev, dma, buf_sz, DMA_FROM_DEVICE); + + buf_desc = (struct rtw_pci_rx_buffer_desc *)(rx_ring->r.head + + idx * desc_sz); + memset(buf_desc, 0, sizeof(*buf_desc)); + buf_desc->buf_size = cpu_to_le16(RTK_PCI_RX_BUF_SIZE); + buf_desc->dma = cpu_to_le32(dma); +} + static int rtw_pci_init_rx_ring(struct rtw_dev *rtwdev, struct rtw_pci_rx_ring *rx_ring, u8 desc_size, u32 len) @@ -782,8 +799,8 @@ static void rtw_pci_rx_isr(struct rtw_de rtw_pci_dma_check(rtwdev, ring, cur_rp); skb = ring->buf[cur_rp]; dma = *((dma_addr_t *)skb->cb); - pci_unmap_single(rtwpci->pdev, dma, RTK_PCI_RX_BUF_SIZE, - PCI_DMA_FROMDEVICE); + dma_sync_single_for_cpu(rtwdev->dev, dma, RTK_PCI_RX_BUF_SIZE, + DMA_FROM_DEVICE); rx_desc = skb->data; chip->ops->query_rx_desc(rtwdev, rx_desc, &pkt_stat, &rx_status); @@ -818,7 +835,8 @@ static void rtw_pci_rx_isr(struct rtw_de next_rp: /* new skb delivered to mac80211, re-enable original skb DMA */ - rtw_pci_reset_rx_desc(rtwdev, skb, ring, cur_rp, buf_desc_sz); + rtw_pci_sync_rx_desc_device(rtwdev, dma, ring, cur_rp, + buf_desc_sz); /* host read next element in ring */ if (++cur_rp >= ring->r.len)