From patchwork Tue Feb 7 14:15:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurentiu Tudor X-Patchwork-Id: 9560247 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 4CC926047A for ; Tue, 7 Feb 2017 14:18:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3995C28426 for ; Tue, 7 Feb 2017 14:18:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2D52728438; Tue, 7 Feb 2017 14:18:00 +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=-1.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00 autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 92ED528426 for ; Tue, 7 Feb 2017 14:17:58 +0000 (UTC) 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 1cb6ah-0004fZ-Iy; Tue, 07 Feb 2017 14:17:55 +0000 Received: from merlin.infradead.org ([205.233.59.134]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1cb6Z9-00036F-Sr for linux-arm-kernel@bombadil.infradead.org; Tue, 07 Feb 2017 14:16:20 +0000 Received: from mail-by2nam03on0046.outbound.protection.outlook.com ([104.47.42.46] helo=NAM03-BY2-obe.outbound.protection.outlook.com) by merlin.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1cb6Z7-00037A-47 for linux-arm-kernel@lists.infradead.org; Tue, 07 Feb 2017 14:16:19 +0000 Received: from DM5PR03CA0004.namprd03.prod.outlook.com (10.175.104.14) by BN1PR0301MB0724.namprd03.prod.outlook.com (10.160.78.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.888.16; Tue, 7 Feb 2017 14:15:36 +0000 Received: from BN1BFFO11FD021.protection.gbl (2a01:111:f400:7c10::1:103) by DM5PR03CA0004.outlook.office365.com (2603:10b6:3:118::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.888.16 via Frontend Transport; Tue, 7 Feb 2017 14:15:36 +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 BN1BFFO11FD021.mail.protection.outlook.com (10.58.144.84) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.888.7 via Frontend Transport; Tue, 7 Feb 2017 14:15:36 +0000 Received: from rhuath.am.freescale.net (rhuath.am.freescale.net [10.81.117.102]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v17EFXHf023812; Tue, 7 Feb 2017 07:15:35 -0700 From: To: Subject: [PATCH 10/10] staging: fsl-mc: dprc: drop unused APIs Date: Tue, 7 Feb 2017 08:15:30 -0600 Message-ID: <20170207141530.12979-11-laurentiu.tudor@nxp.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170207141530.12979-1-laurentiu.tudor@nxp.com> References: <20170207141530.12979-1-laurentiu.tudor@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131309505364475221; (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)(39840400002)(39450400003)(39860400002)(39850400002)(39410400002)(39380400002)(39400400002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(53936002)(68736007)(38730400002)(110136004)(8676002)(77096006)(5890100001)(53946003)(6916009)(6666003)(2950100002)(356003)(305945005)(7416002)(5003940100001)(104016004)(4326007)(2876002)(2906002)(54906002)(86152003)(8656002)(97736004)(50226002)(81166006)(8936002)(81156014)(189998001)(92566002)(1076002)(50986999)(47776003)(50466002)(48376002)(106466001)(2351001)(76176999)(33646002)(105606002)(86362001)(85426001)(36756003)(5660300001)(626004); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1PR0301MB0724; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD021; 1:cgA5NdGccVXwnJ33zmyBNmQaxWDfMO9W/Ka2A96ViX+dLYtaemOFu2+batD9jnSIqZpEic6Gbre3p5NwpkEUaFR7jxv14sECyL9HDnCSG8UytJjywG9rvn3pkd1YZtx9EGiJ2oX/TBkRitN+beAC4I3JhLY27cyBZoiKEkBL+eDyVhJNS65plhZrpYzBOv+UNlk2zy+3TGnjTIxkOWwvOLnO1Yt2Vxi66vwi2pJK70euswOx5VS/30J/ZAWvoLV7GlB6D3MTwTaz6B+sSBQ4hDkGkAN6MuEaSJKbuI2GpV5Jop/5DAdDJTa1r7Kc23kZqB331mG3gwJfxh83KP+JFm5GYa1wN4aa7BrFqIUnhkD/w/fq0efOcxJk1cKffcTVfc5THwNlN4D6F4ob08AF8801VIxZO0cW0bGdmvrTIF64eXvrOJIJt54c1guS9KqYdl/Ym6j6Kqvk5br5qHAAi3P8aehC0sp2hYQMHNQpqtosunrY4FkYmUUuGU68SlKQxTMDbL8qWw/zymr/2In6ckwrclRhPCuWS7Qn1vAvHc0R0i3xlQe8R8CAARQngvBggmTUXMRH3YDjIPfLKS6Px4rCrKN+38PJ9csVvKzQOMn1wvkuqzx0rAEMw8KToX/aWotfWYA7+wpUEfuhcr7jBuStvPR387V3xGsbKRDcofwZaHt0CxUY+NoL6Er6IDyNz7ZskXWmKehK1LHnqaHTXpV0nIrFHAHn0oAER6X93ySIivCzDsY+dvvwvRBFV6BkTnVCrPcQ/AZw4+rfRqG7kQ== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 7f047b00-aef9-4e6f-bd55-08d44f63c958 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BN1PR0301MB0724; X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0724; 3:Y1OphdBPyVl3j2WbIGY/m9eV+VkMWXRWFymzfNCjdTl5Hvw/IZmG17iYh+c8QTub7iFDCxFkNyaXtOpMuZjiLcw7zlAZnI/s2xikIg0pdQW3R5NW2OO1C3TE3CO///Bm0qPmG/6YK0naODZ/XsiA2q2C6G0yqxSDpUEFpwOFFjxTZPImA5j0ly0YNKEa2HEPWVNqTzOIk9M2od2VWBgke80UJsxygx8h5+TitWjsFsIrbC1bInlo4tyhOOl0iNQ0OJkL9qCWSa7o0Wyg26TN1h7RHHc98+Vo/+xwQTwNecb73WkpZVJM83C8voSqa27G26tAt5KJO7oIli4NOfLo8wlppXvNXCMtgMw8jRn4yDWSz66rIxh4hpjYNHXGNVgX; 25:2Bbysj1H4kImUbIzs3SbyZu/KCzkOYKXAtxxcWSQvzQLBd+s4PxnL/6gFkfGE82aEVx3bg6cLGgXwR9Z1vHOnMKwUlcw61webQzRj1CjH0/2WUNA3jPjkv9Ot8rab7B4jmGSaktKbIX2mugtRx1fird8RSL0fx52XA+gWmJzz006TyWjMiXRl3q87xXYz2clTnT3FzAv8wsuMWOeOokwYnM2+/Gd7JKr5/yIyV/AaVflhQIG3YxVlMpaRn5AMcvuZo/t+8d0lmtZU2s/PqRaj1D+lLMmZrV5gjYCc+rg2C82/fWeWO08JoheUHDCPd2hO+BGAyaIYg5mpmt2r5qFvAoEsXUmQt9heXc16+i28W/pbXH+fbj4TPQokiJ1V1q2yVNhP06Qobfn+HHwgw7NQ4HCpXyl70wj63V0UK1f6q63TM9IxlYDDUl+n0mfXE+B4kCt1ersLEjmN+NFvTJXqQ== X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0724; 31:oX3C6rjTUpXnduOgml2giZQykv6Yfr7jwJgZoUY43ZTmVf5jLQD5mXeoidssEvX6RkIXAYO0xXzC36sNMxJd67yo9Uc/dxYVHOHYUEX3gSG9sN1EYhLFZ/jRBYN1aBJDh8eJ1fe9rFMLI7Jxy6ABk2S+pudpFrWEu073Hm/89nKh5NUOfqFGKsxWY1i/1aEEvZs+NZGlcIbwXKhlRfG+S3Bu0InTJFl5aTgxuZNY4cVUEF80sB3OeqcsAIhKwnK1GdEEwx3/wileWiNBsz9ziw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(275809806118684)(21532816269658); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(13023025)(13024025)(13018025)(20170203043)(2017020603029)(13015025)(13017025)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6096035)(20161123561025)(20161123559025)(20161123556025)(20161123563025)(20161123565025); SRVR:BN1PR0301MB0724; BCL:0; PCL:0; RULEID:(400006); SRVR:BN1PR0301MB0724; X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0724; 4:JMugGrsNG5ZkhvBqEuWklsEutXf8xtRxphcn733/eGH7dJRFEXpMBZaxVHaRI0tU4WeT6PWxUW2ZPgZGYedFkfRmWNfG14CYgMmSNjeGPjyiPjplRDWFM/4vAR5dMFqyZzce4kL3kHYqsDQ4xTJWvaxt1/vOAwylpV5CK5thhMQ+8puwXYiza2/Pops3LrhZ2fZrn6SZpLXaCSk7UnlGI0pjNWJwf1AjRVHS3yEA2dqM2Yb67kKhjDi+SYRWabyc+/w0wOjGOqE7gTNRdMV+C7Kg6wmaaAILdBpL1P3M+yYIny82YZ7JlXrpna4IE73z9w+OFP4Qkn3E6p8v+Pmj8xU7INlj4y2vpjh2hxJG85OtaJucPUbkzoYZI885bySpQzDaYtQXRiBy9t2lgXh2YFivq29Is3vVb1DUypOcLmvrW25f8Gm0iimD2DQoIAMMG1hPe8u1/QjUnl0jlmfCXex2pGSMcK4ZLR+9fi6ackFWvLZYvJfdwiFeQBKk0OIcxlJXnnP3jejOxbEDsiTAb5lLJRiGyn7LaycMp6l7pKzdLHJzS026zlbP0thTBeTD/0EkwGplgSBdnqXZJqNeE5SY+EY732Euh86cLjfsDSjDmshkY2ZvcJdVrxCybmwLj6/AqeWhr/agJ7evcWvY6zIYssiW+T/6oKP7LKUcvMyQSKO+vrZ9vtjsaRj/Zy1+vVu+parYvmM9UMeA+S+xlFXz7hf/AT5AMLKoUNsBMOzORdnJkZk6B9PVNVj5V8chyGOUT3YB2/mvW0ZRNab8PvenV0PYkVp+Px+VkMfW1QW61153GzazrTI9tfBzgWL1FSoa/LQYssJZf5xpnXAMkx8YpnHbvrZMPErvweZ+Xysy5gllyJ1yjQyyMOsfsB9c X-Forefront-PRVS: 0211965D06 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR0301MB0724; 23:3q+AWHRkZK+oUFwXWCdherIRLFR7JExUOq9nAjo?= =?us-ascii?Q?DJZnF2g+uYTyD95tIjCRE5i/M/AotA8UFB98Bb+fvPtwtEINgHgGXAcji8pA?= =?us-ascii?Q?FJhnITaHfGGx/vzN4N43qduUmDswRvHsx3KztH9iWsMQzS/gNVmCpWOmDNHL?= =?us-ascii?Q?VFEgR+wwgw9nPCQCzBb9GDQfsGIJw/9xZRHjHQpvl1/Ai0TMOcJPOhvJbjND?= =?us-ascii?Q?3cx841yA8duO6Fu9tJcX6bnRIyZZ8CnK/zklULwkwXzhF781kInzUtuN011p?= =?us-ascii?Q?I232FnusE4J2S29XZZ7O4D+wykHliTnI/nhCrk+LdJ5hUu6pQXuT9EvTvqaP?= =?us-ascii?Q?zDefFkKAXdOdoc4VbMlsnEz8FFSUKc9mvMwsZGEJrxByAGfRo1+p0JhCIHTx?= =?us-ascii?Q?HOBrj4N3SqOMrQQK/aXrgguO8j5LvVLd2+/gYC2d2+EHGg9Nxhg0kLKtaJEC?= =?us-ascii?Q?bIDnczNrcOtTv3Ae9ibFS+2q3G+LzIicow3samIId133KqkXxa87UkE918qt?= =?us-ascii?Q?usB+aNgZSGm6px/5aIvnlL6hZb8ewyan+M2DfjVQgPa76vrOqj4sy1FbhJQb?= =?us-ascii?Q?ODTIcOFi27Us28HCnFyXZxPzpqaagGqofTcyhVqiGyoaNWl3DbpbaiFsgBf/?= =?us-ascii?Q?WgVwdQQhxGmiQ2B480SP0/LDREjgJfR+ZZ5+TGud/MZocUqh+opsHqh1uDWc?= =?us-ascii?Q?1xeT4R6aLsIuJJWz63EPSW3ykHO1PETRnzACMA23oIwb9QFiipOlw9IuzSP1?= =?us-ascii?Q?/QzTjqa3za9MvkOnDaPJeixEDtK121f9zW8pq9TnR2FZeE+V0coKbTGY5aOX?= =?us-ascii?Q?m3j53AJjmLGhVvD6yO4L2EZV3cA+YLBScOw6xmr5ugoPJfFS/uD4V3uEKfUg?= =?us-ascii?Q?ini0XQiLnVmDIoVxXEEiUZRZXr3LwzbKQKyBP6JyLKrgps/17FHJOmP5YPN/?= =?us-ascii?Q?d6d7XeXDOV0nvK5SP62Mj1pY7sX4UTeJkf2+Ev06A7eN7mgrbBmcmNEPzcvm?= =?us-ascii?Q?Z7y79qOvP/bFvJzG9MmOSKrMXCQ+t4DMWrGsuyg7xG10y9dW0kYhPsyMyEyi?= =?us-ascii?Q?iXAGxbFkXGcmZgsRLDBX+cZoEO+ikuZKX8oJ8WiFTf5AL2Jb3f6BbPn54tNY?= =?us-ascii?Q?wTFcpXrhm7vmns3RZ1bAsEv7bvlY2ixhtkNpWH41gDh59SvfgnvZQjM8NpIS?= =?us-ascii?Q?/9RVfDRulnmNBtvK2FpRHg3DyC+BcI6MAZChV0gYGW7gAmdHX+i4edXm6s/6?= =?us-ascii?Q?U4mYkPtWGV/evsPNXmXB2z3Z0BepPYKTDYzQW+W5C3RtAcvO+Yj63Jbam/pN?= =?us-ascii?Q?q4OHDV4BbHZ857D4nlKHXEeRo+tfxINC/foJNr6FNt0sOJaGH8HIzvDjfZrk?= =?us-ascii?Q?vVE11V72X8SPt+qBvMjhcX+wvA/FDSxON3BMQhL0bz02vM6oPpYS4CphUcyj?= =?us-ascii?Q?+WN31prWIUnQX/qBEygtF77XGlx+nFOs=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0724; 6:o7yUvWCQ/QkIG/MwwVvH1ozMmNGKkk6aCXwpfefXS+7qa3GwTuxybIHutyRkb7bPpMAZOrmv/+us9xfZKtIM+TYiH2rVjVno6Fke5H8IbHixV1axD8qOg6k6yfvlAXZ7HwzQ+z6IDi6yeKY8F+kiuiOA3rZFmFb0Tj3JcEuqJFI61RtKmBmkXTfWT7DL/PypIN5Wr9AmtJAB6Kmu4nfVN8SUjbOJKSwbKO8tsvU/KmDmltPUpLulubK450C41dmb8M67hAVnH7IuedAYlpwtJJSSIq3lu4dgOjSP6fPwY8P+wTZxAwMNzxuK7/dhFWwGj4rWlfFXmuVFt/hWii1HmmRo51dJbQZCsZi4rTTY8zR1jkie1uDgNBkR73j06yTi9cRexmKMVJFIlFtQu5NCZLIjlh/hHfmEW9bhq3fH008=; 5:Cey+I0N7+weqFNn8K66qa+3QoSu/uxaMo4QNA2AMXLEGBwzCu8ANVr93iojjo9dxoapcf0isX8o+D/B64UT3sB/DTNSmbucS8z4L7671oIK4ARlXWBv2WFiJhcang9Cr2jE3h5dX1Fi4hdJN3AbM0U00SX0aDaEiApX78lfu54HQkx0UpnNSlVFY1LFREuiO; 24:OXyLM53qIxP1e+aIL++9TfxwiLl7O+JQKX+eKjzLCh+zVc5g3ipnDhTC+oGhdeuqsB5Hk0DVrZcHzdJXpr5tb5Y2cbDakMqATcy7vYKLllE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0724; 7:m2wiClOMO0spNI8HtDHY88lyA2zu3+phQNGMykoAuB+IjBZXoArPEmpWy52EyMHuKGas9eAj0bQqyyPA5xpxi3IHcEbqg+nyid+qiieGAcSG5S+SGaDqPWXtkAruo3cnS1ZRw34P0qrHjobrUgsu76M/l0DvWf/ZDUWkor3FIGs32kJOG6GtP02oe+qMCbUSyZIi2LAohS67rLOQhGpDOqyhsgdtpYdY5iehBiV3ZO7GkO47iYIxh8fGcbwO66QDf73i4096qT9S4JLxwJvydu0mtv/GN4rqlRKlb9tCwpPuW4myGnWr062yPcqDnJ3ExjjGnJsUt4oBNCHxFdkit4pvpCvLAiew9vURTR6Tm+UI6m9f/rNswT8pB5PX4r5Dzc3LSr/OIQeJi6YJYX3BOO5THZlWBl1XfSxQ7vs1Hl776qTnsv6OWxOZ0S9CqOHBcWVKV6JhwFwA8mQ/eeuM4r1HG5SR5VijFpAgNLBfX3O5XdD0coze6AVcItY5WBynPM9mOQX+LQ5CXj+rqBsLfg== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Feb 2017 14:15:36.1823 (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: BN1PR0301MB0724 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170207_091617_515472_72EB02A4 X-CRM114-Status: GOOD ( 12.83 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, arnd@arndb.de, ruxandra.radulescu@nxp.com, roy.pledge@nxp.com, linux-kernel@vger.kernel.org, agraf@suse.de, catalin.horghidan@nxp.com, linux-arm-kernel@lists.infradead.org, ioana.ciornei@nxp.com, leoyang.li@nxp.com, bharat.bhushan@nxp.com, stuart.yoder@nxp.com, Laurentiu Tudor Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP From: Laurentiu Tudor Leave only APIs that area actually used in the bus driver. The patch is mostly mechanical, with a couple exceptions: - getters/setters were not removed even if only one of them is being used - versioning API was also left in place They will be added back on an as-needed basis. Signed-off-by: Laurentiu Tudor --- drivers/staging/fsl-mc/bus/dprc-cmd.h | 18 - drivers/staging/fsl-mc/bus/dprc.c | 666 ---------------------------------- drivers/staging/fsl-mc/include/dprc.h | 243 ------------- 3 files changed, 927 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/dprc-cmd.h b/drivers/staging/fsl-mc/bus/dprc-cmd.h index 588b8ca..e9fdca4 100644 --- a/drivers/staging/fsl-mc/bus/dprc-cmd.h +++ b/drivers/staging/fsl-mc/bus/dprc-cmd.h @@ -53,11 +53,9 @@ /* Command IDs */ #define DPRC_CMDID_CLOSE DPRC_CMD(0x800) #define DPRC_CMDID_OPEN DPRC_CMD(0x805) -#define DPRC_CMDID_CREATE DPRC_CMD(0x905) #define DPRC_CMDID_GET_API_VERSION DPRC_CMD(0xa05) #define DPRC_CMDID_GET_ATTR DPRC_CMD(0x004) -#define DPRC_CMDID_RESET_CONT DPRC_CMD(0x005) #define DPRC_CMDID_SET_IRQ DPRC_CMD(0x010) #define DPRC_CMDID_GET_IRQ DPRC_CMD(0x011) @@ -68,29 +66,13 @@ #define DPRC_CMDID_GET_IRQ_STATUS DPRC_CMD(0x016) #define DPRC_CMDID_CLEAR_IRQ_STATUS DPRC_CMD(0x017) -#define DPRC_CMDID_CREATE_CONT DPRC_CMD(0x151) -#define DPRC_CMDID_DESTROY_CONT DPRC_CMD(0x152) #define DPRC_CMDID_GET_CONT_ID DPRC_CMD(0x830) -#define DPRC_CMDID_SET_RES_QUOTA DPRC_CMD(0x155) -#define DPRC_CMDID_GET_RES_QUOTA DPRC_CMD(0x156) -#define DPRC_CMDID_ASSIGN DPRC_CMD(0x157) -#define DPRC_CMDID_UNASSIGN DPRC_CMD(0x158) #define DPRC_CMDID_GET_OBJ_COUNT DPRC_CMD(0x159) #define DPRC_CMDID_GET_OBJ DPRC_CMD(0x15A) #define DPRC_CMDID_GET_RES_COUNT DPRC_CMD(0x15B) -#define DPRC_CMDID_GET_RES_IDS DPRC_CMD(0x15C) #define DPRC_CMDID_GET_OBJ_REG DPRC_CMD(0x15E) #define DPRC_CMDID_SET_OBJ_IRQ DPRC_CMD(0x15F) #define DPRC_CMDID_GET_OBJ_IRQ DPRC_CMD(0x160) -#define DPRC_CMDID_SET_OBJ_LABEL DPRC_CMD(0x161) -#define DPRC_CMDID_GET_OBJ_DESC DPRC_CMD(0x162) - -#define DPRC_CMDID_CONNECT DPRC_CMD(0x167) -#define DPRC_CMDID_DISCONNECT DPRC_CMD(0x168) -#define DPRC_CMDID_GET_POOL DPRC_CMD(0x169) -#define DPRC_CMDID_GET_POOL_COUNT DPRC_CMD(0x16A) - -#define DPRC_CMDID_GET_CONNECTION DPRC_CMD(0x16C) struct dprc_cmd_open { __le32 container_id; diff --git a/drivers/staging/fsl-mc/bus/dprc.c b/drivers/staging/fsl-mc/bus/dprc.c index 572edd4..fcf7b47 100644 --- a/drivers/staging/fsl-mc/bus/dprc.c +++ b/drivers/staging/fsl-mc/bus/dprc.c @@ -100,133 +100,6 @@ int dprc_close(struct fsl_mc_io *mc_io, EXPORT_SYMBOL(dprc_close); /** - * dprc_create_container() - Create child container - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @cfg: Child container configuration - * @child_container_id: Returned child container ID - * @child_portal_offset: Returned child portal offset from MC portal base - * - * Return: '0' on Success; Error code otherwise. - */ -int dprc_create_container(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - struct dprc_cfg *cfg, - int *child_container_id, - u64 *child_portal_offset) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_create_container *cmd_params; - struct dprc_rsp_create_container *rsp_params; - int err; - - /* prepare command */ - cmd_params = (struct dprc_cmd_create_container *)cmd.params; - cmd_params->options = cpu_to_le32(cfg->options); - cmd_params->icid = cpu_to_le16(cfg->icid); - cmd_params->portal_id = cpu_to_le32(cfg->portal_id); - strncpy(cmd_params->label, cfg->label, 16); - cmd_params->label[15] = '\0'; - - cmd.header = mc_encode_cmd_header(DPRC_CMDID_CREATE_CONT, - cmd_flags, token); - - /* send command to mc*/ - err = mc_send_command(mc_io, &cmd); - if (err) - return err; - - /* retrieve response parameters */ - rsp_params = (struct dprc_rsp_create_container *)cmd.params; - *child_container_id = le32_to_cpu(rsp_params->child_container_id); - *child_portal_offset = le64_to_cpu(rsp_params->child_portal_addr); - - return 0; -} - -/** - * dprc_destroy_container() - Destroy child container. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @child_container_id: ID of the container to destroy - * - * This function terminates the child container, so following this call the - * child container ID becomes invalid. - * - * Notes: - * - All resources and objects of the destroyed container are returned to the - * parent container or destroyed if were created be the destroyed container. - * - This function destroy all the child containers of the specified - * container prior to destroying the container itself. - * - * warning: Only the parent container is allowed to destroy a child policy - * Container 0 can't be destroyed - * - * Return: '0' on Success; Error code otherwise. - * - */ -int dprc_destroy_container(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int child_container_id) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_destroy_container *cmd_params; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_DESTROY_CONT, - cmd_flags, token); - cmd_params = (struct dprc_cmd_destroy_container *)cmd.params; - cmd_params->child_container_id = cpu_to_le32(child_container_id); - - /* send command to mc*/ - return mc_send_command(mc_io, &cmd); -} - -/** - * dprc_reset_container - Reset child container. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @child_container_id: ID of the container to reset - * - * In case a software context crashes or becomes non-responsive, the parent - * may wish to reset its resources container before the software context is - * restarted. - * - * This routine informs all objects assigned to the child container that the - * container is being reset, so they may perform any cleanup operations that are - * needed. All objects handles that were owned by the child container shall be - * closed. - * - * Note that such request may be submitted even if the child software context - * has not crashed, but the resulting object cleanup operations will not be - * aware of that. - * - * Return: '0' on Success; Error code otherwise. - */ -int dprc_reset_container(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int child_container_id) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_reset_container *cmd_params; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_RESET_CONT, - cmd_flags, token); - cmd_params = (struct dprc_cmd_reset_container *)cmd.params; - cmd_params->child_container_id = cpu_to_le32(child_container_id); - - /* send command to mc*/ - return mc_send_command(mc_io, &cmd); -} - -/** * dprc_get_irq() - Get IRQ information from the DPRC. * @mc_io: Pointer to MC portal's I/O object * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' @@ -570,277 +443,6 @@ int dprc_get_attributes(struct fsl_mc_io *mc_io, } /** - * dprc_set_res_quota() - Set allocation policy for a specific resource/object - * type in a child container - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @child_container_id: ID of the child container - * @type: Resource/object type - * @quota: Sets the maximum number of resources of the selected type - * that the child container is allowed to allocate from its parent; - * when quota is set to -1, the policy is the same as container's - * general policy. - * - * Allocation policy determines whether or not a container may allocate - * resources from its parent. Each container has a 'global' allocation policy - * that is set when the container is created. - * - * This function sets allocation policy for a specific resource type. - * The default policy for all resource types matches the container's 'global' - * allocation policy. - * - * Return: '0' on Success; Error code otherwise. - * - * @warning Only the parent container is allowed to change a child policy. - */ -int dprc_set_res_quota(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int child_container_id, - char *type, - u16 quota) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_set_res_quota *cmd_params; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_RES_QUOTA, - cmd_flags, token); - cmd_params = (struct dprc_cmd_set_res_quota *)cmd.params; - cmd_params->child_container_id = cpu_to_le32(child_container_id); - cmd_params->quota = cpu_to_le16(quota); - strncpy(cmd_params->type, type, 16); - cmd_params->type[15] = '\0'; - - /* send command to mc*/ - return mc_send_command(mc_io, &cmd); -} - -/** - * dprc_get_res_quota() - Gets the allocation policy of a specific - * resource/object type in a child container - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @child_container_id; ID of the child container - * @type: resource/object type - * @quota: Returnes the maximum number of resources of the selected type - * that the child container is allowed to allocate from the parent; - * when quota is set to -1, the policy is the same as container's - * general policy. - * - * Return: '0' on Success; Error code otherwise. - */ -int dprc_get_res_quota(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int child_container_id, - char *type, - u16 *quota) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_get_res_quota *cmd_params; - struct dprc_rsp_get_res_quota *rsp_params; - int err; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_RES_QUOTA, - cmd_flags, token); - cmd_params = (struct dprc_cmd_get_res_quota *)cmd.params; - cmd_params->child_container_id = cpu_to_le32(child_container_id); - strncpy(cmd_params->type, type, 16); - cmd_params->type[15] = '\0'; - - /* send command to mc*/ - err = mc_send_command(mc_io, &cmd); - if (err) - return err; - - /* retrieve response parameters */ - rsp_params = (struct dprc_rsp_get_res_quota *)cmd.params; - *quota = le16_to_cpu(rsp_params->quota); - - return 0; -} - -/** - * dprc_assign() - Assigns objects or resource to a child container. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @container_id: ID of the child container - * @res_req: Describes the type and amount of resources to - * assign to the given container - * - * Assignment is usually done by a parent (this DPRC) to one of its child - * containers. - * - * According to the DPRC allocation policy, the assigned resources may be taken - * (allocated) from the container's ancestors, if not enough resources are - * available in the container itself. - * - * The type of assignment depends on the dprc_res_req options, as follows: - * - DPRC_RES_REQ_OPT_EXPLICIT: indicates that assigned resources should have - * the explicit base ID specified at the id_base_align field of res_req. - * - DPRC_RES_REQ_OPT_ALIGNED: indicates that the assigned resources should be - * aligned to the value given at id_base_align field of res_req. - * - DPRC_RES_REQ_OPT_PLUGGED: Relevant only for object assignment, - * and indicates that the object must be set to the plugged state. - * - * A container may use this function with its own ID in order to change a - * object state to plugged or unplugged. - * - * If IRQ information has been set in the child DPRC, it will signal an - * interrupt following every change in its object assignment. - * - * Return: '0' on Success; Error code otherwise. - */ -int dprc_assign(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int container_id, - struct dprc_res_req *res_req) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_assign *cmd_params; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_ASSIGN, - cmd_flags, token); - cmd_params = (struct dprc_cmd_assign *)cmd.params; - cmd_params->container_id = cpu_to_le32(container_id); - cmd_params->options = cpu_to_le32(res_req->options); - cmd_params->num = cpu_to_le32(res_req->num); - cmd_params->id_base_align = cpu_to_le32(res_req->id_base_align); - strncpy(cmd_params->type, res_req->type, 16); - cmd_params->type[15] = '\0'; - - /* send command to mc*/ - return mc_send_command(mc_io, &cmd); -} - -/** - * dprc_unassign() - Un-assigns objects or resources from a child container - * and moves them into this (parent) DPRC. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @child_container_id: ID of the child container - * @res_req: Describes the type and amount of resources to un-assign from - * the child container - * - * Un-assignment of objects can succeed only if the object is not in the - * plugged or opened state. - * - * Return: '0' on Success; Error code otherwise. - */ -int dprc_unassign(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int child_container_id, - struct dprc_res_req *res_req) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_unassign *cmd_params; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_UNASSIGN, - cmd_flags, - token); - cmd_params = (struct dprc_cmd_unassign *)cmd.params; - cmd_params->child_container_id = cpu_to_le32(child_container_id); - cmd_params->options = cpu_to_le32(res_req->options); - cmd_params->num = cpu_to_le32(res_req->num); - cmd_params->id_base_align = cpu_to_le32(res_req->id_base_align); - strncpy(cmd_params->type, res_req->type, 16); - cmd_params->type[15] = '\0'; - - /* send command to mc*/ - return mc_send_command(mc_io, &cmd); -} - -/** - * dprc_get_pool_count() - Get the number of dprc's pools - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @mc_io: Pointer to MC portal's I/O object - * @token: Token of DPRC object - * @pool_count: Returned number of resource pools in the dprc - * - * Return: '0' on Success; Error code otherwise. - */ -int dprc_get_pool_count(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int *pool_count) -{ - struct mc_command cmd = { 0 }; - struct dprc_rsp_get_pool_count *rsp_params; - int err; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_POOL_COUNT, - cmd_flags, token); - - /* send command to mc*/ - err = mc_send_command(mc_io, &cmd); - if (err) - return err; - - /* retrieve response parameters */ - rsp_params = (struct dprc_rsp_get_pool_count *)cmd.params; - *pool_count = le32_to_cpu(rsp_params->pool_count); - - return 0; -} - -/** - * dprc_get_pool() - Get the type (string) of a certain dprc's pool - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @pool_index; Index of the pool to be queried (< pool_count) - * @type: The type of the pool - * - * The pool types retrieved one by one by incrementing - * pool_index up to (not including) the value of pool_count returned - * from dprc_get_pool_count(). dprc_get_pool_count() must - * be called prior to dprc_get_pool(). - * - * Return: '0' on Success; Error code otherwise. - */ -int dprc_get_pool(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int pool_index, - char *type) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_get_pool *cmd_params; - struct dprc_rsp_get_pool *rsp_params; - int err; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_POOL, - cmd_flags, - token); - cmd_params = (struct dprc_cmd_get_pool *)cmd.params; - cmd_params->pool_index = cpu_to_le32(pool_index); - - /* send command to mc*/ - err = mc_send_command(mc_io, &cmd); - if (err) - return err; - - /* retrieve response parameters */ - rsp_params = (struct dprc_rsp_get_pool *)cmd.params; - strncpy(type, rsp_params->type, 16); - type[15] = '\0'; - - return 0; -} - -/** * dprc_get_obj_count() - Obtains the number of objects in the DPRC * @mc_io: Pointer to MC portal's I/O object * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' @@ -932,64 +534,6 @@ int dprc_get_obj(struct fsl_mc_io *mc_io, EXPORT_SYMBOL(dprc_get_obj); /** - * dprc_get_obj_desc() - Get object descriptor. - * - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @obj_type: The type of the object to get its descriptor. - * @obj_id: The id of the object to get its descriptor - * @obj_desc: The returned descriptor to fill and return to the user - * - * Return: '0' on Success; Error code otherwise. - * - */ -int dprc_get_obj_desc(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - char *obj_type, - int obj_id, - struct dprc_obj_desc *obj_desc) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_get_obj_desc *cmd_params; - struct dprc_rsp_get_obj_desc *rsp_params; - int err; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_OBJ_DESC, - cmd_flags, - token); - cmd_params = (struct dprc_cmd_get_obj_desc *)cmd.params; - cmd_params->obj_id = cpu_to_le32(obj_id); - strncpy(cmd_params->type, obj_type, 16); - cmd_params->type[15] = '\0'; - - /* send command to mc*/ - err = mc_send_command(mc_io, &cmd); - if (err) - return err; - - /* retrieve response parameters */ - rsp_params = (struct dprc_rsp_get_obj_desc *)cmd.params; - obj_desc->id = le32_to_cpu(rsp_params->id); - obj_desc->vendor = le16_to_cpu(rsp_params->vendor); - obj_desc->irq_count = rsp_params->irq_count; - obj_desc->region_count = rsp_params->region_count; - obj_desc->state = le32_to_cpu(rsp_params->state); - obj_desc->ver_major = le16_to_cpu(rsp_params->version_major); - obj_desc->ver_minor = le16_to_cpu(rsp_params->version_minor); - obj_desc->flags = le16_to_cpu(rsp_params->flags); - strncpy(obj_desc->type, rsp_params->type, 16); - obj_desc->type[15] = '\0'; - strncpy(obj_desc->label, rsp_params->label, 16); - obj_desc->label[15] = '\0'; - - return 0; -} -EXPORT_SYMBOL(dprc_get_obj_desc); - -/** * dprc_set_obj_irq() - Set IRQ information for object to trigger an interrupt. * @mc_io: Pointer to MC portal's I/O object * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' @@ -1128,52 +672,6 @@ int dprc_get_res_count(struct fsl_mc_io *mc_io, EXPORT_SYMBOL(dprc_get_res_count); /** - * dprc_get_res_ids() - Obtains IDs of free resources in the container - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @type: pool type - * @range_desc: range descriptor - * - * Return: '0' on Success; Error code otherwise. - */ -int dprc_get_res_ids(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - char *type, - struct dprc_res_ids_range_desc *range_desc) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_get_res_ids *cmd_params; - struct dprc_rsp_get_res_ids *rsp_params; - int err; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_RES_IDS, - cmd_flags, token); - cmd_params = (struct dprc_cmd_get_res_ids *)cmd.params; - cmd_params->iter_status = range_desc->iter_status; - cmd_params->base_id = cpu_to_le32(range_desc->base_id); - cmd_params->last_id = cpu_to_le32(range_desc->last_id); - strncpy(cmd_params->type, type, 16); - cmd_params->type[15] = '\0'; - - /* send command to mc*/ - err = mc_send_command(mc_io, &cmd); - if (err) - return err; - - /* retrieve response parameters */ - rsp_params = (struct dprc_rsp_get_res_ids *)cmd.params; - range_desc->iter_status = rsp_params->iter_status; - range_desc->base_id = le32_to_cpu(rsp_params->base_id); - range_desc->last_id = le32_to_cpu(rsp_params->last_id); - - return 0; -} -EXPORT_SYMBOL(dprc_get_res_ids); - -/** * dprc_get_obj_region() - Get region information for a specified object. * @mc_io: Pointer to MC portal's I/O object * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' @@ -1222,170 +720,6 @@ int dprc_get_obj_region(struct fsl_mc_io *mc_io, EXPORT_SYMBOL(dprc_get_obj_region); /** - * dprc_set_obj_label() - Set object label. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @obj_type: Object's type - * @obj_id: Object's ID - * @label: The required label. The maximum length is 16 chars. - * - * Return: '0' on Success; Error code otherwise. - */ -int dprc_set_obj_label(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - char *obj_type, - int obj_id, - char *label) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_set_obj_label *cmd_params; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_OBJ_LABEL, - cmd_flags, - token); - cmd_params = (struct dprc_cmd_set_obj_label *)cmd.params; - cmd_params->obj_id = cpu_to_le32(obj_id); - strncpy(cmd_params->label, label, 16); - cmd_params->label[15] = '\0'; - strncpy(cmd_params->obj_type, obj_type, 16); - cmd_params->obj_type[15] = '\0'; - - /* send command to mc*/ - return mc_send_command(mc_io, &cmd); -} -EXPORT_SYMBOL(dprc_set_obj_label); - -/** - * dprc_connect() - Connect two endpoints to create a network link between them - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @endpoint1: Endpoint 1 configuration parameters - * @endpoint2: Endpoint 2 configuration parameters - * @cfg: Connection configuration. The connection configuration is ignored for - * connections made to DPMAC objects, where rate is retrieved from the - * MAC configuration. - * - * Return: '0' on Success; Error code otherwise. - */ -int dprc_connect(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - const struct dprc_endpoint *endpoint1, - const struct dprc_endpoint *endpoint2, - const struct dprc_connection_cfg *cfg) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_connect *cmd_params; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_CONNECT, - cmd_flags, - token); - cmd_params = (struct dprc_cmd_connect *)cmd.params; - cmd_params->ep1_id = cpu_to_le32(endpoint1->id); - cmd_params->ep1_interface_id = cpu_to_le32(endpoint1->if_id); - cmd_params->ep2_id = cpu_to_le32(endpoint2->id); - cmd_params->ep2_interface_id = cpu_to_le32(endpoint2->if_id); - strncpy(cmd_params->ep1_type, endpoint1->type, 16); - cmd_params->ep1_type[15] = '\0'; - cmd_params->max_rate = cpu_to_le32(cfg->max_rate); - cmd_params->committed_rate = cpu_to_le32(cfg->committed_rate); - strncpy(cmd_params->ep2_type, endpoint2->type, 16); - cmd_params->ep2_type[15] = '\0'; - - /* send command to mc*/ - return mc_send_command(mc_io, &cmd); -} - -/** - * dprc_disconnect() - Disconnect one endpoint to remove its network connection - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @endpoint: Endpoint configuration parameters - * - * Return: '0' on Success; Error code otherwise. - */ -int dprc_disconnect(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - const struct dprc_endpoint *endpoint) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_disconnect *cmd_params; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_DISCONNECT, - cmd_flags, - token); - cmd_params = (struct dprc_cmd_disconnect *)cmd.params; - cmd_params->id = cpu_to_le32(endpoint->id); - cmd_params->interface_id = cpu_to_le32(endpoint->if_id); - strncpy(cmd_params->type, endpoint->type, 16); - cmd_params->type[15] = '\0'; - - /* send command to mc*/ - return mc_send_command(mc_io, &cmd); -} - -/** - * dprc_get_connection() - Get connected endpoint and link status if connection - * exists. - * @mc_io: Pointer to MC portal's I/O object - * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' - * @token: Token of DPRC object - * @endpoint1: Endpoint 1 configuration parameters - * @endpoint2: Returned endpoint 2 configuration parameters - * @state: Returned link state: - * 1 - link is up; - * 0 - link is down; - * -1 - no connection (endpoint2 information is irrelevant) - * - * Return: '0' on Success; -ENAVAIL if connection does not exist. - */ -int dprc_get_connection(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - const struct dprc_endpoint *endpoint1, - struct dprc_endpoint *endpoint2, - int *state) -{ - struct mc_command cmd = { 0 }; - struct dprc_cmd_get_connection *cmd_params; - struct dprc_rsp_get_connection *rsp_params; - int err; - - /* prepare command */ - cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_CONNECTION, - cmd_flags, - token); - cmd_params = (struct dprc_cmd_get_connection *)cmd.params; - cmd_params->ep1_id = cpu_to_le32(endpoint1->id); - cmd_params->ep1_interface_id = cpu_to_le32(endpoint1->if_id); - strncpy(cmd_params->ep1_type, endpoint1->type, 16); - cmd_params->ep1_type[15] = '\0'; - - /* send command to mc*/ - err = mc_send_command(mc_io, &cmd); - if (err) - return err; - - /* retrieve response parameters */ - rsp_params = (struct dprc_rsp_get_connection *)cmd.params; - endpoint2->id = le32_to_cpu(rsp_params->ep2_id); - endpoint2->if_id = le32_to_cpu(rsp_params->ep2_interface_id); - strncpy(endpoint2->type, rsp_params->ep2_type, 16); - endpoint2->type[15] = '\0'; - *state = le32_to_cpu(rsp_params->state); - - return 0; -} - -/** * dprc_get_api_version - Get Data Path Resource Container API version * @mc_io: Pointer to Mc portal's I/O object * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' diff --git a/drivers/staging/fsl-mc/include/dprc.h b/drivers/staging/fsl-mc/include/dprc.h index f9ea769..dc985cc 100644 --- a/drivers/staging/fsl-mc/include/dprc.h +++ b/drivers/staging/fsl-mc/include/dprc.h @@ -42,20 +42,6 @@ struct fsl_mc_io; -/** - * Set this value as the icid value in dprc_cfg structure when creating a - * container, in case the ICID is not selected by the user and should be - * allocated by the DPRC from the pool of ICIDs. - */ -#define DPRC_GET_ICID_FROM_POOL (u16)(~(0)) - -/** - * Set this value as the portal_id value in dprc_cfg structure when creating a - * container, in case the portal ID is not specifically selected by the - * user and should be allocated by the DPRC from the pool of portal ids. - */ -#define DPRC_GET_PORTAL_ID_FROM_POOL (int)(~(0)) - int dprc_open(struct fsl_mc_io *mc_io, u32 cmd_flags, int container_id, @@ -65,79 +51,6 @@ int dprc_close(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token); -/** - * Container general options - * - * These options may be selected at container creation by the container creator - * and can be retrieved using dprc_get_attributes() - */ - -/* - * Spawn Policy Option allowed - Indicates that the new container is allowed - * to spawn and have its own child containers. - */ -#define DPRC_CFG_OPT_SPAWN_ALLOWED 0x00000001 - -/* - * General Container allocation policy - Indicates that the new container is - * allowed to allocate requested resources from its parent container; if not - * set, the container is only allowed to use resources in its own pools; Note - * that this is a container's global policy, but the parent container may - * override it and set specific quota per resource type. - */ -#define DPRC_CFG_OPT_ALLOC_ALLOWED 0x00000002 - -/* - * Object initialization allowed - software context associated with this - * container is allowed to invoke object initialization operations. - */ -#define DPRC_CFG_OPT_OBJ_CREATE_ALLOWED 0x00000004 - -/* - * Topology change allowed - software context associated with this - * container is allowed to invoke topology operations, such as attach/detach - * of network objects. - */ -#define DPRC_CFG_OPT_TOPOLOGY_CHANGES_ALLOWED 0x00000008 - -/* AIOP - Indicates that container belongs to AIOP. */ -#define DPRC_CFG_OPT_AIOP 0x00000020 - -/* IRQ Config - Indicates that the container allowed to configure its IRQs. */ -#define DPRC_CFG_OPT_IRQ_CFG_ALLOWED 0x00000040 - -/** - * struct dprc_cfg - Container configuration options - * @icid: Container's ICID; if set to 'DPRC_GET_ICID_FROM_POOL', a free - * ICID value is allocated by the DPRC - * @portal_id: Portal ID; if set to 'DPRC_GET_PORTAL_ID_FROM_POOL', a free - * portal ID is allocated by the DPRC - * @options: Combination of 'DPRC_CFG_OPT_' options - * @label: Object's label - */ -struct dprc_cfg { - u16 icid; - int portal_id; - u64 options; - char label[16]; -}; - -int dprc_create_container(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - struct dprc_cfg *cfg, - int *child_container_id, - u64 *child_portal_offset); - -int dprc_destroy_container(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int child_container_id); - -int dprc_reset_container(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int child_container_id); /* IRQ */ @@ -252,90 +165,6 @@ int dprc_get_attributes(struct fsl_mc_io *mc_io, u16 token, struct dprc_attributes *attributes); -int dprc_set_res_quota(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int child_container_id, - char *type, - u16 quota); - -int dprc_get_res_quota(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int child_container_id, - char *type, - u16 *quota); - -/* Resource request options */ - -/* - * Explicit resource ID request - The requested objects/resources - * are explicit and sequential (in case of resources). - * The base ID is given at res_req at base_align field - */ -#define DPRC_RES_REQ_OPT_EXPLICIT 0x00000001 - -/* - * Aligned resources request - Relevant only for resources - * request (and not objects). Indicates that resources base ID should be - * sequential and aligned to the value given at dprc_res_req base_align field - */ -#define DPRC_RES_REQ_OPT_ALIGNED 0x00000002 - -/* - * Plugged Flag - Relevant only for object assignment request. - * Indicates that after all objects assigned. An interrupt will be invoked at - * the relevant GPP. The assigned object will be marked as plugged. - * plugged objects can't be assigned from their container - */ -#define DPRC_RES_REQ_OPT_PLUGGED 0x00000004 - -/** - * struct dprc_res_req - Resource request descriptor, to be used in assignment - * or un-assignment of resources and objects. - * @type: Resource/object type: Represent as a NULL terminated string. - * This string may received by using dprc_get_pool() to get resource - * type and dprc_get_obj() to get object type; - * Note: it is not possible to assign/un-assign DPRC objects - * @num: Number of resources - * @options: Request options: combination of DPRC_RES_REQ_OPT_ options - * @id_base_align: In case of explicit assignment (DPRC_RES_REQ_OPT_EXPLICIT - * is set at option), this field represents the required base ID - * for resource allocation; In case of aligned assignment - * (DPRC_RES_REQ_OPT_ALIGNED is set at option), this field - * indicates the required alignment for the resource ID(s) - - * use 0 if there is no alignment or explicit ID requirements - */ -struct dprc_res_req { - char type[16]; - u32 num; - u32 options; - int id_base_align; -}; - -int dprc_assign(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int container_id, - struct dprc_res_req *res_req); - -int dprc_unassign(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int child_container_id, - struct dprc_res_req *res_req); - -int dprc_get_pool_count(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int *pool_count); - -int dprc_get_pool(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - int pool_index, - char *type); - int dprc_get_obj_count(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token, @@ -430,27 +259,6 @@ enum dprc_iter_status { DPRC_ITER_STATUS_LAST = 2 }; -/** - * struct dprc_res_ids_range_desc - Resource ID range descriptor - * @base_id: Base resource ID of this range - * @last_id: Last resource ID of this range - * @iter_status: Iteration status - should be set to DPRC_ITER_STATUS_FIRST at - * first iteration; while the returned marker is DPRC_ITER_STATUS_MORE, - * additional iterations are needed, until the returned marker is - * DPRC_ITER_STATUS_LAST - */ -struct dprc_res_ids_range_desc { - int base_id; - int last_id; - enum dprc_iter_status iter_status; -}; - -int dprc_get_res_ids(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - char *type, - struct dprc_res_ids_range_desc *range_desc); - /* Region flags */ /* Cacheable - Indicates that region should be mapped as cacheable */ #define DPRC_REGION_CACHEABLE 0x00000001 @@ -490,57 +298,6 @@ int dprc_get_obj_region(struct fsl_mc_io *mc_io, u8 region_index, struct dprc_region_desc *region_desc); -int dprc_set_obj_label(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - char *obj_type, - int obj_id, - char *label); - -/** - * struct dprc_endpoint - Endpoint description for link connect/disconnect - * operations - * @type: Endpoint object type: NULL terminated string - * @id: Endpoint object ID - * @if_id: Interface ID; should be set for endpoints with multiple - * interfaces ("dpsw", "dpdmux"); for others, always set to 0 - */ -struct dprc_endpoint { - char type[16]; - int id; - int if_id; -}; - -/** - * struct dprc_connection_cfg - Connection configuration. - * Used for virtual connections only - * @committed_rate: Committed rate (Mbits/s) - * @max_rate: Maximum rate (Mbits/s) - */ -struct dprc_connection_cfg { - u32 committed_rate; - u32 max_rate; -}; - -int dprc_connect(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - const struct dprc_endpoint *endpoint1, - const struct dprc_endpoint *endpoint2, - const struct dprc_connection_cfg *cfg); - -int dprc_disconnect(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - const struct dprc_endpoint *endpoint); - -int dprc_get_connection(struct fsl_mc_io *mc_io, - u32 cmd_flags, - u16 token, - const struct dprc_endpoint *endpoint1, - struct dprc_endpoint *endpoint2, - int *state); - int dprc_get_api_version(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 *major_ver,