Received: by 10.223.176.46 with SMTP id f43csp3708159wra; Mon, 22 Jan 2018 20:26:03 -0800 (PST) X-Google-Smtp-Source: AH8x226HBMI8O9ghN+9VzH6pcomIadza9CxYWgDwAAKwukLOxMW5r5hOxfHOYdqUWGki0soS7em9 X-Received: by 10.107.25.137 with SMTP id 131mr1469022ioz.243.1516681562937; Mon, 22 Jan 2018 20:26:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516681562; cv=none; d=google.com; s=arc-20160816; b=kxRcw4q+n0RYYLnRS5JyiwLeM4FRsOjX4wzGxRthPMgOFZQ+yFwDkSGlg+KIepgkUk fbk2jE/ZwVAQSjAOgNkA3LFCZHP9lwwE4vtu7vXzBCRdq3kkpfOoqmGWhKMmuxo/XJGx gPakEu8quQnaVhkBSmQtUfEv3dLyLzcKNE8ABPW2l++M4lCO++XTYEArSVdd6+r5zYSw ePC3gwiQ6yHK5mjOGvsrsTv3U88gSnLKKUJfLHrklG0zQ22fr3ou42iHSse5csLpQFID EtGAs5F58A5tmoZEntxjUBM4Pp+PTGnYIcwYlTytuM+2z+fzoaxExC5SqKoMwPo3Yfdr 0nqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from:arc-authentication-results; bh=Sz5ffbF8GdJBpC/rO3baXO8EfsPbaE2nb/z92/vACJY=; b=hJGmumO0TAh5eAy7YNi88ael/sMWYNnGOIjnWuM1Qws4eeQmriW7UatsRL4xUgxCK0 v0X7z+lE3pp4VDoaxOqanbo5eWZ7ccU2L0hdJ08h0H3hd8tRLTeOK1+Ltk1pqKuZPe4Z KSGOSEd5RbkBbyPvzFtkcWzI7D2lTnhr9mVRFAb6stK3DJF9+XSQXAABEmliO61/4eXT zMQkc1cxNYbiUfl9AfiSJdoxP0SHX30KUgx1NJxz3NFh16ZHJgx9V4xPSSjMuEo4y64S z/HUL1iRcYdm5HFiO7LMY8oGoSE60gFWJ845Q6rUlozJtoWuUyZ2n6aKg+Ontyjrj35q aXbw== ARC-Authentication-Results: i=1; mx.google.com; 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 d2si15316648ioc.143.2018.01.22.20.25.49; Mon, 22 Jan 2018 20:26:02 -0800 (PST) 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; 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 S1751346AbeAWEZ2 (ORCPT + 99 others); Mon, 22 Jan 2018 23:25:28 -0500 Received: from mx01.hxt-semitech.com.96.203.223.in-addr.arpa ([223.203.96.7]:33970 "EHLO barracuda.hxt-semitech.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1751147AbeAWEZ0 (ORCPT ); Mon, 22 Jan 2018 23:25:26 -0500 X-ASG-Debug-ID: 1516681517-093b7e099d2ede0001-xx1T2L Received: from HXTBJIDCEMVIW01.hxtcorp.net (localhost [10.128.0.14]) by barracuda.hxt-semitech.com with ESMTP id SqemmrEHyMM9Q1DI (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 23 Jan 2018 12:25:17 +0800 (CST) X-Barracuda-Envelope-From: dongsheng.wang@hxt-semitech.com Received: from ubuntu.hxtcorp.net (10.5.21.103) by HXTBJIDCEMVIW01.hxtcorp.net (10.128.0.14) with Microsoft SMTP Server (TLS) id 15.0.847.32; Tue, 23 Jan 2018 12:25:24 +0800 From: Wang Dongsheng To: CC: , , , Wang Dongsheng Subject: [PATCH v4] net: qcom/emac: extend DMA mask to 46bits Date: Mon, 22 Jan 2018 20:25:06 -0800 X-ASG-Orig-Subj: [PATCH v4] net: qcom/emac: extend DMA mask to 46bits Message-ID: <1516681506-8866-1-git-send-email-dongsheng.wang@hxt-semitech.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.5.21.103] X-ClientProxiedBy: HXTBJIDCEMVIW01.hxtcorp.net (10.128.0.14) To HXTBJIDCEMVIW01.hxtcorp.net (10.128.0.14) X-Barracuda-Connect: localhost[10.128.0.14] X-Barracuda-Start-Time: 1516681517 X-Barracuda-Encrypted: ECDHE-RSA-AES256-SHA X-Barracuda-URL: https://192.168.50.101:443/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at hxt-semitech.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5198 1.0000 0.7500 X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=9.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.47161 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Bit TPD3[31] is used as a timestamp bit if PTP is enabled, but it's used as an address bit if PTP is disabled. Since PTP isn't supported by the driver, we can extend the DMA address to 46 bits. Signed-off-by: Wang Dongsheng --- v4: - Changes: PATCH's description. v3: - Add: comments for TPD_BUFFER_ADDR_H_SET. - Remove: "Dynamic fix TPD_BUFFER_ADDR_H_SET size." v2: - Add: Dynamic fix TPD_BUFFER_ADDR_H_SET size. - Add: Comments for DMA MASK. - Changes: PATCH subject. - Modify: DMA MASK to 46bits. --- drivers/net/ethernet/qualcomm/emac/emac-mac.h | 3 ++- drivers/net/ethernet/qualcomm/emac/emac.c | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/qualcomm/emac/emac-mac.h b/drivers/net/ethernet/qualcomm/emac/emac-mac.h index 5028fb4..4beedb8 100644 --- a/drivers/net/ethernet/qualcomm/emac/emac-mac.h +++ b/drivers/net/ethernet/qualcomm/emac/emac-mac.h @@ -114,8 +114,9 @@ struct emac_tpd { #define TPD_INSTC_SET(tpd, val) BITS_SET((tpd)->word[3], 17, 17, val) /* High-14bit Buffer Address, So, the 64b-bit address is * {DESC_CTRL_11_TX_DATA_HIADDR[17:0],(register) BUFFER_ADDR_H, BUFFER_ADDR_L} + * Extend TPD_BUFFER_ADDR_H to [31, 18], because we never enable timestamping. */ -#define TPD_BUFFER_ADDR_H_SET(tpd, val) BITS_SET((tpd)->word[3], 18, 30, val) +#define TPD_BUFFER_ADDR_H_SET(tpd, val) BITS_SET((tpd)->word[3], 18, 31, val) /* Format D. Word offset from the 1st byte of this packet to start to calculate * the custom checksum. */ diff --git a/drivers/net/ethernet/qualcomm/emac/emac.c b/drivers/net/ethernet/qualcomm/emac/emac.c index 38c924bd..13235ba 100644 --- a/drivers/net/ethernet/qualcomm/emac/emac.c +++ b/drivers/net/ethernet/qualcomm/emac/emac.c @@ -615,8 +615,11 @@ static int emac_probe(struct platform_device *pdev) u32 reg; int ret; - /* The TPD buffer address is limited to 45 bits. */ - ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(45)); + /* The TPD buffer address is limited to: + * 1. PTP: 45bits. (Driver doesn't support yet.) + * 2. NON-PTP: 46bits. + */ + ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(46)); if (ret) { dev_err(&pdev->dev, "could not set DMA mask\n"); return ret; -- 2.7.4