Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp4361654ybi; Tue, 11 Jun 2019 05:32:08 -0700 (PDT) X-Google-Smtp-Source: APXvYqyk6K6/+0MfMMVYst5hq+vMTRR/8yUxYKu692zH8Lvbtz0da46Rx53cU5PHce1jiqSAEldq X-Received: by 2002:a17:90a:1c17:: with SMTP id s23mr18168492pjs.108.1560256328665; Tue, 11 Jun 2019 05:32:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560256328; cv=none; d=google.com; s=arc-20160816; b=rqzJfJ6KdZiFzRLMfyA+diB/V1rzeZMFuhVMIhW3WYqr0h/daOyFSivzj+bzJrY6KZ NQfXU+rYg439z4Ebd/vlVDaw4alzjjTz9dkf/gIr9AwWVdKXINmyl4KbVz+GeyXqLjJj D6Rfmx2dDPiVnzJBQTaiA5oKne/+/Ka25nZEFdaAPq7N3z5isA+9CdewsvSREl0G4uOd SRKm4Tc/rZYhY7DZ5WO7euTDWbHWo7247ASZ02HnFI9yvT2dZvmF5CB6O5MD3KngLwrl qsgYpo/F0ZLTH9T4c3rw4rcH8o+eXQ/2Acgj5pw80fNg28ZpZa9bzcMgRrDKL7XusDL7 q19g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=IBht1EFo/Z7ccUIagwc16xtdNpv6VS9aaRDMiVCDpK0=; b=zexr3Usq9vTrkZK1TCi85e7KSReY4iztUhjVgxmGYF34FHKTtkvQbRuR7wv7RkcH/i TSj74d7ftx5zByWx7UdtvAb/O1eLNngYyaOr+MK2SKFWpvuV1KaazHiiETJ93k/0shhf Crr8Ui4inWQudBkCFQaEpjb95mqkccczjjsqjPxTH92nQPYSONUvDGI8/gt+ky40slOI itmGQmTfDPCMyWOERcqoqTKXeajdX1TTCncPOGh9rCVx2o3FzYmahxKn7E1LhDhIGzU2 sgb/xi/8ycNojV1FAheTQBRrE+I/aUfEydk8KN6RK4sYehdHgcoQRb6pl161vFxlY7qO rkYg== 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=opensource.cirrus.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s11si12217712pgp.326.2019.06.11.05.31.52; Tue, 11 Jun 2019 05:32:08 -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=opensource.cirrus.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387955AbfFKMbl (ORCPT + 99 others); Tue, 11 Jun 2019 08:31:41 -0400 Received: from mx0b-001ae601.pphosted.com ([67.231.152.168]:32812 "EHLO mx0b-001ae601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729382AbfFKMb1 (ORCPT ); Tue, 11 Jun 2019 08:31:27 -0400 Received: from pps.filterd (m0077474.ppops.net [127.0.0.1]) by mx0b-001ae601.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x5BCTZ9o027522; Tue, 11 Jun 2019 07:31:03 -0500 Authentication-Results: ppops.net; spf=none smtp.mailfrom=ckeepax@opensource.cirrus.com Received: from mail1.cirrus.com (mail1.cirrus.com [141.131.3.20]) by mx0b-001ae601.pphosted.com with ESMTP id 2t09ep3xqm-1; Tue, 11 Jun 2019 07:31:03 -0500 Received: from EDIEX02.ad.cirrus.com (unknown [198.61.84.81]) by mail1.cirrus.com (Postfix) with ESMTP id EF02E611C8C8; Tue, 11 Jun 2019 07:31:02 -0500 (CDT) Received: from EDIEX01.ad.cirrus.com (198.61.84.80) by EDIEX02.ad.cirrus.com (198.61.84.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1591.10; Tue, 11 Jun 2019 13:31:01 +0100 Received: from ediswmail.ad.cirrus.com (198.61.86.93) by EDIEX01.ad.cirrus.com (198.61.84.80) with Microsoft SMTP Server id 15.1.1591.10 via Frontend Transport; Tue, 11 Jun 2019 13:31:01 +0100 Received: from algalon.ad.cirrus.com (algalon.ad.cirrus.com [198.90.251.122]) by ediswmail.ad.cirrus.com (Postfix) with ESMTP id B3C752DD; Tue, 11 Jun 2019 13:31:01 +0100 (BST) From: Charles Keepax To: , CC: , , , , , , , Subject: [PATCH v4 4/7] i2c: core: Make i2c_acpi_get_irq available to the rest of the I2C core Date: Tue, 11 Jun 2019 13:30:58 +0100 Message-ID: <20190611123101.25264-5-ckeepax@opensource.cirrus.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190611123101.25264-1-ckeepax@opensource.cirrus.com> References: <20190611123101.25264-1-ckeepax@opensource.cirrus.com> MIME-Version: 1.0 Content-Type: text/plain X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=767 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1906110085 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In preparation for more refactoring make i2c_acpi_get_irq available outside i2c-core-acpi.c. Signed-off-by: Charles Keepax --- Changes since v3: - Move the change to use the helper function from i2c-core-base into its own patch. Thanks, Charles drivers/i2c/i2c-core-acpi.c | 15 +++++++++++++-- drivers/i2c/i2c-core.h | 7 +++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c index 7d4d66ba752d4..35966cc337dde 100644 --- a/drivers/i2c/i2c-core-acpi.c +++ b/drivers/i2c/i2c-core-acpi.c @@ -144,8 +144,17 @@ static int i2c_acpi_add_resource(struct acpi_resource *ares, void *data) return 1; /* No need to add resource to the list */ } -static int i2c_acpi_get_irq(struct acpi_device *adev) +/** + * i2c_acpi_get_irq - get device IRQ number from ACPI + * @client: Pointer to the I2C client device + * + * Find the IRQ number used by a specific client device. + * + * Return: The IRQ number or an error code. + */ +int i2c_acpi_get_irq(struct i2c_client *client) { + struct acpi_device *adev = ACPI_COMPANION(&client->adapter->dev); struct list_head resource_list; int irq = -ENOENT; int ret; @@ -162,6 +171,8 @@ static int i2c_acpi_get_irq(struct acpi_device *adev) return irq; } +static struct i2c_client *i2c_acpi_find_client_by_adev(struct acpi_device *adev); + static int i2c_acpi_get_info(struct acpi_device *adev, struct i2c_board_info *info, struct i2c_adapter *adapter, @@ -198,7 +209,7 @@ static int i2c_acpi_get_info(struct acpi_device *adev, *adapter_handle = lookup.adapter_handle; /* Then fill IRQ number if any */ - ret = i2c_acpi_get_irq(adev); + ret = i2c_acpi_get_irq(i2c_acpi_find_client_by_adev(adev)); if (ret > 0) info->irq = ret; diff --git a/drivers/i2c/i2c-core.h b/drivers/i2c/i2c-core.h index 2a3b28bf826b1..517d98be68d25 100644 --- a/drivers/i2c/i2c-core.h +++ b/drivers/i2c/i2c-core.h @@ -63,6 +63,8 @@ const struct acpi_device_id * i2c_acpi_match_device(const struct acpi_device_id *matches, struct i2c_client *client); void i2c_acpi_register_devices(struct i2c_adapter *adap); + +int i2c_acpi_get_irq(struct i2c_client *client); #else /* CONFIG_ACPI */ static inline void i2c_acpi_register_devices(struct i2c_adapter *adap) { } static inline const struct acpi_device_id * @@ -71,6 +73,11 @@ i2c_acpi_match_device(const struct acpi_device_id *matches, { return NULL; } + +static inline int i2c_acpi_get_irq(struct i2c_client *client) +{ + return 0; +} #endif /* CONFIG_ACPI */ extern struct notifier_block i2c_acpi_notifier; -- 2.11.0