Received: by 2002:a25:824b:0:0:0:0:0 with SMTP id d11csp1477570ybn; Wed, 25 Sep 2019 19:24:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqzZFTn3MRkjjQv0XAthoWEyYOO29qC+WApE3yLTlJRBDLB2TQAQakjMzBpnjn1UXelXd8XI X-Received: by 2002:a50:ce53:: with SMTP id k19mr1208468edj.2.1569464672895; Wed, 25 Sep 2019 19:24:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1569464672; cv=none; d=google.com; s=arc-20160816; b=Kt4k8OH8wKNUt8d2pu5lKcenw6GnyIIaskYndqIoy5u3S1i7L5xdM9c51hNlU6DHnt GbAK0DDPwlvUT5Ilr0RYeuMbqzighWx+T2Scmg2Qc3tqoTn87cba9LUewtMAaC8l1RNL IH65dxkuJqDToe2HJr2XhJU2d6hrISweHrVOFiaFKSupDNNa/hevnlTEASC7H9r+q+qR z0l4x/OvVKC4zZbUuyDOzkpLHPq2RXg2l6e3Ee4JnYgQBhmOIUhOjEfiAQaVNH7d/dwX nxF9Q7zJ2FId0brwfDNi+VPCW0xQL+yi7hJKQ8WHaQ1c8ZDeOzdI1UgKmZeZNcfqhadM y1Qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=1BwwwtEmQ9AlxcCG5v97bHxSrP2W9DHPcn8IFojetBw=; b=LQbSO6qdGHtWKNFkCF1LFbB8zIHHZH2hZJ+pyudJAdeAeD9AkInPj4+zG3rz6krxIA rf84O6q0nBSuS/3FcaUAJGXMvrmgsnj56H0cVZBOWR2UUJbmIgBoXDVn/M/wEyKmDWLY 0aP9amEZ+qOvsjEG83KkYi24+12WEFCVD6262h3acCeTXZubftJ7QgJ6csX8fCAE9p8A DHtMmVYmS65O4EZkFimnlGGyI4vBaAF7sx0hLUX4VON2UztAhQRx3o5YnPaNzDl0ntd6 CrFor0j/cz8FwaK9kbrpdsNkf/pbpVCcj+4QoAeby1SiLsi7iZRIBQjt429iLDaHJzUA iE8A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 10si336195ejw.231.2019.09.25.19.24.09; Wed, 25 Sep 2019 19:24:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2502414AbfIWS2F (ORCPT + 99 others); Mon, 23 Sep 2019 14:28:05 -0400 Received: from foss.arm.com ([217.140.110.172]:47106 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2502410AbfIWS2B (ORCPT ); Mon, 23 Sep 2019 14:28:01 -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 8879B22D9; Mon, 23 Sep 2019 11:28:01 -0700 (PDT) Received: from big-swifty.lan (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5B0C93F694; Mon, 23 Sep 2019 11:27:58 -0700 (PDT) From: Marc Zyngier To: kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org Cc: Eric Auger , James Morse , Julien Thierry , Suzuki K Poulose , Thomas Gleixner , Jason Cooper , Lorenzo Pieralisi , Andrew Murray Subject: [PATCH 25/35] irqchip/gic-v4.1: Plumb mask/unmask SGI callbacks Date: Mon, 23 Sep 2019 19:25:56 +0100 Message-Id: <20190923182606.32100-26-maz@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190923182606.32100-1-maz@kernel.org> References: <20190923182606.32100-1-maz@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Implement mask/unmask for virtual SGIs by calling into the configuration helper. Signed-off-by: Marc Zyngier --- drivers/irqchip/irq-gic-v3-its.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c index 5234b9eef8ad..727a890f72ae 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -3660,6 +3660,22 @@ static void its_configure_sgi(struct irq_data *d, bool clear) its_send_single_vcommand(find_4_1_its(), its_build_vsgi_cmd, &desc); } +static void its_sgi_mask_irq(struct irq_data *d) +{ + struct its_vpe *vpe = irq_data_get_irq_chip_data(d); + + vpe->sgi_config[d->hwirq].enabled = false; + its_configure_sgi(d, false); +} + +static void its_sgi_unmask_irq(struct irq_data *d) +{ + struct its_vpe *vpe = irq_data_get_irq_chip_data(d); + + vpe->sgi_config[d->hwirq].enabled = true; + its_configure_sgi(d, false); +} + static int its_sgi_set_affinity(struct irq_data *d, const struct cpumask *mask_val, bool force) @@ -3669,6 +3685,8 @@ static int its_sgi_set_affinity(struct irq_data *d, static struct irq_chip its_sgi_irq_chip = { .name = "GICv4.1-sgi", + .irq_mask = its_sgi_mask_irq, + .irq_unmask = its_sgi_unmask_irq, .irq_set_affinity = its_sgi_set_affinity, }; -- 2.20.1