From nobody Sat Feb 7 05:32:53 2026 Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E1545344DA7; Tue, 3 Feb 2026 12:45:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770122748; cv=none; b=SqDgdxjy2nLfS3qFodfLiFl6WQ++/OxU/6lbwIQ1rTfF98PXWq8JPzyYAMIOfNm/aNp/7CkVsCi4qpabQKsycUx7jz1D7ylYCfoRry+fxB5ChixJssMJq1mggRfyT4Y/g5qcHl4TKxADBXZY0BHNr9BNRhE83Es2xCocik/W8fI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770122748; c=relaxed/simple; bh=0InosUgrVWaNmdHvIS/QPdCbWtjBzu04ewl+Qv83zZs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TmOXwORKtqzT3H2lDA+6MAhvFu+qf2cO/e1yMRQbdA81znV5XFAZcwZoCfhza3WxMVHT9rTx0QhQyVOMj0VFDxBLx6Ooi8/U/mNOuGUMrMxqkIJXaN3RuzyVfVRuusaGHt67Qs1itZxxTDoKDfZpbqbNEynEXwCHftdx27+GmI0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn; spf=pass smtp.mailfrom=loongson.cn; arc=none smtp.client-ip=114.242.206.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [10.40.57.136]) by gateway (Coremail) with SMTP id _____8AxjsPv7YFpz10PAA--.50524S3; Tue, 03 Feb 2026 20:45:35 +0800 (CST) Received: from localhost.localdomain (unknown [10.40.57.136]) by front1 (Coremail) with SMTP id qMiowJDxzsLk7YFp3Bc_AA--.51803S4; Tue, 03 Feb 2026 20:45:34 +0800 (CST) From: Tianyang Zhang To: chenhuacai@kernel.org, kernel@xen0n.name, corbet@lwn.net, alexs@kernel.org, si.yanteng@linux.dev, tglx@linutronix.de, jiaxun.yang@flygoat.com, maobibo@loongson.cn Cc: loongarch@lists.linux.dev, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Tianyang Zhang Subject: [PATCH v11 2/4] irqchip/irq-loonarch-avec: Prepare for interrupt redirection support Date: Tue, 3 Feb 2026 20:45:19 +0800 Message-ID: <20260203124522.2288900-3-zhangtianyang@loongson.cn> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20260203124522.2288900-1-zhangtianyang@loongson.cn> References: <20260203124522.2288900-1-zhangtianyang@loongson.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: qMiowJDxzsLk7YFp3Bc_AA--.51803S4 X-CM-SenderInfo: x2kd0wxwld05hdqjqz5rrqw2lrqou0/ X-Coremail-Antispam: 1Uk129KBj93XoWxuF4fJry5Zw43AF18CFyfuFX_yoW5Gw4kpF W5Aa12yr48tF4xXry5Gr4kAFy3AFyxKrZrtayfGa93XFZ8Gws7WFy2yas5ZFy8Gr48ua4I 9r40qr1Uuan8Z3gCm3ZEXasCq-sJn29KB7ZKAUJUUUU3529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUBIb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r126r13M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Xr0_Ar1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Gr0_Cr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x0267AK xVW8Jr0_Cr1UM2kKe7AKxVWUAVWUtwAS0I0E0xvYzxvE52x082IY62kv0487Mc804VCY07 AIYIkI8VC2zVCFFI0UMc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWU tVWrXwAv7VC2z280aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7V AKI48JMxkF7I0En4kS14v26r126r1DMxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY 6r1j6r4UMxCIbckI1I0E14v26r126r1DMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7 xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8ZwCIc40Y0x0EwIxGrwCI42IY6xII jxv20xvE14v26ryj6F1UMIIF0xvE2Ix0cI8IcVCY1x0267AKxVW8JVWxJwCI42IY6xAIw2 0EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr0_Cr1lIxAIcVC2z280aVCY1x02 67AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU8Gii3UUUUU== Content-Type: text/plain; charset="utf-8" Interrupt redirection support requires a new interrupt chip, which needs to share data structures, constants and functions with the AVEC code. Move them to the header file and make the required functions public. including: 1 marco AVEC_MSG_OFFSET 2 struct avecintc_data 3 Make avecintc_sync public Signed-off-by: Tianyang Zhang --- drivers/irqchip/irq-loongarch-avec.c | 12 +----------- drivers/irqchip/irq-loongson.h | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/drivers/irqchip/irq-loongarch-avec.c b/drivers/irqchip/irq-loo= ngarch-avec.c index ba556c008cf3..70aa34439370 100644 --- a/drivers/irqchip/irq-loongarch-avec.c +++ b/drivers/irqchip/irq-loongarch-avec.c @@ -24,7 +24,6 @@ #define VECTORS_PER_REG 64 #define IRR_VECTOR_MASK 0xffUL #define IRR_INVALID_MASK 0x80000000UL -#define AVEC_MSG_OFFSET 0x100000 =20 #ifdef CONFIG_SMP struct pending_list { @@ -47,15 +46,6 @@ struct avecintc_chip { =20 static struct avecintc_chip loongarch_avec; =20 -struct avecintc_data { - struct list_head entry; - unsigned int cpu; - unsigned int vec; - unsigned int prev_cpu; - unsigned int prev_vec; - unsigned int moving; -}; - static inline void avecintc_enable(void) { u64 value; @@ -85,7 +75,7 @@ static inline void pending_list_init(int cpu) INIT_LIST_HEAD(&plist->head); } =20 -static void avecintc_sync(struct avecintc_data *adata) +void avecintc_sync(struct avecintc_data *adata) { struct pending_list *plist; =20 diff --git a/drivers/irqchip/irq-loongson.h b/drivers/irqchip/irq-loongson.h index 11fa138d1f44..1f11d799bf0a 100644 --- a/drivers/irqchip/irq-loongson.h +++ b/drivers/irqchip/irq-loongson.h @@ -6,6 +6,17 @@ #ifndef _DRIVERS_IRQCHIP_IRQ_LOONGSON_H #define _DRIVERS_IRQCHIP_IRQ_LOONGSON_H =20 +#define AVEC_MSG_OFFSET 0x100000 + +struct avecintc_data { + struct list_head entry; + unsigned int cpu; + unsigned int vec; + unsigned int prev_cpu; + unsigned int prev_vec; + unsigned int moving; +}; + int find_pch_pic(u32 gsi); =20 int liointc_acpi_init(struct irq_domain *parent, @@ -24,4 +35,12 @@ int pch_msi_acpi_init(struct irq_domain *parent, struct acpi_madt_msi_pic *acpi_pchmsi); int pch_msi_acpi_init_avec(struct irq_domain *parent); =20 +int redirect_acpi_init(struct irq_domain *parent); + +#ifdef CONFIG_SMP +void avecintc_sync(struct avecintc_data *adata); +#else +static inline void avecintc_sync(struct avecintc_data *adata) {} +#endif + #endif /* _DRIVERS_IRQCHIP_IRQ_LOONGSON_H */ --=20 2.41.0