From patchwork Fri Jul 28 22:07:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandru Gagniuc X-Patchwork-Id: 795098 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="cLiSTzbc"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=adaptrum.onmicrosoft.com header.i=@adaptrum.onmicrosoft.com header.b="spLaF88e"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xK2yx00Bgz9s1h for ; Sat, 29 Jul 2017 08:07:52 +1000 (AEST) 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:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=9GrjrC9EA9oPEGkbC+ZprgMt1yhLNNA3F6Dz1JqBizk=; b=cLiSTzbcvXOd6L Oc6fS12ZMcx3GRK6/dPY4lD+g7+VicJFwdtuszp2UGBq8kd/AwPbkrv+SSzp3ots/27fDTWVuWvVr Qg9eiGbch35OnxFCkt9n5bf1t3I1/Rx6YyiKa7nK/2ajgB7qV1XPLHO0s2bVaLNJ4IEs/q197Ilca 3FT1ddGe8dATLX0g3rzIdPwDRtB3nb62DgfJlM0xqmaB1F462QhScDlo2AU+Q7KtvK1GhenjVfBwn CAl/du5YSRnA8M/R/Bvj/EeU6DSLL4pzGagYFNxius39OjUUmHQsfxnzt04kur5QKGMR9ue/ybNjr /bPmNVYU5SWE8OmAN+3A==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dbDQF-0008SO-MJ; Fri, 28 Jul 2017 22:07:51 +0000 Received: from mail-by2nam01on061c.outbound.protection.outlook.com ([2a01:111:f400:fe42::61c] helo=NAM01-BY2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dbDQC-0007sR-06 for linux-snps-arc@lists.infradead.org; Fri, 28 Jul 2017 22:07:49 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adaptrum.onmicrosoft.com; s=selector1-adaptrum-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=hp0LqUl6L0Fo5u9/wF2G3oib/BqfBjWGbHPVD9PKDog=; b=spLaF88ecZC59fUffVVerOqCdbtzwUXqdFmCsJe6/UMrDQ67U6WIF59B5TOQinmwRCXRuVtx0uXmevjWSk279UwRmreFJcmaWaq1n813SxDFf/61HU96DkbOj4RH/ZUKSnjMcvcO0majGpEb5qE8AFHpXemFflMNTWkRyEWxuLk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=alex.g@adaptrum.com; Received: from dev2.lan (198.0.218.81) by DM5PR04MB0843.namprd04.prod.outlook.com (10.172.188.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.10; Fri, 28 Jul 2017 22:07:34 +0000 From: Alexandru Gagniuc To: linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/5] net: stmmac: Add Adaptrum Anarion GMAC glue layer Date: Fri, 28 Jul 2017 15:07:03 -0700 Message-Id: <20170728220707.13960-4-alex.g@adaptrum.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170728220707.13960-1-alex.g@adaptrum.com> References: <20170728220707.13960-1-alex.g@adaptrum.com> MIME-Version: 1.0 X-Originating-IP: [198.0.218.81] X-ClientProxiedBy: MWHPR14CA0051.namprd14.prod.outlook.com (10.173.97.141) To DM5PR04MB0843.namprd04.prod.outlook.com (10.172.188.145) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cf75bd19-d776-43e1-cf45-08d4d6050d6c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254132)(2017082002055)(300000503095)(300135400095)(201703131423075)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM5PR04MB0843; X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0843; 3:ciOQHooRh5pRbdReITnNcWblyMqIskH/sgp3XHsLK2nSuhtShReidr6biTeSL/sVmwjVtvj/8OxKD1OgT0z600cKyOTI4IqV+bgrDfXeA2xHJRAqBLEX6NcgNnZ22YSboS5P+Q5NgVP+KynEYWn6sZPmHrnpZlN60rTnPHoBlylV/yOMb2Me3z56LroENHNe78BNvn6yyxGaGrKcwlA6ZXUNERkEJUT9brg82F/DbiA0fltgbBOCiY+YA7ahy5dBkZoSkBzEilgkzOeqCa1h+quM6MlLr0EHh/kCiKZprhbDJTvunS1cV589Z2wqkISwRfTjhJl9BwrkwY6DqyY8YmLSMrZ5BBwH8RsBc6n+3X759XC8o2N5XCJqQ8P3toSr61/v5aXavPevdUh0oU9FP8OqDR7j4cDkCAdXsSoO/wfGhpNcSTchFIheiX7KeKZ7y2Ei2WeqQpHQfzIA8lwUoF/hoaNRxZ23Y9XOA0H/zUU5iy/rxAD75dTsugR0FkLibFTcniUHVtSTRSZI7tmd/Q9c28/pQIBZbmPFZGAhhAaMsBJfkNx4M4Tok7vb7A60ZGKzQspjuTqCVR3FtisJr88CJt+G7zRLFcOuB7EGKfMb6Ohp5LrC6DcEpUHlVzoOkccI9sH61/6Ly5NrsNVXLovHtO1TqYdch0PdZDiLihcBO3dRvwTSokg6ARPNaRRdy7i/36IifD7e0uT/8aNc7V4bqkZo91UJH7wW4kIq0T+lbn9E5PYqEkmWTNvK5iN+n8ov4h3zjrXzl8WPnWNVazaSSvgoESgHYwue9A3RRP8= X-MS-TrafficTypeDiagnostic: DM5PR04MB0843: X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0843; 25:KJXr2+d0973m9xJJeAVmscIHmNFdbfgNwCqMRAUPh9EoXjlnumaB1OX73C3AAkRvVL+Y4X2inJfDn5pyow+TXbVQoGikCFn8og/fHnRDlqX5/6BE7d2hahwobASFzzU4d9XDN/iSy+SPiCaMrJIxVSm0q651uTmGVDQO1GcuODSEhI7rN90JGfckNkg8riqsu+PVihsKXMJ7xQoZI1ftH6oPkMkVduNQm01gr12tR4eUDh8PKOO0uzaFZiVTuDrKaCzBctArsAWGhdHEL7yVRCaWraO5IJMZotkYbV4Cl4NK9oFJgLiaxl3Ycv8TX/bNmpmhYjaXL64QYRIu4LIxXKZuZRJ97sPGBymYpFQD2fF5sjQob2GRKuZ4tec49DSsglLXstoM5Gfn1VfhrScjJ72d/2d+HNStEfcWD8DG6t7In6gIR8YhX4JCTt4/hkjR6FaAxbHaLAxQnoP7Sa73AI0BV1rezmlneWk6I8F88+3t3+FHYmEQt9DOYBnGstW9m+MhYyz2Ta1pHFdMue53tFWAR0wkoJDtvWSrJhwaBo6B3/SfPSCNzxj6ACE8gOrNPYVEwTEx0T3rM0JAos1KhagM0DESsCGI2q1XHNxkd89ZJp3wXKmPb0ygUUqz/HKsmB6PZtp1GO7dM6RD6oon5yQ0KqSes6eMS7jTfeGvKZPXBleQxDPpTItEn5tsNV/vlUtK7yh3oI8VDarL0hY+xFXK2QB3Mjxy/DFQ6167R0Xn6NVIIQwMUp3XgZi4lAlPG2ij4l6n98gmewsFSHosAj0sMBscSeJzl0BTWYVz5bw4+7IYtZqP3+TiTWuqkqBYbDd2/M7ZwsS/EvQ/W/icmZT+sDfWuFb3Ic+jxCqNYkf2Vqu+HOpQ2EArCbmBLJ6bWHcatDb8+5411rHmRJ5+PS10RofzWliABT/vmDgjKOI= X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0843; 31:0idzsUW9aEj726+vrgl9kb7nxgDy9G5Rnu0THYNAmoRnViDIg2tIrqR53RgbOBLAQjZmjAxNeduQugbx7GCgal7Yjy3FUoCZIvwCh/WpCUK4lTwd51ByzJ4WKuunKNTHbfgRL32Fwqu7w0vU/TIQFaRO05+dRDOS7k6HUj34D+o7r8+p3IgXmSJrpvAmoX1OhmbO+gBpyWvgKbPEktm13FabLz6UV5fe4Fj+tbzwmZUFLzoarI4IIrMMu0eENOQBv8u5Qyd3QbMYjzEEsqeclBDs0yU3clWBVdNWS6IMZI7tqvjk9a1ZRg3dXuSrsatCxK1S2iKGcrLUefs30/CHEdriIwQ3Kq+JICbW10LOx9rjgrKs4MxiZUTINRZPZRtDtPEO/L/sr5RzbcGOKuEc2du6fG19FM+pCKbSs1oj7wsjyQFhuHXjNcYVsnlGf71TDxvTmzDOt7N1SWbHyWPCZ2uoQtIcZuOfo0PIyT1VrTB11mGGUbfpvYqhdo2uyHdCEjdk/QdCzjcdlVl5AgksH9vKwbqWkuvhE5W/lxWltUTvMTpkVjW4tIydigtnWGzi/5z66B3lUba4lo281B5TQRC+1ZCfp0b5AWQd3XcB/Dmg1ykUYoBvXb0JMhYYm/SgaMYxFKqt8+GpN51KEOM5IYvSWWEq2MzgaZbsMRu9seo= X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(3002001)(93006095)(93001095)(10201501046)(6041248)(20161123558100)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123560025)(20161123555025)(2016111802025)(6072148)(6043046)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR04MB0843; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR04MB0843; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR04MB0843; 4:GLYYEnnRqZ2Tb5ePqyEMXRqZ2pK6bzbThX58QJlZTN?= =?us-ascii?Q?Y5aWRvQvC8wzS+WHgJqFtTM3XwE6jhQ6/jWaO/UaB/9azn3g+FrikSpoiLjZ?= =?us-ascii?Q?BWRbVDpipMNR2BBXwwvzamxVlUdazOmspKw1PJxyL0PRcXzcyi23Ivv+ABiW?= =?us-ascii?Q?zMZCK984lkC1zlma2KaYcLQG+pYk6MxTcnvk2unGKpm4StkUflXDzdaTr0IV?= =?us-ascii?Q?FGJE/1BjfW/S616U4rnFNQgHtJwkbnynG1DiOIMl4RLfMliEdZdifXCBygVy?= =?us-ascii?Q?cNsKgGzS4OQGvxzsNEUAMELNfuAafmn59hEs04Y8cUXWiVsFCeDkm36wTQAt?= =?us-ascii?Q?fuYXYqhO/aVFHl2n+f2cWzO9eZss7aQBFhVdtj1F2hCEa7YTfOrRKj4UH6WY?= =?us-ascii?Q?f+D9+vQRtG1KFRSymAI7ESEcnVq7d9peITeKvBQkM/gIQYyzoz8ReeKqooEF?= =?us-ascii?Q?Ep8Eu1VXrGHV3XmB7da+bvMeSutiwVEUe1vHp+hj0RLcvVXfI6uvAZ0QC5q/?= =?us-ascii?Q?V0cWdpRx7rvo1A9VudFdo24a7FZ7yro/45wk3YgltSSo/MDuq/rTnoMW03Rn?= =?us-ascii?Q?WXPgiMiITC3UXANVxFlzMhuX73ld2MOLO0aluB01kkFF20BqNdqj1AUG0dar?= =?us-ascii?Q?xXt57/J+oWunNReV+ojyykGpvVMFaa+3rvyOhoDsdim5WeiF5Mf2OeCwy0MZ?= =?us-ascii?Q?JCMmm0lFSqbxg113bBGZoaSXsh8iMDIqW8o+//iczTFLEFea4iiJJrVPNFPZ?= =?us-ascii?Q?1U+yGwsUyffY1jYbBM9nVEZZwZq3d1XscGXYUBtal/4RyuqDk3VSSTxoEaXQ?= =?us-ascii?Q?2VSZpqQG+1rbAjIk29ycsqv/DoY/OVR0iQ0ALPrj2apvwATRKnfEFlDx8fh7?= =?us-ascii?Q?a988Z7DQg5al6/LAXnCSbfml/KLguINpZ+Jwca3MoNHluNksLCMe1j/eoQXc?= =?us-ascii?Q?wI4/DGy24wBbMyzshdEqooqbuWEr+4QwRHEPlfvDSJ6/B36kPX65OJMBh/h/?= =?us-ascii?Q?z7LjDASc6KGJqAUv+UcNKck/E8iIQKteOLsI+HO0cgCX0OJk/Ms3fGiuLCZb?= =?us-ascii?Q?eTfNjajljuG6HorbMwxgRPJVBE+EabO/qrl+0kvcdMuwGcK05b4yR3/YXERz?= =?us-ascii?Q?FUgcwVQ4FWFiVKCPtP1naw+FOwtfddsLrZe7+pF3s7hnwvBfM1f6mWIjPyfT?= =?us-ascii?Q?H74OqxUhN//IaNlAo31pvo4wEY4+IRzNsE?= X-Forefront-PRVS: 03827AF76E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(39450400003)(39410400002)(39830400002)(39400400002)(199003)(189002)(4326008)(3846002)(6116002)(97736004)(1076002)(189998001)(6486002)(25786009)(48376002)(66066001)(2906002)(478600001)(7736002)(305945005)(50466002)(21086003)(36756003)(7350300001)(47776003)(105586002)(33646002)(76176999)(38730400002)(110136004)(6666003)(8676002)(50986999)(5660300001)(106356001)(6506006)(81166006)(101416001)(81156014)(5003940100001)(2950100002)(50226002)(54906002)(42186005)(69596002)(575784001)(68736007)(53936002)(6512007)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR04MB0843; H:dev2.lan; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: adaptrum.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR04MB0843; 23:2GfqbWpFI4yYbbZKwctRssjRp6Kvk9XXHJA9fDCf8?= =?us-ascii?Q?IbxUnOKAjevoA8B+W4jKSKIXCP+eH9MKbjNmYx7TDNX6PDpjn91qGD9truGB?= =?us-ascii?Q?S16B0U7cez3EIBPijyUA+AFJKmt+Q8RljA1onqi8o70c4RZtpJoLud4ikP/+?= =?us-ascii?Q?P7Qgcdke8e+IufRzUm0FNdFPtmltZBdbcl721BGYfryfvrSABkbehuoGdLWM?= =?us-ascii?Q?RdQGSDf9WmAZ6EklS3gbkG3Rc0rSDFCXbd204V42TT0nP7BFzH70I2L1oQuR?= =?us-ascii?Q?M8mL5piepdfnMqar7wAtDl9yhHG083ELWb+dZrUEHs88kZZXz7Xbjbd0B9Lj?= =?us-ascii?Q?/fwCU/SQoqLJamkwyG/PXQmA6YpgTMQ0I6NdooFBt7QfDca8Ve7vSgPiU51l?= =?us-ascii?Q?YKi2WlR9Tx7q1M9QIXjRLh1rz0TkUdWXbPFff2GJM3ArmLYdsYJM13hjtYYo?= =?us-ascii?Q?Q7z5Zi2XnZQlF8yXW6DRC6A+mUSSBJxA4vIcP10YejMCeg46z9dAGpRu2oKG?= =?us-ascii?Q?RinKTKVjHkfoRShiwVCS9K3vHMx++Inlprat5LEKQuhdL5QjkNQUoWxpvE5x?= =?us-ascii?Q?KwB/AgZHg73qxaM3nXO9PK88YGQl0e3RzVYcF6d1n3xlgqFaiklEq1K44UaZ?= =?us-ascii?Q?0mO9pCZJo73i/g89BYVHYhShJvRZKidV4UvnV5GRgGMrNBs1wC4d7t6Vk2fq?= =?us-ascii?Q?F5ibrSbCr5faVNpdZKYPWTqzuouN2Ds8dhQNfTJ2TwWzvdhaAwHVtFHXW6ar?= =?us-ascii?Q?U+lSc014oRILeuRShl4m9k5Q0AfSg+Fda3CqPBojkvcKAz3naWoQPH+1ob/d?= =?us-ascii?Q?xgPC/r8NGudPX24U/QBGkqV/xXXLvEBoAQrUba8p9YtX70QglJRaHQ/JKzML?= =?us-ascii?Q?DENqqTynzLQiwV/mGAGunXODSlIRdPjyU6ZClrdnxPGx4kBS1aN2Fe2VV6DL?= =?us-ascii?Q?WqHmveKdxgkAwEMjiZva/RZS9irC/i875K2jbZw9SxCZxX6Ow1Otqozkhjta?= =?us-ascii?Q?uP9GOMclQTRBxA6/D+IafaZ7++vb+iaUw9Cck6NbAiYXvJugzLGKXLT/tebt?= =?us-ascii?Q?mLopLiFfTjSLZUG5nXiHN3bamqBiQmt1sb24nj6FucjUEaLfKNW1cr0zVZ0W?= =?us-ascii?Q?FsmaI3IpJ9FB11KarCC+jpl+ndVpXdXFcSpHHoYN1WmHWIXLUJ5KJzsZO4vR?= =?us-ascii?Q?5kritLapC30D9H4OVmnPXbj4oCAjlhPCWN11bQO53b7/1rV7REKem5tNuP3b?= =?us-ascii?Q?N6kP2vBRBFrR4p6sYzSyTJ8gbdajo9Yyg/YW+EAcm4WGgHhpeS6uc2P0SV1o?= =?us-ascii?Q?Sfw1fyv96Q7hN1gMsBa2xA=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR04MB0843; 6:jnJX9kTm5h+MwJACrpku9XyuyfxHfhvhzzio1yRUEK?= =?us-ascii?Q?1LcCpKtd961CwTQtFeCvCxCFy9DOpEHZrDXeGhrr0pvwMVOzYskoeMEnjOGs?= =?us-ascii?Q?hQICEf6e/as7X4a1/bsiN6UQAgws02KJO5txm664NBndsmcsFhvosSzGSKb9?= =?us-ascii?Q?JA6UqPEXRKqIU+QyLPiPaiOKUK3sXLIDRqkiZygG7FRrIHDHZOEChit/IY5r?= =?us-ascii?Q?pWSXHPhX2C9axTqdBUim0HQIDc7F/3nCOlBpWaqWhRFYRt5H8yqvTWywt1YG?= =?us-ascii?Q?HVOLrnLhz5TfayK+qDfgD1Wl8g1I/PYNRDTBEt2PWuq7+KmTBAip88BBJOaT?= =?us-ascii?Q?cOOHw5lVKByqIz1AcsD8rfJKDZbWRpNCF+5KNvcYf7uq0AFCk9bTT0m/3SzS?= =?us-ascii?Q?YI5vCgr6VmtxardnId1iOsCZv9vxKNd/rB3FAzYLMr+Ie1AM5jArGacdmzPJ?= =?us-ascii?Q?IZlOtFsObPKAvRBH9+04+KTcIrSYlS5ZJPcpDJpbNobZwY/5LrtrEgnVpX/7?= =?us-ascii?Q?Z2TV6PshLumXfOnYxn4VYScDIjVz3XbaMR5OHFSi9syMZnsjJDe2ibyXnJYp?= =?us-ascii?Q?x5JPFo5rxnzErYre+MkNceElgLRPNzNEBuh22AXi8kswOC8yLy9Cq9Mi0TjX?= =?us-ascii?Q?DH90gTAqFxx57dWaJJzC+bMxQTjBiz2uVD2M/b6o8eF56FvzqDRyupdxGELM?= =?us-ascii?Q?Gzox1H014WsfG8TRgk4pJZripl1yVxhTGE6ZZYxol8mPzzyuUESpw4iI2gf2?= =?us-ascii?Q?Lfewev72hEiATvaYZGWjzoIuen9MM4SpQmrxdsOaQ1t9VyqOzRIQJ0e07fdI?= =?us-ascii?Q?Y7cr8WFfqnXWvV5eqjG0A3Ed9AdTBUb8N7CEqNlQoB5dB1FYD0qvrxboLF97?= =?us-ascii?Q?0mo1LBAmtxhRwNzRKa4RA8P1cRmuNBx/gh7jp9y3nz6uZkDhld7ecbFOaxM0?= =?us-ascii?Q?j86+NRpZ0OsYHihu6XxIGsPXsrbsNlDo1XM1iIP7gbpmUzYf7ZYRbIv/Pgkk?= =?us-ascii?Q?I=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0843; 5:BZKcwsEGI4iiBxm7mnAGjMfgdaDuGnWX24Qe3nfPn+deOIr06dwXqZmGKJIz1hQ6wZ8N0ntjxpKyVOzM2okRm+xYNnM1RL2ZpD0p7cFXqr20t97FYmL+s0CjCyVZsXcetnSeIMAGv0cOVFWDKpkNZ9eUDaksZI8yK+0/Mhwych5U0n1Lh3QPqsrJ4VDK4xpN6rF6eaA1C2QDx/gmo0lVR6hg3XI26yqScGA2WxphTa5beejty2bLLUjhmdbeOxDKobY26iusMMDCdanZuRLx15xqPypYccLeepxtkEH2+elFA+ctkvWBXcPGLLFUfClstNVI9tgqARSpMMnDt9R/I4csG82cWWvtsLEOKPXqFXsBcvfZ5fWraDb82Ca+ilDA7EJALd00dHrHI6lq1mI9voFiTmwL8VgcMQbUj65OaQKYYCiCqKaEGBdd5LM2WHxOxrb6lqrl38LJIpeko4dZ1dhY0iofVT558ic79Ea4DjCGIhN/+kSQ/MLhVTAzSzNz; 24:Pclb2U6/9cgfQdG4zsvIJGDMe/srkJH1xNJ69iVakm/Bsfsiuq8+xdVbhyg8ipu8t1eALYkZ6QqICqdzz+B3h6LxMiE14ZMl7WqeaHKuFeU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR04MB0843; 7:zmYFLRFiYOEUK/RkLuF/bFEZSISttO9ceSClqnECeBk3zSztYvEMGa64uWLj/F+WUYprytS3SYy8FDnLnRDhzjkrFBaWD6MzpiwbFelIfh5dXU9Hy6ppgZOUsRDRXEdbgXjnrSpzGBeZKnhJjoh4VobtPNAkKegdV8AEn8cUBRY+kYDLmAirIQHam+bmOUzLwpRJr1+OjAKj9eyS72gL0LREhpudpsBxgBl6Y47XJOCV4Y/C6myp5berNWpYkVhKd55aKUMp4BiVn0uEhFxbDwJ3UBJqWBEcASnMb1xaIiVTuOskybE7mdhGKfN8mRiIAUvke0t5wk/Ujwe/Dqk0uo+tkEJqiTjkvs0xuDtumC4R/mn5SIax9l1x6Ltg6htVZQIIBpqXuaVtDtagT1wy07DIkd2uNQZcb1LIs4n0EP4CCu1PoCSpTvbODrP6n+U2cMBX+N7KYL7kHHvqbXVvczaeJ7A05ULk/KfcJRtf2+fusA+tTMIDffgoNfnABcMtB8XeBMoN3HkNKzCfmy/r/DJEz+Jx0mvxyV0X6FefdcPkeo6smTW/kDblh+n9N73jxoGnSNXGgEqNQio7t8aacnCqAg1VoqAxrsN6pTuLUoYXyBAVMoxiIkc78/vCrFFdmXmibdM8S+OPTrWsaO3wxhwwy4hVe16CMJEPtqBEAKOVDgt/HotZ53nLUGcbHuQ0SWsCqzYMpL2DBE4MT+e7BIe2KY8lMs2mwLhw3At9glHUxk/qyUQxGQZZuPcYm9gstI6XHIl8OI6dI9SQKnjfyDkTO/RzearWkWfnDqIuctc= X-OriginatorOrg: adaptrum.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jul 2017 22:07:34.6063 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR04MB0843 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170728_150748_089126_94058F14 X-CRM114-Status: GOOD ( 14.33 ) X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [2a01:111:f400:fe42:0:0:0:61c listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid X-BeenThere: linux-snps-arc@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux on Synopsys ARC Processors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Alexandru Gagniuc , Alexandre Torgue , devicetree@vger.kernel.org, netdev@vger.kernel.org, Rob Herring , Giuseppe Cavallaro Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Before the GMAC on the Anarion chip can be used, the PHY interface selection must be configured with the DWMAC block in reset. This layer covers a block containing only two registers. Although it is possible to model this as a reset controller and use the "resets" property of stmmac, it's much more intuitive to include this in the glue layer instead. At this time only RGMII is supported, because it is the only mode which has been validated hardware-wise. Signed-off-by: Alexandru Gagniuc --- .../devicetree/bindings/net/anarion-gmac.txt | 25 ++++ drivers/net/ethernet/stmicro/stmmac/Kconfig | 9 ++ drivers/net/ethernet/stmicro/stmmac/Makefile | 1 + .../net/ethernet/stmicro/stmmac/dwmac-anarion.c | 151 +++++++++++++++++++++ 4 files changed, 186 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/anarion-gmac.txt create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c diff --git a/Documentation/devicetree/bindings/net/anarion-gmac.txt b/Documentation/devicetree/bindings/net/anarion-gmac.txt new file mode 100644 index 0000000..fe67896 --- /dev/null +++ b/Documentation/devicetree/bindings/net/anarion-gmac.txt @@ -0,0 +1,25 @@ +* Adaptrum Anarion ethernet controller + +This device is a platform glue layer for stmmac. +Please see stmmac.txt for the other unchanged properties. + +Required properties: + - compatible: Should be "adaptrum,anarion-gmac", "snps,dwmac" + - phy-mode: Should be "rgmii". Other modes are not currently supported. + + +Examples: + + gmac1: ethernet@f2014000 { + compatible = "adaptrum,anarion-gmac", "snps,dwmac"; + reg = <0xf2014000 0x4000>, <0xf2018100 8>; + + interrupt-parent = <&core_intc>; + interrupts = <21>; + interrupt-names = "macirq"; + + clocks = <&core_clk>; + clock-names = "stmmaceth"; + + phy-mode = "rgmii"; + }; diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig b/drivers/net/ethernet/stmicro/stmmac/Kconfig index 85c0e41..9703576 100644 --- a/drivers/net/ethernet/stmicro/stmmac/Kconfig +++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig @@ -45,6 +45,15 @@ config DWMAC_GENERIC platform specific code to function or is using platform data for setup. +config DWMAC_ANARION + tristate "Adaptrum Anarion GMAC support" + default ARC + depends on OF && (ARC || COMPILE_TEST) + help + Support for Adaptrum Anarion GMAC Ethernet controller. + + This selects the Anarion SoC glue layer support for the stmmac driver. + config DWMAC_IPQ806X tristate "QCA IPQ806x DWMAC support" default ARCH_QCOM diff --git a/drivers/net/ethernet/stmicro/stmmac/Makefile b/drivers/net/ethernet/stmicro/stmmac/Makefile index fd4937a..238307f 100644 --- a/drivers/net/ethernet/stmicro/stmmac/Makefile +++ b/drivers/net/ethernet/stmicro/stmmac/Makefile @@ -7,6 +7,7 @@ stmmac-objs:= stmmac_main.o stmmac_ethtool.o stmmac_mdio.o ring_mode.o \ # Ordering matters. Generic driver must be last. obj-$(CONFIG_STMMAC_PLATFORM) += stmmac-platform.o +obj-$(CONFIG_DWMAC_ANARION) += dwmac-anarion.o obj-$(CONFIG_DWMAC_IPQ806X) += dwmac-ipq806x.o obj-$(CONFIG_DWMAC_LPC18XX) += dwmac-lpc18xx.o obj-$(CONFIG_DWMAC_MESON) += dwmac-meson.o dwmac-meson8b.o diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c new file mode 100644 index 0000000..6da4d9a --- /dev/null +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c @@ -0,0 +1,151 @@ +/* + * Adaptrum Anarion DWMAC glue layer + * + * Copyright (C) 2017, Adaptrum, Inc. + * (Written by Alexandru Gagniuc for Adaptrum, Inc.) + * Licensed under the GPLv2 or (at your option) any later version. + */ + +#include +#include +#include +#include + +#include "stmmac.h" +#include "stmmac_platform.h" + +#define GMAC_RESET_CONTROL_REG 0 +#define GMAC_SW_CONFIG_REG 4 +#define GMAC_CONFIG_INTF_SEL_MASK (0x7 << 0) +#define GMAC_CONFIG_INTF_RGMII (0x1 << 0) + +struct anarion_gmac { + uintptr_t ctl_block; + uint32_t phy_intf_sel; +}; + +static uint32_t gmac_read_reg(struct anarion_gmac *gmac, uint8_t reg) +{ + return readl((void *)(gmac->ctl_block + reg)); +}; + +static void gmac_write_reg(struct anarion_gmac *gmac, uint8_t reg, uint32_t val) +{ + writel(val, (void *)(gmac->ctl_block + reg)); +} + +static int anarion_gmac_init(struct platform_device *pdev, void *priv) +{ + uint32_t sw_config; + struct anarion_gmac *gmac = priv; + + /* Reset logic, configure interface mode, then release reset. SIMPLE! */ + gmac_write_reg(gmac, GMAC_RESET_CONTROL_REG, 1); + + sw_config = gmac_read_reg(gmac, GMAC_SW_CONFIG_REG); + sw_config &= ~GMAC_CONFIG_INTF_SEL_MASK; + sw_config |= (gmac->phy_intf_sel & GMAC_CONFIG_INTF_SEL_MASK); + gmac_write_reg(gmac, GMAC_SW_CONFIG_REG, sw_config); + + gmac_write_reg(gmac, GMAC_RESET_CONTROL_REG, 0); + + return 0; +} + +static void anarion_gmac_exit(struct platform_device *pdev, void *priv) +{ + struct anarion_gmac *gmac = priv; + + gmac_write_reg(gmac, GMAC_RESET_CONTROL_REG, 1); +} + +static struct anarion_gmac *anarion_config_dt(struct platform_device *pdev) +{ + int phy_mode; + struct resource *res; + void __iomem *ctl_block; + struct anarion_gmac *gmac; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 1); + ctl_block = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(ctl_block)) { + dev_err(&pdev->dev, "Cannot get reset region (%ld)!\n", + PTR_ERR(ctl_block)); + return ctl_block; + } + + gmac = devm_kzalloc(&pdev->dev, sizeof(*gmac), GFP_KERNEL); + if (!gmac) + return ERR_PTR(-ENOMEM); + + gmac->ctl_block = (uintptr_t)ctl_block; + + phy_mode = of_get_phy_mode(pdev->dev.of_node); + switch (phy_mode) { + case PHY_INTERFACE_MODE_RGMII: /* Fall through */ + case PHY_INTERFACE_MODE_RGMII_ID /* Fall through */: + case PHY_INTERFACE_MODE_RGMII_RXID: /* Fall through */ + case PHY_INTERFACE_MODE_RGMII_TXID: + gmac->phy_intf_sel = GMAC_CONFIG_INTF_RGMII; + break; + default: + dev_err(&pdev->dev, "Unsupported phy-mode (%d)\n", + phy_mode); + return ERR_PTR(-ENOTSUPP); + } + + return gmac; +} + +static int anarion_dwmac_probe(struct platform_device *pdev) +{ + int ret; + struct anarion_gmac *gmac; + struct plat_stmmacenet_data *plat_dat; + struct stmmac_resources stmmac_res; + + ret = stmmac_get_platform_resources(pdev, &stmmac_res); + if (ret) + return ret; + + gmac = anarion_config_dt(pdev); + if (IS_ERR(gmac)) + return PTR_ERR(gmac); + + plat_dat = stmmac_probe_config_dt(pdev, &stmmac_res.mac); + if (IS_ERR(plat_dat)) + return PTR_ERR(plat_dat); + + plat_dat->init = anarion_gmac_init; + plat_dat->exit = anarion_gmac_exit; + anarion_gmac_init(pdev, gmac); + + ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res); + if (ret) { + stmmac_remove_config_dt(pdev, plat_dat); + return ret; + } + + return 0; +} + +static const struct of_device_id anarion_dwmac_match[] = { + { .compatible = "adaptrum,anarion-gmac" }, + { } +}; +MODULE_DEVICE_TABLE(of, anarion_dwmac_match); + +static struct platform_driver anarion_dwmac_driver = { + .probe = anarion_dwmac_probe, + .remove = stmmac_pltfr_remove, + .driver = { + .name = "anarion-dwmac", + .pm = &stmmac_pltfr_pm_ops, + .of_match_table = anarion_dwmac_match, + }, +}; +module_platform_driver(anarion_dwmac_driver); + +MODULE_DESCRIPTION("Adaptrum Anarion DWMAC specific glue layer"); +MODULE_AUTHOR("Alexandru Gagniuc "); +MODULE_LICENSE("GPL v2");