From 37f49e37ab4cb5d0bc4c60eb5c6d4dd57db767bb Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 10 May 2024 07:44:59 +0000 Subject: [PATCH] gmac get mac form eeprom --- kernel/drivers/iio/pressure/hp206c.c | 14 ++++++-------- 1 files changed, 6 insertions(+), 8 deletions(-) diff --git a/kernel/drivers/iio/pressure/hp206c.c b/kernel/drivers/iio/pressure/hp206c.c index c38c196..986b7a5 100644 --- a/kernel/drivers/iio/pressure/hp206c.c +++ b/kernel/drivers/iio/pressure/hp206c.c @@ -1,11 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-only /* * hp206c.c - HOPERF HP206C precision barometer and altimeter sensor * * Copyright (c) 2016, Intel Corporation. - * - * This file is subject to the terms and conditions of version 2 of - * the GNU General Public License. See the file COPYING in the main - * directory of this archive for more details. * * (7-bit I2C slave address 0x76) * @@ -20,6 +17,8 @@ #include <linux/delay.h> #include <linux/util_macros.h> #include <linux/acpi.h> + +#include <asm/unaligned.h> /* I2C commands: */ #define HP206C_CMD_SOFT_RST 0x06 @@ -96,12 +95,12 @@ int ret; u8 values[3]; - ret = i2c_smbus_read_i2c_block_data(client, cmd, 3, values); + ret = i2c_smbus_read_i2c_block_data(client, cmd, sizeof(values), values); if (ret < 0) return ret; - if (ret != 3) + if (ret != sizeof(values)) return -EIO; - return ((values[0] & 0xF) << 16) | (values[1] << 8) | (values[2]); + return get_unaligned_be24(&values[0]) & GENMASK(19, 0); } /* Spin for max 160ms until DEV_RDY is 1, or return error. */ @@ -379,7 +378,6 @@ indio_dev->info = &hp206c_info; indio_dev->name = id->name; - indio_dev->dev.parent = &client->dev; indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->channels = hp206c_channels; indio_dev->num_channels = ARRAY_SIZE(hp206c_channels); -- Gitblit v1.6.2