Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp95242imu; Tue, 8 Jan 2019 15:21:38 -0800 (PST) X-Google-Smtp-Source: ALg8bN4i2rJfz2ELeBkOo0RoqPLmA8emugN8LlmBs0cxyli4lv5sJ3a6coBp18udZKjoztRj07E2 X-Received: by 2002:a63:5455:: with SMTP id e21mr3329303pgm.316.1546989698095; Tue, 08 Jan 2019 15:21:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546989698; cv=none; d=google.com; s=arc-20160816; b=wcHogKEwAWZJPUbkuwSo6SK3CAa641hBaUUx329FZP4/htlNGavxaKFaSHbFHDZAdc /ydKI7FszUWQ8bpMuVeXF4Bz0qc9sNt3F6d2Jjzn/ePt3JyADPdJsS6MsF18QYRa6JE2 hEZCR5a4YAE8mOSikZlZvbcgAa9TwgIljCoDYeaWwKB7ON2AHVPI2sDGDaDAaFLRfcQI CZa3YzYmmqhds41ZqSrruS/m9S/nRwzoQacgoXWvxJIzJDCptWKoU65PhUIGiXdn9Zhy uvatV0fEz7eftq3wt4J0J0IsT7xHgmsgbfVAqrgJCxw4zeJMb9T4lFlNExBtMlLpmOfg v4BA== 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 :dkim-signature; bh=0ylXrXLnQ5QXI61eOz8M4LcH/YwnNc8bez78OgllWH0=; b=C9/BGiT6wxULCaAf24DbUzfnGkqfpYgS+aQqrdUaVirVZGP8mS7JSeNmvBD8u9Pta+ LjhX8yr1jD4rhGGJpzDyN3UmgNbB795wwnCCeHTV8AcAxSORh8/q950pETLHkv+RkrIf 5ce1bY+2o/fZxGz+fEuE0iXUrq9K8w/ejw+FyBvYpWx4yoxdhNVsFcm1H9BFhJm4aV3X ru8V6kdC0zHJAJtp6HLc++kMRNoyCBGiouvgu05Au64hl/4iDBX5TuJXIpLkv+SoEHPE stSgKO7XGSRBJtw15FmBqe/LfSg70KfJmEC7qS3c8kgmzLxVncQ01Z4c+sqQAy6VCxyO 5Tig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=dkkuacZ5; 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=pass (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 e13si9781809pfi.271.2019.01.08.15.21.19; Tue, 08 Jan 2019 15:21:38 -0800 (PST) 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; dkim=pass header.i=@kernel.org header.s=default header.b=dkkuacZ5; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728904AbfAHT0e (ORCPT + 99 others); Tue, 8 Jan 2019 14:26:34 -0500 Received: from mail.kernel.org ([198.145.29.99]:60434 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728138AbfAHT0c (ORCPT ); Tue, 8 Jan 2019 14:26:32 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id AC92F20883; Tue, 8 Jan 2019 19:26:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1546975591; bh=P939VIZKA0hygcKOeVt7XPRsSJUCw6frQNLRP8KLso4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dkkuacZ5DvmuemckQZe8dn88MW8Xk61XJKyOQX4tXV3qR13HU1BcEUJzHeiC/UuZL oG9ksyQP7sITMt7ycT9G69SJmedLe9k6f/2aHgq2g/RBS/6408Se148ga6rVNcaYDD ZuYv6jRB0WJHWxaLyU/Fm4UQwQENzcstptC0d7II= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Manivannan Sadhasivam , Linus Walleij , Sasha Levin , linux-gpio@vger.kernel.org Subject: [PATCH AUTOSEL 4.20 002/117] gpio: pl061: Move irq_chip definition inside struct pl061 Date: Tue, 8 Jan 2019 14:24:30 -0500 Message-Id: <20190108192628.121270-2-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190108192628.121270-1-sashal@kernel.org> References: <20190108192628.121270-1-sashal@kernel.org> MIME-Version: 1.0 X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Manivannan Sadhasivam [ Upstream commit ed8dce4c6f726b7f3c6bf40859b92a9e32f189c1 ] Keeping the irq_chip definition static will make it shared with multiple giochips in the system. This practice is considered to be bad and now we will get the below warning from gpiolib core: "detected irqchip that is shared with multiple gpiochips: please fix the driver." Hence, move the irq_chip definition from static to `struct pl061` for using a unique irq_chip for each gpiochip. Signed-off-by: Manivannan Sadhasivam Signed-off-by: Linus Walleij Signed-off-by: Sasha Levin --- drivers/gpio/gpio-pl061.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/gpio/gpio-pl061.c b/drivers/gpio/gpio-pl061.c index 2afd9de84a0d..dc42571e6fdc 100644 --- a/drivers/gpio/gpio-pl061.c +++ b/drivers/gpio/gpio-pl061.c @@ -54,6 +54,7 @@ struct pl061 { void __iomem *base; struct gpio_chip gc; + struct irq_chip irq_chip; int parent_irq; #ifdef CONFIG_PM @@ -281,15 +282,6 @@ static int pl061_irq_set_wake(struct irq_data *d, unsigned int state) return irq_set_irq_wake(pl061->parent_irq, state); } -static struct irq_chip pl061_irqchip = { - .name = "pl061", - .irq_ack = pl061_irq_ack, - .irq_mask = pl061_irq_mask, - .irq_unmask = pl061_irq_unmask, - .irq_set_type = pl061_irq_type, - .irq_set_wake = pl061_irq_set_wake, -}; - static int pl061_probe(struct amba_device *adev, const struct amba_id *id) { struct device *dev = &adev->dev; @@ -328,6 +320,13 @@ static int pl061_probe(struct amba_device *adev, const struct amba_id *id) /* * irq_chip support */ + pl061->irq_chip.name = dev_name(dev); + pl061->irq_chip.irq_ack = pl061_irq_ack; + pl061->irq_chip.irq_mask = pl061_irq_mask; + pl061->irq_chip.irq_unmask = pl061_irq_unmask; + pl061->irq_chip.irq_set_type = pl061_irq_type; + pl061->irq_chip.irq_set_wake = pl061_irq_set_wake; + writeb(0, pl061->base + GPIOIE); /* disable irqs */ irq = adev->irq[0]; if (irq < 0) { @@ -336,14 +335,14 @@ static int pl061_probe(struct amba_device *adev, const struct amba_id *id) } pl061->parent_irq = irq; - ret = gpiochip_irqchip_add(&pl061->gc, &pl061_irqchip, + ret = gpiochip_irqchip_add(&pl061->gc, &pl061->irq_chip, 0, handle_bad_irq, IRQ_TYPE_NONE); if (ret) { dev_info(&adev->dev, "could not add irqchip\n"); return ret; } - gpiochip_set_chained_irqchip(&pl061->gc, &pl061_irqchip, + gpiochip_set_chained_irqchip(&pl061->gc, &pl061->irq_chip, irq, pl061_irq_handler); amba_set_drvdata(adev, pl061); -- 2.19.1