Received: by 2002:ab2:7988:0:b0:1f4:b336:87c4 with SMTP id g8csp91817lqj; Thu, 11 Apr 2024 10:39:40 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUlNy2c1U6lPIeZKHzdJK9qv4abyz6tOcvSZWXzA1rf5ZqvBp1ltRP/+Q1K/gjth6EgJHxiyCsvq9+se4WCydBT3S0OX8w3fo/hr1+YFQ== X-Google-Smtp-Source: AGHT+IGIMKfQFvI567IuGNRY/nRwk25BmSbDa35WlGbYMs7/BtvycdWOdL56VcnKiBcNWVXQUbxh X-Received: by 2002:a17:90b:118d:b0:2a2:6a2:8bcd with SMTP id gk13-20020a17090b118d00b002a206a28bcdmr250713pjb.4.1712857180645; Thu, 11 Apr 2024 10:39:40 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1712857180; cv=pass; d=google.com; s=arc-20160816; b=By4B3VwQe6VwjhKUIQIdEv7Rih0G69Ycf1qU6gdy1Nz6QuYh74AS9csZ1G+TpGYhmg HWwKqhUP6MSglpXm9Sz7jCY6D7RpSKFnESpY0SGrdE4GVuOpfm/fEA7uA9eBhoYNVI2Z xdvqQJsBzzG4Oxv26Q/ZSrdUJ6JB7kwdjRba1We+1cEk9bdkkTrr3a1lOL4nwq10+AnS reLQG7Cfx5IHLcbXDU5dvCHQMNkZJFSv8eXoijvDl0vH4OdfqWsNZUysvVNmiMuK/xUF y60kknoIH3tuRf4yRhpYdXC3eLMNwHs6lCZriXiK9WedfA/UQMLHwCTG5LHetbgsKiUn oNOw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:dkim-filter; bh=nkAc8tcTwNyXqA6894hIXQtbRa2ozzEzdgetR3rCMxE=; fh=7Cyx60kiDbtwqac1/GpEWIY6DJlpHZHQ/CLim7q1o48=; b=qFGGlMuk3H8Bew9k+PuefBVJ9vpMHePRjE+uFN93FJ5wXtPHVicGmmx1uaOEQU+o9b /Zt4LM9t3TlXn+GPfHymbsv37FAIGoAoG2UwF9HH77hICrVb1YIrfndd81l1zXijg2yn WJmqRJ2EAX8I2D03euA7e1VKPIx08NTwX00hmch+Mjfvza8CR7e10UT7P4UBQ1wTcf5d sKupghBsragDQ5So8Rg7PCszPRRRW6PXdP+7iuq1EyTZOvIx2r+g0ZdjqTXpYjBMDt6O nlIM5/yp+GRX+SAGf739kR8ramQjirk1Jx/h4OCYdejANZZwuKJHUhnqc22HXZD335rY FvOA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@salutedevices.com header.s=mail header.b=g6EYZaMa; arc=pass (i=1 spf=pass spfdomain=salutedevices.com dkim=pass dkdomain=salutedevices.com dmarc=pass fromdomain=salutedevices.com); spf=pass (google.com: domain of linux-kernel+bounces-141283-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-141283-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=salutedevices.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id qc2-20020a17090b288200b002a5056532dfsi1715079pjb.189.2024.04.11.10.39.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 10:39:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-141283-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@salutedevices.com header.s=mail header.b=g6EYZaMa; arc=pass (i=1 spf=pass spfdomain=salutedevices.com dkim=pass dkdomain=salutedevices.com dmarc=pass fromdomain=salutedevices.com); spf=pass (google.com: domain of linux-kernel+bounces-141283-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-141283-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=salutedevices.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 5353B2856B1 for ; Thu, 11 Apr 2024 17:39:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 358DA153815; Thu, 11 Apr 2024 16:10:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=salutedevices.com header.i=@salutedevices.com header.b="g6EYZaMa" Received: from mx1.sberdevices.ru (mx2.sberdevices.ru [45.89.224.132]) (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 BF799153560; Thu, 11 Apr 2024 16:10:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=45.89.224.132 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712851845; cv=none; b=hVKUh4QW31I/WRWU7cae63HH9QCZTLuqBCdQA0xytnRRHPn+skVBduR/9gKHdo8RSEXM11no20/O5meRJSZ+01o0+yK83Upf3+F7wCu0h/M+U+7kqlo6I3xIudnL1/jtGTjz6p1gCEhGhRZbU+FHted7AOdjEbD5hf35kJeXm80= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712851845; c=relaxed/simple; bh=L00rq1L+gtOj3efnD1WruodOwvRV/8aBEMMWY3J5iPo=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=K+VqKnX+tVMF9+jeTbeM39rKTWA9mJyaYAgDcqEKIGKIB7LUE1cJrlpRFPcpVy9Vfg8mLNZNATMbtzYjG0OHmJLjJjylFB1jSQReIeAZYPxUBL+43EpUcDFfmGmXWIn2A0cqYaLwTXNRyyI3OPbuRSW1YxA6L5XdgaeyUq6Qq6E= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=salutedevices.com; spf=pass smtp.mailfrom=salutedevices.com; dkim=pass (2048-bit key) header.d=salutedevices.com header.i=@salutedevices.com header.b=g6EYZaMa; arc=none smtp.client-ip=45.89.224.132 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=salutedevices.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=salutedevices.com Received: from p-infra-ksmg-sc-msk02 (localhost [127.0.0.1]) by mx1.sberdevices.ru (Postfix) with ESMTP id BE6FC12006A; Thu, 11 Apr 2024 19:10:40 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.sberdevices.ru BE6FC12006A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=salutedevices.com; s=mail; t=1712851840; bh=nkAc8tcTwNyXqA6894hIXQtbRa2ozzEzdgetR3rCMxE=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type:From; b=g6EYZaMaOzPO5+y0jyEwP3ZU3indav8z8DVhCgYsLVFJ6IxX+Qa7UeIvEovOikxjI D+vBBI+JxfMXOfN9yAg5aEIPFR+swFVCeC+uLmIy94cGxAIAtjkGRBq5KC1qC1TDoP g5pRPLTBb1Wd2IgjZ8pubMu+fTDZ1n0jPbM4fzLyhkhepto9G1q/jlAkBNtZVyT5r2 RzbCWO2/U1mylFkv9vuHIn4XCQWmQWdvYmZvmSVLTtcEDcth0Lhp3gHDA678SU4gRw yEOX+ifCHqTJvJgzhTkjaUnTFf4V/lzI9v9t7iIKAmi64bJFuShoBp0l3ZPL1yy/j/ TjLveox4nenFg== Received: from smtp.sberdevices.ru (p-i-exch-sc-m02.sberdevices.ru [172.16.192.103]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.sberdevices.ru (Postfix) with ESMTPS; Thu, 11 Apr 2024 19:10:40 +0300 (MSK) Received: from localhost.localdomain (100.64.160.123) by p-i-exch-sc-m02.sberdevices.ru (172.16.192.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 11 Apr 2024 19:10:40 +0300 From: George Stark To: , , , , , , , , , , , , , , CC: , , , George Stark Subject: [PATCH v8 4/8] leds: lp3952: use devm API to cleanup module's resources Date: Thu, 11 Apr 2024 19:10:28 +0300 Message-ID: <20240411161032.609544-5-gnstark@salutedevices.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240411161032.609544-1-gnstark@salutedevices.com> References: <20240411161032.609544-1-gnstark@salutedevices.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: p-i-exch-sc-m02.sberdevices.ru (172.16.192.103) To p-i-exch-sc-m02.sberdevices.ru (172.16.192.103) X-KSMG-Rule-ID: 10 X-KSMG-Message-Action: clean X-KSMG-AntiSpam-Lua-Profiles: 184677 [Apr 11 2024] X-KSMG-AntiSpam-Version: 6.1.0.4 X-KSMG-AntiSpam-Envelope-From: gnstark@salutedevices.com X-KSMG-AntiSpam-Rate: 0 X-KSMG-AntiSpam-Status: not_detected X-KSMG-AntiSpam-Method: none X-KSMG-AntiSpam-Auth: dkim=none X-KSMG-AntiSpam-Info: LuaCore: 16 0.3.16 6e64c33514fcbd07e515710c86ba61de7f56194e, {Tracking_from_domain_doesnt_match_to}, 100.64.160.123:7.1.2;salutedevices.com:7.1.1;smtp.sberdevices.ru:5.0.1,7.1.1;127.0.0.199:7.1.2;d41d8cd98f00b204e9800998ecf8427e.com:7.1.1, FromAlignment: s, ApMailHostAddress: 100.64.160.123 X-MS-Exchange-Organization-SCL: -1 X-KSMG-AntiSpam-Interceptor-Info: scan successful X-KSMG-AntiPhishing: Clean X-KSMG-LinksScanning: Clean X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.0.1.6960, bases: 2024/04/11 15:00:00 #24747318 X-KSMG-AntiVirus-Status: Clean, skipped In this driver LEDs are registered using devm_led_classdev_register() so they are automatically unregistered after module's remove() is done. led_classdev_unregister() calls module's led_set_brightness() to turn off the LEDs and that callback uses resources which were destroyed already in module's remove() so use devm API instead of remove(). Also drop explicit turning LEDs off from remove() due to they will be off anyway by led_classdev_unregister(). Signed-off-by: George Stark Reviewed-by: Andy Shevchenko --- drivers/leds/leds-lp3952.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/drivers/leds/leds-lp3952.c b/drivers/leds/leds-lp3952.c index 5d18bbfd1f23..ff7bae2447dd 100644 --- a/drivers/leds/leds-lp3952.c +++ b/drivers/leds/leds-lp3952.c @@ -207,6 +207,13 @@ static const struct regmap_config lp3952_regmap = { .cache_type = REGCACHE_MAPLE, }; +static void gpio_set_low_action(void *data) +{ + struct lp3952_led_array *priv = data; + + gpiod_set_value(priv->enable_gpio, 0); +} + static int lp3952_probe(struct i2c_client *client) { int status; @@ -226,6 +233,10 @@ static int lp3952_probe(struct i2c_client *client) return status; } + status = devm_add_action(&client->dev, gpio_set_low_action, priv); + if (status) + return status; + priv->regmap = devm_regmap_init_i2c(client, &lp3952_regmap); if (IS_ERR(priv->regmap)) { int err = PTR_ERR(priv->regmap); @@ -254,15 +265,6 @@ static int lp3952_probe(struct i2c_client *client) return 0; } -static void lp3952_remove(struct i2c_client *client) -{ - struct lp3952_led_array *priv; - - priv = i2c_get_clientdata(client); - lp3952_on_off(priv, LP3952_LED_ALL, false); - gpiod_set_value(priv->enable_gpio, 0); -} - static const struct i2c_device_id lp3952_id[] = { {LP3952_NAME, 0}, {} @@ -274,7 +276,6 @@ static struct i2c_driver lp3952_i2c_driver = { .name = LP3952_NAME, }, .probe = lp3952_probe, - .remove = lp3952_remove, .id_table = lp3952_id, }; -- 2.25.1