From patchwork Tue Feb 21 11:52:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Madalin Bucur X-Patchwork-Id: 730468 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3vSK2z5Hccz9s7K for ; Tue, 21 Feb 2017 23:06:03 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3vSK2z4Xh0zDr3p for ; Tue, 21 Feb 2017 23:06:03 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0066.outbound.protection.outlook.com [104.47.34.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3vSJn63KGqzDqGg for ; Tue, 21 Feb 2017 22:54:02 +1100 (AEDT) Received: from BN3PR03CA0103.namprd03.prod.outlook.com (10.174.66.21) by CY1PR0301MB0730.namprd03.prod.outlook.com (10.160.159.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.13; Tue, 21 Feb 2017 11:53:57 +0000 Received: from BN1AFFO11FD028.protection.gbl (2a01:111:f400:7c10::192) by BN3PR03CA0103.outlook.office365.com (2603:10b6:400:4::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.13 via Frontend Transport; Tue, 21 Feb 2017 11:53:57 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; nxp.com; dmarc=fail action=none header.from=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1AFFO11FD028.mail.protection.outlook.com (10.58.52.88) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.919.10 via Frontend Transport; Tue, 21 Feb 2017 11:53:57 +0000 Received: from fsr-fed2164-101.ea.freescale.net (fsr-fed2164-101.ea.freescale.net [10.171.73.197]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v1LBr3um009568; Tue, 21 Feb 2017 04:53:55 -0700 From: Madalin Bucur To: Subject: [PATCH 9/9] dpaa_eth: enable multiple Tx traffic classes Date: Tue, 21 Feb 2017 13:52:54 +0200 Message-ID: <1487677974-13678-10-git-send-email-madalin.bucur@nxp.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1487677974-13678-1-git-send-email-madalin.bucur@nxp.com> References: <1487677974-13678-1-git-send-email-madalin.bucur@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131321516372782048; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(336005)(39410400002)(39380400002)(39400400002)(39850400002)(39840400002)(39860400002)(39450400003)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(47776003)(50226002)(8676002)(81156014)(50986999)(76176999)(2351001)(104016004)(5003940100001)(8936002)(105606002)(6916009)(36756003)(626004)(33646002)(106466001)(81166006)(356003)(305945005)(5660300001)(43066003)(2950100002)(38730400002)(110136004)(48376002)(53936002)(3450700001)(50466002)(189998001)(8656002)(2906002)(85426001)(4326007)(54906002)(77096006)(68736007)(97736004)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB0730; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD028; 1:m/3BV74OQbtojy/Yv7gdoWPAlW/vkgmAWdH/PTeLCKHKy1RfqyTKTJWmJ24Mtm+eBlDbYfHvevee24xW6foGZ084wn/nU+CJ26dyRBQ6L5uRK7VmnSKIRjwwfAWW90PDlke7AHnEM9OZwBRj/6gjYoL5qSMNdzLNZPHl5d9y7YvsFmZg9UvDOlHqpY5rYKlt5MwTVsOAdGfhZ0lSiUwHTfCYfr91//3gmq+5aSNgE/Vf5SwAgtX4HI99e3IauTRXCLIYoHXnAFmf97v+4FoG+7RKsIQJNUxmF/uDak35x8l3dQAxM4mZnXzQ0YitMLdc9O/V1zLVOWQh534axYi+61YZ/l9BFpetf/GJEWCuZVT5SaUd0YsMUxiKR3qN/mnD9pj90ztRY/iWka1iPjQ7TzxvTGpkcxU6UB0us3UtRWuG+FAo66joL1INxqnYX2y/gIsmi9MiArCg6b4QJDcJkYqdP08pZoySQhsiJAceyft0q/PQ73qKFL2vngXIpLwYIP1xxQBWRBlQFoG936aNOHvAZSn8sKXH3OhZha4zeShD21zb/8++FEAKchtdJud9qGunIra+61mmIx4pOVKvJKlr9QfcAaYT78dIMbunOm1apE0WXDL7fakkjalDbM3fqofRHAE6TvMOjkvVoQvSgjfExugtyvfNQ2MKuj+OvgmTKTXBxc+xMfkGBTY2rHRQSk0K959RWvbezYjbFTwxBg== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 3217c165-7eb3-41b7-8a80-08d45a505138 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY1PR0301MB0730; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0730; 3:sVqBPKfy173bVcRSds1vz15xczKHYN0GaPQu0aAVxsQ/9gXS51lWZ9x8/fZWvz/fDH7pwjEKoRgxrhq49dNQZ1cawk3e1tv6xh8M3pT6gfsWRLwP9balyfNjTxoQvpdpag31XFAqL63MHGK40nLNsBix039PHSU3OCr02TuRvodh6wfdInuXEe3Fl/eb3VzLzGBEguoVouVuznK+aAQRuVovZd5ZZ+SzlQCMwyrYVX4bZF2vjcNU/b6NjNUKF/s4Sp5jb9iL29catFvn3rt/0+OqhsaJkmqqgv+x62AMM5DhJHu2yHNg+yhW1O8snc9/ucsctxGHNtdJIMLfJh11xhHXAgr5o6Z5v5XpE50NutGkXJeB6+5nXuxoxGaVFsVZ; 25:3gUX2agIypiwzqamsjuZn+c9+NxzJ531ycr+o5ncxaw4N79S7h9igxY+sCln/gSvJX/rPqhz/7BhXLARYjtV237vlJ8WLrfsjhBoaVIYL9S6Xcl9IgAlONxVT9RNi0tQKFoyXvdqRt7JH7+Y9wZPY8Scyl9Yistrjdt5KDcoDSxX9X7fkJD3UFvHBf0pBvJXWeHwl58v4y7o7X+i25W8ZsYTWVXrJTclMiWYUwgHN17650ahDHTuIhqQvqM+r6CmkW6spIAOp1VGcmO4NPfzVVSvxTjNn3k7caSprOV0PzgyQSPUwkDw9cKZuyvJImoB+rPOyx8dAfkoGS/+l3LHXEIBaaP5heNv1DPhb5YKlIa9WVJlDJxrfhqwsr+n4URk7O3fmgnbWAgVTVpb1d/LIKlYUTmUENRbPPOGf5vBYHao7RsWAJMRoBVBZUEuvosGygmpYss+SteX7O2Avmzvfw== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0730; 31:n2VjyBkQlYbid2kJVNYpDiWuDDqmyPa7eWMdUD+lCxjMhNtQrWAGewDUxXqf1PUv3YGwc1CkRAThSEO7B26xZqE6cBIZ+vdP6RLGgw/1hVTBn8Ygz+mIn2T/nmqvoxqBudV6UeoN7zSrOtV+vHd5YPOUaglTjG/eUKMfcIT+e6Si/knVCysE1b41C+3rdmB1gYv0O/ydRlJyNvodq+FfxZrFnmMDX/3hOQdC0P3UdTEy7wlaNKb03Fd+dT0mGkiMxyPnaey6MZctKYePZh1WJg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(13018025)(8121501046)(5005006)(13015025)(13023025)(13024025)(13017025)(3002001)(10201501046)(6055026)(6096035)(20161123565025)(20161123563025)(20161123561025)(20161123556025)(20161123559025); SRVR:CY1PR0301MB0730; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB0730; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0730; 4:VQCNsp0uSAUYAxfMWOs+FwMNjtFsjvf4sQxxH7Tg8Gekrrgqx/lbTVy+GYuikE/ri97EiTCO4DKXhHzFc4prspStk2q49wbrrE03f+FTGkk0Wg2+Iu20O39cg63lbvLAeutGDF8y2QdASsSR4SOpsUU+oqSRSNz/kOhZRg0jYT4yuChaqoSAQpzWZVk4hCTEaS/hArS41VPmxO6XRQiyEbr1fTJAPqDV225bfrC/t5A9e+Ee4EGr4B8a/Qw7uxkKWSFOHWznMqexJLEL7nA8re3sWVhsb0NTcpdoi9UP2wY1Np/72Hm25IegYbg7rbKkxZPqhYyvHHA/mDzVSyieNQ9QFwQFBC4F70w3Jdd+xFIQy3UtPYdtv+ZGXmssf/VTV3spWhFv9fNb5I/Q1XpWmuKv2i5djRNRl6hPjEKQfbasU+qNPT6lL9sre9k3HrNDEuYUHtTzc8r4wCFnQbN9CBPotvEVM3wEQ8mmQZg5s5xyryxlQUboAZ9K3fI2uZVLI1jAHmUpD2Ky60sqIrUHutqZjh3ZSgK9dENODyIrE6rHSjesUjaRJOmNckV9E8wtdlGKAXdn6bE0aE6dyUu78BuGE6cmR/V4Yr7QgIatiKic8mGJzpPmUGbfUWG6g1n2g/HLMkJ6idzqWAdUlMWVYpCkAyqSdATJbT92Zcdw1haXtP3dn1G/AkYAdgI+zpNwBnnxEmXUtkhbqn9MIg7bpEoN2S0br4YDk0Oe1OUBr3RNsm8HApmnarrzgx6dGMzT X-Forefront-PRVS: 0225B0D5BC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB0730; 23:B3rSZ7YWqssL352SijSaBSTV8dPUWzQMEHpqw85?= =?us-ascii?Q?F/ryu9yKcvpdmsoR7vJBJKnd+0qRtl2IzyXzn/aC4buR74y/QYubJVY/Q3hp?= =?us-ascii?Q?2aXinLqJ4ugaTfZQq81Fx/tXpN60xgcGJo2gcFmiERR2B4d9hSbSY+qfJHCH?= =?us-ascii?Q?hIwmlRpXuyziV8mWvx3MNOwFd6VNfLAnmIQEHOzEDfnPLCMbX03knVYbAz19?= =?us-ascii?Q?w2rPuHrcFO1i+rAtU95Ssf7+xTC+QZ254eEq/RXkP7teSHZX4uBnpR/HkuN+?= =?us-ascii?Q?CHY8BO1XMjf57+R+wLja2j/Aaqn37A3jDqVR4ke6mGrgzvHds+93xV+GGF3a?= =?us-ascii?Q?AUSjaCZAyS+DAQaYOJ01E2lQuicDKx09rmk8hx8hiAAMQdtZW+shbOIPB04S?= =?us-ascii?Q?UY0Mn/dnKAi1iNJ6BS9wt890+kp4VuUSNRlFRQQU/IBe77VxKfJU6e0jpWni?= =?us-ascii?Q?gIvM1YyaaDOrkvHEwaYFL3g299tIhd5zriqzYV96Jhx968ATI44TA/p+d0tT?= =?us-ascii?Q?+UK3xaJnCQJIfnhzVrTGVsLq8P46t5I8nHBbsKIxSum8tcm/DANI4IPqJCrq?= =?us-ascii?Q?/qYJajdOepsi7xCSklcergd0a6HF+0UoYmn3YQ546w7M+swoMd2jFc16bkpa?= =?us-ascii?Q?t94NF/tgDWR2mAUJtaI9APHQ9WWbpf4NXtghCOUKclDcZYkIu87vMNYDhbWg?= =?us-ascii?Q?ixwVWMganmYv2DASm4/DTC8l91V85AyD82b05oXrkDMLD9g8FGosBPHLVk7U?= =?us-ascii?Q?tAEkXbdTzcliYRko/Fjh2EKg7hS7RvTQowJd74WIEYgtm6o0Na+3xYYfmIZN?= =?us-ascii?Q?filLGmHLqxer1UNVdA03wkAtEEXmxD2MGOS3cLayymD6AVYG1/NJ/nVQHfiw?= =?us-ascii?Q?qZJvaKQcrmQXLeWKjetSUjFjBhb6j5oBj0QFwgUAVw0yk/IeczL0QCzQFR1o?= =?us-ascii?Q?v6dvbH8r4vT4mkKMmDuWvMoELgkVk1VrjndXAZGW5n/Xta8D6ws6hmmJlchY?= =?us-ascii?Q?xVBB9uxON4oSR0iIkaX3oVwnFp8XsBgc718H1zRUbxftNLp1bMvhTE0o9Q5z?= =?us-ascii?Q?vfyiPLCwk8GUQuWO38eKkQcbreKWvJutvQm6jleLlTPtf8cZrVS4fAdj5zQm?= =?us-ascii?Q?rLkO7KsuYcBzeOeyXktkAw27IuFFjvLF17E79bz6BpohKdWX257F+S4c8qF5?= =?us-ascii?Q?H/BhJkUL7tFnrkKIuSmt8R7txXqb6H6265QB2VHgnEAYWzb7v8KUp462CRC6?= =?us-ascii?Q?hKADRtVILlgz4GraqNbwAk1FT66jDtM2fiAqNm5Mj54FwVSCDqMfJww4K4HS?= =?us-ascii?Q?yPosWiZQNgHUv2x+zZVb9lmQ=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0730; 6:u3JmEjoxlZwbyDz0CgZTs9+m1bSdsePIWUt30oAuZ5IE5GWIoVhLHG98jAR4cmukFeRHAxdwVcNwSBMxlb9dfvpvMgX9ZM5/4AoVspmr81vcWLExqq3EiMGXw2FxwBneD0vHfnPDCt8isWSHYNXPwgme5InS3qBez6TYhstUjVwA1fDiwROWiGoBv8yksjM8eoHRPeuSp4ynDEUzAa0b5TDLSWsTGatfs2SLKwOG5K/dcBC4OR4If3NdTyeg60GWpg5XElzVVuVcC3gVwp5Ie22KJLKAwdXnKEMLCoUyFAk7ParDMVVuW82tot/bXpVih4Q/MhuY6wd5nflhMzfDFZaIf4YtLArcvs/UV/oNBljOyYtX5GSUBVn432/CQfFmpyinz7FP/bEiCpVCDhahFhN20CH/h+NXSpQOXTl+z2E=; 5:qlxzjPCrfGPdPXNxUqbnb6/L/jVG1ngmtVhUADLS3uAFsn6pIr0Fc4k1hImA6wCdj3FN6y1ehkNatAmwy7rRNcsrAS0Es0r+Ra5j0zAqnYdd0PT3IvvPzxniLBLFDe3NphLPtRaTyN5UShm0kX3ihjJfDnadZARKXGJvheRF7z0WoIhSE416EY7oJjd5DVmp; 24:bhhGK+jQ92xChvsTX1tSDC9lkGZIbD8TZDX5eqyo7eUKQiq8vsYqOpN0rZd5CAllQaRrIaf5kQQUDYbuHSw2A8i4zoxDzwv8r/ZuZkZtXeg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0730; 7:h3KtC31euIrodOCpcYaO13Zc8M7d2enWJTtRVb9vys39TDyk4HqFNOpFI1OyTYwTedd0WdzexXVymL4IBaWTkMuXp7QidRhbnIsZ5EozrY4Azq7AoygUHO0QVfKvAJHy6KFhnRRKvppW81U5OHhQyHJaSxbcpazl/ww28oPoVzIUFBvzZla1JiFEuWm59O2/OZXOH25d1vi8OaC7HKxneV1pnnAC1mr5gsb5G6Vg/ISN8Hl7SYv0rPf+MGBr5U6Ooz5sdyU/ut5yQMO2nG+ixrzbqiBxB763y0HmxlQCDfd4BUMCJNqfUZZT11ErQ/qGtqWkMJZXlOZYBOuB062+qA== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Feb 2017 11:53:57.0910 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0301MB0730 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: madalin.bucur@nxp.com Cc: camelia.groza@nxp.com, Madalin Bucur , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, davem@davemloft.net Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" From: Camelia Groza Implement the setup_tc ndo to configure prioritised Tx traffic classes. Priorities range from 0 (lowest) to 3 (highest). The driver assigns NR_CPUS queues to each traffic class. Signed-off-by: Camelia Groza Signed-off-by: Madalin Bucur --- drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c index ac75d09..1b3ea38 100644 --- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c @@ -342,6 +342,41 @@ static void dpaa_get_stats64(struct net_device *net_dev, } } +static int dpaa_setup_tc(struct net_device *net_dev, u32 handle, __be16 proto, + struct tc_to_netdev *tc) +{ + struct dpaa_priv *priv = netdev_priv(net_dev); + int i; + + if (tc->type != TC_SETUP_MQPRIO) + return -EINVAL; + + if (tc->tc == priv->num_tc) + return 0; + + if (!tc->tc) { + netdev_reset_tc(net_dev); + goto out; + } + + if (tc->tc > DPAA_TC_NUM) { + netdev_err(net_dev, "Too many traffic classes: max %d supported.\n", + DPAA_TC_NUM); + return -EINVAL; + } + + netdev_set_num_tc(net_dev, tc->tc); + + for (i = 0; i < tc->tc; i++) + netdev_set_tc_queue(net_dev, i, DPAA_TC_TXQ_NUM, + i * DPAA_TC_TXQ_NUM); + +out: + priv->num_tc = tc->tc ? tc->tc : 1; + netif_set_real_num_tx_queues(net_dev, priv->num_tc * DPAA_TC_TXQ_NUM); + return 0; +} + static struct mac_device *dpaa_mac_dev_get(struct platform_device *pdev) { struct platform_device *of_dev; @@ -2417,6 +2452,7 @@ static const struct net_device_ops dpaa_ops = { .ndo_validate_addr = eth_validate_addr, .ndo_set_rx_mode = dpaa_set_rx_mode, .ndo_do_ioctl = dpaa_ioctl, + .ndo_setup_tc = dpaa_setup_tc, }; static int dpaa_napi_add(struct net_device *net_dev)