Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp669563pxv; Thu, 8 Jul 2021 11:10:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy24Myq6V1XF+fe8OSnR6hNLeog+M+KNbxx0Ts4+/Ju1xe2taaJf/cZbaHoNxD7hziU0HRE X-Received: by 2002:a17:906:a108:: with SMTP id t8mr32092837ejy.407.1625767840019; Thu, 08 Jul 2021 11:10:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625767840; cv=none; d=google.com; s=arc-20160816; b=BNa8h2ZXcK2DLN5kDNT5vC8pa2A8RfADa+9K9SsybaoqZ2DXk3AFDneZha3FmKtmFd NqXhr/VMcUYwGAK3/OLHknWnyuhldB6bmHzME3AT9QWt2Wy/aND9Uy3GxVDeeT20gyaE IozjyKsImHJxf99uFuk4W8anfttFeKod4R1JNz5zgcdbhycO7JPHqcIGIUREvGVcd/fe DaPNsZzR83nuOw6n026G6bnaW3+y57dJMt3rim88bxyP9QS9BHQR5xNYLVOx9n/5nFbU wa8N5S8nXdlNYdCY6VWT/k7IxQql4SiYx9CJKII6tpHaow6WrEdZ4MQJW6DZpF0IU8RU QYSg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=sgzLHhMYxKROSJeRvFi5xsnYR7zMK1dwLnzSJoAru8c=; b=vjr+vQnXLzY5PLyxDAROEbp1nyUsNMNpkjpm3mz8ImszOOY4Hxyyqq1ve+ExSadpCO nCnIFx1b6HN1vxfIgJG/HVpEVbYX29VFaOnDSkBfBkhAtgXg8hYR2KoFZc3KplmWbJWN hF7gc2m9sHlPuVh2QJB7lPSeH/BqdoLaTBizXJOZ80EoUeInsRgKSJGkud/59HRNJ/FU dJ1OJxVXAi4CWS5qHUCyFuv+gyXSWh0vW4RfadDBpeeSFtBxDND9ly5pdt36WQ4AaXM2 6GZKJrOF2DFVM3CnsAAN5niicCBU4yw9loxSd8JSI58KJ4iiP3FEpqx8RhkvIQ0zEbsE 0Hgw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h1si3676085ejo.462.2021.07.08.11.10.17; Thu, 08 Jul 2021 11:10:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230292AbhGHSLu (ORCPT + 99 others); Thu, 8 Jul 2021 14:11:50 -0400 Received: from foss.arm.com ([217.140.110.172]:35996 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230220AbhGHSLq (ORCPT ); Thu, 8 Jul 2021 14:11:46 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5581A1063; Thu, 8 Jul 2021 11:09:04 -0700 (PDT) Received: from usa.arm.com (e103737-lin.cambridge.arm.com [10.1.197.49]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 6FB7D3F66F; Thu, 8 Jul 2021 11:09:03 -0700 (PDT) From: Sudeep Holla To: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Sudeep Holla , Cristian Marussi , "Rafael J . Wysocki" , Jassi Brar Subject: [PATCH 05/13] mailbox: pcc: Consolidate subspace doorbell register parsing Date: Thu, 8 Jul 2021 19:08:43 +0100 Message-Id: <20210708180851.2311192-6-sudeep.holla@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210708180851.2311192-1-sudeep.holla@arm.com> References: <20210708180851.2311192-1-sudeep.holla@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Extended PCC subspaces(Type 3 and 4) differs from generic(Type 0) and HW-Reduced Communication(Type 1 and 2) subspace structures. However some fields share same offsets and same type of structure can be use to extract the fields. In order to simplify that, let us move all the doorbell register parsing into pcc_parse_subspace_db_reg and consolidate there. It will be easier to extend it if required within the same. Signed-off-by: Sudeep Holla --- drivers/mailbox/pcc.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/drivers/mailbox/pcc.c b/drivers/mailbox/pcc.c index 55866676a508..5f19bee71c04 100644 --- a/drivers/mailbox/pcc.c +++ b/drivers/mailbox/pcc.c @@ -447,6 +447,28 @@ static int pcc_parse_subspace_irq(struct pcc_chan_info *pchan, return 0; } +/** + * pcc_parse_subspace_db_reg - Parse the PCC doorbell register + * + * @pchan: Pointer to the PCC channel info structure. + * @pcct_entry: Pointer to the ACPI subtable header. + * + */ +static void pcc_parse_subspace_db_reg(struct pcc_chan_info *pchan, + struct acpi_subtable_header *pcct_entry) +{ + struct acpi_pcct_subspace *pcct_ss; + struct acpi_generic_address *db_reg; + + pcct_ss = (struct acpi_pcct_subspace *)pcct_entry; + + /* If doorbell is in system memory cache the virt address */ + db_reg = &pcct_ss->doorbell_register; + if (db_reg->space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) + pchan->db_vaddr = acpi_os_ioremap(db_reg->address, + db_reg->bit_width / 8); +} + /** * acpi_pcc_probe - Parse the ACPI tree for the PCCT. * @@ -512,8 +534,6 @@ static int __init acpi_pcc_probe(void) for (i = 0; i < count; i++) { struct pcc_chan_info *pchan = chan_info + i; - struct acpi_generic_address *db_reg; - struct acpi_pcct_subspace *pcct_ss; pcc_mbox_channels[i].con_priv = pcct_entry; if (pcc_mbox_ctrl.txdone_irq) { @@ -521,13 +541,8 @@ static int __init acpi_pcc_probe(void) if (rc < 0) goto err; } - pcct_ss = (struct acpi_pcct_subspace *) pcct_entry; + pcc_parse_subspace_db_reg(pchan, pcct_entry); - /* If doorbell is in system memory cache the virt address */ - db_reg = &pcct_ss->doorbell_register; - if (db_reg->space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) - pchan->db_vaddr = acpi_os_ioremap(db_reg->address, - db_reg->bit_width / 8); pcct_entry = (struct acpi_subtable_header *) ((unsigned long) pcct_entry + pcct_entry->length); } -- 2.25.1