From patchwork Mon Jul 3 14:23:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Shevchenko X-Patchwork-Id: 115398 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f45:0:b0:3ea:f831:8777 with SMTP id v5csp574287vqx; Mon, 3 Jul 2023 07:43:41 -0700 (PDT) X-Google-Smtp-Source: APBJJlFH20w1X+aOqbIAMfdgVSjsNeJaFX9NoDKS9fuvGI2g6GkLjaYg7zRP76jImnjFvLYLTXpb X-Received: by 2002:a05:6a00:1249:b0:66f:3fc5:6167 with SMTP id u9-20020a056a00124900b0066f3fc56167mr13154491pfi.1.1688395421056; Mon, 03 Jul 2023 07:43:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688395421; cv=none; d=google.com; s=arc-20160816; b=sI+5ynwV8ix1dajEK6hKSXA87j2ewMVozh7DpCNQQiWG3rEOPybb2f+SWfDT0fUjzt 6vtsLMnbRaxwZQMWHYbld9tQmcwnOBE/p3c9C1S8DiH5fBc7Pw1hsvNv+2BE2r6XdmKY gvi+wGki5ebCg89hwVg2zpjAYYrMp8n7tHQ/o1YViRJDlhT9I6f6sItHEy3L3LqPLavs 5T1laDYmUuhwJgWOP4g0QmG1AuF1854QOf4WTt/yRsx1RkNQRP0/GAgSXgFBkSURnQ09 mVJC/eSo4oGl4lJAPtyh8k7Ax/R8rdK/bQ9v8C81E22YYSRpGZ1Agn3O4+tb6cZAO3D+ J9HA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=UOrDe1Z2Op68lWjZ/ynR5Bdm2LgpRHbB+utSMIrng4Q=; fh=mypHXuxD8gSLe08qvqUlK15JxsKF/fcoUw3RZMSAp6o=; b=m+ZUvHRId1l1CY/cY23r5Iml/odsoyxePvolLwPz9hcWGeRA+9z/Nb+X/kCLMJPx+t 3W064KQ6UHKwYRF3ItnR/BK8238xBysOEtFe/aSqYDLISJ6X85pk6zn91JbOP6anZiih ICyT+EW9WfiFuaWZlSogoXCzewzhuUU5CSMaq7ulNbufyBZm3bwDZJGvHvn2LNr5H7Da LMgxyZl4M6fG8M6eKuqYnMNbk94H/Eb3vK7eu1KR0u6HortWWsWD+yEt/Gq3GlqjqjNh +qK9wNhaJh9iIsN5toc9vLjb1QiKSnKovKrfAU2P95Opp9JND2rL1MBaDG8TjkhHySE8 LcGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="YppO9w/q"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bt20-20020a056a00439400b0068208d19b1dsi9405757pfb.153.2023.07.03.07.43.27; Mon, 03 Jul 2023 07:43:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="YppO9w/q"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230392AbjGCOXN (ORCPT + 99 others); Mon, 3 Jul 2023 10:23:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229591AbjGCOXL (ORCPT ); Mon, 3 Jul 2023 10:23:11 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DE965E59; Mon, 3 Jul 2023 07:23:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1688394189; x=1719930189; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=NHA/m/W7ECo+9Ht24ncNolRYwqlkEkvfdTVYskUAM7Y=; b=YppO9w/qLlV9jrS5F+oTQZYxmirOhOSpvWJL7PqsaT3m8A4ugxtxjENX n80ON5LBpCJWqjwtrkyV7gKQITD+Mt6QqkP2S6hxBtv/d90+bRHhDG9xM Z/KkWqmrh3Em7oL6qzT9wiLKf+VabapkeEV2b79+wzWMRvKlWTPGimcro 6iDPII1r6cYc68njypUdUybv1cC9LLIeRsBlep0hjsbiiq8fCbubDVZZY 4Q4zC31ddYN5gK2FyiOqDnAqT8ujJWMABNycc+9tHIifRLTA0BSMAg7tb BzR3zBpTPUjG/4HABXeAPc1uxC7qZrutcluZ8lNw/vZIv52z7ieteMxeL Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10760"; a="361752563" X-IronPort-AV: E=Sophos;i="6.01,178,1684825200"; d="scan'208";a="361752563" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jul 2023 07:23:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10760"; a="808602021" X-IronPort-AV: E=Sophos;i="6.01,178,1684825200"; d="scan'208";a="808602021" Received: from black.fi.intel.com ([10.237.72.28]) by FMSMGA003.fm.intel.com with ESMTP; 03 Jul 2023 07:23:06 -0700 Received: by black.fi.intel.com (Postfix, from userid 1003) id D964917C; Mon, 3 Jul 2023 17:23:09 +0300 (EEST) From: Andy Shevchenko To: Andy Shevchenko , Dmitry Torokhov , Bartosz Golaszewski , linux-gpio@vger.kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Mika Westerberg , Linus Walleij , Bartosz Golaszewski , Benjamin Tissoires Subject: [PATCH v2 3/3] gpiolib: Do not alter GPIO chip fwnode member Date: Mon, 3 Jul 2023 17:23:08 +0300 Message-Id: <20230703142308.5772-4-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.40.0.1.gaa8946217a0b In-Reply-To: <20230703142308.5772-1-andriy.shevchenko@linux.intel.com> References: <20230703142308.5772-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1770410917003419951?= X-GMAIL-MSGID: =?utf-8?q?1770410917003419951?= Ideally we should not touch data in the given GPIO chip structure. Let's become closer to it by avoiding altering fwnode member. The GPIO library must use fwnode from GPIO device and the drivers might use one from GPIO chip in case they initialized it. Signed-off-by: Andy Shevchenko Tested-by: Benjamin Tissoires --- drivers/gpio/gpiolib.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index bc8b9d6afe0e..8b7032300039 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -708,13 +708,6 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data, int base = 0; int ret = 0; - /* - * If the calling driver did not initialize firmware node, do it here - * using the parent device, if any. - */ - if (!gc->fwnode && gc->parent) - gc->fwnode = dev_fwnode(gc->parent); - /* * First: allocate and populate the internal stat container, and * set up the struct device. @@ -729,7 +722,14 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data, gc->gpiodev = gdev; gpiochip_set_data(gc, data); - device_set_node(&gdev->dev, gc->fwnode); + /* + * If the calling driver did not initialize firmware node, + * do it here using the parent device, if any. + */ + if (gc->fwnode) + device_set_node(&gdev->dev, gc->fwnode); + else if (gc->parent) + device_set_node(&gdev->dev, dev_fwnode(gc->parent)); gdev->id = ida_alloc(&gpio_ida, GFP_KERNEL); if (gdev->id < 0) {