From patchwork Fri Mar 24 19:22:24 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiaying Liang X-Patchwork-Id: 9643983 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 3609D60327 for ; Fri, 24 Mar 2017 19:39:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2359627C0B for ; Fri, 24 Mar 2017 19:39:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1827F27F17; Fri, 24 Mar 2017 19:39:04 +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 0ED1727D16 for ; Fri, 24 Mar 2017 19:38:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967125AbdCXTcA (ORCPT ); Fri, 24 Mar 2017 15:32:00 -0400 Received: from mail-bl2nam02on0068.outbound.protection.outlook.com ([104.47.38.68]:53371 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S967054AbdCXT37 (ORCPT ); Fri, 24 Mar 2017 15:29:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=DOhz+JPSMc9ONCH2FAjYFkgmqcZ647FCeZcugSoMZJ8=; b=0OoSJLf30v7UlnstRtE4iLHD2pMStq73tqcmzscbaD8X1TcdbdUH8J4+Llv3VDyOqoT+D0mVY99csDU7zu09hGzBoj4cuGNox50CxfNLMLjcOgHRGA/H0cJEhN/QHVPCRINmU3abnQiELBy9WEHCkVlvIXpXzpnI6bKjKULg5pI= Received: from BN6PR02CA0067.namprd02.prod.outlook.com (10.175.94.157) by BY2PR02MB1377.namprd02.prod.outlook.com (10.162.80.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.991.14; Fri, 24 Mar 2017 19:29:49 +0000 Received: from CY1NAM02FT057.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::204) by BN6PR02CA0067.outlook.office365.com (2603:10b6:404:f9::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.991.14 via Frontend Transport; Fri, 24 Mar 2017 19:29:48 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by CY1NAM02FT057.mail.protection.outlook.com (10.152.75.110) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.977.7 via Frontend Transport; Fri, 24 Mar 2017 19:29:48 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1crUuB-0006Ip-Hs; Fri, 24 Mar 2017 12:29:47 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1crUuB-0002kt-Dn; Fri, 24 Mar 2017 12:29:47 -0700 Received: from xsj-pvapsmtp01 (mailhub.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id v2OJTi4l010427; Fri, 24 Mar 2017 12:29:45 -0700 Received: from [172.19.2.167] (helo=xsjjliang50.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1crUu8-0002jg-Nk; Fri, 24 Mar 2017 12:29:44 -0700 From: Wendy Liang To: CC: , , "Wendy Liang" , Wendy Liang , Michal Simek Subject: [RFC LINUX PATCH 08/19] remoteproc: add a function to set fw checksum rsc Date: Fri, 24 Mar 2017 12:22:24 -0700 Message-ID: <1490383355-23176-9-git-send-email-jliang@xilinx.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1490383355-23176-1-git-send-email-jliang@xilinx.com> References: <1490383355-23176-1-git-send-email-jliang@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-22962.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(39850400002)(39410400002)(39450400003)(39840400002)(2980300002)(438002)(199003)(189002)(9170700003)(356003)(47776003)(36386004)(5660300001)(2906002)(33646002)(50226002)(5003940100001)(110136004)(9786002)(107886003)(38730400002)(4326008)(2950100002)(8936002)(81166006)(77096006)(106466001)(8676002)(54906002)(2351001)(50986999)(76176999)(305945005)(48376002)(6916009)(6666003)(36756003)(50466002)(189998001)(107986001)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR02MB1377; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT057; 1:8OzHVFYzQnDcthOlal9aa4+WxzhKyP6HPYv9CT/eMhCpy1TVoSN7Ithj/8u2U5hbno3gvk6QEcZAw5+ISpletw7lZAs9SQvEN6IlcEBk1qbtrfAinF2W2/ZiLqZOQknfHjV+yhr76GfLPLQjhe+uL7zYnB4hSy/LrupZ8M2LJ+F0hAqGcwdJBj+XvGDqyBlVJy4retkuuX9GgU0vuww4B+Xv73phD2vQFyL6c7PE3Cgw7VXMz+HJ56c1WZaIZX8fNZLe4d7Qd1WH3iK3gmQBM4M/JbB8gyoe0Qs2oocz/koKy1/tSEUhIKAUKWNMBOwOmt6vGhw705JTB+p6ST5v7xLAytLECy21BFL9IZhg8kxTLrOBrW6Ef40lHuUiwPKn9XaE6ryD4ACN7Z+ygvp+We/EgafuPLGE1EbnZU8jqY1tc+HFuoD4bMRpBOn4nhYeTohihZoU7p6Cjiklep0Q1sLcOlBfXsAihW6IvTRphZWrz5qgwzrnCmckBUE+Mazt0lXfT7d8IytJQ5evNAEGWHeYsDHxbHCKcbvRJ3kicV6vYGlm3SpievsneduyyWq4OhQCHHFn7FvKiHgyBqlDqQ== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 22dde848-257b-47c1-d404-08d472ec2276 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075); SRVR:BY2PR02MB1377; X-Microsoft-Exchange-Diagnostics: 1; BY2PR02MB1377; 3:lPujs/kzFdFS4HpERcx+x/04Ll2pi1uQChO7MLxViCpKRQyXn/SBm+bNMcUWlgT8bshhIRXXUyfVEnwW7T1SGyJL3NVQY7NlzVYSG+A+FQTYxbJPJvxHP6SbqKYdoMkK01q+3U+gaH32O5oRpez1mXPkDPVzuR7EbBWeSSOeIAHCwORa5pHus9p4XKkx0lcBbz0V8R6CruNV9POTX29xdsLI7DnQl+GEvrVqKybAHt9XPkl/9i4tbgxMKmzXyIehdoc180ibcgvWLGYUNpuTBphqBQnT17YzfWthKIryYbvwieiSg5GJttvxFs3EboJ3jNPfHPXKNYLkYfCp/ZvM+Q3fBoKekTLvDkUACpCHcuuEteAf2NCZtPWgGTxLlHMyJeeQdVVMV7SutWiRBYPtbhbFKi41Ub+L2BWZIsja1cs=; 25:rjJyGdWbu+gqQIFJTWUWUNCZtRfeMZdAjLQ9FLdXFQxdrinJkwRC3bsNMvRWs6rbQYUIZTZZOtpyFPXKelyYFAttHsyZQNKYEtp8cAbX5TZK0fXT8a+KGzh3m0RYX0B+a1bapPNL0KKlpvreN/4tsHuNRqWYa4wdWMlHMp5z2hO42EAB2uMhN/+Pujx+uG/q6ojt36wR74gZQGbhwFQLbimEPyl1VLi2tBTW9UUVYaFGrkKzZcwhJuNkuYwuFX4fJhbL6sdPI3n3DCeubcigk7KfJYhEHs2nw1k4qJVRFPAb7LJXXLvXwxT9rZ5IJMTIjFgZFBII5mzN5JfmOeQPwr0a5tUc9gJOt/Yfy3xSBr1nrLKGORSX2ibsCnmcx6d57rqfEYrGdJnTBCCDovgDV54+dfLnvjQlq/neM2QK+X1qgP3B+AYNgYSEnH2TIfsRs5q4wTtwYvLzt4YoKVPhnw== X-Microsoft-Exchange-Diagnostics: 1; BY2PR02MB1377; 31:kKrzS1UXH5FZRLKYQUN6USdTDFkvyjgtm94HetR71t0D6dACvjprAuVQ+xff1SI0lBpu4ThsvCnoRR2PFrQuJ5JTvf2HluJULA6ocetxkISlXlw7hPXKi30M+QQqQ/YkRz/VEkD07B+MbiFn245gEemp3W0MvaRoJ1edVBlXk8lhldn0yM2q1/LzNr6BD4fT0mqqkOZXeCyPFd/5bTuSuK8pEaO7b2iMWwpwDAhham3b1jL9VIevCekJg/GgWgzEQ3NtxbnvYzaIH+7yi10a3w==; 20:iUgFAOGMlDiyGjNb8Xc/ofKYtZmNXxt29ry+7dKU5sozZtk250mbZo/AQk7mhZNkxYZ/kiSW8ABjw3ATRkvwF7EFR70IMCyg3QrQHWFKYimqK5bBw4aZyKLfUszx2ZICjfFTGKXifJ5hNbfT4OaBMFAqYxckVYR9YFUoiowTeJL/kSqaUS5IgqzOhUAB4RBmJj9q/SEqtzDz4ZEpBvvvgHby89wForZZz+Razn3r8L5BY7gJb+51nC9HtgPtylT4g6do6xQAsw+Myq5mfgmwQE41CQgxa6W4tEx/cCMsYbStMfICDVgqIvofGQfax3R3yyi7B131bqMR1LtlzsFcmIxBHdLgQntVDB1b+VQZusQGztmoEAZ23BYS7/5E5HsEBfG8DE1Zsz4EANNF4ypeQ/v4Y4zKqzspkaB/quw/7zXsn6NsWWbT1roeM/J8qWzYVDjPIm7f8680ijZn9F/JFE2+Z4fi0y+SYMn27OHOV2KZu0Dads9sYxFZcDkQyT6Z X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(13015025)(8121501046)(13017025)(13024025)(5005006)(13018025)(13023025)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123560025)(20161123562025)(20161123558025)(20161123555025)(6072148); SRVR:BY2PR02MB1377; BCL:0; PCL:0; RULEID:; SRVR:BY2PR02MB1377; X-Microsoft-Exchange-Diagnostics: 1; BY2PR02MB1377; 4:ej0xBi5gKKdMCc4vMd8NxQSxPypliNU7V3XgmjqPidHiElrv2yctODntOcy+fHDQQw7I/As+ApGO3HA7uBTdcuCN2uSykDKLN6lji5iKeh/qCRO2cemgA65OQKRUmyKJAsavTOZCaNhEFsVGiHRMt+b4qgQ5h1QV+25/5HzxO2Mwt6OuweGngcu28AuP/18h5Bmspbf7BzUU6urgDkxo4czpODhIidfvcprxGGHLeFmm+3iUh8zT+qsUb9KizLqKt+mVx/ubmc2fDG0qe8YKB5mFExN55N636I17kwvmFVWtnzzxLWFsFJ9ec2CvPG50MY5cacf6WDBKipOn0vOTxUaoXjEvIU98KUXL42Thjvb9fE+Xiv8bjmN1JfYQda/qViTIud2LlN9OZrrvImfZc8VOGnM+VMtuxlO4zcp4E6UFhGLH0KXpe0Ksms1rBxwO6h6xLpIMZJ5+g5TVaranRDE0A7CUkcV5ZPcLuZAiBTChu+PaPMUXLuVNQAy359a/P/zdPyOyBbgVOr9LgqxqL8eS80Myo5FIhqR3ApYj//20kUuEt9OBvHzQvvS1LaUhtgCB9LC/BEYFzOZs50wO7rcxkSrJHfNaHZuUwohU2b0eBYEFRqmy/a5f/yDjPBsEwNJKicRhfvcwbJ81pMkF6fAF+mdEBmlv1yzi0xPsz04eVDF1Xg+daaMeOrbsfaNnzgo3hSohwgvBPA51LK4TAwfQ2cPETdWDW/d/m+jkqYqYt0V9tCe5F6kThU5dsacLhM/rQA6MxNFNKAtAYiLFwg== X-Forefront-PRVS: 0256C18696 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR02MB1377; 23:YHQ5oHi73XgkBqfBrDZtZClUS3wNSNe5pHznLHyUj?= =?us-ascii?Q?MgOyItDwD/KZReKi/z0clObuuIeSxDkbg9czfA3m4cAHFJbaxghiGrL1QEwd?= =?us-ascii?Q?X0bjhnRmHkW8OL9SsT+Pgad9zqlYmGN1lc8p8QmhWGfp1m+GkNgHRVCnvnmw?= =?us-ascii?Q?7eSKqPtX6xozCJN0fGdOnABQdVzIvnCxSOqx4z7SuH6n3H48/qH8p75dZRLj?= =?us-ascii?Q?sRndPQCjyIQCXhPtMTcftr/B3m/VgyCZ7zWQ/J+iEgxzMH1Br8QBtR+VV7UZ?= =?us-ascii?Q?dhi3gxCsulkGiEbAY5dm5nQISmT78CYeKzFD6s3B61JpDDLiB6A2K1xVthrE?= =?us-ascii?Q?r03twmL246bO4pHQJAJ1usWRegBz9nOJH7T9r7vxYBoGrEFFQbU5VlSrN5Z/?= =?us-ascii?Q?v4QXDeEjOMruUsdG0rEmUWhh23Pjj2Sppyc/5g++nNed3CnT5Wpqh/TTxGH/?= =?us-ascii?Q?8YGOjj6AZuZcOPfnysfI2RVi61+fdGbcJQJLtU/z6Oi6WKpTo3hsFnI+p7Ya?= =?us-ascii?Q?udcUib2/JvznVFGy2BOgJPzomIBowTjYy15Di7+rJmusHM37i+kB/R4e9vk+?= =?us-ascii?Q?qhnmMHpAcA6oyqo2kRhbgagU5S0RYtpy8u93oHBrXkhYdHpc/Dpd9fMWJw2L?= =?us-ascii?Q?ABdOGvaGtvfhySirwqCOpeSAKdgj+rSQHTUQS4T/SKRGdiHoldBeRAILI7KL?= =?us-ascii?Q?xYsR0l1bG8XimGlVimoNNZx/xuJJErCLBEX7+AtgWg4nMVVnNR9kzORtvxCK?= =?us-ascii?Q?Hmz5D2IoHyKT/yPGMdKDMsAAUVioOvZBT36Ur6EdSOBCE653/SbMAHj9R5+i?= =?us-ascii?Q?XGQd+8DM0kiiM6SVJvSk45HDPHX1y3Z9Pyq0t2s5FoeIWe/tPl52G83mTehy?= =?us-ascii?Q?Q9EiDXyYAWPsUp8KsfucA2fvDpUMyUI99yOKhd2lX3h1HHc+RcaLmkiuqrdq?= =?us-ascii?Q?OLEY6BS4unUONoBvUVNw9CtJvojE41mxvjvQPENmccSK0yFWUuWIdDuGEl4+?= =?us-ascii?Q?nSUP7X8nn2QA+ddFQ3aWLWjOhSX2m8uf4tAXr0x+SWXMDBBthR24fuDvK2+i?= =?us-ascii?Q?n4DKtFdKhe5iAMCKkeTSKLIYbL9?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR02MB1377; 6:CB9CCG144IK2dCAR1aYsSafaUSaHCcBBcsN0XZkK1lG+uMu4kgzBJC1RxXpj2S1HMn8oNYIuXWZXt7Y5f39pEk7iTiYRlBeQAdGs9z322f5u/RtFyl3n9s+bINaTd9SouLUbRNPhN7wTsoo+Hk1rI/GNUtmK1fXyx/zUPQM4hkuBhshmM8NITaG18j8JxDnC5fWpNT1DMyTxi/gRSYIwCB5q40LfyZRr0xI2SniNAyLUru4E8PGqQmsujq1s/RFbOgbZdOiKcShSQRnmKEFd5Gsitpd2YYn1r7pyUT5bq2DMxyFE49rGrtZyGzvjlKJTbwFfaEj4ONepvPKgCkJh9X4ztCBVnuq9KWxN1RRhffPKW3e9awV0HQsfHH0Y4nnjpa1FvhuyuUHyk+lUJUZB6w1evJrjgW74dk4w0kBsYnA=; 5:65UZN85sS2hr9BSEZd5l3s7b+1G6ZfHekO1DJ61JATa3+29hsiXWJIM8ujPCW0t4jc1Y9rqwpAC4pn3T8ofhlj76bbpzCCqXjbNq6TnLMjF9F6VzzrzJgstMZOxriS0BqjiLSDdLdQJhi0jKvuVKFQ==; 24:7XOJ+t0KfxAcvX0NFbREbJUy9NdTA1yDdFZhNIKvtCLsx/KyHOPMXyYmE/YWDfgcry/dS+1e7IF33t5P02pHw2TvKeASitGpZYMvvut6DSw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR02MB1377; 7:vCRbFovuWqPyDoYlH0b4roUbMB3uD2wPS8gj9zb0viuTMCsb8FnEGBDpCSkznDiZrjLQ7uiXGZMrGYhkI/oPirwbnMn5SdDnNK9NT12Uevpt2nisIykjbmlwEQziFhMW5zm968hm13llixi06z4rLxTD6Lgua9ANK8Ooqf9LV+qwR6FefoPUcxOlFTO43F6/QOFIJfVM88lN2zbxMnZrFnqtvBbHdo6TVysZzoLJ9eDCx9KDDxefN2OvSV9s/YBQRH/Ti9vOimR8s0mXJZxKhsC2KX5A39XgeaG/BGJDU+OcGpD8s33FteZdu6Q8szPudxDvluAc5t0iPBm2SOVjAg== X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2017 19:29:48.0112 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR02MB1377 Sender: linux-remoteproc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Wendy Liang Add a function to set the firmware checksum resource. The function will call the firmware loader to calculate the firmware checksum and set it to the resource table. Signed-off-by: Wendy Liang Signed-off-by: Michal Simek --- drivers/remoteproc/remoteproc_core.c | 54 ++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c index f13f56d..447c28b 100644 --- a/drivers/remoteproc/remoteproc_core.c +++ b/drivers/remoteproc/remoteproc_core.c @@ -897,6 +897,60 @@ static bool rproc_is_running(struct rproc *rproc) return (rproc->state == RPROC_RUNNING) ? true : false; } +/** + * rproc_handle_fw_chksum() - handle firmware checksum resource + * @rproc: rproc handle + * @fw: firmware + * @offset: returns fw_chksum resource offset. + * + * This function will handle request to set the firmware checksum. + */ +static +struct fw_rsc_fw_chksum *rproc_handle_fw_chksum(struct rproc *rproc, + const struct firmware *fw, int *offset) +{ + struct fw_rsc_fw_chksum *rsc = NULL; + int i, tablesz; + struct device *dev = &rproc->dev; + struct resource_table *table; + + /* look for the resource table */ + table = rproc_find_rsc_table(rproc, fw, &tablesz); + if (!table) { + dev_err(dev, "Failed to find resource table\n"); + return NULL; + } + + for (i = 0; i < rproc->table_ptr->num; i++) { + int ret = 0; + int tmpoffset = rproc->table_ptr->offset[i]; + struct fw_rsc_hdr *hdr = (void *)rproc->table_ptr + tmpoffset; + int avail = tablesz - tmpoffset - sizeof(*hdr); + + if (hdr->type != RSC_FW_CHKSUM) + continue; + + rsc = (struct fw_rsc_fw_chksum *)((void *)hdr + sizeof(*hdr)); + if (sizeof(*rsc) > avail) { + dev_err(dev, "firmware checksum rsc is truncated\n"); + return NULL; + } + if (rproc->fw_ops->get_chksum) { + ret = rproc->fw_ops->get_chksum(rproc, fw, + rsc->algo, rsc->chksum, sizeof(rsc->chksum)); + if (ret) { + dev_err(dev, + "failed to get firmware chksum.\n"); + return NULL; + } + } + *offset = tmpoffset + sizeof(*hdr); + return rsc; + } + + return NULL; +} + /* * check if the remote needs start. */