From patchwork Fri Sep 17 13:33:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sudeep Holla X-Patchwork-Id: 514183 Delivered-To: patch@linaro.org Received: by 2002:a02:c816:0:0:0:0:0 with SMTP id p22csp2236073jao; Fri, 17 Sep 2021 06:34:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyvgi3D23iBf+YsqREAofsoJhf6KA2fSZKmv6XbfycEOJOee3GuGscvDpXrutErhuPfhYUq X-Received: by 2002:a17:906:b7cf:: with SMTP id fy15mr12514879ejb.397.1631885662552; Fri, 17 Sep 2021 06:34:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631885662; cv=none; d=google.com; s=arc-20160816; b=MdbDdYmELnU3uvnOSoXVHhNU+rQMS3tXpb3nCPrcP5lc3eOt+Utspl+gAg+XbOg8MH /lgkjkPiv3hcZbkUBmLOcmVT5rtOHUtbK/Jnguig6+FoErgSlXwLsNz1NivNoLZwn6Si kwfMmFF3jRSkpNDB+wQnp7/9u0yTu9EQaMbXorFm9hHW5D1QhRDrkZKRVwnylAW+h5fN dcGhgh5GmcpeAUdRMo++gP2Zbe+mb3Q7I3EdOqBtnXT0ztfNldE8Ngu0mN5rK7UxQ5ch z9vblvt4k8EvLOGUFXw/E1kTEqq/dCDU5m0nlYHmWPwdYECiCatXMfFz86kxUeSjMRWb ubsA== 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=uywjvFr7ZBP6NM+Rxe/22MlLrePXJIyX80Pxxb+0lrc=; b=tBbvIkHy31Ugw7S3JziRF4vYCa3qQnPQaNZRYPLmZ4pNeTGkdhMk+t33SMZazfB3n4 HYQncUFmMC3b+GmYkloABOkDhKPXMbX1n+YvJ3xcrofD3ei+Xwyr1V1bLF6EDqii7+yb ubBR6Va2+EsdnfqKET9rTKrA6zyDHFHajmdrMos9nc1nLPjwdRTiMBE5tGo0HnWYnuSR Os8ayBhu7Fpad6oa418Dvpd+SRX3xWJbOUEwYnLdI0r4LsoDEI/PNv/Zm94f+ZlwGA6n pWU1Ehs7FKHw9j5SnTeE54whgTq/yX7FJmLvAOxiKwbG0P1w4ildOUXO3nobNKlm+R2Q oM2A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-acpi-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-acpi-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 5si1232151ejq.398.2021.09.17.06.34.22; Fri, 17 Sep 2021 06:34:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-acpi-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-acpi-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-acpi-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 S245263AbhIQNfn (ORCPT + 2 others); Fri, 17 Sep 2021 09:35:43 -0400 Received: from foss.arm.com ([217.140.110.172]:53286 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244872AbhIQNfe (ORCPT ); Fri, 17 Sep 2021 09:35:34 -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 4460011D4; Fri, 17 Sep 2021 06:34:12 -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 5F87F3F719; Fri, 17 Sep 2021 06:34:11 -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 v2 05/14] mailbox: pcc: Consolidate subspace doorbell register parsing Date: Fri, 17 Sep 2021 14:33:48 +0100 Message-Id: <20210917133357.1911092-6-sudeep.holla@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210917133357.1911092-1-sudeep.holla@arm.com> References: <20210917133357.1911092-1-sudeep.holla@arm.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org Extended PCC subspaces(Type 3 and 4) differ 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. Reviewed-by: Cristian Marussi Signed-off-by: Sudeep Holla --- drivers/mailbox/pcc.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) -- 2.25.1 diff --git a/drivers/mailbox/pcc.c b/drivers/mailbox/pcc.c index efde77d7038c..97c44c431ada 100644 --- a/drivers/mailbox/pcc.c +++ b/drivers/mailbox/pcc.c @@ -448,6 +448,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. * @@ -513,8 +535,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) { @@ -522,13 +542,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); }