From patchwork Sat Mar 24 20:09:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergei Shtylyov X-Patchwork-Id: 10306379 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 10ADC60385 for ; Sat, 24 Mar 2018 20:10:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F3B762926B for ; Sat, 24 Mar 2018 20:10:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E5880292A4; Sat, 24 Mar 2018 20:10:06 +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=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 85E6629272 for ; Sat, 24 Mar 2018 20:10:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753458AbeCXUKB (ORCPT ); Sat, 24 Mar 2018 16:10:01 -0400 Received: from mail-lf0-f66.google.com ([209.85.215.66]:40665 "EHLO mail-lf0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753264AbeCXUJ6 (ORCPT ); Sat, 24 Mar 2018 16:09:58 -0400 Received: by mail-lf0-f66.google.com with SMTP id e5-v6so22900948lfb.7 for ; Sat, 24 Mar 2018 13:09:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20150623.gappssmtp.com; s=20150623; h=subject:from:to:cc:references:organization:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=iyOErqj21h0EbogPX/MLfOh9lH1OBQ2cMUG5w75GuS4=; b=q3Sj36LO0620Em75N7OOgd5oijUkhkz2bRBlfEKVFgfilyyIGcSGvt/HlOMXDAJeKJ Yatr5+Xd0ui8DjHKNdFJgqMHS2YPhE/rBbsoO9kzki/i9IiduQXzYOU6xmlDbjN+bJxN O1cLusguotGMLXIAoelxCVwMjvl0Q+DG4+oh/skxSDDiMZfiwON0H/cPT62A3szIro3w ajtTDZFOBVe9jYajoWJuWPPe81GM9nGreb+Bw2fzs+0CF9FvWa4s1grVN2/WsY4pRzsy mgI+ReIsIG2ygHwWO2+ACZg5y2il83mac6b9ahZr1/G6CAHVRtN38f8+1gETCWohThgp fMHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=iyOErqj21h0EbogPX/MLfOh9lH1OBQ2cMUG5w75GuS4=; b=RNes5a2r73MohSy4H72szyIfaRlx5KZ6jwYdmkNA5JhAJgR+oFdna4XyPGTXhnoOi6 VjsJpSalwA6HISHGjlZYLrUCFsi2c8VVjyrI5FYYLjx9S0pVQ7B2DVHP2HQveElyrpQo NbMR0/y+XXE6vgxu5D1fcLmTaW8Zo1YCPHjhgaBkXRxrD7oh2JE8dKaulRJFro8mACy6 FjOIGgCTsZvcUvVl8feM/RfSRt8SSUQbvmJCeC6iSzGd9uriS9w5eXPzOxzGNAV09Djl 97ULTSeCEaz9PN057Aq8ya8hLG81F7gYX+KBTyyXw2m1Wj9R1pveo+IemaHohRJ+YPBP ruOg== X-Gm-Message-State: AElRT7HWlxJKoioRJWsUCB+58uiQIKvxjHFwgoijJIkxqyf+Plx5luj9 sNmCanxZqGpJwEpphwtYROv4zdawBUg= X-Google-Smtp-Source: AIpwx489SP/7MIb2IRYRpOysFJbFgjoyuD4QXoOa44ccXC25sunfSGZL2m5c0d0SljTMiu079dgbJg== X-Received: by 10.46.154.70 with SMTP id k6mr1632171ljj.63.1521922196626; Sat, 24 Mar 2018 13:09:56 -0700 (PDT) Received: from wasted.cogentembedded.com ([31.173.80.64]) by smtp.gmail.com with ESMTPSA id i89-v6sm3033654lfk.12.2018.03.24.13.09.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 24 Mar 2018 13:09:55 -0700 (PDT) Subject: [PATCH 3/5] sh_eth: add sh_eth_cpu_data::xdfar_rw flag From: Sergei Shtylyov To: netdev@vger.kernel.org Cc: linux-renesas-soc@vger.kernel.org, linux-sh@vger.kernel.org References: Organization: Cogent Embedded Message-ID: <84d41287-b2ab-e4f5-5fb4-571820a7118b@cogentembedded.com> Date: Sat, 24 Mar 2018 23:09:55 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-MW Sender: linux-sh-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sh@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The GEther-like controllers have writeable RDFAR/TDFAR, on the others they are read-only or just absent (on R-Car). Currently we are calling sh_eth_is_{gether|rz_fast_ether}() in order to check if these registers can be written to, however it would be simpler to check the new 'xdfar_rw' bitfield in the 'struct sh_eth_cpu_data'... Signed-off-by: Sergei Shtylyov --- drivers/net/ethernet/renesas/sh_eth.c | 11 +++++++---- drivers/net/ethernet/renesas/sh_eth.h | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Index: net-next/drivers/net/ethernet/renesas/sh_eth.c =================================================================== --- net-next.orig/drivers/net/ethernet/renesas/sh_eth.c +++ net-next/drivers/net/ethernet/renesas/sh_eth.c @@ -611,6 +611,7 @@ static struct sh_eth_cpu_data r7s72100_d .rpadir_value = 2 << 16, .no_trimd = 1, .no_ade = 1, + .xdfar_rw = 1, .hw_checksum = 1, .tsu = 1, }; @@ -659,6 +660,7 @@ static struct sh_eth_cpu_data r8a7740_da .rpadir_value = 2 << 16, .no_trimd = 1, .no_ade = 1, + .xdfar_rw = 1, .hw_checksum = 1, .tsu = 1, .select_mii = 1, @@ -918,6 +920,7 @@ static struct sh_eth_cpu_data sh7757_dat .rpadir_value = 2 << 16, .no_trimd = 1, .no_ade = 1, + .xdfar_rw = 1, .tsu = 1, .dual_port = 1, }; @@ -955,6 +958,7 @@ static struct sh_eth_cpu_data sh7734_dat .hw_swap = 1, .no_trimd = 1, .no_ade = 1, + .xdfar_rw = 1, .tsu = 1, .hw_checksum = 1, .select_mii = 1, @@ -993,6 +997,7 @@ static struct sh_eth_cpu_data sh7763_dat .hw_swap = 1, .no_trimd = 1, .no_ade = 1, + .xdfar_rw = 1, .tsu = 1, .irq_flags = IRQF_SHARED, .magic = 1, @@ -1301,8 +1306,7 @@ static void sh_eth_ring_format(struct ne /* Rx descriptor address set */ if (i == 0) { sh_eth_write(ndev, mdp->rx_desc_dma, RDLAR); - if (sh_eth_is_gether(mdp) || - sh_eth_is_rz_fast_ether(mdp)) + if (mdp->cd->xdfar_rw) sh_eth_write(ndev, mdp->rx_desc_dma, RDFAR); } } @@ -1324,8 +1328,7 @@ static void sh_eth_ring_format(struct ne if (i == 0) { /* Tx descriptor address set */ sh_eth_write(ndev, mdp->tx_desc_dma, TDLAR); - if (sh_eth_is_gether(mdp) || - sh_eth_is_rz_fast_ether(mdp)) + if (mdp->cd->xdfar_rw) sh_eth_write(ndev, mdp->tx_desc_dma, TDFAR); } } Index: net-next/drivers/net/ethernet/renesas/sh_eth.h =================================================================== --- net-next.orig/drivers/net/ethernet/renesas/sh_eth.h +++ net-next/drivers/net/ethernet/renesas/sh_eth.h @@ -508,6 +508,7 @@ struct sh_eth_cpu_data { unsigned rpadir:1; /* E-DMAC have RPADIR */ unsigned no_trimd:1; /* E-DMAC DO NOT have TRIMD */ unsigned no_ade:1; /* E-DMAC DO NOT have ADE bit in EESR */ + unsigned xdfar_rw:1; /* E-DMAC has writeable RDFAR/TDFAR */ unsigned hw_checksum:1; /* E-DMAC has CSMR */ unsigned select_mii:1; /* EtherC have RMII_MII (MII select register) */ unsigned rmiimode:1; /* EtherC has RMIIMODE register */