Skip to content

Commit 3fd1695

Browse files
mkubeceksre
authored andcommitted
power: supply: use ktime_divns() to avoid 64-bit division
The build of intel_dc_ti_battery module on i386 (32-bit) fails with ERROR: modpost: "__udivdi3" [drivers/power/supply/intel_dc_ti_battery.ko] This is caused by 64-bit division of ktime values by NSEC_PER_USEC. Use ktime_divns() helper which handles the division correctly on 32-bit architectures. Fixes: 8c5795f ("power: supply: Add new Intel Dollar Cove TI battery driver") Signed-off-by: Michal Kubecek <mkubecek@suse.cz> Reviewed-by: Dhruva Gole <d-gole@ti.com> Reviewed-by: Hans de Goede <hansg@kernel.org> Link: https://patch.msgid.link/20251015075957.8F40620057@lion.mk-sys.cz Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
1 parent 06b54f2 commit 3fd1695

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

drivers/power/supply/intel_dc_ti_battery.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,15 +141,15 @@ static int dc_ti_battery_get_voltage_and_current_now(struct power_supply *psy, i
141141
if (ret)
142142
goto out_err;
143143

144-
cnt_start_usec = ktime_get_ns() / NSEC_PER_USEC;
144+
cnt_start_usec = ktime_divns(ktime_get_ns(), NSEC_PER_USEC);
145145

146146
/* Read Vbat, convert IIO mV to power-supply ųV */
147147
ret = iio_read_channel_processed_scale(chip->vbat_channel, volt, 1000);
148148
if (ret < 0)
149149
goto out_err;
150150

151151
/* Sleep at least 3 sample-times + slack to get 3+ CC samples */
152-
now_usec = ktime_get_ns() / NSEC_PER_USEC;
152+
now_usec = ktime_divns(ktime_get_ns(), NSEC_PER_USEC);
153153
sleep_usec = 3 * SMPL_INTVL_US + SLEEP_SLACK_US - (now_usec - cnt_start_usec);
154154
if (sleep_usec > 0 && sleep_usec < 1000000)
155155
usleep_range(sleep_usec, sleep_usec + SLEEP_SLACK_US);

0 commit comments

Comments
 (0)