From patchwork Fri Feb 28 14:07:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Andr=C3=A9_Draszik?= X-Patchwork-Id: 13996519 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3090DC19776 for ; Fri, 28 Feb 2025 14:33:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=OryWiZaTV6UapOy0FhtwfVlibKlGQE1Za3rpdAoGVfE=; b=aUFl+xJM2Gv8pX vFxz7V3iialmxPFaZboKwUBiDamOsTmToO3gjGfCYRdXTXev91L3YHi/Dk2z5TCB8A/cdh7via9IE i+O6BDFrk0hkbu96FbJKmL1q1528/onHo3jsfGWGQ8ip3tle0FA+dYZaGxkTy0epACvDdbcluL2aV 5N/FV2Pa3G0BgudyM5Gdjrbhq1yTtiBkfJLSeGLn25FPOtFkHab6fQ8avvMIHniH1XutqnnIEbZzF E+tfHclJW/NtQ8xrom3A6qEFky9GTbcRGu+9XG7VlHTBmDmurcb3RaZg+ZLjcHVQ0IJ+7O4jpbMKk llCJYyxiqPnJ1A1QNn7Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1to1QF-0000000BHL2-2f2U; Fri, 28 Feb 2025 14:33:03 +0000 Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1to11Y-0000000BBCx-1zD8 for linux-amlogic@lists.infradead.org; Fri, 28 Feb 2025 14:07:33 +0000 Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-5e058ca6806so3334664a12.3 for ; Fri, 28 Feb 2025 06:07:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740751651; x=1741356451; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/r1ypkbSjtebcdcKcBz70+d9/hPyy6PTiaBKA6Wiwh8=; b=uDAW3GLnbrAOQLZ5OnE65s070o6G9uX+ABQiG/1M6errgVE8AN1q+HNfsHpFTq1yUU 8jXpdzx69Bib2RNZSBIESad3afM6yTwMkiZtpwqqZM27cijA/4lFiGcgSgStgr7rovrz sEzALMQGFeEXwMURA/wXfdlE3sKivTQAlallMjYO5HCTYxSvC36PyE3M7RGbjFA0X6A+ ORkuQuzvudKaNpMadQquMlk/yRHZMgQyPq1bG0/aWU125zoZBqHG/4WKMbbdKQXvmtN5 FY0HidUsyl9SZGHfV7sbxGN9LFKnTucEZc3ppHRGM5UYmkHJ868vELSlCen96I099j6/ myWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740751651; x=1741356451; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/r1ypkbSjtebcdcKcBz70+d9/hPyy6PTiaBKA6Wiwh8=; b=GpF/N+IxUFSOPzWnug4gW3oJxnjItj5Gk/oC1LqaAIOTs/Iipi6uPhtGl3YwuDwNZd z5XoY+2PrrtpJi3Cn6lv/+toy0GubtMzC5Iuj00/hCQiF63WFKZvZQrNAk/d6KD6GXbE zvQl8CIBuKmRWjUnb9+ee5oMjFK1Bbd4UYBy7TPoDcFABbE01Lb7IxfK4JZf9K7VaA2A gQ/RsCu7O7ezSa2gx6Ry7Rihm416zSns++T5pQDJpY6ZNHmrzDYT9dC2KcnaQAWIHzSr nIxy3b+Rx7C6g0AiWl+Zt/t2QI8wzKq8TeqpLLVDmW3y90cR6XWXnIHX2Z67r+LemSH0 ykHA== X-Forwarded-Encrypted: i=1; AJvYcCXurEv3xw8p+sHLagdAhodWoLUOAMNm735m+fEvszBr7FDFX+2j54DqwYiQdBxBmBjgeySFhr0QSs13qi30@lists.infradead.org X-Gm-Message-State: AOJu0Yz1LO+7iP/qbi8/UDLV3ZMtmyH3DEqGLK8K1iFokSIHRHOCJQ8j xhySgj7SOiZjkLe1MgFOFC/ruWHJPBCykIcHujjqChXTtaywI6auafGzhQ5e8t0= X-Gm-Gg: ASbGncsw4n9dnX5V0XXq1+/EYeVS9za8tNBfwp1BQ5P2OckhU+N8X8W4VK58F9OrhID Lhcfe3XzXsipmJztZFB7NOHthckT98PrCxReGT+wxPtgO0wH0Lif4QBb+qEvaey9+ebaP2wIIjm /IC99zCG7dwcqer5lyjZI7B6q92drVUfNoGeG2nCjU5vGahSgQ0HLnO/q0qBTo3/DTG8AMgukyS mIQLEyrAMtEFwHKdDs7MLq4fYjUFpUv+Mv2cOLLYQVG/rT2mlOt5L/WoWTMt0DwvU75UyjezqkI NWyVDDO+nz4OFtsOBQVJKscj8I9oofE96XlfS1S67zdXq2QWrKbDR2nTmY+zTRALX85JZckwdio /f9U2G3hQZw== X-Google-Smtp-Source: AGHT+IEmNzc9psOsG8S5U8hQjyEGUEZtM5fJSHlUXxz0d+LoEipOpq1K+57NoVXqKGgpzCnWIQsf3g== X-Received: by 2002:a05:6402:2711:b0:5de:dfd0:9d22 with SMTP id 4fb4d7f45d1cf-5e4d6b6ebf3mr3156214a12.22.1740751650904; Fri, 28 Feb 2025 06:07:30 -0800 (PST) Received: from puffmais.c.googlers.com (30.171.91.34.bc.googleusercontent.com. [34.91.171.30]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5e4c3fb51f9sm2550839a12.55.2025.02.28.06.07.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Feb 2025 06:07:30 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 28 Feb 2025 14:07:29 +0000 Subject: [PATCH 16/18] rtc: sd3078: drop needless struct sd3078 MIME-Version: 1.0 Message-Id: <20250228-rtc-cleanups-v1-16-b44cec078481@linaro.org> References: <20250228-rtc-cleanups-v1-0-b44cec078481@linaro.org> In-Reply-To: <20250228-rtc-cleanups-v1-0-b44cec078481@linaro.org> To: Chanwoo Choi , Krzysztof Kozlowski , Alexandre Belloni , Joel Stanley , Andrew Jeffery , Hans Ulli Kroll , Linus Walleij , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , =?utf-8?b?VMOz?= =?utf-8?b?dGggSsOhbm9z?= , Dianlong Li Cc: linux-kernel@vger.kernel.org, linux-rtc@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-amlogic@lists.infradead.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250228_060732_565186_D2720728 X-CRM114-Status: GOOD ( 15.87 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org This private data struct has one member only, there is no need to allocate data for it and pass that around via the various callbacks, just to extract that one member. Instead, we can just pass that one member and avoid the extra memory allocation, reducing runtime memory consumption. Signed-off-by: AndrĂ© Draszik --- drivers/rtc/rtc-sd3078.c | 55 ++++++++++++++++++------------------------------ 1 file changed, 20 insertions(+), 35 deletions(-) diff --git a/drivers/rtc/rtc-sd3078.c b/drivers/rtc/rtc-sd3078.c index ebb4d45ce2409982880affbc7a85d5e7410c8f42..10cc1dcfc7748144f51ef674939506feee1fb471 100644 --- a/drivers/rtc/rtc-sd3078.c +++ b/drivers/rtc/rtc-sd3078.c @@ -36,10 +36,6 @@ */ #define WRITE_PROTECT_EN 0 -struct sd3078 { - struct regmap *regmap; -}; - /* * In order to prevent arbitrary modification of the time register, * when modification of the register, @@ -48,14 +44,11 @@ struct sd3078 { * 2. set WRITE2 bit * 3. set WRITE3 bit */ -static void sd3078_enable_reg_write(struct sd3078 *sd3078) +static void sd3078_enable_reg_write(struct regmap *regmap) { - regmap_update_bits(sd3078->regmap, SD3078_REG_CTRL2, - KEY_WRITE1, KEY_WRITE1); - regmap_update_bits(sd3078->regmap, SD3078_REG_CTRL1, - KEY_WRITE2, KEY_WRITE2); - regmap_update_bits(sd3078->regmap, SD3078_REG_CTRL1, - KEY_WRITE3, KEY_WRITE3); + regmap_update_bits(regmap, SD3078_REG_CTRL2, KEY_WRITE1, KEY_WRITE1); + regmap_update_bits(regmap, SD3078_REG_CTRL1, KEY_WRITE2, KEY_WRITE2); + regmap_update_bits(regmap, SD3078_REG_CTRL1, KEY_WRITE3, KEY_WRITE3); } #if WRITE_PROTECT_EN @@ -68,14 +61,11 @@ static void sd3078_enable_reg_write(struct sd3078 *sd3078) * 2. clear WRITE3 bit * 3. clear WRITE1 bit */ -static void sd3078_disable_reg_write(struct sd3078 *sd3078) +static void sd3078_disable_reg_write(struct regmap *regmap) { - regmap_update_bits(sd3078->regmap, SD3078_REG_CTRL1, - KEY_WRITE2, 0); - regmap_update_bits(sd3078->regmap, SD3078_REG_CTRL1, - KEY_WRITE3, 0); - regmap_update_bits(sd3078->regmap, SD3078_REG_CTRL2, - KEY_WRITE1, 0); + regmap_update_bits(regmap, SD3078_REG_CTRL1, KEY_WRITE2, 0); + regmap_update_bits(regmap, SD3078_REG_CTRL1, KEY_WRITE3, 0); + regmap_update_bits(regmap, SD3078_REG_CTRL2, KEY_WRITE1, 0); } #endif @@ -84,11 +74,10 @@ static int sd3078_rtc_read_time(struct device *dev, struct rtc_time *tm) unsigned char hour; unsigned char rtc_data[NUM_TIME_REGS] = {0}; struct i2c_client *client = to_i2c_client(dev); - struct sd3078 *sd3078 = i2c_get_clientdata(client); + struct regmap *regmap = i2c_get_clientdata(client); int ret; - ret = regmap_bulk_read(sd3078->regmap, SD3078_REG_SC, rtc_data, - NUM_TIME_REGS); + ret = regmap_bulk_read(regmap, SD3078_REG_SC, rtc_data, NUM_TIME_REGS); if (ret < 0) { dev_err(dev, "reading from RTC failed with err:%d\n", ret); return ret; @@ -122,7 +111,7 @@ static int sd3078_rtc_set_time(struct device *dev, struct rtc_time *tm) { unsigned char rtc_data[NUM_TIME_REGS]; struct i2c_client *client = to_i2c_client(dev); - struct sd3078 *sd3078 = i2c_get_clientdata(client); + struct regmap *regmap = i2c_get_clientdata(client); int ret; rtc_data[SD3078_REG_SC] = bin2bcd(tm->tm_sec); @@ -134,10 +123,10 @@ static int sd3078_rtc_set_time(struct device *dev, struct rtc_time *tm) rtc_data[SD3078_REG_YR] = bin2bcd(tm->tm_year - 100); #if WRITE_PROTECT_EN - sd3078_enable_reg_write(sd3078); + sd3078_enable_reg_write(regmap); #endif - ret = regmap_bulk_write(sd3078->regmap, SD3078_REG_SC, rtc_data, + ret = regmap_bulk_write(regmap, SD3078_REG_SC, rtc_data, NUM_TIME_REGS); if (ret < 0) { dev_err(dev, "writing to RTC failed with err:%d\n", ret); @@ -145,7 +134,7 @@ static int sd3078_rtc_set_time(struct device *dev, struct rtc_time *tm) } #if WRITE_PROTECT_EN - sd3078_disable_reg_write(sd3078); + sd3078_disable_reg_write(regmap); #endif return 0; @@ -165,23 +154,19 @@ static const struct regmap_config regmap_config = { static int sd3078_probe(struct i2c_client *client) { int ret; - struct sd3078 *sd3078; + struct regmap *regmap; struct rtc_device *rtc; if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) return -ENODEV; - sd3078 = devm_kzalloc(&client->dev, sizeof(*sd3078), GFP_KERNEL); - if (!sd3078) - return -ENOMEM; - - sd3078->regmap = devm_regmap_init_i2c(client, ®map_config); - if (IS_ERR(sd3078->regmap)) { + regmap = devm_regmap_init_i2c(client, ®map_config); + if (IS_ERR(regmap)) { dev_err(&client->dev, "regmap allocation failed\n"); - return PTR_ERR(sd3078->regmap); + return PTR_ERR(regmap); } - i2c_set_clientdata(client, sd3078); + i2c_set_clientdata(client, regmap); rtc = devm_rtc_allocate_device(&client->dev); if (IS_ERR(rtc)) @@ -195,7 +180,7 @@ static int sd3078_probe(struct i2c_client *client) if (ret) return ret; - sd3078_enable_reg_write(sd3078); + sd3078_enable_reg_write(regmap); return 0; }