Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp4153057rdb; Thu, 14 Sep 2023 13:29:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGQ9PZh9R3IH1aDEBOzSKPxLM/Yef0SdPaX/1HsvVe5bbQIQlcnZivNEOV9a0ljb1gPhjEy X-Received: by 2002:a05:6a20:a10c:b0:13f:9233:58d with SMTP id q12-20020a056a20a10c00b0013f9233058dmr6416619pzk.2.1694723381924; Thu, 14 Sep 2023 13:29:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694723381; cv=none; d=google.com; s=arc-20160816; b=Lgjj3q8Saf/QNvG+kWlR4WSoQ+3GoQSGFY2UXwzVmhiBVhRiSbegvYrnP1SbIAtwG2 j56hGSxyMoajQFITLe0wnJo1gEe/qrK+WSS3GIbElgSo5bD6H9LM8kBNX4GFekDtGsWB NsvUPuYOx8/phV09GgSopnBbwOom6oxoX0sqMaKmuHEU0jRhVgZvJYXPdM5cVFnzHcka mOK65VMOJcut+UackvKMNjlrzg9RipgCry5+/Tfqpt/Jn8T8bABKNdHt6eDik/EKpEPz tLFt/JcV43r7me9CsydRssygvzJWGPeGdkO/8mth5oIQ6sIcRio3ruopreXmHvLplna5 SfHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=PGcXLLu+CHSYLsLcpmAoYTgNsFmPEOF+7Ss/gH2vgas=; fh=OLn3W8JM4zpgUrOwCf+Ekkhx6X7xfmjKfzCS/LCDCBc=; b=dRv4QN9M1N8wEkcR/d/UgQczAKUQo5GGEnHe7OURTMrstlD4UBj26O3vXGImdpqGE0 CLZufCJI440WpOP59aJqJyzQ0wC36msntIVPag0Ue0IhlWe10G2FNWT2K/8tW/2pdpHX tddtLXuzTq/G+m5vWPhcNyqXp3ZPq3xi2qImEQa7vVWIrhlebMenFYTAK6VjrJ8bKfir Yk7adeG6A64PG91z2neXXIOiLb3oFONtokquFYn0R/js3CXMhDC3MkpetLwKKVdqL3Ej jf450MkbhD6hN1VdVQOu8EnirUybJucKwsZlr2BezMJa7vOUNIFVjgxEE51Zmp1rbTLW fCbw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id n18-20020a056a000d5200b0068e29634d9fsi1939161pfv.235.2023.09.14.13.29.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Sep 2023 13:29:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 9372B8069F28; Thu, 14 Sep 2023 05:01:18 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238176AbjINMBO (ORCPT + 99 others); Thu, 14 Sep 2023 08:01:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56308 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234216AbjINMBN (ORCPT ); Thu, 14 Sep 2023 08:01:13 -0400 Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 23B591BE8; Thu, 14 Sep 2023 05:01:09 -0700 (PDT) Received: from kwepemm600004.china.huawei.com (unknown [172.30.72.55]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4RmbRQ2w1DzMlLL; Thu, 14 Sep 2023 19:57:38 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by kwepemm600004.china.huawei.com (7.193.23.242) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Thu, 14 Sep 2023 20:01:06 +0800 From: Huisong Li To: , , CC: , , , Subject: [PATCH] mailbox: pcc: export the PCC subspace type Date: Thu, 14 Sep 2023 19:57:53 +0800 Message-ID: <20230914115753.9064-1-lihuisong@huawei.com> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.69.192.56] X-ClientProxiedBy: dggems704-chm.china.huawei.com (10.3.19.181) To kwepemm600004.china.huawei.com (7.193.23.242) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Thu, 14 Sep 2023 05:01:18 -0700 (PDT) As stated in APCI spec, the size of the subspace shared memory region may be different for different types. So it is useful for driver to fill PCC communication space. But the driver used this PCC channel doesn't know what is the subspace type of the channel. So export the PCC subspace type by requesting PCC channel. Signed-off-by: Huisong Li --- drivers/mailbox/pcc.c | 10 ++++------ include/acpi/pcc.h | 1 + 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/mailbox/pcc.c b/drivers/mailbox/pcc.c index 94885e411085..9742cc7837bd 100644 --- a/drivers/mailbox/pcc.c +++ b/drivers/mailbox/pcc.c @@ -91,7 +91,6 @@ struct pcc_chan_reg { * @cmd_update: PCC register bundle for the command complete update register * @error: PCC register bundle for the error status register * @plat_irq: platform interrupt - * @type: PCC subspace type * @plat_irq_flags: platform interrupt flags * @chan_in_use: this flag is used just to check if the interrupt needs * handling when it is shared. Since only one transfer can occur @@ -108,7 +107,6 @@ struct pcc_chan_info { struct pcc_chan_reg cmd_update; struct pcc_chan_reg error; int plat_irq; - u8 type; unsigned int plat_irq_flags; bool chan_in_use; }; @@ -263,7 +261,7 @@ static bool pcc_mbox_cmd_complete_check(struct pcc_chan_info *pchan) * bit 0 indicates that Platform is sending a notification and OSPM * needs to respond this interrupt to process this command. */ - if (pchan->type == ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE) + if (pchan->chan.type == ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE) return !val; return !!val; @@ -284,7 +282,7 @@ static irqreturn_t pcc_mbox_irq(int irq, void *p) int ret; pchan = chan->con_priv; - if (pchan->type == ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE && + if (pchan->chan.type == ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE && !pchan->chan_in_use) return IRQ_NONE; @@ -312,7 +310,7 @@ static irqreturn_t pcc_mbox_irq(int irq, void *p) * * The PCC master subspace channel clears chan_in_use to free channel. */ - if (pchan->type == ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE) + if (pchan->chan.type == ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE) pcc_send_data(chan, NULL); pchan->chan_in_use = false; @@ -766,7 +764,7 @@ static int pcc_mbox_probe(struct platform_device *pdev) pcc_parse_subspace_shmem(pchan, pcct_entry); - pchan->type = pcct_entry->type; + pchan->chan.type = pcct_entry->type; pcct_entry = (struct acpi_subtable_header *) ((unsigned long) pcct_entry + pcct_entry->length); } diff --git a/include/acpi/pcc.h b/include/acpi/pcc.h index 73e806fe7ce7..eddf9f5dfba3 100644 --- a/include/acpi/pcc.h +++ b/include/acpi/pcc.h @@ -16,6 +16,7 @@ struct pcc_mbox_chan { u32 latency; u32 max_access_rate; u16 min_turnaround_time; + u8 type; }; #define MAX_PCC_SUBSPACES 256 -- 2.33.0