From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6C17DC6FD1C for ; Thu, 23 Mar 2023 02:23:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-ID:In-Reply-To: References:Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=a7l1c5gyH1ooWcyvAAQeJ5Ri/MPKLTbY87datU8bOC0=; b=iX8Zd6MvjRRtmi fnDHOuKqJu/4AdDQav1wdv40gOyEwZbuORKBubLP92mU4q5rFhqf2Yq5EGwJZ8i5mmm036iabqj/Z TEln3NaTXHSJAgyVn5rR5QtxKvBnMK3g0dw3y3Bp72Hsr0dnAwG0iBDrPwI0gc11NcJ89HKpojslz s4cT2fJAMDdB/2miIVAEkdLaRj/Cv4lOAhSexFsK4eSVkKHko3+LkA5yDqzUZ6pbma0jQ1h4g1rHU bgKLt/weHwBALY1H1fH4ClnLne7qC7H8RyAH7HrWn60ASCOO5y9ww7oq/P4Gfj1v4uo8sQ+AyIv/H LeVpDhj1htQtMlUzxJjA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pfAau-000XZd-1t; Thu, 23 Mar 2023 02:22:24 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pfAar-000XYl-1R; Thu, 23 Mar 2023 02:22:23 +0000 X-UUID: 8628afaec92111edb7d8d11f642b8e78-20230322 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=MIME-Version:Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References:Message-ID:Date:Subject:CC:To:From; bh=qYNhBhK+nPpvFEjwjmbpT9WFH8REVRsVgQ0bIrpqk/E=; b=oq1Yxfvt74t0p/6sG/yni8FpLfB3ylgBU6HnAXz5D7V29Hk1J384C4HhBt3PqZ2pc6sxU7+RMOHT/WDTW/znTkbvsfv4/kcOUTe3OJuc1XKCj3qTkDtxSsRD/kZbTL1zosM5YG8f/n6izHRLtmPot1U0K65rD0nYwHKXgWA9nDM=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.22,REQID:d545f65c-e2c5-4a97-9e7e-9d9cbd470be1,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:120426c,CLOUDID:4f9515b4-beed-4dfc-bd9c-e1b22fa6ccc4,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:0,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-UUID: 8628afaec92111edb7d8d11f642b8e78-20230322 Received: from mtkmbs11n1.mediatek.inc [(172.21.101.185)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 2082034166; Wed, 22 Mar 2023 19:22:14 -0700 Received: from mtkmbs10n2.mediatek.inc (172.21.101.183) by mtkmbs11n1.mediatek.inc (172.21.101.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.25; Thu, 23 Mar 2023 10:02:11 +0800 Received: from APC01-SG2-obe.outbound.protection.outlook.com (172.21.101.239) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server id 15.2.1118.25 via Frontend Transport; Thu, 23 Mar 2023 10:02:11 +0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UR9XrN4ShMxGmkfHxrMSG77lvnD+1B5OSJvurm3mfvD9e8vjRIwmjMT2RVV2Otv/JArPrSXYRwnnAId7g4eAQ0B/LeXYjxPjByj/RYM9xZZhjIwfnIT+51MUS/bspf/gxgmef3+pXkuCz02II51Xi1e9Wl+s/HmZgVGQ2raJrEW32C9ZfK44Wc0ZTq0c1jW7iuTY81RnSDrRYxyoQ6/2w+8FwNYUhv9g5LgQMHt5W8NcIn2YxmaDDVzTOCROmmzqM4OpyKTjkV73EnBxxQIupR56dfZ7AthYqfIn+SctwJJuIYcLB/NeG5WSuLCSWxIMgAs3AGj9/9aiVI5lLmx4rg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qYNhBhK+nPpvFEjwjmbpT9WFH8REVRsVgQ0bIrpqk/E=; b=SwYSxwUk9Pwtocg0LiFO/ZtTCG7HeIQksPsdJ0tGXCh+9Rtm1Ik1yQGAPHCUhEQozmrPx6TM84B7FqbXklqkO3BD6IcnWdPS674lT/rX5M0cxTtFIdZvoXDKAZRAtViKxDo6hUsncLtTKTCjPMxjKqBA2hn1c5/paGY0nOPzvVqfSMf5jHmkKIlXmTiiTx6WsmctNIljR9ByyRqUs1W33pQrtjwAYWp/Y12VDL6Wh54ZWMtJtCNeGvgtEjcHFeKHZWqZJxfiBXDf+d+zzPFSK2GDgUdwMyksycI0VTXpJEP2ZYLl+AFCELyD/YCWLTyc1VuwDI5ieDrB9B2+qQB/ow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mediatek.com; dmarc=pass action=none header.from=mediatek.com; dkim=pass header.d=mediatek.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mediateko365.onmicrosoft.com; s=selector2-mediateko365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qYNhBhK+nPpvFEjwjmbpT9WFH8REVRsVgQ0bIrpqk/E=; b=ABCheXRZJHdDBIeqlNaxfwjhoe4P6tHoLP0yLQ1Z6hWxk3uNlE9hp2qOw+ULEpj07HW210nfW+6ZqnbsScFmjazO7hko3h8KE7zsk4Ch3iaipK/l+jKoqAraEty7oQRbJMgWYKxqxkEIeTMLkLcZYTodKI3YDJCRpNX9JvV3JdI= Received: from SL2PR03MB4204.apcprd03.prod.outlook.com (2603:1096:100:53::15) by PSAPR03MB5511.apcprd03.prod.outlook.com (2603:1096:301:60::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Thu, 23 Mar 2023 02:02:09 +0000 Received: from SL2PR03MB4204.apcprd03.prod.outlook.com ([fe80::dc74:62fb:a3ab:b10]) by SL2PR03MB4204.apcprd03.prod.outlook.com ([fe80::dc74:62fb:a3ab:b10%5]) with mapi id 15.20.6178.037; Thu, 23 Mar 2023 02:02:09 +0000 From: =?utf-8?B?VGluZ0hhbiBTaGVuICjmsojlu7fnv7Ap?= To: "mathieu.poirier@linaro.org" CC: "linux-kernel@vger.kernel.org" , "robh+dt@kernel.org" , "linux-remoteproc@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , Project_Global_Chrome_Upstream_Group , "linux-arm-kernel@lists.infradead.org" , "krzysztof.kozlowski+dt@linaro.org" , "matthias.bgg@gmail.com" , "andersson@kernel.org" , "angelogioacchino.delregno@collabora.com" Subject: Re: [PATCH v8 06/11] remoteproc: mediatek: Probe multi-core SCP Thread-Topic: [PATCH v8 06/11] remoteproc: mediatek: Probe multi-core SCP Thread-Index: AQHZTar4LbEFjsrTg0u8QqsK1YFUd679+1WAgAnARYA= Date: Thu, 23 Mar 2023 02:02:08 +0000 Message-ID: <7b612644950eda8dc4d2e03e6c6eef0df17569b0.camel@mediatek.com> References: <20230303083355.3378-1-tinghan.shen@mediatek.com> <20230303083355.3378-7-tinghan.shen@mediatek.com> <20230316210737.GA2428370@p14s> In-Reply-To: <20230316210737.GA2428370@p14s> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=mediatek.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SL2PR03MB4204:EE_|PSAPR03MB5511:EE_ x-ms-office365-filtering-correlation-id: 75fee1f9-0cae-49ac-e4ce-08db2b429bbf x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: L3tUDJfVfZT6U4qhHDbh8c00Ts2qElPVLwuQibrv2/HMGNNeMqk1zygrhIhbUlnQGD3OhSlimpnidsJ7aNpewKEiQ2zCVPNA7s/Y8ZsEuOd07xl3WJjUA3St+VWYFX3Lc70bOt7ndwTq6j00ow4vBqj0md93Zj5PLWATuuivyZjB5JrYgrB0YxlnNZ5Mz4ZpXGu0Y8VD5UNY9yuzELTa180v72lRluh2kVV3vMBTktntTzwIb1morHNR6NzZ21v0BqtYwRUfJKIeEmK74IZUuHcmzp5Iok5gB74UFRPmuoONYd04OpXrNzKIxOvbNBu9ngSTnP8MQqyACfkJ1sob+LVCvZsps4w9OqIbHEfIqPNQntLrnJioxv4gwNp4HSUs98zDqncbg703qD6bg3yge1L/ipZoyYTxn12bcTWyA6c/0rEpHMv02/CUfqCP9IMReEi6g9XY562R2kTcDGtw9EXoRFUNwFadEgLbrSWcjG4RUmA09k+VAv4j2038Rna2byKE2RR+qL10cRfCmaR2eywCU9JtIo28hW7+qEl+uxWiqhBQqM9V6wtofONxoktjIzJnE17/HKk1jjXJLc09teXNBYYYXD8GhmV253mCOaRZK3pxe17bhD62irmW4fUN49eQgV1zFXHBHTLglo9FsOSbQ4RjPUafNoEJQZHJlr7xsuzkdeMV4JVaj9ikqHE90TZUlTSXWrEeMyFyvJDJHLQheLzsuqMoHdFcddxs9d+ghh3KUqU+ox+IdkswnSvX x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SL2PR03MB4204.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(346002)(136003)(376002)(396003)(366004)(39860400002)(451199018)(6512007)(2616005)(54906003)(316002)(478600001)(6486002)(6506007)(5660300002)(7416002)(83380400001)(186003)(122000001)(38100700002)(71200400001)(26005)(91956017)(86362001)(38070700005)(6916009)(66946007)(85182001)(41300700001)(76116006)(8676002)(2906002)(64756008)(66476007)(8936002)(66556008)(36756003)(4326008)(66446008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K3J6dmgrUU9jYkp1cyttdHJ5SnlzMFFNWlE3cEIzZmtmdE5vUWdYTzFVei9D?= =?utf-8?B?NG1kZmxNckk4ekZQUmFMcUZMWnJULzBVUzVvUkVoOTZOWkYwbnNkbWxhY200?= =?utf-8?B?SFpRMjVFQUZad3EzOTRqcWtnMUpBdGNNNUlRSVYzdk04b0FqS3NCMmNCMG1S?= =?utf-8?B?cTZYRHcrcnpYWTJlNllVb0p5bVlJUGpYUktZNk90Vm5zdVVmendkVGRNcFZz?= =?utf-8?B?VFlIaHhkQU02TlNtNjVUcS9IQ251UWxRWmVpM2R2MFp4L2FtTnRTc1V5NHI2?= =?utf-8?B?aHQreCt5T2pIS2pYcHlLeEFPeVQxQzRMVmtkWWFtQTUxdWpMaklVRkx2TVg4?= =?utf-8?B?dVpqLzgzU0wxaGNGdDhZSys0YlkrcDNCeHhqSVZ0YlBuRzVMbEF6Z0hQWW1F?= =?utf-8?B?c2R1NDYzbjM3UGxJd3M4LzkxZFpDcHZ5c015azBxRjRTMHIrUU9iYXB1bStp?= =?utf-8?B?S1MxSVJuQ3pVaDkvUUl1dmxFU0s5clJFMzVJbmZzOC9wNzF5RjcvVWZSbGNu?= =?utf-8?B?TUJkbWxMNU5lNHFSWGJpOUR6RmJ0UXJxVVRwc3JSS3pzcGtKR2lBRDZuYlBl?= =?utf-8?B?dXlzSzMzTmhFd1dObXVsMEE1Q1JuTnI3TTRoTlpMMkRDNXZkOVQza0FrMVo3?= =?utf-8?B?ZHRNNE5SMzN2d2dxWmxSUW10R05XbGVkMVhxZk0xMmtCOHVmN3lQSmlZRmdo?= =?utf-8?B?b3hnVzgxZnZkV1ZSd0hObmhUWDBiZ2FJYjg5akgyS2dwbjNuQ0VPNGVJTk9a?= =?utf-8?B?clVRZThUZU5kZDBBU3NVc2hRL01XTDVsSm1oWWNGK2d3U2w4NlRDWHo5SU9D?= =?utf-8?B?QVFaOHY4T3JieWorTWoyMXovTjkzQ2lTTDJBL2xRN3Y2UWRZYTI4MHdLMmpB?= =?utf-8?B?Yi90NXB1aUZmTDVzVUZXMGVRNzk2RlJ0WkFRRHEzS1plb2VkZXZSaE9BQzhq?= =?utf-8?B?blhrR2tUbkRVUTJIcUJ6aTlNRFFDQ1Y1RFRobmMwQlVPNGoramVOa2trTktS?= =?utf-8?B?VVFYaXFEb3BKM0NDSFdadGFzbDkrZzlMNU9CWVdONC9tWjl5djQ4eEpVYktz?= =?utf-8?B?dkoveFhaaGhNSzhWRllzNEhEeDczbzMrVXpNaUpDU2lZK3BLNHkvbEZpeGFv?= =?utf-8?B?aUt4c2g4RVl2cjVzSlh4NFhSbUtHQS9lTm1vblhQcHpHSHc2ckRZbnNsYlBC?= =?utf-8?B?VGdNR2R1Ty9GOU9CV3BJNUlKVFVac3NSOXJUaEZSd0lGdWM1ZzcxN2R3Ti9M?= =?utf-8?B?REoxMW05UkUwUmhhRzRxYi9BelVWUmdQcEw4WEpnTXp1ZzgrLzRObkMyTVBY?= =?utf-8?B?eW80bWNob1JVTW5KMWlSRlVkc0xidFpLS2FwNnlFWmg4NXlEUEtkZ0lPSDFv?= =?utf-8?B?cHUvelluaU9NcXZWNGFERXY4RkN5Ylhjckg3Q2paS0srUlRYRVBuM2lIMzRW?= =?utf-8?B?bVcxUXBuTldzWWwxamI5TUx1cUhpOWt6d1EvRGJXcUJVMWZCTHVUM2Y2UHVw?= =?utf-8?B?UDZMYW5UM0NNRkVNTXhnRHVhTks5d2orNmsxS1NTcm1KN3RJS1JpTk9CN1Rm?= =?utf-8?B?eW5xenNobFl3a2hZOVdrbG12RnNqZlR2aUM1N3g5a2lmbmNYVVd3TW10QXl0?= =?utf-8?B?Z3IrblJQd1dtcWZrQm56SU5telFJdG5xRUN2MERZZUlyM0ZaNDhJY2xoREh5?= =?utf-8?B?d1htM1B2dzVqZHlkWFBtaWtuSjhydUlESnJkN1ZYTmdmazRmaTMwZFMyNHRp?= =?utf-8?B?d0tCZlNFeHBlNURKYkNtZTVUN09sQUw2VFplTHFxSnJQSjU1QVJKaEd2M3ZR?= =?utf-8?B?NDNaeXFocmxOMXpWY0s0ZEVqMFB4QjcyZ1crcTMzbmppZ2JRU0trMEYzNlhU?= =?utf-8?B?L1A1OEdWWVptY1JoMThublVHWW0rTitqb1FKK0hXNTZlSEMwRVBISVl3Q3oz?= =?utf-8?B?dDRRT1hZdC8vZEc0WEQ5NzhKSm1GdEtWVEZTc0c1MGZxWHZsRTQzbk9ROWti?= =?utf-8?B?Z2ZHb3Z3QkdIZENZWk00WE91QTh0eFEzYkVhS1BNWndaQzlELzJuelA5VWR2?= =?utf-8?B?VjI0UU9Qck5IRXJxY1YwR3g5OVIxbGo1MzVpY25PVXFMNTl6OStFQk5YdmFY?= =?utf-8?B?eFZselU2dlVqS08zSVZBdzVLQjBFbnRTSEZCVnBnMk5EaDNsclJFcjNlZWZk?= =?utf-8?B?TkE9PQ==?= Content-ID: <0F51214F91795041A774DD9A35504863@apcprd03.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SL2PR03MB4204.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75fee1f9-0cae-49ac-e4ce-08db2b429bbf X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2023 02:02:08.3781 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a7687ede-7a6b-4ef6-bace-642f677fbe31 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: A9VyrVMKHnfx8b5Ed7XVtUquF1zXqKzaTx28GiRsYArHTT4OSUxN+5en0cBgR6JJs94ekGrhG6DXWMfUzCHoBGFBxcmUR9uBz98PinSUHdw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PSAPR03MB5511 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230322_192221_631535_00E69E04 X-CRM114-Status: GOOD ( 26.64 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Mathieu, On Thu, 2023-03-16 at 15:07 -0600, Mathieu Poirier wrote: > On Fri, Mar 03, 2023 at 04:33:50PM +0800, Tinghan Shen wrote: > > The difference of single-core SCP and multi-core SCP device tree is > > the presence of child device nodes described SCP cores. The SCP > > driver populates the platform device and checks the child nodes > > to identify whether it's a single-core SCP or a multi-core SCP. > > > > The resource structure of the multi-core SCP is a list of remoteproc > > instances which is different to the single-core SCP. The corresponding > > resource releasing action is based on the type of SCP. > > > > Signed-off-by: Tinghan Shen > > --- > > drivers/remoteproc/mtk_common.h | 4 + > > drivers/remoteproc/mtk_scp.c | 177 +++++++++++++++++++++++++++++--- > > 2 files changed, 166 insertions(+), 15 deletions(-) > > (snip) > > This code is complex and hard to read because rproc_add() is called in two > different context. From a code perspective single core remote processors should > be treated as a one core cluster. > > I am done reviewing this patchset. > > Thanks, > Mathieu > I'll improve my patchset in the next version. Thank you for the review comments! > > + if (ret) > > + goto add_fail; > > + } > > + > > + return 0; > > + > > +add_fail: > > + list_for_each_entry_continue(scp, cluster, elem) { > > + rproc_del(scp->rproc); > > + } > > +init_fail: > > + if (cluster) { > > + list_for_each_entry_safe_reverse(scp, temp, cluster, elem) { > > + list_del(&scp->elem); > > + scp_rproc_free(scp); > > + } > > + } > > + return ret; > > +} > > + > > +static void scp_cluster_exit(struct platform_device *pdev) > > +{ > > + struct list_head *cluster = platform_get_drvdata(pdev); > > + struct platform_device *cpdev; > > + struct mtk_scp *scp, *temp; > > + > > + list_for_each_entry_safe_reverse(scp, temp, cluster, elem) { > > + list_del(&scp->elem); > > + cpdev = to_platform_device(scp->dev); > > + scp_rproc_exit(cpdev); > > + } > > +} > > + > > static int scp_probe(struct platform_device *pdev) > > { > > struct device *dev = &pdev->dev; > > + struct device_node *np = dev->of_node; > > + struct device_node *core_node; > > struct resource *res; > > struct mtk_scp_of_regs scp_regs; > > int ret; > > @@ -976,21 +1094,43 @@ static int scp_probe(struct platform_device *pdev) > > scp_regs.l1tcm_phys = res->start; > > } > > > > - return scp_rproc_init(pdev, &scp_regs); > > + ret = devm_of_platform_populate(dev); > > + if (ret) > > + return dev_err_probe(dev, ret, "Failed to populate platform devices\n"); > > + > > + core_node = of_get_child_by_name(np, "scp"); > > + of_node_put(core_node); > > Please use of_get_available_child_count() > > > + > > + if (!core_node) { > > + dev_info(dev, "single-core scp\n"); > > + > > + ret = scp_rproc_init(pdev, &scp_regs, of_device_get_match_data(dev), false); > > + if (ret) > > + return dev_err_probe(dev, ret, "Failed to initialize single-core scp\n"); > > + } else { > > + dev_info(dev, "multi-core scp\n"); > > + > > + ret = scp_cluster_init(pdev, &scp_regs); > > + if (ret) > > + return dev_err_probe(dev, ret, "Failed to initialize scp cluster\n"); > > + } > > + > > + return 0; > > } > > > > static int scp_remove(struct platform_device *pdev) > > { > > - struct mtk_scp *scp = platform_get_drvdata(pdev); > > - int i; > > + struct device *dev = &pdev->dev; > > + struct device_node *np = dev->of_node; > > + struct device_node *core_node; > > > > - rproc_del(scp->rproc); > > - scp_remove_rpmsg_subdev(scp); > > - scp_ipi_unregister(scp, SCP_IPI_INIT); > > - scp_unmap_memory_region(scp); > > - for (i = 0; i < SCP_IPI_MAX; i++) > > - mutex_destroy(&scp->ipi_desc[i].lock); > > - mutex_destroy(&scp->send_lock); > > + core_node = of_get_child_by_name(np, "scp"); > > + of_node_put(core_node); > > + > > + if (!core_node) > > + scp_rproc_exit(pdev); > > + else > > + scp_cluster_exit(pdev); > > > > return 0; > > } > > @@ -1069,12 +1209,19 @@ static const struct mtk_scp_of_data mt8195_of_data_c1 = { > > .host_to_scp_int_bit = MT8195_CORE1_HOST_IPC_INT_BIT, > > }; > > > > +static const struct mtk_scp_of_data *mt8195_of_data_cores[] = { > > + &mt8195_of_data, > > + &mt8195_of_data_c1, > > + NULL > > +}; > > + > > static const struct of_device_id mtk_scp_of_match[] = { > > { .compatible = "mediatek,mt8183-scp", .data = &mt8183_of_data }, > > { .compatible = "mediatek,mt8186-scp", .data = &mt8186_of_data }, > > { .compatible = "mediatek,mt8188-scp", .data = &mt8188_of_data }, > > { .compatible = "mediatek,mt8192-scp", .data = &mt8192_of_data }, > > { .compatible = "mediatek,mt8195-scp", .data = &mt8195_of_data }, > > + { .compatible = "mediatek,mt8195-scp-dual", .data = &mt8195_of_data_cores }, > > {}, > > }; > > MODULE_DEVICE_TABLE(of, mtk_scp_of_match); > > -- > > 2.18.0 > > -- Best regards, TingHan _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel