From nobody Sat Feb 7 21:08:13 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 76E2D23370E; Mon, 7 Apr 2025 09:59:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019943; cv=none; b=e4rQOERvxDOl6IBP4Fd/fr4/QV/PsGC10o8JV6TP4ZGm7I8OBLJnCf93r/ufGt3PcbTlut5wGPfIjt32F1xd3n1Iw1dyRPrDFb9vsphJ1tBat9Orzst+vu/NqwJ8Kq4qyyX5pP7B6kT/KkQjGlZQznAYcfoi6CjSXydm+2Uq4NQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019943; c=relaxed/simple; bh=E1EKhvH/3/E+I7074KzqGnDYkH6JWY+UHDd5lGqMH2Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WeS4WEDYRQmi07zSSawK0uXjXwEzNi29F5Lr5ktX5VF/WUPafUdxTJtMW90yLqSW5MKGkVDs90kzaRLHRsqSNH2IprkMjwlyCaFVlyWcbZmJflw4B3FyEnE10XIbkaU2k54JUJLH4GIRY+8C9bVT4R8Gnd+cdMV+uAP+Mno0B+Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=dbNhh3Bv; arc=none smtp.client-ip=198.175.65.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="dbNhh3Bv" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1744019942; x=1775555942; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=E1EKhvH/3/E+I7074KzqGnDYkH6JWY+UHDd5lGqMH2Q=; b=dbNhh3BvyjnRwaUOfqbfl/lXH+99HCP+D5xrbZpwdI2/OuxWEAD1bNDa wavAF/7vl+MX7+nPDHsCH9C2W/a+eV4toRp7JvOPBuDS5o2JCiMj21hDk Lp5d4aMy8Usxpzehr1uMFOs356nYs4u56Rt/jVlZK5JgN/7+KXPJszlGI RVTHDQkBKuEJxcMO5aoQs7JZ/gPGuwoGRyzViRTh6ysx5xm5+b/T8jeBW tZW13c1Nv/bne+y1WMsDgW7LSP7UYwToLruhy5caeo19NBO9KZrLduq7z 2Km+/ND2iglFOXYoFarLcjeQ6xC1lpELrvKRaKN0DCGxkyjkd5R0DgaDi g==; X-CSE-ConnectionGUID: BINjPnWkTdK9eYFBVTjLfg== X-CSE-MsgGUID: zJv2ytM4RK6fwIgjRNr4lg== X-IronPort-AV: E=McAfee;i="6700,10204,11396"; a="49188882" X-IronPort-AV: E=Sophos;i="6.15,194,1739865600"; d="scan'208";a="49188882" Received: from fmviesa010.fm.intel.com ([10.60.135.150]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2025 02:58:58 -0700 X-CSE-ConnectionGUID: WNN06WvWRVaIFK5leiCG3A== X-CSE-MsgGUID: mCwYltZ1SZOd1VIeRbTouQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,194,1739865600"; d="scan'208";a="128411723" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa010.fm.intel.com with ESMTP; 07 Apr 2025 02:58:55 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 826E5F0; Mon, 07 Apr 2025 12:58:54 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Wolfram Sang , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Tomi Valkeinen Subject: [PATCH v2 1/6] i2c: core: Drop duplicate check before calling OF APIs Date: Mon, 7 Apr 2025 12:55:12 +0300 Message-ID: <20250407095852.215809-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250407095852.215809-1-andriy.shevchenko@linux.intel.com> References: <20250407095852.215809-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" OF APIs are usually NULL-aware and returns an error in case when device node is not present or supported. We already have a check for the returned value, no need to check for the parameter. Signed-off-by: Andy Shevchenko Tested-by: Tomi Valkeinen --- drivers/i2c/i2c-core-base.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c index 7ad1ad5c8c3f..c14ffd6190d3 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -1209,11 +1209,9 @@ struct i2c_client *i2c_new_ancillary_device(struct i= 2c_client *client, u32 addr =3D default_addr; int i; =20 - if (np) { - i =3D of_property_match_string(np, "reg-names", name); - if (i >=3D 0) - of_property_read_u32_index(np, "reg", i, &addr); - } + i =3D of_property_match_string(np, "reg-names", name); + if (i >=3D 0) + of_property_read_u32_index(np, "reg", i, &addr); =20 dev_dbg(&client->adapter->dev, "Address for %s : 0x%x\n", name, addr); return i2c_new_dummy_device(client->adapter, addr); @@ -1651,12 +1649,10 @@ int i2c_add_adapter(struct i2c_adapter *adapter) struct device *dev =3D &adapter->dev; int id; =20 - if (dev->of_node) { - id =3D of_alias_get_id(dev->of_node, "i2c"); - if (id >=3D 0) { - adapter->nr =3D id; - return __i2c_add_numbered_adapter(adapter); - } + id =3D of_alias_get_id(dev->of_node, "i2c"); + if (id >=3D 0) { + adapter->nr =3D id; + return __i2c_add_numbered_adapter(adapter); } =20 mutex_lock(&core_lock); --=20 2.47.2 From nobody Sat Feb 7 21:08:13 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D8AA7230BF3; Mon, 7 Apr 2025 09:58:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019941; cv=none; b=CcRRQ3N/NF0/lyafobOqxJY59oL6HgkDoSDJsrYFKxIX/klThaf+/Z96xpkJ2a6eWGnZD3lhFUBKeueFU2APjtcMwXhf3uHpyXB68HxzNJ3HzlNMvRxxV8k9o5ksjbAeZD0AyjU/sexBb8MRftU1hWYLZHa9yMNZ9QXc2Fmaw/k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019941; c=relaxed/simple; bh=0UC5mlfa4AOwG6H3hGjWSJbdq0kyeaAOoxIWVs9NAy0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mYKIumP945sxrI3dTplOkxmWjdNna4qUyyHu12Gmv1+lvw/bWvxWg2Rq+HzIvB+dITNcpqtHTOWcjrStlejolghNXbtu0M9Et1IcM9dgu0hVnObBFQyNgUyQTm1xreDPqQxtNlfK4hFqMiRZOAEuj8DxRVZ92nPyPAtB4ws8J8c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=S/1WV/9X; arc=none smtp.client-ip=198.175.65.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="S/1WV/9X" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1744019940; x=1775555940; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=0UC5mlfa4AOwG6H3hGjWSJbdq0kyeaAOoxIWVs9NAy0=; b=S/1WV/9XcYFwqIPv+t9qwuzvBEgMGOj7AXA78aJpqaJvMBGeIuPU5yL7 AtITjX09C5AI6kvcgsvFET93wtxDFvEjVOzXx175gpu8a7X93byZVjgiN sbc1SRGPIdpoMsus/FFESLKj9lL0hRiQp2Ly6DE6+FTdu/Ulxag48riGe VZl5ILMFVaBV80ury33f5OfWW/5xhctgju3Um0od0M9WxtQPaRPEcAu1J 5hh0uNL0G6WExFYaUt5lrIPRopZ6Dy5Mjh0IGIBQ7RIAZLo6qI2LvYvhb I+BI9dwHb0UHritDD7Gu1twROZBBkipBvpEf4CEHFhfYGRMfKvjfsfiio A==; X-CSE-ConnectionGUID: OTShqZsoSkKGgORHq33fnA== X-CSE-MsgGUID: BiQ5isNMRzu6gEpES2gpWw== X-IronPort-AV: E=McAfee;i="6700,10204,11396"; a="49188876" X-IronPort-AV: E=Sophos;i="6.15,194,1739865600"; d="scan'208";a="49188876" Received: from fmviesa010.fm.intel.com ([10.60.135.150]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2025 02:58:58 -0700 X-CSE-ConnectionGUID: T2LkOHEWSAmBXx/v9KmWCQ== X-CSE-MsgGUID: bFFLnbxmR/GRIYjfStVFQQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,194,1739865600"; d="scan'208";a="128411721" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa010.fm.intel.com with ESMTP; 07 Apr 2025 02:58:55 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id 91478338; Mon, 07 Apr 2025 12:58:54 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Wolfram Sang , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Tomi Valkeinen Subject: [PATCH v2 2/6] i2c: core: Unify the firmware node type check Date: Mon, 7 Apr 2025 12:55:13 +0300 Message-ID: <20250407095852.215809-3-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250407095852.215809-1-andriy.shevchenko@linux.intel.com> References: <20250407095852.215809-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" OF and ACPI currently are using asymmetrical APIs to check for the firmware node type. Unify them by using is_*_node() against struct fwnode_handle pointer. Signed-off-by: Andy Shevchenko Tested-by: Tomi Valkeinen --- drivers/i2c/i2c-core-base.c | 14 ++++++++------ drivers/i2c/i2c-core-slave.c | 11 +++++++---- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c index c14ffd6190d3..edab56e5d5e5 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -490,6 +490,7 @@ static int i2c_smbus_host_notify_to_irq(const struct i2= c_client *client) =20 static int i2c_device_probe(struct device *dev) { + struct fwnode_handle *fwnode =3D dev_fwnode(dev); struct i2c_client *client =3D i2c_verify_client(dev); struct i2c_driver *driver; bool do_power_on; @@ -508,11 +509,11 @@ static int i2c_device_probe(struct device *dev) /* Keep adapter active when Host Notify is required */ pm_runtime_get_sync(&client->adapter->dev); irq =3D i2c_smbus_host_notify_to_irq(client); - } else if (dev->of_node) { + } else if (is_of_node(fwnode)) { irq =3D of_irq_get_byname(dev->of_node, "irq"); if (irq =3D=3D -EINVAL || irq =3D=3D -ENODATA) irq =3D of_irq_get(dev->of_node, 0); - } else if (ACPI_COMPANION(dev)) { + } else if (is_acpi_device_node(fwnode)) { bool wake_capable; =20 irq =3D i2c_acpi_get_irq(client, &wake_capable); @@ -1054,15 +1055,16 @@ EXPORT_SYMBOL_GPL(i2c_new_client_device); */ void i2c_unregister_device(struct i2c_client *client) { + struct fwnode_handle *fwnode; + if (IS_ERR_OR_NULL(client)) return; =20 - if (client->dev.of_node) { + fwnode =3D dev_fwnode(&client->dev); + if (is_of_node(fwnode)) { of_node_clear_flag(client->dev.of_node, OF_POPULATED); of_node_put(client->dev.of_node); - } - - if (ACPI_COMPANION(&client->dev)) + } else if (is_acpi_device_node(fwnode)) acpi_device_clear_enumerated(ACPI_COMPANION(&client->dev)); =20 device_remove_software_node(&client->dev); diff --git a/drivers/i2c/i2c-core-slave.c b/drivers/i2c/i2c-core-slave.c index faefe1dfa8e5..3c5cb61b8c39 100644 --- a/drivers/i2c/i2c-core-slave.c +++ b/drivers/i2c/i2c-core-slave.c @@ -11,6 +11,7 @@ #include #include #include +#include =20 #include "i2c-core.h" =20 @@ -108,15 +109,17 @@ EXPORT_SYMBOL_GPL(i2c_slave_event); */ bool i2c_detect_slave_mode(struct device *dev) { - if (IS_BUILTIN(CONFIG_OF) && dev->of_node) { + struct fwnode_handle *fwnode =3D dev_fwnode(dev); + + if (is_of_node(fwnode)) { u32 reg; =20 - for_each_child_of_node_scoped(dev->of_node, child) { - of_property_read_u32(child, "reg", ®); + for_each_child_node_scoped(fwnode, child) { + fwnode_property_read_u32(child, "reg", ®); if (reg & I2C_OWN_SLAVE_ADDRESS) return true; } - } else if (IS_BUILTIN(CONFIG_ACPI) && ACPI_HANDLE(dev)) { + } else if (is_acpi_device_node(fwnode)) { dev_dbg(dev, "ACPI slave is not supported yet\n"); } return false; --=20 2.47.2 From nobody Sat Feb 7 21:08:13 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F11351B4223; Mon, 7 Apr 2025 09:58:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.13 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019939; cv=none; b=MeiopsQbeIOGZh6DEqumUCD2SwxhVmivj++mzmmY/MoirGC6h9EMRNX+SyC1ocRAhZeMDx2zpmv5rW7r3TTXhwqcg1YoHKaO8ad3ru4uXI5/bVYyJNcHr+HcQTWINBYJGLh7Py8iWStNqh6N1iKKoDwOOKJex+SJggFHB+CLkGw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019939; c=relaxed/simple; bh=0DO7HOaJu4ISmBYlhgihRq0QriI5BOsSYEBRFY3MbDg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l/7+ej5QKQ5Wwg1V5MSKAJAxz7KKLfcaFGKU/wefI5AZI2gaAHGhtCgPVk20sEedCEDMAEUu8F2PiOK12SN3kN+LupVe1pvZi4WToEtxTQAQZKguYDJXKskbJJU7AyIdpx7ieTf3a3mmpg3nAIW6eXCkNXlZUskJia/y0zkujHc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=GlJ9FHLM; arc=none smtp.client-ip=198.175.65.13 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="GlJ9FHLM" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1744019938; x=1775555938; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=0DO7HOaJu4ISmBYlhgihRq0QriI5BOsSYEBRFY3MbDg=; b=GlJ9FHLMI6t/cxLUj3bljJm8UJURTFj5CUx6sLQveSULGJW8YregNScF RdxlC+q+ofsYJyKVvUoG0aBLS/0NVa9LdNh8jn8acasslXVX6T2kfrWUt +govGZGcr6yBVqv70KJZ5+T3MPoPz0fAwM3XylT+Tz7wik6Winny3vZyW aOn3L4i9+KGxSRzYYK7MTT8BC7fCEitk6qLLnyE/iWqO2yKvvLGFjDZ+e RcBmffNEg+ILnipdL6q/MJETiLLW74bcg/YiS1CI87o080kcsenQgj51I eWsTVrCHQ+Gm4OhyllOkXnfbTEnYECdgwk+cDiWsI2fGdIzOIzafIVEqe Q==; X-CSE-ConnectionGUID: ZxQIvSsxQp+HSOiqY9Xt0Q== X-CSE-MsgGUID: MFkNmjb1Rnq2qUs1DXREaA== X-IronPort-AV: E=McAfee;i="6700,10204,11396"; a="56376823" X-IronPort-AV: E=Sophos;i="6.15,194,1739865600"; d="scan'208";a="56376823" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2025 02:58:58 -0700 X-CSE-ConnectionGUID: RjwU16IPQfyor6crNl+KSw== X-CSE-MsgGUID: ogM/qmdsRPud9KqVMXQZ6g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,194,1739865600"; d="scan'208";a="132644255" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa005.fm.intel.com with ESMTP; 07 Apr 2025 02:58:55 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id A0B603B1; Mon, 07 Apr 2025 12:58:54 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Wolfram Sang , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Tomi Valkeinen Subject: [PATCH v2 3/6] i2c: core: Switch to fwnode APIs to get IRQ Date: Mon, 7 Apr 2025 12:55:14 +0300 Message-ID: <20250407095852.215809-4-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250407095852.215809-1-andriy.shevchenko@linux.intel.com> References: <20250407095852.215809-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to fwnode APIs to get IRQ. In particular this enables a support of the separate wakeup IRQ. The rest is converted just for the sake of consistency and fwnode reuse. Signed-off-by: Andy Shevchenko Tested-by: Tomi Valkeinen --- drivers/i2c/i2c-core-base.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c index edab56e5d5e5..196b29e5924b 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -33,7 +33,6 @@ #include #include #include -#include #include #include #include @@ -510,9 +509,9 @@ static int i2c_device_probe(struct device *dev) pm_runtime_get_sync(&client->adapter->dev); irq =3D i2c_smbus_host_notify_to_irq(client); } else if (is_of_node(fwnode)) { - irq =3D of_irq_get_byname(dev->of_node, "irq"); + irq =3D fwnode_irq_get_byname(fwnode, "irq"); if (irq =3D=3D -EINVAL || irq =3D=3D -ENODATA) - irq =3D of_irq_get(dev->of_node, 0); + irq =3D fwnode_irq_get(fwnode, 0); } else if (is_acpi_device_node(fwnode)) { bool wake_capable; =20 @@ -547,7 +546,7 @@ static int i2c_device_probe(struct device *dev) if (client->flags & I2C_CLIENT_WAKE) { int wakeirq; =20 - wakeirq =3D of_irq_get_byname(dev->of_node, "wakeup"); + wakeirq =3D fwnode_irq_get_byname(fwnode, "wakeup"); if (wakeirq =3D=3D -EPROBE_DEFER) { status =3D wakeirq; goto put_sync_adapter; --=20 2.47.2 From nobody Sat Feb 7 21:08:13 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E3954232360; Mon, 7 Apr 2025 09:59:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019942; cv=none; b=KBK9reguaGF+skD/6u5YBYZxnGjHrFUvEONlyghV/UqWK3ytxqa70449NJGs93y98MRrfxDjuJMj/1ZLb0hX/rhb1182d2vFdwUyN+9lt2q6aJ1TfAhSd6dROCpynhOk5ul3ifp63cTO2lpg+Dq52j60p2qHG88AtC+7mJ9FfxA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019942; c=relaxed/simple; bh=jiMwF9dmcgH1wkfNa5VdCm9OlKEMlZNRwxi5aYQbhTc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=i6c7tOhRk5yOzWf2tFhd8/xXaq/58nObGo90IkVznE9GRBQY4wm6H4MppdRWC6+vnZ3PHtocYqHoIF631io6W0FpC0j5vniC8KXbqp/wyepogBsmuAVAvmWQzhU/YpLu8UhC8+7MMwm5QcdxxCaW48Hfp1xv8ZoPMRljlTHdw7s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=QrqOKB9c; arc=none smtp.client-ip=198.175.65.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="QrqOKB9c" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1744019941; x=1775555941; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=jiMwF9dmcgH1wkfNa5VdCm9OlKEMlZNRwxi5aYQbhTc=; b=QrqOKB9czxDWyNL6gPVlpHcvvmKtntiIkjrq9ELk3fb9F890NmFXQp3X lk38NuyO4WlNniel5/ZVvpnPm46aO6Zwu6asiFhylFNS7NuibO/XQfj88 29pLJBVZ7B8za5kgworCAvRHs52c74bH+7HW6R2WfOj8N3L/dj3UyBn1l UoJA90VsusS2Psu8veS9PA3wPlas7IXfHFJdCli0K1de6ckw/HRTChX4k pxZqR3EJ+7kz5XrE8fnRFgH9ghZw3xN02j4bO3ju1eO286KvY8mPK4rXo WkdGmudEkUVaZ47how03eja5Ml9rTIjYMuAyWBM6gAZgnHbhxDtucCe30 w==; X-CSE-ConnectionGUID: NuKdIpFWTy634FgOKUpK9A== X-CSE-MsgGUID: KQVEJ5GoSfef3V9DtJIJQQ== X-IronPort-AV: E=McAfee;i="6700,10204,11396"; a="49188881" X-IronPort-AV: E=Sophos;i="6.15,194,1739865600"; d="scan'208";a="49188881" Received: from fmviesa010.fm.intel.com ([10.60.135.150]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2025 02:58:58 -0700 X-CSE-ConnectionGUID: PiAmxbQzRW+tRHJxa3xTjQ== X-CSE-MsgGUID: CjW0eAoWQ/GTRX0h/PA24w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,194,1739865600"; d="scan'208";a="128411724" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa010.fm.intel.com with ESMTP; 07 Apr 2025 02:58:55 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id B0F36484; Mon, 07 Apr 2025 12:58:54 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Wolfram Sang , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Tomi Valkeinen Subject: [PATCH v2 4/6] i2c: core: Reuse fwnode variable where it makes sense Date: Mon, 7 Apr 2025 12:55:15 +0300 Message-ID: <20250407095852.215809-5-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250407095852.215809-1-andriy.shevchenko@linux.intel.com> References: <20250407095852.215809-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Reuse fwnode variable where it makes sense. This avoids unneeded duplication hidden in some macros and unifies the code for different types of fwnode. Signed-off-by: Andy Shevchenko Tested-by: Tomi Valkeinen --- drivers/i2c/i2c-core-base.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c index 196b29e5924b..a0d3aec6c00e 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -567,7 +567,7 @@ static int i2c_device_probe(struct device *dev) =20 dev_dbg(dev, "probe\n"); =20 - status =3D of_clk_set_defaults(dev->of_node, false); + status =3D of_clk_set_defaults(to_of_node(fwnode), false); if (status < 0) goto err_clear_wakeup_irq; =20 @@ -1061,10 +1061,10 @@ void i2c_unregister_device(struct i2c_client *clien= t) =20 fwnode =3D dev_fwnode(&client->dev); if (is_of_node(fwnode)) { - of_node_clear_flag(client->dev.of_node, OF_POPULATED); + of_node_clear_flag(to_of_node(fwnode), OF_POPULATED); of_node_put(client->dev.of_node); } else if (is_acpi_device_node(fwnode)) - acpi_device_clear_enumerated(ACPI_COMPANION(&client->dev)); + acpi_device_clear_enumerated(to_acpi_device_node(fwnode)); =20 device_remove_software_node(&client->dev); device_unregister(&client->dev); --=20 2.47.2 From nobody Sat Feb 7 21:08:13 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BBE02233717; Mon, 7 Apr 2025 09:59:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019943; cv=none; b=ake2+rYgIgmiXqGSmEXDvP6i6B/uo3W/t8Zy0+FRw5fVgvni+whYyjFJ5tkTz4p2FMIWakWhUk+rqa4Yq3huDXRuQcDcP/zfRcK20fGbX0xBvPIEtEAyqfj3oEzRfxTE6Gp0x9u4txjmg0WldOE0aXNaF7E+3dcwm4AY2eQHnHU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019943; c=relaxed/simple; bh=O8EfThU5MyAxi4xa2ZcUb7XQES2zhDiFxwmhDKkyTh0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=h9La92TLwE8xbwKS63ZhCPvwPwyJtCE0CkVNfeZfAVLpJ/uwKLAkv6pdzuQppVJI9VdHXhTup7puVRgZYUDvPDd+iSI7g4C9CLuptJD1irJrQ4YL2lyBEalhTA2RTzH4Hf01VpqcBysWM4eEpJfO68Jg09oGseAqC4CRanqwhgQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=kehfOrj7; arc=none smtp.client-ip=198.175.65.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="kehfOrj7" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1744019942; x=1775555942; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=O8EfThU5MyAxi4xa2ZcUb7XQES2zhDiFxwmhDKkyTh0=; b=kehfOrj7McWwtlTVZFjesx55QA1lNYh2cWM/30E2STisCYYNwWRLuPNu 9lL0wNisxWmZ//xehLvPq/qXBTYOT/iAED3SJOh5XmJnrqJpiO7NVCmKO 8M/gO7mIsTKT6eRmUrX+GqrWGkG7kPVBcLMz3qMCYFqXxdevAulduo7Rw qPOpGDo7JMOHK+yMmZ2yJGSe/5gy9cltos0LqXfecKdlH/Xe7QCDkoRn9 iT9Oz8HzdWd8HexXdQdKz9A6TfT8wyKluusjoXnMKhjc15/JPKS7u6Ya1 cLSXnxIHNidub62fbf7Kxs2A2ixEfSDA9aU3fQUtgS1yPqH28ApYD/DV8 w==; X-CSE-ConnectionGUID: yVij85MSRk+Zw9ImsZ7jVg== X-CSE-MsgGUID: YCT5z8iEQOKQm//P7/0pzQ== X-IronPort-AV: E=McAfee;i="6700,10204,11396"; a="49188885" X-IronPort-AV: E=Sophos;i="6.15,194,1739865600"; d="scan'208";a="49188885" Received: from fmviesa010.fm.intel.com ([10.60.135.150]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2025 02:59:00 -0700 X-CSE-ConnectionGUID: 0FOHzRE5RC67xtRtAqQjlg== X-CSE-MsgGUID: otZs+o0tRpqMynUm+QJXGg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,194,1739865600"; d="scan'208";a="128411736" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa010.fm.intel.com with ESMTP; 07 Apr 2025 02:58:58 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id BAC7426A; Mon, 07 Apr 2025 12:58:54 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Wolfram Sang , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Tomi Valkeinen Subject: [PATCH v2 5/6] i2c: core: Do not dereference fwnode in struct device Date: Mon, 7 Apr 2025 12:55:16 +0300 Message-ID: <20250407095852.215809-6-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250407095852.215809-1-andriy.shevchenko@linux.intel.com> References: <20250407095852.215809-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In order to make the underneath API easier to change in the future, prevent users from dereferencing fwnode from struct device. Instead, use the specific device_set_node() API for that. Signed-off-by: Andy Shevchenko Tested-by: Tomi Valkeinen --- drivers/i2c/i2c-core-base.c | 18 ++++++++++-------- drivers/i2c/i2c-core-of.c | 1 - 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c index a0d3aec6c00e..c0df67619364 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -961,6 +961,7 @@ static void i2c_unlock_addr(struct i2c_adapter *adap, u= nsigned short addr, struct i2c_client * i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info cons= t *info) { + struct fwnode_handle *fwnode; struct i2c_client *client; bool need_put =3D false; int status; @@ -1001,18 +1002,19 @@ i2c_new_client_device(struct i2c_adapter *adap, str= uct i2c_board_info const *inf client->dev.parent =3D &client->adapter->dev; client->dev.bus =3D &i2c_bus_type; client->dev.type =3D &i2c_client_type; - client->dev.of_node =3D of_node_get(info->of_node); - client->dev.fwnode =3D info->fwnode; =20 device_enable_async_suspend(&client->dev); =20 + fwnode =3D info->fwnode ?: of_fwnode_handle(info->of_node); + device_set_node(&client->dev, fwnode_handle_get(fwnode)); + if (info->swnode) { status =3D device_add_software_node(&client->dev, info->swnode); if (status) { dev_err(&adap->dev, "Failed to add software node to client %s: %d\n", client->name, status); - goto out_err_put_of_node; + goto out_err_put_fwnode; } } =20 @@ -1031,8 +1033,8 @@ i2c_new_client_device(struct i2c_adapter *adap, struc= t i2c_board_info const *inf out_remove_swnode: device_remove_software_node(&client->dev); need_put =3D true; -out_err_put_of_node: - of_node_put(info->of_node); +out_err_put_fwnode: + fwnode_handle_put(fwnode); out_err: dev_err(&adap->dev, "Failed to register i2c client %s at 0x%02x (%d)\n", @@ -1060,11 +1062,11 @@ void i2c_unregister_device(struct i2c_client *clien= t) return; =20 fwnode =3D dev_fwnode(&client->dev); - if (is_of_node(fwnode)) { + if (is_of_node(fwnode)) of_node_clear_flag(to_of_node(fwnode), OF_POPULATED); - of_node_put(client->dev.of_node); - } else if (is_acpi_device_node(fwnode)) + else if (is_acpi_device_node(fwnode)) acpi_device_clear_enumerated(to_acpi_device_node(fwnode)); + fwnode_handle_put(fwnode); =20 device_remove_software_node(&client->dev); device_unregister(&client->dev); diff --git a/drivers/i2c/i2c-core-of.c b/drivers/i2c/i2c-core-of.c index 02feee6c9ba9..eb7fb202355f 100644 --- a/drivers/i2c/i2c-core-of.c +++ b/drivers/i2c/i2c-core-of.c @@ -49,7 +49,6 @@ int of_i2c_get_board_info(struct device *dev, struct devi= ce_node *node, } =20 info->addr =3D addr; - info->of_node =3D node; info->fwnode =3D of_fwnode_handle(node); =20 if (of_property_read_bool(node, "host-notify")) --=20 2.47.2 From nobody Sat Feb 7 21:08:13 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 88D2F23535D; Mon, 7 Apr 2025 09:59:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019944; cv=none; b=A4BpjNj0t/HhkII0+/fx5dw7k6xvGWNCeNrDs/Z7DfTFpVj+OUb84rXpBucyitFk1CgAukRSgOTteoHs3XCRmTc7DqSQldSn3mzIvc/UxVUKsr64SMMlq3348RNtFeiAcJUb6878wNLgg3yPRL3iHWOvpMN+9kycnq8ORO49DPk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744019944; c=relaxed/simple; bh=VjmtEJxQyuUAeqbxtsbBB1tsOJr3EnKvfppmPlAeS9U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W6BiAecczSpjSnuy5yFK+8HcsyjE7vAAOJASESGxp+wmnl/cmn6h96ICckxEOhfJ63cgB0l1qWK6MwOjwPIW6xeeCBsdtn6FqZuhR1qs03vWI5WBZMlDQ87vtIY47dG4TiXg55n9E0rL58IedVALMbm4EmsDzLA0BeEgFhYcZpU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Hdzhcmfw; arc=none smtp.client-ip=198.175.65.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Hdzhcmfw" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1744019943; x=1775555943; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=VjmtEJxQyuUAeqbxtsbBB1tsOJr3EnKvfppmPlAeS9U=; b=HdzhcmfwCp918hYcCmCqwwnFO9klzdyuYWZ88Zi3yrgy0/t5EsghAXYe ByD/2RosRgU4yPje/qmWoS4fdtc2lIBnkLYS+Du3SHM8AWzbq6KBgtl65 cT7a3IIU/9i8Cc7m/27DEgcWv6Dww9D7dv5ki6pRIImbnB9n6/hCH/x7D mDf7suEUZDCXyP6v9I31Dd8uaue3nmCTXfFWskC1ytZ0o3GeN4VITAobn mj7yolfSbkeaT1FUtmau/YmxFX4KugA86ffjHVBrcBuaRFrh4zqE3ZVCr Ms4y6W8Yq/pTSiV4WfWHofDnw+TIjZ4QkqmHV9yNqskLwDTmlEV+V0hMl g==; X-CSE-ConnectionGUID: gkAYI08jRw2hs5t2vxQqxQ== X-CSE-MsgGUID: E0rLP0w6R/q+NuVeVt0CIg== X-IronPort-AV: E=McAfee;i="6700,10204,11396"; a="49188888" X-IronPort-AV: E=Sophos;i="6.15,194,1739865600"; d="scan'208";a="49188888" Received: from fmviesa010.fm.intel.com ([10.60.135.150]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2025 02:59:00 -0700 X-CSE-ConnectionGUID: EtnsPpHFRO22RdxLKxLZEg== X-CSE-MsgGUID: wNJRQu/8QLOOlM850Hwvgw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,194,1739865600"; d="scan'208";a="128411738" Received: from black.fi.intel.com ([10.237.72.28]) by fmviesa010.fm.intel.com with ESMTP; 07 Apr 2025 02:58:58 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id D8A2F5CE; Mon, 07 Apr 2025 12:58:54 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Wolfram Sang , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Tomi Valkeinen Subject: [PATCH v2 6/6] i2c: core: Deprecate of_node in struct i2c_board_info Date: Mon, 7 Apr 2025 12:55:17 +0300 Message-ID: <20250407095852.215809-7-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250407095852.215809-1-andriy.shevchenko@linux.intel.com> References: <20250407095852.215809-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Two members of the same or similar semantics is quite confusing to begin wi= th. Moreover, the fwnode covers all possible firmware descriptions that Linux k= ernel supports. Deprecate of_node in struct i2c_board_info, so users will be warn= ed and in the future remote it completely. Signed-off-by: Andy Shevchenko Tested-by: Tomi Valkeinen --- include/linux/i2c.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 2e4903b7f7bc..cc1437f29823 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -405,7 +405,7 @@ static inline bool i2c_detect_slave_mode(struct device = *dev) { return false; } * @addr: stored in i2c_client.addr * @dev_name: Overrides the default - dev_name if set * @platform_data: stored in i2c_client.dev.platform_data - * @of_node: pointer to OpenFirmware device node + * @of_node: **DEPRECATED** - use @fwnode for this * @fwnode: device node supplied by the platform firmware * @swnode: software node for the device * @resources: resources associated with the device --=20 2.47.2