Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp725596imj; Thu, 7 Feb 2019 10:51:33 -0800 (PST) X-Google-Smtp-Source: AHgI3IYKj70OsjkWFtzb45KX0eoRWz6dJh6B4EnWjdJL52FEBmeFtUhTfkXv4eRqwztHDc0zsYTn X-Received: by 2002:a17:902:2b8a:: with SMTP id l10mr17210513plb.70.1549565493374; Thu, 07 Feb 2019 10:51:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549565493; cv=none; d=google.com; s=arc-20160816; b=S4cwg3I1lW+ztG3Uu+gwgXos0Svwp/wQV3+w32A0VufKPdNCz524eVSpEyBa7zr8en qCOPrnvVg/NENvedDYQjEvBKAnQ6vXqaSvo1mr3XAQl8CRC/EzJc7qkquF9vBGkyTL4n o9jMzLmkjomx8UBUZ2coIp82XstA9/7aTkz38aA0ddDHQCVaT1emQ8nqfD+/V5Fz2yjp FQedljCXGDM02EpC9RP7Ec7RftvToLORfZFKx0pr8ntkQaXBbdghhkQZF7qUPEhk/YyK Wpz+pc5GRRnBX3VScEIODUWC6Ur/WuO+OKjc7bf1WQOMHzCHz7qUoOGervGxvAkirQZz 5rOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:from:subject:mime-version :message-id:date:dkim-signature; bh=bM4jn6lNIwgT6TBV8rTyAb6ZLmRRecodhu/3Jy2aaug=; b=ilZUDNqW0CpVwlWThuvCHuEqqURU8uAant8Q64OE8Rfr0p9D1gsqZci1yjVB4vr8ip nguhxqDNF25oGspZKTmohUzSQpHtnsrwCHcj2afq6QJdR3Timx/F7YAO/otdpEpgGuGN LJYhz2ZKeqkF3RVovAMCDlb++H6Ua40p54f6yVB4AEGAo6FKqgWr/7bBHf/rbbFFnMSG yDXZLTzBS1HUIXaNxsoF2PJS7YMDC5iuj8lOKhbOlWsL0ckKTB9Kq7/0o9MNtfOHh3en vHfRd8toTvEOMrNt9veWSEWu1zPR8KHmluqDUiNYUTuqgyFWxh1vBXXS2D+Na2PMVIWt nklQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=XgZahOjL; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 43si10779824plb.299.2019.02.07.10.51.16; Thu, 07 Feb 2019 10:51:33 -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=@google.com header.s=20161025 header.b=XgZahOjL; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726883AbfBGSu4 (ORCPT + 99 others); Thu, 7 Feb 2019 13:50:56 -0500 Received: from mail-pg1-f202.google.com ([209.85.215.202]:56997 "EHLO mail-pg1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726319AbfBGSuz (ORCPT ); Thu, 7 Feb 2019 13:50:55 -0500 Received: by mail-pg1-f202.google.com with SMTP id d3so484484pgv.23 for ; Thu, 07 Feb 2019 10:50:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=bM4jn6lNIwgT6TBV8rTyAb6ZLmRRecodhu/3Jy2aaug=; b=XgZahOjLbWi0qFlr4JujyDUN48deMRm8AyLGK2gsx+8DbvmIKgqDisMr6bOTFN3wb0 gqNZfaELpNgzhtfadFVYsj3SjS1a/DvcXhUWQjQnawfrU2ZIeK9NlX88xl6Q4ylpy4d4 hQcb9RBqgkS3nyIxaBGlhptxs0niOJ5+Dd3DPuZUbJMMcFKbm5tUpxD8lU8yhnq94XCZ bF4L73RQNKDl+iWfmSg2j+41jWRqNYzLxO7zzqF6sNnUHUPFmIbLfzHYO7WE9DFrYIRr W9XnN7L+nBhJciyguir8ELaCcHOsdtpHVC+SZHK+JMdPvWRbVzpbkwfBwJiuYTBaUaEV F4xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=bM4jn6lNIwgT6TBV8rTyAb6ZLmRRecodhu/3Jy2aaug=; b=rzW3LnM8ItrItVkcTyLAI0qzeoUHd3GR1CFBwjQ86dUGMKPOceVHkK/noYvIzmz+jh DgmYTqcivM2ZiASnd+iyaqtTRD3bIT0w1v+8xO+Vh0kmqX4HjB6hLarylzM+gjDzjhro YjfOV6wZ9+tz+to78eWvWKGNrW+oplzJzdtOoA67Pl5z2Facj8NxOTdxcXZMYvTzroGJ 6BmZ727jpsXmy4RUtNUmvszm9EFaFKH8N/ARfnGH76Levou6LOOokCQahXiScUesKekM kVYqTld7UPPpC/WtCeQwHlTxcQkCbui86zKcu1Qj1mETO0WXfDqiL+YgxzR0+jy9JuWY SX2g== X-Gm-Message-State: AHQUAuaITmSLJ85nk4zthPm+aTlvd9d1ymf6NbCE9YVWAepRxHEfH37G weGkpDoYvI3ZLQgm3wfsJYodo9UHPL3Khw== X-Received: by 2002:a63:6901:: with SMTP id e1mr3350421pgc.68.1549565454895; Thu, 07 Feb 2019 10:50:54 -0800 (PST) Date: Thu, 7 Feb 2019 10:50:43 -0800 Message-Id: <20190207185043.158981-1-egranata@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.20.1.611.gfbb209baf1-goog Subject: [PATCH] driver: platform: Add support for GpioInt() ACPI to platform_get_irq() From: egranata@google.com To: gregkh@linuxfoundation.org, rafael@kernel.org, enric.balletbo@collabora.com Cc: linux-kernel@vger.kernel.org, gwendal@chromium.org, dtor@chromium.org, briannorris@chromium.org, Enrico Granata Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Enrico Granata ACPI 5 added support for GpioInt resources as a way to provide information about interrupts mediated via a GPIO controller. Several device buses (e.g. SPI, I2C) have support for retrieving an IRQ specified via this type of resource, and providing it directly to the driver as an IRQ number. This is not currently done for the platform drivers, as platform_get_irq() does not try to parse GpioInt() resources. This commit adds that functionality. Signed-off-by: Enrico Granata --- drivers/base/platform.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 1c958eb33ef4d..c50c4f9033aef 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -127,7 +127,17 @@ int platform_get_irq(struct platform_device *dev, unsigned int num) irqd_set_trigger_type(irqd, r->flags & IORESOURCE_BITS); } - return r ? r->start : -ENXIO; + if (r) + return r->start; + + /* + * If no IRQ was found, try to parse ACPI GpioInt resources + * as a last resort. + */ + if (has_acpi_companion(&dev->dev)) + return acpi_dev_gpio_irq_get(ACPI_COMPANION(&dev->dev), num); + + return -ENXIO; #endif } EXPORT_SYMBOL_GPL(platform_get_irq); -- 2.20.1.611.gfbb209baf1-goog