From patchwork Sat Mar 11 01:24:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tanmay Shah X-Patchwork-Id: 67961 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp76072wrd; Fri, 10 Mar 2023 18:04:28 -0800 (PST) X-Google-Smtp-Source: AK7set+J+n9JBDhRzIywPe2Vor4twkcZzRxZtqN99cOOlahoH/MPg2pCYDi1cFGq9lAYe5Ha7WG1 X-Received: by 2002:a17:90b:1c05:b0:23a:ccb4:64de with SMTP id oc5-20020a17090b1c0500b0023accb464demr3789145pjb.6.1678500268288; Fri, 10 Mar 2023 18:04:28 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1678500268; cv=pass; d=google.com; s=arc-20160816; b=QrgbbHlTPoBHO1bUhQBYoyzrnOw3ne8BUDnWXYggMrdFvCNZ8ZfL/WJl9/7Yvf8aJf tyLU3xguTLvycfxnmbfMIKHSGtnErRX9bymuuN+MmoMBT5qerNi7k0/SV9sCoAD2mxtS HABN8jIrY77ojb5Ea06IamY8mFyi58S5Yy9k248CY9tuUWg8L9t6OCOt23Wkw/iKijeq 5GUsNOCIu8nTY6ikqahwuc8EFmh27+/c4YJqV2upkmrxLSvH4mgdVQupG8s4d0v7GQEt qh84Je5TUTtFKVBCDR741X5S0LpVbwpEpiPzRsPd02WNlZIUoFcsWOGbJa36oEQMie8m ORFg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=0ntPHILyKl2B6cfodi6MlDi1IviUtfZyL+6c62G5yqY=; b=0md4wJ8wE4XcH0hNvKW31evu+TEhIkTJ2trwaHthXNUfGoA/wcwvtLpDbwdMD3Lcij 7VycvrafPE3xIW04RmhmEVoY0KAiUoSm08JwFEZ9LslAcYYVPygVOO9eETNU380VY57j 2LU5KTGEb+WdC8opCZ/8z9amTLvkjdo9tbwBja+DYr/CpcJP/Yhl9+upd6cnY6xu6Axh jVOI5vcvBHqmJEsil4cdWpHvKJqv5iT6p8blnji/u6jcWlac57JFmaKuKSTv2lwDuJJd J9Zm4d0i+LKyU3FhemKcIcA3oMonxqReeCFqcO/D0G5+YYFx6upSxD0zf+GRcs/9Nqsk iCFg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=be3F53iw; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q92-20020a17090a17e500b0023b30e57634si679000pja.67.2023.03.10.18.04.13; Fri, 10 Mar 2023 18:04:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=be3F53iw; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229922AbjCKB0o (ORCPT + 99 others); Fri, 10 Mar 2023 20:26:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41254 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229846AbjCKBZi (ORCPT ); Fri, 10 Mar 2023 20:25:38 -0500 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2040.outbound.protection.outlook.com [40.107.93.40]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7EA4E13E50D; Fri, 10 Mar 2023 17:25:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UKRX6fY3A8MaKAIJebBCdPywgqlAMMOpVjCKIjBNlf6UtMdkoLfTqVUHe0QLw0zgjQNWMLYVz8Dj3P6Gh9rtrMT9X4x3NkYMtbosbEvbnk7NOiSEE1H2ovc62fnymkQr0MVSK4iZH0D2bQnEamR59+loKZm8hgh/w7N31fhUB+LKpvMYaJl8J+MxbCoPMdH7z+OZKvloEA56IQicI7RZmfVjgMwpwqPSF3qV/7lw2H62+KVUH7AyCegh+9rbgMKw0O0srkp/k1nVLOxg2HwbVkDvRap1x8L3YdUgVYtmNddMKsKzNPXvsAz2qoEZDyR/R0e9dbQMZZuMJpZZ0nOPbg== 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=0ntPHILyKl2B6cfodi6MlDi1IviUtfZyL+6c62G5yqY=; b=AMrclQ/OwtJaKXQ2Wm0/3KvIm9sX0MqFFOlYf1E6XdAsmHSfnQlGHzRBInseYt6lMvF4l71bx6MNkJkhaHp4S29dFh5F0JpNN6D6SxMv91ArW63BVoOklFG22bfa6mx10ZT9H2fcQiqZcVk7yhEO+hR6NyvpZGuja0le4zdran8DGIylwu7z6sM5MCSmJXNNkKLNxxqIGaF5uM0i0VlIFmk8R4tlmB6giJijVwJZ2PuU+KvflEGWr0baRynIUvyjPxOTV11yi45ZKar9f+l2zczpD7fOZLYktX17LfGo3QvzdjRX4f9I11QCM16vxZZzkKgxTgj8p+RtNz13qtDthw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0ntPHILyKl2B6cfodi6MlDi1IviUtfZyL+6c62G5yqY=; b=be3F53iwmslp2uqnd8tuLFoP+cR/HQex44+oDLdrU96PtO+LFkpGOeM//oE4B54+/cb3ldPVWIHkLhPnDdnlohnWrYfi+dzTyXiO5BJf57VaBYSfjgreboKMeuEPCjMBOKxHHOWRGXMjmr3o1Sq1fNIeIugnssQ7/1qUR4wDSpg= Received: from DM6PR14CA0048.namprd14.prod.outlook.com (2603:10b6:5:18f::25) by CH3PR12MB8353.namprd12.prod.outlook.com (2603:10b6:610:12c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.19; Sat, 11 Mar 2023 01:24:28 +0000 Received: from DM6NAM11FT114.eop-nam11.prod.protection.outlook.com (2603:10b6:5:18f:cafe::87) by DM6PR14CA0048.outlook.office365.com (2603:10b6:5:18f::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.20 via Frontend Transport; Sat, 11 Mar 2023 01:24:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by DM6NAM11FT114.mail.protection.outlook.com (10.13.172.206) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6178.22 via Frontend Transport; Sat, 11 Mar 2023 01:24:28 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 10 Mar 2023 19:24:27 -0600 Received: from xsjtanmays50.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2375.34 via Frontend Transport; Fri, 10 Mar 2023 19:24:26 -0600 From: Tanmay Shah To: , , , , , CC: , , , Tanmay Shah Subject: [PATCH v5 1/5] mailbox: zynqmp: fix counts of child nodes Date: Fri, 10 Mar 2023 17:24:04 -0800 Message-ID: <20230311012407.1292118-2-tanmay.shah@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230311012407.1292118-1-tanmay.shah@amd.com> References: <20230311012407.1292118-1-tanmay.shah@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT114:EE_|CH3PR12MB8353:EE_ X-MS-Office365-Filtering-Correlation-Id: 81debf0d-7d45-43e9-532b-08db21cf5ba6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zlsMHE4zgO7LvboKST9Uc5uMZZzqodIwK7WKlqD04EkI6lSgFxEWIMoxFMXSD0QXEe1O2Y6rqX6LsPBb8bTlke/VPqdKF1uiHlIIctlDgTQbrPxCjbDOHszV4OvSZpvYz57avSgx6jsbU0mvcbTxP/KWmTwep9dR2o3T7XKCxc2mnRTFxS585OSbYvXa0rQB9glvsQIjoI3GqPiJJbPqf20AD1Oqp461rz0oTkyPFyBwZEztt2A0xxx9o01fjO3wKyE84MWBMtHDHWshxXE0RqP2R2IUNVlohnCtljNlfhZIy3liAb6TrSTneQA0qiyOkBl85Idp0IUNVsB+LhtTcOsciAox++Mr/oqVS6m3fnPeqPBTOpHTpYYsr3Tf2RfgHOXpw3GZ6fwWkAGjG+qz1QGKZSBLvWxhz1SaD89Z4S30ylHiApnU0riQmyhP9Ripjjv/nRgFo1hzCIb0H/74OPKgnBn88qvJQYWoW6dujTnYpV1BEyrJBsKsftFbhI9OhVFgJ7UGW0PZVvMEN5JhPBpv3CvW+LuoyDwmNirL/GReW5SM+4QcHtRhWaCBICYsY1crOdEfsSfhsdoNRfj93YKDNdMCJtGAjAGDkNGDTgWLoBsSAQOcvdr0scsnpdZ1BfeqQY3+n+onOB48S4uP09ZBn0jQzSxLXaR3ErOiHvJ7snNqfka+qVIHOdgPA4CKuytQddNtSpg9y0jBz0bgfiVKy9NMyqICY7MBT4jkY3M= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230025)(4636009)(346002)(396003)(136003)(376002)(39860400002)(451199018)(36840700001)(46966006)(40470700004)(44832011)(15650500001)(5660300002)(26005)(2906002)(8936002)(36756003)(4326008)(70206006)(70586007)(8676002)(316002)(110136005)(1076003)(356005)(41300700001)(40480700001)(6636002)(86362001)(478600001)(54906003)(40460700003)(6666004)(36860700001)(81166007)(82740400003)(336012)(186003)(2616005)(426003)(82310400005)(83380400001)(47076005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2023 01:24:28.1849 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 81debf0d-7d45-43e9-532b-08db21cf5ba6 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT114.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8353 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760035097072156415?= X-GMAIL-MSGID: =?utf-8?q?1760035097072156415?= If child mailbox node status is disabled it causes crash in interrupt handler. Fix this by assigning only available child node during driver probe. Fixes: 4981b82ba2ff ("mailbox: ZynqMP IPI mailbox controller") Signed-off-by: Tanmay Shah Acked-by: Michal Simek --- Changes in v5: - mailbox node count should not be 0 for driver to probe drivers/mailbox/zynqmp-ipi-mailbox.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/mailbox/zynqmp-ipi-mailbox.c b/drivers/mailbox/zynqmp-ipi-mailbox.c index a4c8d23c76e2..ae47fbac38d2 100644 --- a/drivers/mailbox/zynqmp-ipi-mailbox.c +++ b/drivers/mailbox/zynqmp-ipi-mailbox.c @@ -634,7 +634,12 @@ static int zynqmp_ipi_probe(struct platform_device *pdev) struct zynqmp_ipi_mbox *mbox; int num_mboxes, ret = -EINVAL; - num_mboxes = of_get_child_count(np); + num_mboxes = of_get_available_child_count(np); + if (num_mboxes == 0) { + dev_err(dev, "mailbox nodes not available\n"); + return -EINVAL; + } + pdata = devm_kzalloc(dev, struct_size(pdata, ipi_mboxes, num_mboxes), GFP_KERNEL); if (!pdata) From patchwork Sat Mar 11 01:24:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tanmay Shah X-Patchwork-Id: 67959 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp75038wrd; Fri, 10 Mar 2023 18:01:39 -0800 (PST) X-Google-Smtp-Source: AK7set/kIkxtIJE2wDPXC/1HCHaH+1dgiRmjggULe68X722mRWGQtjRU5AWQ3ZelIa7xKHKCNHXb X-Received: by 2002:a17:90b:3885:b0:234:409:9754 with SMTP id mu5-20020a17090b388500b0023404099754mr27604801pjb.45.1678500099645; Fri, 10 Mar 2023 18:01:39 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1678500099; cv=pass; d=google.com; s=arc-20160816; b=PDl/V8L2+CvMNB8hsoQb/YDVo2+oC3jNX29RCf1oYyFa5TDU72Lsdei3/GeJtb0G9D o5zatU8EN7+rOwkUg19WrMDIJNDlwkzCUxdXr4OdWJsQPkXaNtZN9CTG8izCWfdVLth2 T6w/NaLO50F5YD0yA2iMZS8xQyzarFwC/UkJQv2JCKMtodGLwwEmTvVEjLyxBQpTsSMg BbnQ8rhL6fmxkNZlcJtfArKpdhG64MYcKs02QT9NjfxuG8LWcUbazlXgDmL8siJSf2Da 3loR1USE3nYld61SYNA3AtcScDzGN6M2OFaDIBXvNLVSOQTm2Z/Oe2tqOnEao4UzQ1pQ rBGw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=V6jNyKKEMKq2JsmiF1UbknBMFik55x77fbABVtgVr8A=; b=AFNrEr3n5SWXo1XqBNftKtZ8B826eYS/qH4oHT7OiCWrVvuba4ZnHuIihDOR/w75MF mycIr1JjXLHf8j/yUx8a0BMCffjAGAIo8FnlReQWScaTLtC1gsmZhBb98sDvnGbyvLLj JhPF+AQVsM8YYx0KTWvvEHlLIm9/mVgHFS/6iV7LO4nuDXpx+HQK031gzJZzzR1+lvKm Wg9qi7s/ABO7PB9N6Xs1Z2/tZzjZKVnARUevnGb01t2yqmBsz58pyQkP2qr3bWbBobeL 6AzcN+a0ayGAyYYQaFiBc1nt8kJBAGfhfcQ2m/KDJqhif3Lbb/q5AsGxdTM+hQwcjBEV qNDg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=427pFTT+; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h5-20020a17090aa88500b00233a9a815a5si1174810pjq.14.2023.03.10.18.01.27; Fri, 10 Mar 2023 18:01:39 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=427pFTT+; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231266AbjCKB0H (ORCPT + 99 others); Fri, 10 Mar 2023 20:26:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41082 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230207AbjCKBZc (ORCPT ); Fri, 10 Mar 2023 20:25:32 -0500 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2060d.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e8d::60d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 731E319135; Fri, 10 Mar 2023 17:25:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jUUYSd2YOEPS1kDy1ELlJHPcgndjQLwteJ39snU8311i39VNp87WxdX9f0W8BirL19sP5SYujNHki+DNqrMiM8mxveYhw/HM6J7fgzBrHnMXLUisFb21/ymwn8ubN1Oms2EVT+lq5L9VFhbXmswzEhiQyQpfVmyudigeeNK2XV0Qf/aq1HH02n/GoH6P/RMjFShDtryBHc21GdMJRUAIvDaLL3Dg5KZ/iI4wRCffSvBZnUw2e0Wgwiv3WyB3wfEIyPw5318PZCY2vrdJVFto/FU0RKy5b1WeoRTing0SOTvUnipjuM8qA4fNFVE+n5M6CHYZnvBZOTPK8cddYstyDA== 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=V6jNyKKEMKq2JsmiF1UbknBMFik55x77fbABVtgVr8A=; b=WC6dneXsc4eYpdQDqns0xlcoQEA86Z1AuvWfJk9g2xfZAq1MdhQXXIdecSEXMvZz20cWVdVGb1bMhcqoAeKI2YDRM9+/Dn1a74/wE42z2gCXWBvWrkEdgaPBtvddg1lDwBLeXHWgibESwQoiiQJS1yUul2DQbMPgiMUHIQX/T9ZXAXKAP93JfrLje+oFBW+hfONb82isuRJO6Xd8aqyFLaAC7lxu1oR8kbD+aZP5xaLWrgebNhdEu6RKp+m4Dc30CjVrAycvw0knVkZ2DSbF184acTjVpzbKJrm+bdrZGuXXoScjY+LZzGQTQmCuBOPC/ErHEgKbNiQX0qU8xPat8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=V6jNyKKEMKq2JsmiF1UbknBMFik55x77fbABVtgVr8A=; b=427pFTT+7LCOTizruVv0lvwqXGQGTTCa26l92LzP072gLgkeo0xhj0fyRNolPbrAmupA4d1GseQoYn1tcvwbIfTSax2ZNCAKu19hhLnGVvnDFaCkzpGHe4Gs0xfhYOed0G5WvyNpGcBJN8PHas7UWSHcj0qbQoOJMyqyxwFxsC4= Received: from DM6PR07CA0131.namprd07.prod.outlook.com (2603:10b6:5:330::19) by CY8PR12MB8194.namprd12.prod.outlook.com (2603:10b6:930:76::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.20; Sat, 11 Mar 2023 01:24:29 +0000 Received: from DM6NAM11FT031.eop-nam11.prod.protection.outlook.com (2603:10b6:5:330:cafe::47) by DM6PR07CA0131.outlook.office365.com (2603:10b6:5:330::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.20 via Frontend Transport; Sat, 11 Mar 2023 01:24:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by DM6NAM11FT031.mail.protection.outlook.com (10.13.172.203) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6178.20 via Frontend Transport; Sat, 11 Mar 2023 01:24:29 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 10 Mar 2023 19:24:28 -0600 Received: from xsjtanmays50.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2375.34 via Frontend Transport; Fri, 10 Mar 2023 19:24:27 -0600 From: Tanmay Shah To: , , , , , CC: , , , Tanmay Shah Subject: [PATCH v5 2/5] mailbox: zynqmp: fix IPI isr handling Date: Fri, 10 Mar 2023 17:24:05 -0800 Message-ID: <20230311012407.1292118-3-tanmay.shah@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230311012407.1292118-1-tanmay.shah@amd.com> References: <20230311012407.1292118-1-tanmay.shah@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT031:EE_|CY8PR12MB8194:EE_ X-MS-Office365-Filtering-Correlation-Id: 4e6fb445-9e98-46d8-0dd2-08db21cf5c2d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mHzJwgLGY766Lp56Y5rNKSTgbuQ+KI0FZcbX/P+zL5cvpMuA0qa3dzBBo0vHTwiRu5yGbBaY4RSkT5nZFXSW//TU/M5z6R1nwDEIxeGR/i17ISYSiHwAkC0co2br7pETOZe9LhK6d9iDf/XrMnnpfnq2AnnTXIcop1nARzki914/kthIsZ5ZtnAGuV6AsxV/4uXogHNa3usy0NxbVZzsxccTwfNS57B1i5lasz1Ow/zGsS/earQqDq4N8SyFekmdX99WGqz8ulmgsomGmYGWN+TK9YxZk43gBAs0YZmncCBDOYaz5n3g5E3zHIm9qTyJUqaOxKD/uvqlZ+Yw4nW129Kt4uXPFrDidfbdHspYF1NVwHekKTOk8UAP3LUFtvLh2PmzonXuYyBK+hvTcjKCLUEFTm91I623h9kef1uzhvMM2l71C9lOZlXMsSOLL8N2Muro+8zkt+hdYL7SVxFmSEgaXy3gG4I9ipUZOkjTiZ0dfaMVbzFbHK8PwXYpu/73Z2zCKG18ONZlX5HezLL+GaZHlBx394+Y0iI02HAj4qTlp6FY3pRiBeQQMiQAgX245CmJ8qD39Fuc6ENAll/xcY1tuvlvVSCUVlStCXpidc0Ge43PuK4utGNJBF9Ru9nTohaGppyyUuonNXeUS45RwVR4jJ1Q4Kaw80GOhVAb5w4K1kT3BoJYbVHMF9S6sG27q9fdxBrpITgEI9mjMlKJ/l+2Q0qRJ5zGMWG2kpm5TQg= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230025)(4636009)(136003)(346002)(376002)(396003)(39860400002)(451199018)(46966006)(36840700001)(40470700004)(36756003)(83380400001)(426003)(47076005)(82740400003)(6666004)(36860700001)(26005)(1076003)(186003)(2616005)(336012)(40460700003)(8936002)(41300700001)(86362001)(70586007)(8676002)(70206006)(4326008)(2906002)(44832011)(5660300002)(15650500001)(356005)(81166007)(316002)(110136005)(40480700001)(478600001)(6636002)(54906003)(82310400005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2023 01:24:29.0679 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4e6fb445-9e98-46d8-0dd2-08db21cf5c2d X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT031.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8194 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760034920583418553?= X-GMAIL-MSGID: =?utf-8?q?1760034920583418553?= Multiple IPI channels are mapped to same interrupt handler. Current isr implementation handles only one channel per isr. Fix this behavior by checking isr status bit of all child mailbox nodes. Fixes: 4981b82ba2ff ("mailbox: ZynqMP IPI mailbox controller") Signed-off-by: Tanmay Shah Acked-by: Michal Simek --- drivers/mailbox/zynqmp-ipi-mailbox.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/mailbox/zynqmp-ipi-mailbox.c b/drivers/mailbox/zynqmp-ipi-mailbox.c index ae47fbac38d2..d097f45b0e5f 100644 --- a/drivers/mailbox/zynqmp-ipi-mailbox.c +++ b/drivers/mailbox/zynqmp-ipi-mailbox.c @@ -152,7 +152,7 @@ static irqreturn_t zynqmp_ipi_interrupt(int irq, void *data) struct zynqmp_ipi_message *msg; u64 arg0, arg3; struct arm_smccc_res res; - int ret, i; + int ret, i, status = IRQ_NONE; (void)irq; arg0 = SMC_IPI_MAILBOX_STATUS_ENQUIRY; @@ -170,11 +170,11 @@ static irqreturn_t zynqmp_ipi_interrupt(int irq, void *data) memcpy_fromio(msg->data, mchan->req_buf, msg->len); mbox_chan_received_data(chan, (void *)msg); - return IRQ_HANDLED; + status = IRQ_HANDLED; } } } - return IRQ_NONE; + return status; } /** From patchwork Sat Mar 11 01:24:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tanmay Shah X-Patchwork-Id: 67958 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp71316wrd; Fri, 10 Mar 2023 17:49:31 -0800 (PST) X-Google-Smtp-Source: AK7set+HUW50GQrVPnMez78ZHVVK12RoJItPeEoRqyJs+QPMECwnAZWmz3bjgwpBiqt6pkfCCD1v X-Received: by 2002:a17:902:e842:b0:19e:4173:38b3 with SMTP id t2-20020a170902e84200b0019e417338b3mr35699958plg.46.1678499371637; Fri, 10 Mar 2023 17:49:31 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1678499371; cv=pass; d=google.com; s=arc-20160816; b=c5k7Ma7dSjVYi64Ok/TVa8Ix2zxin8F9Vvvyly7IFR8efjj8dcVQFT6i1BXGs641mr ZIr7Ax/DPYR5ymomuPlbFUX5j5DIN7rkL2zUw4xbAiUucQS/NwOuRpjnm1oVdJeJgwgI jhRvxTTSYcjReoHwR6FyhHCfnBhuFrGMnqNsKqG50UKcai+5dGtFZQ6GnezVFXXYx4Ae z50pj+YePFrM+ixpeZjXvM8jemvdB4zPu45HAKFOaw3co19zLm+0Mp+L6yd7J69WVley x2upryg77vMufdjsfPs6rL+qTQcR5iCIXNX31tYX+2UGi5RDlLEQJTuHl3klPkJiGMZC 7qEA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Iq5Z5rEyMVHSqMPDRlDtdhYiBw0b+Xm6ZoMpptwG9Do=; b=iM404/MdVviyHtqP6SD5AHelqZLU1hGOom8JstktfjKTFE7RdtYlsEseLFc2QzN88V okaD49sitKRSV1OSCZx0mxp/20rIUqFZfo5U2lbSdw50FZ+gB6W8bWlSLzUyoosMTqfa qEYMt0M6zTBK+ecez57OqKq4sKYYG4ZwPsqP7BfQFjdwlAM49tnl8DG5jt+qceNC5xRz MUxA5qDzo3smcKlqMRIoSs87os38SfICHbzrTBxQgfzVV/1Vo4kKI0eAxeMKaAG6grlc n2g70OE5tiAb/bsYVYWUkOyCx96vtyrPDnil8A6IaBO8+Y2ptzk3TY80/8omtBNCv8vZ VyhQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=Tmtj480A; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u14-20020a65670e000000b004ff6eee715bsi1073834pgf.460.2023.03.10.17.49.12; Fri, 10 Mar 2023 17:49:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=Tmtj480A; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231514AbjCKB0i (ORCPT + 99 others); Fri, 10 Mar 2023 20:26:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229823AbjCKBZg (ORCPT ); Fri, 10 Mar 2023 20:25:36 -0500 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2061.outbound.protection.outlook.com [40.107.93.61]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7364113E503; Fri, 10 Mar 2023 17:25:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cFG8o638EVKryutUU/X2PPNNoNd12TCiiN4A0udKE0IvRCQwreC3umdfKp3yui+KtYhaZke9zPsFv7LAngBUPVexYyDk48YEhctuDJqsQGtYpAjenH2iPPd/acmqpkpJ/jgaFGpr6EfDKxaeNq/QK3dTscs71/o2b90YH2XOsZaw288GYBZrkWXmagDUssDhVSCdBUdhJgUAK0pQmP8ftwjDo/8+TWucizbEtLuCgDGnUJA4Oi/U1HK3HDQ7UkiPBWWtUv76OG4oOMGhsTlniBR7B+MreYuho7K+2wQarTATSvrBRNGJyc0Ze6gS2Omrk3KrNIlz1hYl7BSYhggwxw== 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=Iq5Z5rEyMVHSqMPDRlDtdhYiBw0b+Xm6ZoMpptwG9Do=; b=a0Yq9Yn8GlIwTnYPEPRrwWmFuTFfK6oDoxPwxG6e6WdzEVBxxSfbi+pie6lPajy9K+dHLF4vzvEujQcrEo7/auhxC8Ory7e5zlpK/R7TRdA4rac/zyb82fpB/RWwHjkd8v9EMjJCPLZ83TAZs03F3+uub7FdgbKLiOU4bqYZ7IOe/BfxhVnefYFaDJMfqbRUdiTDMUQXievmF91geximGPV0+yDPAnBpQvVWqssGsTbS8VHoVCQns3BMIK1qzg3Mv2FPHUf9C+wYEVUOb5ca1pb5CZ98DaQqDtYrb4K/bPX+X/mLMlEDBKuiyksGWoVvQkbJynbEQqIXABlZpXljrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Iq5Z5rEyMVHSqMPDRlDtdhYiBw0b+Xm6ZoMpptwG9Do=; b=Tmtj480AyOK9raBK8ggpubcvNreIxyTm5B9vs+FEebAdwtyghAwQh7uvas6z+EwXIXGTP5uQnHBEHOzmuqjBqHCziLdyRCEQomrKaC2PHchV2cIbavDmoXRbKHLyJvwQsQNlLEqLCULeRFXcmP5SW+FR8o5hgzC57ms7wv0tZ6c= Received: from DM6PR07CA0113.namprd07.prod.outlook.com (2603:10b6:5:330::16) by SA1PR12MB7104.namprd12.prod.outlook.com (2603:10b6:806:29e::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.22; Sat, 11 Mar 2023 01:24:30 +0000 Received: from DM6NAM11FT031.eop-nam11.prod.protection.outlook.com (2603:10b6:5:330:cafe::6e) by DM6PR07CA0113.outlook.office365.com (2603:10b6:5:330::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.20 via Frontend Transport; Sat, 11 Mar 2023 01:24:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by DM6NAM11FT031.mail.protection.outlook.com (10.13.172.203) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6178.20 via Frontend Transport; Sat, 11 Mar 2023 01:24:29 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 10 Mar 2023 19:24:29 -0600 Received: from xsjtanmays50.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2375.34 via Frontend Transport; Fri, 10 Mar 2023 19:24:28 -0600 From: Tanmay Shah To: , , , , , CC: , , , Tanmay Shah Subject: [PATCH v5 3/5] mailbox: zynqmp: fix typo in IPI documentation Date: Fri, 10 Mar 2023 17:24:06 -0800 Message-ID: <20230311012407.1292118-4-tanmay.shah@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230311012407.1292118-1-tanmay.shah@amd.com> References: <20230311012407.1292118-1-tanmay.shah@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT031:EE_|SA1PR12MB7104:EE_ X-MS-Office365-Filtering-Correlation-Id: 2cc0d1ba-508e-4b2c-6815-08db21cf5cab X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: n5Pu2J+NT+AYwb/KslL1VXxjHguZ4XjP6OahG6SK/lcffpIFkzREwdR1xGLEDmUt77FBt1WZrmWETgqoQbnN8wMFhaLW2qJAmdmKI1JG1RPUhfmLQL5KwlN1lczscYJ1qIaTCLhapmurFAIFCRj62UyJJYrUe7VNszOdhNyEi35Au57iAP63N1IfHlPMPlNPnAecsY1Fo3kKHZuB5xq/K9ouko8uekIyg4JfDp+T0Tdu/N/+EV0IQp+Z1GPq4TLBel8w1mvuruX2Q3vaXUJ34ROy0I1ARO4/VNUbkYa81QMdvpFQmjaSctpKv5c45UByIM99Yl3ttlYjPxXlVPK9Q+MBlQwPJDb/a67HHJYLpDBsHpIP7S6hls5KFVI4K5VAMTK9C5cBvRg/IyUqiAmcH1cxMyld8WkLe9eF+w2Ycj0ZwXLbDfn8QYi0UPXlXg5hrzW9MGz4IH85JGdsK5O9Ayozii15CygZpzziloIbCLBBQtElFOi+Zav244Lax9sYzYVKsunF8/6Z/63sSSXPngdgeOgEch2Ekr4r9VOR5d5dQ9tmyImtESrtOU9Ff09kddSifyOfXHKtFB4NUHXfmEbsn0qoHoCi8LnFnFz0FXU59c/RhktLzzwbo+1UFbrnjy8W8ijSdGVCfv/Igan40ciGmKwSjbPeL6WLQ99OZIY0rGZazUe45yMZpO1q6UpvugsPpjoy3Ac7nsovEqxaV0zTlr/RxnWJIQeIWccQdMA= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230025)(4636009)(346002)(376002)(136003)(39860400002)(396003)(451199018)(46966006)(40470700004)(36840700001)(186003)(356005)(15650500001)(2906002)(82740400003)(44832011)(2616005)(4744005)(26005)(1076003)(81166007)(5660300002)(8936002)(36860700001)(6666004)(336012)(426003)(47076005)(40460700003)(41300700001)(86362001)(4326008)(8676002)(82310400005)(70206006)(70586007)(40480700001)(478600001)(316002)(36756003)(83380400001)(6636002)(54906003)(110136005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2023 01:24:29.8960 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2cc0d1ba-508e-4b2c-6815-08db21cf5cab X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT031.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7104 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760034157144960763?= X-GMAIL-MSGID: =?utf-8?q?1760034157144960763?= Xilinx IPI message buffers allows 32-byte data transfer. Fix documentation that says 12 bytes Fixes: 4981b82ba2ff ("mailbox: ZynqMP IPI mailbox controller") Signed-off-by: Tanmay Shah Acked-by: Michal Simek --- include/linux/mailbox/zynqmp-ipi-message.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/mailbox/zynqmp-ipi-message.h b/include/linux/mailbox/zynqmp-ipi-message.h index 35ce84c8ca02..31d8046d945e 100644 --- a/include/linux/mailbox/zynqmp-ipi-message.h +++ b/include/linux/mailbox/zynqmp-ipi-message.h @@ -9,7 +9,7 @@ * @data: message payload * * This is the structure for data used in mbox_send_message - * the maximum length of data buffer is fixed to 12 bytes. + * the maximum length of data buffer is fixed to 32 bytes. * Client is supposed to be aware of this. */ struct zynqmp_ipi_message { From patchwork Sat Mar 11 01:24:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tanmay Shah X-Patchwork-Id: 67957 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp66757wrd; Fri, 10 Mar 2023 17:34:46 -0800 (PST) X-Google-Smtp-Source: AK7set/ZWh3ZQpysgKbsOslSGGm3g1XA4zdATFpJ1QYYHt4LfbH3drFdVbQhvsBwB+0nCAzwS6sY X-Received: by 2002:a05:6a20:c105:b0:cc:47ae:18dd with SMTP id bh5-20020a056a20c10500b000cc47ae18ddmr22469558pzb.42.1678498486523; Fri, 10 Mar 2023 17:34:46 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1678498486; cv=pass; d=google.com; s=arc-20160816; b=s5sKMX7dP4xKmTQjZtWe70bevXp7mj9Cs8dJtYXunz0Cik6KGvhIdLs5DLy7nyR8QS DD3VxC6NAG6Bu5zFQ0v+RmWFARRbdb+NawiIHHqw5+Itr35T4xYZAE5+QZO5+A5rELQl Rb/oN0yuRYUjUBCuwiXgmBeLIVE1YipjG1czHuFeKFKGvb54S/ahmv0hAPzlBvRy4PYy B3RUuzYeJOv86d1AMyHnsxkKHLeOkQWoA9MF6LwVDrkOO/CcXmJS02XnKdvc/7/8yLZ/ kaxQbTDtOIeL2FNdGhINWgLQfKoFd9oozhe9f+XOxGFW619ZX3+e8erjZPHpvvdL2oAe cZDw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=3vD/2v76EIbGDa4I+aXGLqV/uTqnlSXGZ6+pLfr4jEc=; b=J8RZeH6RUBQpeBUMAaMDMobajGs6WOHCFWiLhKxWO/wvv36L1uZu4JwJfBdAEkCerT Qz8z4sD7/+Q8O6YPaox8nVk03yxzyYcEmb+0XLAPJ2GKxva7Bj97KpzgYHJXqZkgSd5T TChrk1+nIlxRystS1Cxs5ZuFuUb3wZ2itiiPUSCukS/rI5LCcjZBPmOl0a4+LC1U+5Dh h3GDK8P4+CqwFH46enKqVD1R6ljO8ePV8bwk50wGb6W3CD4qoyrLN5pFDYW/3H452VzQ 6jyCvmfYl2vb0JfoSuE12iHjuF51V1Wg+QD8kDv/RLTMSrpB9koLhUiie0WwYL9O9CJp WMFw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=CnLom7Hy; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 84-20020a621757000000b005a8e948561fsi1031783pfx.2.2023.03.10.17.34.33; Fri, 10 Mar 2023 17:34:46 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=CnLom7Hy; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231166AbjCKB0D (ORCPT + 99 others); Fri, 10 Mar 2023 20:26:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41828 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229774AbjCKBZc (ORCPT ); Fri, 10 Mar 2023 20:25:32 -0500 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on20611.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e88::611]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5412613597D; Fri, 10 Mar 2023 17:25:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ojg2vNTPUsqI6kJO82AFdctlUt2cusF4N7Qa87TNp4aE2RvANBqFtT7SxBkMrLbp99aszZQbOu3LPQlc3orS3thmcu5wt60DSm5YR26mV0hVH24BZrXXI25dfodZJyrWlQ5f+4tL5hzX11+q0STTj6NUQ6BRPNxWwzAzWbcV9VfDr6C9MMf4NMFOvqpitwnZ8PdqSBMKFh29+yHlsK2FTsELLJVCfWD49lAMzjQwzLd2P3qcSnjmNG3h1ghDhNkVymyQ5DxnlykPVXzNvn5tmW6OaAUVEV42H5LOe4AShI7j44MrFD1/tzRPiXMyLh9Lp1qlwtpzpzUUTUgoGQxENw== 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=3vD/2v76EIbGDa4I+aXGLqV/uTqnlSXGZ6+pLfr4jEc=; b=a5hh9Ks3qM3LkqPXWqF+MfLuRQIk9KuzMNpXok6yoBOhXlW0oxlEmeexQcFmAEn40a+kMFLxi/MGvYB9QmJMDZj/phXR0wPHz64I9syhSi3vXre6uyoetZ5VusYLqFDbfxubO+ppcjw0NZ2fVtyVkJpFrJwSj7cuVOgVijZZq/Ysk1bvSszAfwk6jHGH89UwsbCCxE2QFDMqhb9GGQNEZR7t5NKIwI/WXiHLhp7ynMFx+oLfZK1dDp/YAYkrDw2CsqYlIUt38/bK4vtIm8M40moEu1Kpl1CpN7KEFKyWe0ziDCQ96Hq4MlKYghgIP88asur1RnAUZ9XskvJTbU59hA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3vD/2v76EIbGDa4I+aXGLqV/uTqnlSXGZ6+pLfr4jEc=; b=CnLom7HykY/6ZX9qvnbWOAsOPyPNX5KxHg0saZ6seT7SIex2//sCGvIWsDtwPCKuoVrhsgtBeJ71swyn6k8jRqKqvClyzvsklIqULLKihYQx/LFk+Xv83hdXt1zOhi9ifgvnJhDhiW+c7ks1zzE+DmKBAqCrX7vvzxNzkqFZ9AA= Received: from DM6PR08CA0049.namprd08.prod.outlook.com (2603:10b6:5:1e0::23) by SN7PR12MB8002.namprd12.prod.outlook.com (2603:10b6:806:34b::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.19; Sat, 11 Mar 2023 01:24:31 +0000 Received: from DM6NAM11FT055.eop-nam11.prod.protection.outlook.com (2603:10b6:5:1e0:cafe::c3) by DM6PR08CA0049.outlook.office365.com (2603:10b6:5:1e0::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.22 via Frontend Transport; Sat, 11 Mar 2023 01:24:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by DM6NAM11FT055.mail.protection.outlook.com (10.13.173.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6178.22 via Frontend Transport; Sat, 11 Mar 2023 01:24:31 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 10 Mar 2023 19:24:30 -0600 Received: from xsjtanmays50.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2375.34 via Frontend Transport; Fri, 10 Mar 2023 19:24:29 -0600 From: Tanmay Shah To: , , , , , CC: , , , Tanmay Shah Subject: [PATCH v5 4/5] drivers: remoteproc: xilinx: fix carveout names Date: Fri, 10 Mar 2023 17:24:07 -0800 Message-ID: <20230311012407.1292118-5-tanmay.shah@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230311012407.1292118-1-tanmay.shah@amd.com> References: <20230311012407.1292118-1-tanmay.shah@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT055:EE_|SN7PR12MB8002:EE_ X-MS-Office365-Filtering-Correlation-Id: 1cf88c9f-e698-499d-72c0-08db21cf5d5b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AGeNEwQnjCgUyRpROEmZfKdAu945Slp71Q8Bg/D/mf7rEfLRLzyxq+ePzPJp2WG4MVlWSsaASnnaQf4l51PmQhD61yYhgcq2ZM3eGABdR6i9q/p7x0dtT25rGyG2J0upejq9yre019vsRD7HKx0bWycrAClunaZJzLVkvFofVRQnuDQriVgH80BnzfJdGwTg9dOhQo04HbyMHingOUmLBClxXkzdYeOefQrxJzYX1vBeE/zO9OdICezp3oiPDXEq3bw2/v0kJlCOjd6AGZzpdekNas2lxAR6pShMs7osYG8piLgtnad186aOKtJt0fyKUbo+AE4fQeudUPPMIasu/LyLMZWX9tKN3n/c8NcmC8n0MXDZ70BkrZjvUKAHi//Ow14C4LiqhxiXQXFuLH2SWZuQLoTmWGgJKZv4oTIK0jots0PU9HvDdZnA90WPHUfLpG4/LvmTFh3s+q22WW2hXXQQ0KFE/YczCBCmP/psT7xIPtAqTyBFZ/ozWGQB0wM747a4r9AF4jpEr8V7wfBPS6I66cWiqHybWl04Fx7w72gW+obK01FZWsncY+TXlJz8FifLjkYN2rxJlLPPEAoppmyMJVKlABh/eJvOYxNMDGKi25ZiQbIuiatIfKJpDZjsYWtQSzoDolRun9lQcq9ttNHM3dK7wE8MCtLlSmtrkJebq6KT59Ao3/KkRTu8ObAvOyaVP6SFzM5WyVqpn012savkM6gpERm7YNiMY5t7e50= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230025)(4636009)(346002)(396003)(136003)(376002)(39860400002)(451199018)(36840700001)(46966006)(40470700004)(44832011)(5660300002)(26005)(2906002)(8936002)(36756003)(4326008)(70206006)(70586007)(8676002)(316002)(110136005)(1076003)(356005)(41300700001)(40480700001)(6636002)(86362001)(478600001)(54906003)(40460700003)(6666004)(36860700001)(81166007)(82740400003)(336012)(186003)(2616005)(426003)(82310400005)(83380400001)(47076005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2023 01:24:31.0497 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1cf88c9f-e698-499d-72c0-08db21cf5d5b X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT055.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8002 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760033229040690749?= X-GMAIL-MSGID: =?utf-8?q?1760033229040690749?= If the unit address is appended to node name of memory-region, then adding rproc carveouts fails as node name and unit-address both are passed as carveout name (i.e. vdev0vring0@xxxxxxxx). However, only node name is expected by remoteproc framework. This patch moves memory-region node parsing from driver probe to prepare and only passes node-name and not unit-address Fixes: 6b291e8020a8 ("drivers: remoteproc: Add Xilinx r5 remoteproc driver") Signed-off-by: Tanmay Shah --- drivers/remoteproc/xlnx_r5_remoteproc.c | 90 ++++++------------------- 1 file changed, 20 insertions(+), 70 deletions(-) diff --git a/drivers/remoteproc/xlnx_r5_remoteproc.c b/drivers/remoteproc/xlnx_r5_remoteproc.c index 2db57d394155..5dd007622603 100644 --- a/drivers/remoteproc/xlnx_r5_remoteproc.c +++ b/drivers/remoteproc/xlnx_r5_remoteproc.c @@ -61,8 +61,6 @@ static const struct mem_bank_data zynqmp_tcm_banks[] = { * @np: device node of RPU instance * @tcm_bank_count: number TCM banks accessible to this RPU * @tcm_banks: array of each TCM bank data - * @rmem_count: Number of reserved mem regions - * @rmem: reserved memory region nodes from device tree * @rproc: rproc handle * @pm_domain_id: RPU CPU power domain id */ @@ -71,8 +69,6 @@ struct zynqmp_r5_core { struct device_node *np; int tcm_bank_count; struct mem_bank_data **tcm_banks; - int rmem_count; - struct reserved_mem **rmem; struct rproc *rproc; u32 pm_domain_id; }; @@ -239,21 +235,29 @@ static int add_mem_regions_carveout(struct rproc *rproc) { struct rproc_mem_entry *rproc_mem; struct zynqmp_r5_core *r5_core; + struct of_phandle_iterator it; struct reserved_mem *rmem; - int i, num_mem_regions; + int i = 0; r5_core = (struct zynqmp_r5_core *)rproc->priv; - num_mem_regions = r5_core->rmem_count; - for (i = 0; i < num_mem_regions; i++) { - rmem = r5_core->rmem[i]; + /* Register associated reserved memory regions */ + of_phandle_iterator_init(&it, r5_core->np, "memory-region", NULL, 0); - if (!strncmp(rmem->name, "vdev0buffer", strlen("vdev0buffer"))) { + while (of_phandle_iterator_next(&it) == 0) { + rmem = of_reserved_mem_lookup(it.node); + if (!rmem) { + of_node_put(it.node); + dev_err(&rproc->dev, "unable to acquire memory-region\n"); + return -EINVAL; + } + + if (!strcmp(it.node->name, "vdev0buffer")) { /* Init reserved memory for vdev buffer */ rproc_mem = rproc_of_resm_mem_entry_init(&rproc->dev, i, rmem->size, rmem->base, - rmem->name); + it.node->name); } else { /* Register associated reserved memory regions */ rproc_mem = rproc_mem_entry_init(&rproc->dev, NULL, @@ -261,16 +265,19 @@ static int add_mem_regions_carveout(struct rproc *rproc) rmem->size, rmem->base, zynqmp_r5_mem_region_map, zynqmp_r5_mem_region_unmap, - rmem->name); + it.node->name); } - if (!rproc_mem) + if (!rproc_mem) { + of_node_put(it.node); return -ENOMEM; + } rproc_add_carveout(rproc, rproc_mem); dev_dbg(&rproc->dev, "reserved mem carveout %s addr=%llx, size=0x%llx", - rmem->name, rmem->base, rmem->size); + it.node->name, rmem->base, rmem->size); + i++; } return 0; @@ -726,59 +733,6 @@ static int zynqmp_r5_get_tcm_node(struct zynqmp_r5_cluster *cluster) return 0; } -/** - * zynqmp_r5_get_mem_region_node() - * parse memory-region property and get reserved mem regions - * - * @r5_core: pointer to zynqmp_r5_core type object - * - * Return: 0 for success and error code for failure. - */ -static int zynqmp_r5_get_mem_region_node(struct zynqmp_r5_core *r5_core) -{ - struct device_node *np, *rmem_np; - struct reserved_mem **rmem; - int res_mem_count, i; - struct device *dev; - - dev = r5_core->dev; - np = r5_core->np; - - res_mem_count = of_property_count_elems_of_size(np, "memory-region", - sizeof(phandle)); - if (res_mem_count <= 0) { - dev_warn(dev, "failed to get memory-region property %d\n", - res_mem_count); - return 0; - } - - rmem = devm_kcalloc(dev, res_mem_count, - sizeof(struct reserved_mem *), GFP_KERNEL); - if (!rmem) - return -ENOMEM; - - for (i = 0; i < res_mem_count; i++) { - rmem_np = of_parse_phandle(np, "memory-region", i); - if (!rmem_np) - goto release_rmem; - - rmem[i] = of_reserved_mem_lookup(rmem_np); - if (!rmem[i]) { - of_node_put(rmem_np); - goto release_rmem; - } - - of_node_put(rmem_np); - } - - r5_core->rmem_count = res_mem_count; - r5_core->rmem = rmem; - return 0; - -release_rmem: - return -EINVAL; -} - /* * zynqmp_r5_core_init() * Create and initialize zynqmp_r5_core type object @@ -806,10 +760,6 @@ static int zynqmp_r5_core_init(struct zynqmp_r5_cluster *cluster, for (i = 0; i < cluster->core_count; i++) { r5_core = cluster->r5_cores[i]; - ret = zynqmp_r5_get_mem_region_node(r5_core); - if (ret) - dev_warn(dev, "memory-region prop failed %d\n", ret); - /* Initialize r5 cores with power-domains parsed from dts */ ret = of_property_read_u32_index(r5_core->np, "power-domains", 1, &r5_core->pm_domain_id); From patchwork Sat Mar 11 01:24:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tanmay Shah X-Patchwork-Id: 67960 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp75183wrd; Fri, 10 Mar 2023 18:01:58 -0800 (PST) X-Google-Smtp-Source: AK7set9s1JEnCBinLYdaGdvwa6Ieze6P9IjkWWy6ycgsKYs5erFy4NIkVgw8NF4pMR1RatOTzAEh X-Received: by 2002:a17:902:bf06:b0:19c:ff15:5bd8 with SMTP id bi6-20020a170902bf0600b0019cff155bd8mr22766374plb.46.1678500118315; Fri, 10 Mar 2023 18:01:58 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1678500118; cv=pass; d=google.com; s=arc-20160816; b=okwAazNQqePqJ/jHxJJiOQ2rTl7Cfa7F9Dn4vcMY8mntU28luVXWaT+Lbwqmm4e72q HP2kClfU+zkFrOxw8UEop2NiYK+6ulem46ENkCbjcjROVV9URPHo85A6rfRg6kda8lHy 2IDvaPGRXhJM3DdDGtBGofrGsGLe0ONsup74Fj9hQSvNWKXcDoK1mmmnJKv7pdhLf20r 4tPsYrpjA7j4NXve11g6zHFhJHN1TuVu3hL9ToXa/uDm8IjqtcxWkN+IGfujfM2MN4nc qVucwJbwsxARQ+bedC+TvPxGYYXf0sMv/KgxVvM6zX+S6HvgpNc4lrZTzSm9fltc3WYi YHow== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=1nw6jj7FxmffKamQY4go1Zi0p1HsqKE1T1IRMz7CeEc=; b=XfgXtWvpDy/QSPJjxGKVogjhjjSzvdY7KpWrfFPR+ewCXPNM1AgSJekANPe03OzwV/ UvVcEMfUiMN8CSR6ht1yNOiE9z9GoZLhbye2y+oJpseQHL3s8Curh703Eg9buNXqURmU qsaqRYR5gqWlp+Sc3PhvpJ+6hEQ6CfwLV9AWSIScAGwuFQ5vrzgPCbCOqP4kmHXNqLEH JG1NDLwKF+9XeNOdAoU7opqpwI0SSvJvIRNPbpojWbe/yovoCq9Zxfs+948gbgKnSkk5 sNKVgBD0nIybc17S9Drfj0Ts/tXya14xVCgH1KdL46izh/4wjJJX8tGFWl670XymjRjE /hOQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=fQbyoDWo; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x7-20020a1709029a4700b0019e8845347asi1285403plv.32.2023.03.10.18.01.46; Fri, 10 Mar 2023 18:01:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=fQbyoDWo; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231343AbjCKB0K (ORCPT + 99 others); Fri, 10 Mar 2023 20:26:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40374 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230427AbjCKBZe (ORCPT ); Fri, 10 Mar 2023 20:25:34 -0500 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2062e.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e89::62e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6E35483E2; Fri, 10 Mar 2023 17:25:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZgE0piepel9qtazkrQ0HF4DJKL1oQGgfeMa8LexhViPRTdNA51FDxTuNrOoxWEDzdG16MHhxpAWwMQ1ONVGZ/AUPc3DGsfxsNlkaeKY2JWsz4f2GCnuZXu0/mYeLf25OgMN65ecWC0k2GQLmzwRvBg4TFL4J8VoGcahnCLLWRyjG6vRkktiKJGaeZ7q+VUplgRn1AHYjqLrVuV+wxaFqUoXir+1rVFwYGuHsYq2ZKkgRroj9cEVYvg57e+pm59upPSd0d614bkk7rXOkjUXHpgrA1mPnmxbpgflCLVD9y3K+3tdYVdV62AQcyAX5gmh+nlPnenOjV5W3kepmkv75LA== 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=1nw6jj7FxmffKamQY4go1Zi0p1HsqKE1T1IRMz7CeEc=; b=c31xkpd5qHdOVY7Mp9JCnVNpSh8r0BhPDqEvQUiyP2UCuoNGCdjUOaIYwTZA0ocnoSdne1O0WJmNLz2RMbUse5PAc9s5OG254i74os6FlFWFbAFsKyqbGl9XnIiEpn9iTQK5mv2iX0rYdgIpGpw4U0Lt87PH6ApWqUHp/WzaAxb4PrLOG2nJHw7RBhwzvaooycaJhkEBThvR4OZpel9ZH+LQJ+QvTbun+hCU8FAGN4MXfw7PHfeS1lJWTLG/VWXJ1izFhgr+N402EgoZ/wzQFWj18YFDQD61oqnL8vte7mVED02IEYGqopBKJ+XqrWCLOcGvYzhx065mrsj4MaaicA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1nw6jj7FxmffKamQY4go1Zi0p1HsqKE1T1IRMz7CeEc=; b=fQbyoDWoMXUHn1M1pgISucl29tndrGvpO7jp24uXLesPEwi8xZ78s+0NJ47VQ0Q9AmT2zOC5shhALMUIOymr7iSG5VkvRDQHKERGSq6fe4gXcc+/KT7bCNfrocRPabwakVMYOcuNlyGd3E7PA/xs+JYnln9irGdVT7v31iyBcUE= Received: from DS7PR07CA0009.namprd07.prod.outlook.com (2603:10b6:5:3af::9) by DM6PR12MB4403.namprd12.prod.outlook.com (2603:10b6:5:2ab::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.20; Sat, 11 Mar 2023 01:24:34 +0000 Received: from DM6NAM11FT071.eop-nam11.prod.protection.outlook.com (2603:10b6:5:3af:cafe::c4) by DS7PR07CA0009.outlook.office365.com (2603:10b6:5:3af::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.20 via Frontend Transport; Sat, 11 Mar 2023 01:24:34 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DM6NAM11FT071.mail.protection.outlook.com (10.13.173.48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6178.20 via Frontend Transport; Sat, 11 Mar 2023 01:24:34 +0000 Received: from SATLEXMB07.amd.com (10.181.41.45) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 10 Mar 2023 19:24:31 -0600 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB07.amd.com (10.181.41.45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 10 Mar 2023 17:24:31 -0800 Received: from xsjtanmays50.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server id 15.1.2375.34 via Frontend Transport; Fri, 10 Mar 2023 19:24:30 -0600 From: Tanmay Shah To: , , , , , CC: , , , Tanmay Shah Subject: [PATCH v5 5/5] remoteproc: xilinx: add mailbox channels for rpmsg Date: Fri, 10 Mar 2023 17:24:08 -0800 Message-ID: <20230311012407.1292118-6-tanmay.shah@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230311012407.1292118-1-tanmay.shah@amd.com> References: <20230311012407.1292118-1-tanmay.shah@amd.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT071:EE_|DM6PR12MB4403:EE_ X-MS-Office365-Filtering-Correlation-Id: 0e9a1138-34b7-4d80-608d-08db21cf5f53 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FrNePqIkXCpwpbGmAGc5wU/0h2ZgCCSOXRqxwPijT6J/IAbNIMTBZp2+LbV8mPQBEy4t+qQtzhtWNGxYdA6N0HoxAZOfBNUtnKei5ljradNKbsMRsUDsHDtxVlJ2PyvrRN6D0gelOEsRA0fTfdCrxqNErb3hAUiZK7RVzsgYqFi5qN8tTT4ncnkaq7YFcYquns/KvDUMB+VR85FRavZLI8vXXbdJb+BMfonRoXB3q8w0T306TYipG4/yLDRIXkkmk36o8hbmy2zwlyYQdLa6S1kGFprODqcwDVoKxB8LzTIfs5wZabwL61QUoFXJJwT6rA88otgpETtiDL+SyUDxst7TqMGU+Xp92fTeEplTVCB/OZGQjLIH6fxooBFsdpqv4c0wsGHhBaf+rrD1CRk4BBN7Hhdw9vaOMfC/D69NfCn6mfQEdPUk/gJc4qyQznq6SQhge3UwXfvMkYIT9XRLPnkgEYkGf7RIYyLmdQTzji9vbqK0ke36SwG2xpdywp7nUQD8reCddkfjUPR+Iyk9wxeXZB7JeDtRS4miqhVy/hstXnhK5g2lXTm2xG4AYYrqPtURaUmHnay4sLvlEh9nhgOoTwx1bdzm9ZAU8EuYqpDZQ3VlWmeDqGx054dT6lDF4z/1QWqWujva7IJOtBtCGOh+TMZQ/V6UAG2EdoQd15hRSuFCZNC3BGgDSuTCNrHpUwwKykNm/Tqhx1qn8pEX6NS9W98dFHU/5LYb/TLQiRfF8yBuqsIWXY6wrD3Se/AM X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230025)(4636009)(346002)(39860400002)(396003)(376002)(136003)(451199018)(40470700004)(46966006)(36840700001)(40480700001)(47076005)(426003)(36860700001)(336012)(82310400005)(86362001)(36756003)(356005)(40460700003)(82740400003)(83380400001)(81166007)(8936002)(478600001)(110136005)(15650500001)(5660300002)(2906002)(966005)(44832011)(8676002)(70206006)(70586007)(316002)(6636002)(54906003)(41300700001)(4326008)(186003)(2616005)(6666004)(26005)(1076003)(17423001)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2023 01:24:34.3366 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0e9a1138-34b7-4d80-608d-08db21cf5f53 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT071.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4403 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,SPF_HELO_PASS, SPF_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760034939766899492?= X-GMAIL-MSGID: =?utf-8?q?1760034939766899492?= This patch makes each r5 core mailbox client and uses tx and rx channels to send and receive data to/from remote processor respectively. This is needed for rpmsg communication to remote processor. Signed-off-by: Tanmay Shah --- Changes in v5: - Remove spurious change - Include kick op regardless status of mailbox nodes in dts Changes in v4: - move zynqmp_r5_setup_mbox from zynqmp_r5_add_rproc_core to zynqmp_r5_cluster_init Changes in v3: - fix multi-line comment format - do not mixup mailbox information with memory-regions - fix redundant dev_warn for split mode - setting up mailboxes should return an error code - redesign driver to move mailbox setup during driver probe - add .kick function only if mailbox setup is success v2: https://lore.kernel.org/all/20230126213154.1707300-1-tanmay.shah@amd.com/ drivers/remoteproc/xlnx_r5_remoteproc.c | 218 +++++++++++++++++++++++- 1 file changed, 217 insertions(+), 1 deletion(-) diff --git a/drivers/remoteproc/xlnx_r5_remoteproc.c b/drivers/remoteproc/xlnx_r5_remoteproc.c index 5dd007622603..53e3e4bd0f38 100644 --- a/drivers/remoteproc/xlnx_r5_remoteproc.c +++ b/drivers/remoteproc/xlnx_r5_remoteproc.c @@ -8,16 +8,23 @@ #include #include #include +#include +#include #include #include #include #include #include #include -#include #include "remoteproc_internal.h" +/* IPI buffer MAX length */ +#define IPI_BUF_LEN_MAX 32U + +/* RX mailbox client buffer max length */ +#define MBOX_CLIENT_BUF_MAX (IPI_BUF_LEN_MAX + \ + sizeof(struct zynqmp_ipi_message)) /* * settings for RPU cluster mode which * reflects possible values of xlnx,cluster-mode dt-property @@ -43,6 +50,27 @@ struct mem_bank_data { char *bank_name; }; +/** + * struct mbox_info + * + * @rx_mc_buf: to copy data from mailbox rx channel + * @tx_mc_buf: to copy data to mailbox tx channel + * @r5_core: this mailbox's corresponding r5_core pointer + * @mbox_work: schedule work after receiving data from mailbox + * @mbox_cl: mailbox client + * @tx_chan: mailbox tx channel + * @rx_chan: mailbox rx channel + */ +struct mbox_info { + unsigned char rx_mc_buf[MBOX_CLIENT_BUF_MAX]; + unsigned char tx_mc_buf[MBOX_CLIENT_BUF_MAX]; + struct zynqmp_r5_core *r5_core; + struct work_struct mbox_work; + struct mbox_client mbox_cl; + struct mbox_chan *tx_chan; + struct mbox_chan *rx_chan; +}; + /* * Hardcoded TCM bank values. This will be removed once TCM bindings are * accepted for system-dt specifications and upstreamed in linux kernel @@ -63,6 +91,7 @@ static const struct mem_bank_data zynqmp_tcm_banks[] = { * @tcm_banks: array of each TCM bank data * @rproc: rproc handle * @pm_domain_id: RPU CPU power domain id + * @ipi: pointer to mailbox information */ struct zynqmp_r5_core { struct device *dev; @@ -71,6 +100,7 @@ struct zynqmp_r5_core { struct mem_bank_data **tcm_banks; struct rproc *rproc; u32 pm_domain_id; + struct mbox_info *ipi; }; /** @@ -88,6 +118,178 @@ struct zynqmp_r5_cluster { struct zynqmp_r5_core **r5_cores; }; +/** + * event_notified_idr_cb() - callback for vq_interrupt per notifyid + * @id: rproc->notify id + * @ptr: pointer to idr private data + * @data: data passed to idr_for_each callback + * + * Pass notification to remoteproc virtio + * + * Return: 0. having return is to satisfy the idr_for_each() function + * pointer input argument requirement. + **/ +static int event_notified_idr_cb(int id, void *ptr, void *data) +{ + struct rproc *rproc = data; + + if (rproc_vq_interrupt(rproc, id) == IRQ_NONE) + dev_dbg(&rproc->dev, "data not found for vqid=%d\n", id); + + return 0; +} + +/** + * handle_event_notified() - remoteproc notification work function + * @work: pointer to the work structure + * + * It checks each registered remoteproc notify IDs. + */ +static void handle_event_notified(struct work_struct *work) +{ + struct mbox_info *ipi; + struct rproc *rproc; + + ipi = container_of(work, struct mbox_info, mbox_work); + rproc = ipi->r5_core->rproc; + + /* + * We only use IPI for interrupt. The RPU firmware side may or may + * not write the notifyid when it trigger IPI. + * And thus, we scan through all the registered notifyids and + * find which one is valid to get the message. + * Even if message from firmware is NULL, we attempt to get vqid + */ + idr_for_each(&rproc->notifyids, event_notified_idr_cb, rproc); +} + +/** + * zynqmp_r5_mb_rx_cb() - receive channel mailbox callback + * @cl: mailbox client + * @msg: message pointer + * + * Receive data from ipi buffer, ack interrupt and then + * it will schedule the R5 notification work. + */ +static void zynqmp_r5_mb_rx_cb(struct mbox_client *cl, void *msg) +{ + struct zynqmp_ipi_message *ipi_msg, *buf_msg; + struct mbox_info *ipi; + size_t len; + + ipi = container_of(cl, struct mbox_info, mbox_cl); + + /* copy data from ipi buffer to r5_core */ + ipi_msg = (struct zynqmp_ipi_message *)msg; + buf_msg = (struct zynqmp_ipi_message *)ipi->rx_mc_buf; + len = ipi_msg->len; + if (len > IPI_BUF_LEN_MAX) { + dev_warn(cl->dev, "msg size exceeded than %d\n", + IPI_BUF_LEN_MAX); + len = IPI_BUF_LEN_MAX; + } + buf_msg->len = len; + memcpy(buf_msg->data, ipi_msg->data, len); + + /* received and processed interrupt ack */ + if (mbox_send_message(ipi->rx_chan, NULL) < 0) + dev_err(cl->dev, "ack failed to mbox rx_chan\n"); + + schedule_work(&ipi->mbox_work); +} + +/** + * zynqmp_r5_setup_mbox() - Setup mailboxes related properties + * this is used for each individual R5 core + * + * @cdev: child node device + * + * Function to setup mailboxes related properties + * return : NULL if failed else pointer to mbox_info + */ +static struct mbox_info *zynqmp_r5_setup_mbox(struct device *cdev) +{ + struct mbox_client *mbox_cl; + struct mbox_info *ipi; + + ipi = kzalloc(sizeof(*ipi), GFP_KERNEL); + if (!ipi) + return NULL; + + mbox_cl = &ipi->mbox_cl; + mbox_cl->rx_callback = zynqmp_r5_mb_rx_cb; + mbox_cl->tx_block = false; + mbox_cl->knows_txdone = false; + mbox_cl->tx_done = NULL; + mbox_cl->dev = cdev; + + /* Request TX and RX channels */ + ipi->tx_chan = mbox_request_channel_byname(mbox_cl, "tx"); + if (IS_ERR(ipi->tx_chan)) { + ipi->tx_chan = NULL; + kfree(ipi); + dev_warn(cdev, "mbox tx channel request failed\n"); + return NULL; + } + + ipi->rx_chan = mbox_request_channel_byname(mbox_cl, "rx"); + if (IS_ERR(ipi->rx_chan)) { + mbox_free_channel(ipi->tx_chan); + ipi->rx_chan = NULL; + ipi->tx_chan = NULL; + kfree(ipi); + dev_warn(cdev, "mbox rx channel request failed\n"); + return NULL; + } + + INIT_WORK(&ipi->mbox_work, handle_event_notified); + + return ipi; +} + +static void zynqmp_r5_free_mbox(struct mbox_info *ipi) +{ + if (!ipi) + return; + + if (ipi->tx_chan) { + mbox_free_channel(ipi->tx_chan); + ipi->tx_chan = NULL; + } + + if (ipi->rx_chan) { + mbox_free_channel(ipi->rx_chan); + ipi->rx_chan = NULL; + } + + kfree(ipi); +} + +/* + * zynqmp_r5_core_kick() - kick a firmware if mbox is provided + * @rproc: r5 core's corresponding rproc structure + * @vqid: virtqueue ID + */ +static void zynqmp_r5_rproc_kick(struct rproc *rproc, int vqid) +{ + struct zynqmp_r5_core *r5_core = rproc->priv; + struct device *dev = r5_core->dev; + struct zynqmp_ipi_message *mb_msg; + struct mbox_info *ipi; + int ret; + + ipi = r5_core->ipi; + if (!ipi) + return; + + mb_msg = (struct zynqmp_ipi_message *)ipi->tx_mc_buf; + memcpy(mb_msg->data, &vqid, sizeof(vqid)); + mb_msg->len = sizeof(vqid); + ret = mbox_send_message(ipi->tx_chan, mb_msg); + if (ret < 0) + dev_warn(dev, "failed to send message\n"); +} + /* * zynqmp_r5_set_mode() * @@ -624,6 +826,7 @@ static const struct rproc_ops zynqmp_r5_rproc_ops = { .find_loaded_rsc_table = rproc_elf_find_loaded_rsc_table, .sanity_check = rproc_elf_sanity_check, .get_boot_addr = rproc_elf_get_boot_addr, + .kick = zynqmp_r5_rproc_kick, }; /** @@ -799,6 +1002,7 @@ static int zynqmp_r5_cluster_init(struct zynqmp_r5_cluster *cluster) struct device_node *child; enum rpu_tcm_comb tcm_mode; int core_count, ret, i; + struct mbox_info *ipi; ret = of_property_read_u32(dev_node, "xlnx,cluster-mode", &cluster_mode); @@ -878,6 +1082,16 @@ static int zynqmp_r5_cluster_init(struct zynqmp_r5_cluster *cluster) goto release_r5_cores; } + /* + * If mailbox nodes are disabled using "status" property then + * setting up mailbox channels will fail. + */ + ipi = zynqmp_r5_setup_mbox(&child_pdev->dev); + if (ipi) { + r5_cores[i]->ipi = ipi; + ipi->r5_core = r5_cores[i]; + } + /* * If two child nodes are available in dts in lockstep mode, * then ignore second child node. @@ -915,6 +1129,7 @@ static int zynqmp_r5_cluster_init(struct zynqmp_r5_cluster *cluster) while (i >= 0) { put_device(child_devs[i]); if (r5_cores[i]) { + zynqmp_r5_free_mbox(r5_cores[i]->ipi); of_reserved_mem_device_release(r5_cores[i]->dev); rproc_del(r5_cores[i]->rproc); rproc_free(r5_cores[i]->rproc); @@ -939,6 +1154,7 @@ static void zynqmp_r5_cluster_exit(void *data) for (i = 0; i < cluster->core_count; i++) { r5_core = cluster->r5_cores[i]; + zynqmp_r5_free_mbox(r5_core->ipi); of_reserved_mem_device_release(r5_core->dev); put_device(r5_core->dev); rproc_del(r5_core->rproc);