Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp2555738rwd; Fri, 16 Jun 2023 05:25:55 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ486IaQq4ox0Js0OepatRSXOaQM4uEoDRD75tywNT3GwO/IfNZQUmJAE0Z1hVp7Dl5Cfkoe X-Received: by 2002:a05:6808:1389:b0:38c:66d3:67c0 with SMTP id c9-20020a056808138900b0038c66d367c0mr2225074oiw.16.1686918355681; Fri, 16 Jun 2023 05:25:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686918355; cv=none; d=google.com; s=arc-20160816; b=F+hubJLS1DiW+FYzl1OV2/TGDD8dqr1t6gBp7ZmaWEAOenanSdYAxHokek5PW0kTF/ 3TRfEBI1DYRI7c9PKiJZw79T6TqsMuMRtcdQuADn0Y4qflDwlOR+5aWaUodWkd/g5rw5 KnWr8jKHEieJ74bMlmiMjPCMJ2mvxSYr3pjE+s6jVDs9P89IR9mD3+YzgCNXU5c5eOPn tB7Aq/MOl5RSvQ80h6fDWevlJ5HyGP1FujF38/4w0+cItJ+BsEnrDS5AZoa+HXHFHrh4 tZy0pKt2FLYU82xpahGHkvkndqT/8MUgqwLT6JMBI3Mxo3b1odPT0SXBl09jHAezsdLE oshA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:robot-unsubscribe :robot-id:message-id:mime-version:references:in-reply-to:cc:subject :to:reply-to:sender:from:dkim-signature:dkim-signature:date; bh=2+hO6lUsJ+fKQi1OpOmoqjBrIThguK00NWLOatsOhNc=; b=n1ygS0Ld9ekTUUmOmdG6Kp8lE6+HEAlQPampz7GRHo0999rC2PX6z1TyMyzyfUgSn7 UolugKdVWIilDmLHCAtD5ji9HRrQ21DmrTOOMu2Ut+MgpAubS+vITNsQzqhmiiCcaniz pUJQEtdgdgWVmBpzh+QT3DoJvg16cZ0+/3XX1b0zJ+li8nBFaCmY7bVDgKyc9P57yslf fPLu/cPJCbPCmwi9OH71VgvsXWkuhXKEc77JXNjyjvOoVdyRdOAZr0ZPWhDZNd1HsEDB D2j8VoEbrZz5Itp7hkqWD+IfQFylApCHSIONfPuhKR1iGkNh2cPl7Xml+78vy3YEZ+u5 QlUg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=yYp9RbPV; dkim=neutral (no key) header.i=@linutronix.de; 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=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o4-20020a17090a0a0400b0025651f9779fsi1432328pjo.177.2023.06.16.05.25.44; Fri, 16 Jun 2023 05:25:55 -0700 (PDT) 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=@linutronix.de header.s=2020 header.b=yYp9RbPV; dkim=neutral (no key) header.i=@linutronix.de; 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=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345100AbjFPMDT (ORCPT + 99 others); Fri, 16 Jun 2023 08:03:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46038 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229518AbjFPMDM (ORCPT ); Fri, 16 Jun 2023 08:03:12 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 58B2B295B; Fri, 16 Jun 2023 05:03:11 -0700 (PDT) Date: Fri, 16 Jun 2023 12:03:09 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1686916989; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2+hO6lUsJ+fKQi1OpOmoqjBrIThguK00NWLOatsOhNc=; b=yYp9RbPVAjNLWiXdjkP9vM+CjCnr81j3JRnBiMH6zR7qixawBxVItUM36Aa0nq7rY6rFy7 5xRxANEaSHGHZRP3mToZ6862+v48VH/CWzk/pv6pINs9LeJySqpuSy/U6gGhCcHPdK2w7L ttQ1G0AAO6g1Lkfsywuqqsn8gB6wGoW2/vJK1YKK3Q72qhVBsE8Doz4yxdU7tL3SfOOd2U L+DajcjYQdHJ1Nfe472BCrT98xiPzmv60R8Z03ThF18pwN/rKvtOtpYdQFCv0qinLBNv6o ZiXSdoEACZUpFepFkAn4wbtpK9wENoaoog5ScKB0QQO1NmZ7WD4Iu1FMZrqTKQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1686916989; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2+hO6lUsJ+fKQi1OpOmoqjBrIThguK00NWLOatsOhNc=; b=YNcoHxQDkwnBuccQl/QjlyWg0X+lXnSxzqX06YR2H1GINcp7azdw8O6R9KNGWEefHOZUal 0xAs5/zp1wmIYVDg== From: "irqchip-bot for Jianmin Lv" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-kernel@vger.kernel.org Subject: [irqchip: irq/irqchip-next] irqchip/loongson-liointc: Fix IRQ trigger polarity Cc: stable@vger.kernel.org, Huacai Chen , Chong Qiao , Jianmin Lv , Marc Zyngier , tglx@linutronix.de In-Reply-To: <20230614115936.5950-4-lvjianmin@loongson.cn> References: <20230614115936.5950-4-lvjianmin@loongson.cn> MIME-Version: 1.0 Message-ID: <168691698940.404.8300996918505647671.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,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 The following commit has been merged into the irq/irqchip-next branch of irqc= hip: Commit-ID: 1d7471b4e0ebba5a4bf9db4ade43619e8f2d333d Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platfo= rms/1d7471b4e0ebba5a4bf9db4ade43619e8f2d333d Author: Jianmin Lv AuthorDate: Wed, 14 Jun 2023 19:59:34 +08:00 Committer: Marc Zyngier CommitterDate: Fri, 16 Jun 2023 12:59:28 +01:00 irqchip/loongson-liointc: Fix IRQ trigger polarity For the INT_POLARITY register of Loongson-2K series IRQ controller, '0' indicates high level or rising edge triggered, '1' indicates low level or falling edge triggered, and we can find out the information from the Loongson 2K1000LA User Manual v1.0, Table 9-2, Section 9.3 (=E4=B8=AD=E6=96=AD=E5=AF=84=E5=AD=98=E5= =99=A8=E6=8F=8F=E8=BF=B0 / Description of the Interrupt Registers). For Loongson-3 CPU series, setting INT_POLARITY register is not supported and writting it has no effect. So trigger polarity setting shouled be fixed for Loongson-2K CPU series. Fixes: 17343d0b4039 ("irqchip/loongson-liointc: Support to set IRQ type for A= CPI path") Cc: stable@vger.kernel.org Reviewed-by: Huacai Chen Co-developed-by: Chong Qiao Signed-off-by: Chong Qiao Signed-off-by: Jianmin Lv Signed-off-by: Marc Zyngier Link: https://lore.kernel.org/r/20230614115936.5950-4-lvjianmin@loongson.cn --- drivers/irqchip/irq-loongson-liointc.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/irqchip/irq-loongson-liointc.c b/drivers/irqchip/irq-loo= ngson-liointc.c index 8d00a9a..5dd9db8 100644 --- a/drivers/irqchip/irq-loongson-liointc.c +++ b/drivers/irqchip/irq-loongson-liointc.c @@ -32,6 +32,10 @@ #define LIOINTC_REG_INTC_EN_STATUS (LIOINTC_INTC_CHIP_START + 0x04) #define LIOINTC_REG_INTC_ENABLE (LIOINTC_INTC_CHIP_START + 0x08) #define LIOINTC_REG_INTC_DISABLE (LIOINTC_INTC_CHIP_START + 0x0c) +/* + * LIOINTC_REG_INTC_POL register is only valid for Loongson-2K series, and + * Loongson-3 series behave as noops. + */ #define LIOINTC_REG_INTC_POL (LIOINTC_INTC_CHIP_START + 0x10) #define LIOINTC_REG_INTC_EDGE (LIOINTC_INTC_CHIP_START + 0x14) =20 @@ -116,19 +120,19 @@ static int liointc_set_type(struct irq_data *data, unsi= gned int type) switch (type) { case IRQ_TYPE_LEVEL_HIGH: liointc_set_bit(gc, LIOINTC_REG_INTC_EDGE, mask, false); - liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, true); + liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, false); break; case IRQ_TYPE_LEVEL_LOW: liointc_set_bit(gc, LIOINTC_REG_INTC_EDGE, mask, false); - liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, false); + liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, true); break; case IRQ_TYPE_EDGE_RISING: liointc_set_bit(gc, LIOINTC_REG_INTC_EDGE, mask, true); - liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, true); + liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, false); break; case IRQ_TYPE_EDGE_FALLING: liointc_set_bit(gc, LIOINTC_REG_INTC_EDGE, mask, true); - liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, false); + liointc_set_bit(gc, LIOINTC_REG_INTC_POL, mask, true); break; default: irq_gc_unlock_irqrestore(gc, flags);