From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-oi1-f176.google.com (mail-oi1-f176.google.com [209.85.167.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A80384183C1 for ; Mon, 15 Jun 2026 17:28:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781544496; cv=none; b=pyQF2G7JAG7QlfRsySS0ZVjmrDwTeA3Ezt8aNW5GtcRey75d5NlcfWeVdajUiE5uWanQ7r3u4ka7P3BgJJ3K/zZJjLlTNZT2jB1UNlG+HXT06PFy5nC5mocfftTstdWv8t+BJu2B/JAEWKaVUmUwElLe0HwxpG2W2pwQdUxA8/Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781544496; c=relaxed/simple; bh=O0RhG/I16oRqLYOihv7dBqJX3GkjziLMNtLoXequs2s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=q6E2c3Vip45aWujtaFIbFKtZVR8xoFJ3edzfO99riCK6wXkLAf6ae+w1O9qUHrW0b2ibbSpW/tYKDp/+nrz+2CSjvbdh0mBQ6nqOTQ+USCHBYYswAEjs4dFvTOQn3hKQKDzLiDLnmHIFlXlWebwhWvRG6o6JMBbNeUq4ATzBJQw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=J46GH8vD; arc=none smtp.client-ip=209.85.167.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="J46GH8vD" Received: by mail-oi1-f176.google.com with SMTP id 5614622812f47-48633190849so1363071b6e.3 for ; Mon, 15 Jun 2026 10:28:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781544494; x=1782149294; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4vsn6yN6THg0V/VqKUqeCd36IReXPK449tYlnmJP6sY=; b=J46GH8vDHVPiCg6abN1ULLCW0EvExByhdCvq10daW21Aw0Gh3Y4z0E8v/NMJQNA9ct AFfJSq4nsHXgofPDZwuF2wH4wmCXLneiTsnMX6v72SPEQFgDWng/ClHW2jdREN8Q/0bZ Dzxf1GE4eL3ZfAnlHUYsIhjDTrnQKgh69DJHTbnUHjv0/amFdXIp8uiayohAHyVaJ7v7 mKQBNB45EPULcgg5TzRpVoVfPYWG/DwcMvtM32u3G3gSlK79tpbLOy/fJ1HE6d9MMcjf zBuFJLoLAVHedm8h6czXPtwv5Clgd1KIDJPuejQVDQNJM1WYo4+JYfpVy+KAR2NWaMJ3 yjlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781544494; x=1782149294; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4vsn6yN6THg0V/VqKUqeCd36IReXPK449tYlnmJP6sY=; b=GpzTmr4gj3kzkaTnxoleCp52qudl/wsGmJpT+VG/h2NZuEIEr2tIJ82WjVz2E2mRUc tqvUluBw6OT/f9QaYLUKLFDYnyj29NTzzqu3W3LyeE4vebvl6lVd0DnU5e6KnTA1KJlI gb6+VGI/rU/TzIchLVWmsucri/TXv/Cled698Zbo+X2Asm5srCUi1k5L/6TaULgmEP7Y 8FY9xu8Nu1PnzKrpvxCRX6b9jrDcmjGIi/K3DAdmtfLywuFt0yak39geGYbkYdMJ5dbx 6nIgzazwrhoKxLzre3DstNzPZ0HEnI88kaGLq+U1ZtODL/Pxm2mPzlICzLehEyl0Zi8M Ttog== X-Forwarded-Encrypted: i=1; AFNElJ9WmvDU0Cl5Na128Q/FyVDxBH8x6Obv3hi2tz/KtSesBsEPmb0j0Lwfhjmo9d9KwYMFavkGbcu9qwFf@vger.kernel.org X-Gm-Message-State: AOJu0YwBPc15pEZ0k1fjCLD6lCHmSHoXeYa3x6aqDO43khIAIHemi0QC 8Elo0cTCcMB/j8cN4ypZoGRqbVh9K3/ysfYuSq8nBCjDusGlp3kZEiDx X-Gm-Gg: Acq92OHIvUeiON1eHtVPNTYBeU6Q7h2DEsEiB568eGa09SzJpPUiYiMaoj2/+C/3xjp NNmk8hZomPceWTPfM3AAx9Yr9xTAnxFP44dS/1E+ZWgrkG5aoCFSOnYGxkGDzR168YCJD64UQLW ACPO17ufTDbgXY/tyUORfmjVwnFrFvIb4qhs4AX8+PmapZtAb6rBRil1oa7vqJyzFXpsjK3SYAf eFafXrkacjmRaemU89SLzNZfRVGnhQcI4NgLByr73J3dvFwAwK0XOCj/+r/ypE6y2VO2BHqsSU/ irPx5Xf5HMRITOSDSHxW5Kyc1Dqqw6V4NH8n/QRQvNegA1IKwUnZeNpHPPN7/gzuLurJyRgJoNM N/pj4wpqFFnmN66lF5mIsRyQs5XLS5CIK5JaC/XZFNM/9omZOv+sQbTjLJYZ0LI8GZvRTsDKKCK rUmEKvcMAoXEkV6o3efdVLZw== X-Received: by 2002:a05:6808:1524:b0:479:ac7d:6d8a with SMTP id 5614622812f47-48741b03b3emr8075236b6e.24.1781544493657; Mon, 15 Jun 2026 10:28:13 -0700 (PDT) Received: from localhost.localdomain ([2600:1700:fb0:1bc0::54]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e79f451fe7sm4480033a34.0.2026.06.15.10.28.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 10:28:12 -0700 (PDT) From: Chris Morgan To: linux-iio@vger.kernel.org Cc: andy@kernel.org, nuno.sa@analog.com, dlechner@baylibre.com, jic23@kernel.org, jean-baptiste.maneyrol@tdk.com, linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, heiko@sntech.de, conor+dt@kernel.org, krzk+dt@kernel.org, robh@kernel.org, andriy.shevchenko@intel.com, Chris Morgan Subject: [PATCH V13 6/9] iio: imu: inv_icm42607: Add Temp Support in icm42607 Date: Mon, 15 Jun 2026 12:25:49 -0500 Message-ID: <20260615172554.160910-7-macroalpha82@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260615172554.160910-1-macroalpha82@gmail.com> References: <20260615172554.160910-1-macroalpha82@gmail.com> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Chris Morgan Add functions for reading temperature sensor data. Signed-off-by: Chris Morgan --- drivers/iio/imu/inv_icm42607/Makefile | 1 + drivers/iio/imu/inv_icm42607/inv_icm42607.h | 3 + .../iio/imu/inv_icm42607/inv_icm42607_core.c | 18 +++++ .../iio/imu/inv_icm42607/inv_icm42607_temp.c | 81 +++++++++++++++++++ .../iio/imu/inv_icm42607/inv_icm42607_temp.h | 37 +++++++++ 5 files changed, 140 insertions(+) create mode 100644 drivers/iio/imu/inv_icm42607/inv_icm42607_temp.c create mode 100644 drivers/iio/imu/inv_icm42607/inv_icm42607_temp.h diff --git a/drivers/iio/imu/inv_icm42607/Makefile b/drivers/iio/imu/inv_icm42607/Makefile index be109102e203..c04953ed42ce 100644 --- a/drivers/iio/imu/inv_icm42607/Makefile +++ b/drivers/iio/imu/inv_icm42607/Makefile @@ -2,6 +2,7 @@ obj-$(CONFIG_INV_ICM42607) += inv-icm42607.o inv-icm42607-y += inv_icm42607_core.o +inv-icm42607-y += inv_icm42607_temp.o obj-$(CONFIG_INV_ICM42607_I2C) += inv-icm42607-i2c.o inv-icm42607-i2c-y += inv_icm42607_i2c.o diff --git a/drivers/iio/imu/inv_icm42607/inv_icm42607.h b/drivers/iio/imu/inv_icm42607/inv_icm42607.h index 4f4f541027dc..726b836582a2 100644 --- a/drivers/iio/imu/inv_icm42607/inv_icm42607.h +++ b/drivers/iio/imu/inv_icm42607/inv_icm42607.h @@ -358,6 +358,9 @@ extern const struct inv_icm42607_hw inv_icm42607_hw_data; extern const struct inv_icm42607_hw inv_icm42607p_hw_data; extern const struct dev_pm_ops inv_icm42607_pm_ops; +int inv_icm42607_set_temp_conf(struct inv_icm42607_state *st, bool enable, + unsigned int *sleep_ms); + int inv_icm42607_core_probe(struct regmap *regmap, const struct inv_icm42607_hw *hw, inv_icm42607_bus_setup bus_setup); diff --git a/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c b/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c index 64f5d263de4f..644cd7f821b9 100644 --- a/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c +++ b/drivers/iio/imu/inv_icm42607/inv_icm42607_core.c @@ -162,6 +162,24 @@ static int inv_icm42607_set_pwr_mgmt0(struct inv_icm42607_state *st, return 0; } +int inv_icm42607_set_temp_conf(struct inv_icm42607_state *st, bool enable, + unsigned int *sleep_ms) +{ + unsigned int val; + int ret; + + val = FIELD_PREP(INV_ICM42607_TEMP_CONFIG0_FILTER_MASK, + INV_ICM42607_FILTER_BW_34HZ); + ret = regmap_update_bits(st->map, INV_ICM42607_REG_TEMP_CONFIG0, + INV_ICM42607_TEMP_CONFIG0_FILTER_MASK, val); + if (ret) + return ret; + + return inv_icm42607_set_pwr_mgmt0(st, st->conf.gyro.mode, + st->conf.accel.mode, enable, + sleep_ms); +} + static int inv_icm42607_set_conf(struct inv_icm42607_state *st, const struct inv_icm42607_conf *conf) { diff --git a/drivers/iio/imu/inv_icm42607/inv_icm42607_temp.c b/drivers/iio/imu/inv_icm42607/inv_icm42607_temp.c new file mode 100644 index 000000000000..9a60e1a478b0 --- /dev/null +++ b/drivers/iio/imu/inv_icm42607/inv_icm42607_temp.c @@ -0,0 +1,81 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2026 InvenSense, Inc. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "inv_icm42607.h" +#include "inv_icm42607_temp.h" + +static int inv_icm42607_temp_read(struct inv_icm42607_state *st, s16 *temp) +{ + struct device *dev = regmap_get_device(st->map); + u8 raw[2]; + int ret; + + PM_RUNTIME_ACQUIRE_AUTOSUSPEND(dev, pm); + ret = PM_RUNTIME_ACQUIRE_ERR(&pm); + if (ret) + return ret; + + guard(mutex)(&st->lock); + + st->conf.temp_en = true; + ret = inv_icm42607_set_temp_conf(st, st->conf.temp_en, NULL); + st->conf.temp_en = false; + if (ret) + return ret; + + ret = regmap_bulk_read(st->map, INV_ICM42607_REG_TEMP_DATA1, + raw, sizeof(raw)); + if (ret) + return ret; + + *temp = get_unaligned_be16(raw); + if (*temp == INV_ICM42607_DATA_INVALID) + return -EINVAL; + + return 0; +} + +int inv_icm42607_temp_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int *val, int *val2, long mask) +{ + struct inv_icm42607_state *st = iio_device_get_drvdata(indio_dev); + s16 temp; + int ret; + + switch (mask) { + case IIO_CHAN_INFO_RAW: + ret = inv_icm42607_temp_read(st, &temp); + if (ret) + return ret; + *val = temp; + return IIO_VAL_INT; + /* + * T°C = (temp / 128) + 25 + * Tm°C = 1000 * ((temp * 100 / 12800) + 25) + * scale: 100000 / 12800 ~= 7.8125 + * offset: 3200 + */ + case IIO_CHAN_INFO_SCALE: + *val = 7; + *val2 = 812500000; + return IIO_VAL_INT_PLUS_NANO; + case IIO_CHAN_INFO_OFFSET: + *val = 3200; + return IIO_VAL_INT; + default: + return -EINVAL; + } +} diff --git a/drivers/iio/imu/inv_icm42607/inv_icm42607_temp.h b/drivers/iio/imu/inv_icm42607/inv_icm42607_temp.h new file mode 100644 index 000000000000..cb7b460ffb44 --- /dev/null +++ b/drivers/iio/imu/inv_icm42607/inv_icm42607_temp.h @@ -0,0 +1,37 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright (C) 2026 InvenSense, Inc. + */ + +#ifndef INV_ICM42607_TEMP_H_ +#define INV_ICM42607_TEMP_H_ + +#include + +struct iio_dev; +struct iio_chan_spec; + +#define INV_ICM42607_TEMP_CHAN(_index) \ +{ \ + .type = IIO_TEMP, \ + .info_mask_separate = \ + BIT(IIO_CHAN_INFO_RAW) | \ + BIT(IIO_CHAN_INFO_OFFSET) | \ + BIT(IIO_CHAN_INFO_SCALE), \ + .info_mask_shared_by_all = \ + BIT(IIO_CHAN_INFO_SAMP_FREQ), \ + .info_mask_shared_by_all_available = \ + BIT(IIO_CHAN_INFO_SAMP_FREQ), \ + .scan_index = _index, \ + .scan_type = { \ + .sign = 's', \ + .realbits = 16, \ + .storagebits = 16, \ + }, \ +} + +int inv_icm42607_temp_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int *val, int *val2, long mask); + +#endif -- 2.43.0 From mboxrd@z Thu Jan 1 00:00:00 1970 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 A6DE0CD98C5 for ; Mon, 15 Jun 2026 17:28:22 +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:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=T96HBD2R7RwwhCdYdNhsOGuQ60Qv9UaRlsxJUh4vZ/U=; b=hBeXcqszDS8IkM vglKIjTe5Q+sFh7k1Pwj7wgWuOv1IQUKKUn5+mhl6HWjxSu3sOf78Cx1vqoO0XvYOxjTr/YJkLNS8 8CW+O6AS9Cwmf4UrMHuyxvgeqK/nNjvU5ib0GMpm+v+JkvABTn34TZwYl2SM4G2MFEV5HE856aRCc p208NcUWQuAQeSBnvTh2bcj8ybKIQ/QDobRobCEsQIpba3AGC99m6ZCGyuVxJ9yJwuyQ22il0iIP6 YM4xAlhxKc26iGBN76P+ZR2KnxYDjoDWFMBzuHeFNM043sMBHdR+pzBDVIvoN4oZgQplrslVC99Lo MzyUpK5oC5tAugTRg1ug==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wZB6h-0000000Eetu-2Rg3; Mon, 15 Jun 2026 17:28:19 +0000 Received: from mail-oi1-x22b.google.com ([2607:f8b0:4864:20::22b]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wZB6c-0000000Eeo8-3O0K for linux-rockchip@lists.infradead.org; Mon, 15 Jun 2026 17:28:16 +0000 Received: by mail-oi1-x22b.google.com with SMTP id 5614622812f47-48633190849so1363069b6e.3 for ; Mon, 15 Jun 2026 10:28:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781544494; x=1782149294; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4vsn6yN6THg0V/VqKUqeCd36IReXPK449tYlnmJP6sY=; b=A55RN1vMh49cBbgL21u36I9ZDsDWClfTNeS/MOcC1HTubKa9mK4HJKCggoJXQpB2A/ WJ7suqzxjH5XwPbOBUWBEL1ftW8PZZq2nP6WQ+x7C8ocNfGbi9BTUPd0pcj3rX1RgipP Jax8Vd1l4+u6yajF4VDIn11McICqqIP18RH4U5U/shfuKtkqkaog4CHMBmPJF+5RUhK7 gouuBWZH5tDe5kFB8pml0kZSpMbOrqaHFKk/LqZNPQoY1TlXQ944djCL33p6Wnqg8ZhD Q30nqKRfmajM5jV2le+tx9YGL3xwsf2D1zmC1t1ho5AkM7pYJJAAMCJ7CYtJZS3T96Ga 8wEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781544494; x=1782149294; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4vsn6yN6THg0V/VqKUqeCd36IReXPK449tYlnmJP6sY=; b=a/FdojQUwCTmbalxIA6ao5JRr4e9viP0+kOdOMHMLYIdZYzubRfWJVLxb5hbklPJHA iRJ9AqvnnmGn6ILgxk3q9gNDb/7AgJZTC5H1MJ4C0d8qPPJB/yUjwvCYzch0Lt75q/NX Dmyixqve+ObBOqQLXmf7DGwGrw7rZHcpVcCUhcPNM3udDUNZbmxiIvfik71B1ANgFiEM nDEcqSWYLTz6ElPcdMFzWY6ydJagcqhUjQLRbLq4tMlgKPIXr8w3H8ioAY4fyAh2Ide7 AzTrT2QbpPtKKHaetVdXjxwTtphko9Q3yx10G+iuaYPRkMKxKjY8mv7kDX4H/cNU5TVz Qa+g== X-Forwarded-Encrypted: i=1; AFNElJ9jGEbWBRqq5bTOnKjeFvxSZd5Tc4Mv92RjrXAcVut/csKxr0krVtgTbp4pI0KKcgeQkaxW+/b0t2L3FD4rNQ==@lists.infradead.org X-Gm-Message-State: AOJu0Yz+/GcSJfcAv0giGElvc3Jlc9TObQTqws35n9eadbTRgSFyz6ZD m9AjYlCFImYgRm3rnO0UTx9HsF/oNaGR7fzlcRR9akQ+2Bdt6Y4Gf1m6 X-Gm-Gg: Acq92OFzN9bxBJA7tZ3GWppdFMlXSdcUQzkMmemetT3+1E/k9Jv6ajWnpVSWT9JT5xI /nSlfXOii5m+UBkoXFS+H9bjzGBOSbmRWxdvQ3E+N2CvjsiqQc2Ra4R7ydmLFed2oSASvJC9ZCM I4T0FcbcHQG6HcOncyh3JSescnnECUOLe0ORL5AP5nNmEVuOInwafet8ndBA36iPBscLgeTXszy rAZYNYZCzry94STljRiHJheNsjM3q3jSc3O7lf8zGYGyWz47nMyO/wCKzMySNbi8rJiYzgsZNeK ufVa3VYpdYuiShNd4llzDKGG1+3Pz9j/RgxMh1q1muGrFjjNb8RGSi/HTw0rilPIN6XqaeozwVg aRz9fUVsq9NkAV91h2rl0mRdzNQovwheymRAaoAyO4+p95x6V2sv9FZ+ux1uI/CNvbcldWc5kYE g8Vl2yn8GlMZUlEgykqgJBxg== X-Received: by 2002:a05:6808:1524:b0:479:ac7d:6d8a with SMTP id 5614622812f47-48741b03b3emr8075236b6e.24.1781544493657; Mon, 15 Jun 2026 10:28:13 -0700 (PDT) Received: from localhost.localdomain ([2600:1700:fb0:1bc0::54]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e79f451fe7sm4480033a34.0.2026.06.15.10.28.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 10:28:12 -0700 (PDT) From: Chris Morgan To: linux-iio@vger.kernel.org Cc: andy@kernel.org, nuno.sa@analog.com, dlechner@baylibre.com, jic23@kernel.org, jean-baptiste.maneyrol@tdk.com, linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, heiko@sntech.de, conor+dt@kernel.org, krzk+dt@kernel.org, robh@kernel.org, andriy.shevchenko@intel.com, Chris Morgan Subject: [PATCH V13 6/9] iio: imu: inv_icm42607: Add Temp Support in icm42607 Date: Mon, 15 Jun 2026 12:25:49 -0500 Message-ID: <20260615172554.160910-7-macroalpha82@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260615172554.160910-1-macroalpha82@gmail.com> References: <20260615172554.160910-1-macroalpha82@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260615_102814_866310_ACC89F04 X-CRM114-Status: GOOD ( 18.12 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org RnJvbTogQ2hyaXMgTW9yZ2FuIDxtYWNyb21vcmdhbkBob3RtYWlsLmNvbT4KCkFkZCBmdW5jdGlv bnMgZm9yIHJlYWRpbmcgdGVtcGVyYXR1cmUgc2Vuc29yIGRhdGEuCgpTaWduZWQtb2ZmLWJ5OiBD aHJpcyBNb3JnYW4gPG1hY3JvbW9yZ2FuQGhvdG1haWwuY29tPgotLS0KIGRyaXZlcnMvaWlvL2lt dS9pbnZfaWNtNDI2MDcvTWFrZWZpbGUgICAgICAgICB8ICAxICsKIGRyaXZlcnMvaWlvL2ltdS9p bnZfaWNtNDI2MDcvaW52X2ljbTQyNjA3LmggICB8ICAzICsKIC4uLi9paW8vaW11L2ludl9pY200 MjYwNy9pbnZfaWNtNDI2MDdfY29yZS5jICB8IDE4ICsrKysrCiAuLi4vaWlvL2ltdS9pbnZfaWNt NDI2MDcvaW52X2ljbTQyNjA3X3RlbXAuYyAgfCA4MSArKysrKysrKysrKysrKysrKysrCiAuLi4v aWlvL2ltdS9pbnZfaWNtNDI2MDcvaW52X2ljbTQyNjA3X3RlbXAuaCAgfCAzNyArKysrKysrKysK IDUgZmlsZXMgY2hhbmdlZCwgMTQwIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2lpby9pbXUvaW52X2ljbTQyNjA3L2ludl9pY200MjYwN190ZW1wLmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2lpby9pbXUvaW52X2ljbTQyNjA3L2ludl9pY200MjYwN190ZW1w LmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9pbXUvaW52X2ljbTQyNjA3L01ha2VmaWxlIGIv ZHJpdmVycy9paW8vaW11L2ludl9pY200MjYwNy9NYWtlZmlsZQppbmRleCBiZTEwOTEwMmUyMDMu LmMwNDk1M2VkNDJjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9paW8vaW11L2ludl9pY200MjYwNy9N YWtlZmlsZQorKysgYi9kcml2ZXJzL2lpby9pbXUvaW52X2ljbTQyNjA3L01ha2VmaWxlCkBAIC0y LDYgKzIsNyBAQAogCiBvYmotJChDT05GSUdfSU5WX0lDTTQyNjA3KSArPSBpbnYtaWNtNDI2MDcu bwogaW52LWljbTQyNjA3LXkgKz0gaW52X2ljbTQyNjA3X2NvcmUubworaW52LWljbTQyNjA3LXkg Kz0gaW52X2ljbTQyNjA3X3RlbXAubwogCiBvYmotJChDT05GSUdfSU5WX0lDTTQyNjA3X0kyQykg Kz0gaW52LWljbTQyNjA3LWkyYy5vCiBpbnYtaWNtNDI2MDctaTJjLXkgKz0gaW52X2ljbTQyNjA3 X2kyYy5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9pbXUvaW52X2ljbTQyNjA3L2ludl9pY200 MjYwNy5oIGIvZHJpdmVycy9paW8vaW11L2ludl9pY200MjYwNy9pbnZfaWNtNDI2MDcuaAppbmRl eCA0ZjRmNTQxMDI3ZGMuLjcyNmI4MzY1ODJhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9paW8vaW11 L2ludl9pY200MjYwNy9pbnZfaWNtNDI2MDcuaAorKysgYi9kcml2ZXJzL2lpby9pbXUvaW52X2lj bTQyNjA3L2ludl9pY200MjYwNy5oCkBAIC0zNTgsNiArMzU4LDkgQEAgZXh0ZXJuIGNvbnN0IHN0 cnVjdCBpbnZfaWNtNDI2MDdfaHcgaW52X2ljbTQyNjA3X2h3X2RhdGE7CiBleHRlcm4gY29uc3Qg c3RydWN0IGludl9pY200MjYwN19odyBpbnZfaWNtNDI2MDdwX2h3X2RhdGE7CiBleHRlcm4gY29u c3Qgc3RydWN0IGRldl9wbV9vcHMgaW52X2ljbTQyNjA3X3BtX29wczsKIAoraW50IGludl9pY200 MjYwN19zZXRfdGVtcF9jb25mKHN0cnVjdCBpbnZfaWNtNDI2MDdfc3RhdGUgKnN0LCBib29sIGVu YWJsZSwKKwkJCSAgICAgICB1bnNpZ25lZCBpbnQgKnNsZWVwX21zKTsKKwogaW50IGludl9pY200 MjYwN19jb3JlX3Byb2JlKHN0cnVjdCByZWdtYXAgKnJlZ21hcCwKIAkJCSAgICBjb25zdCBzdHJ1 Y3QgaW52X2ljbTQyNjA3X2h3ICpodywKIAkJCSAgICBpbnZfaWNtNDI2MDdfYnVzX3NldHVwIGJ1 c19zZXR1cCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9pbXUvaW52X2ljbTQyNjA3L2ludl9p Y200MjYwN19jb3JlLmMgYi9kcml2ZXJzL2lpby9pbXUvaW52X2ljbTQyNjA3L2ludl9pY200MjYw N19jb3JlLmMKaW5kZXggNjRmNWQyNjNkZTRmLi42NDRjZDdmODIxYjkgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvaWlvL2ltdS9pbnZfaWNtNDI2MDcvaW52X2ljbTQyNjA3X2NvcmUuYworKysgYi9kcml2 ZXJzL2lpby9pbXUvaW52X2ljbTQyNjA3L2ludl9pY200MjYwN19jb3JlLmMKQEAgLTE2Miw2ICsx NjIsMjQgQEAgc3RhdGljIGludCBpbnZfaWNtNDI2MDdfc2V0X3B3cl9tZ210MChzdHJ1Y3QgaW52 X2ljbTQyNjA3X3N0YXRlICpzdCwKIAlyZXR1cm4gMDsKIH0KIAoraW50IGludl9pY200MjYwN19z ZXRfdGVtcF9jb25mKHN0cnVjdCBpbnZfaWNtNDI2MDdfc3RhdGUgKnN0LCBib29sIGVuYWJsZSwK KwkJCSAgICAgICB1bnNpZ25lZCBpbnQgKnNsZWVwX21zKQoreworCXVuc2lnbmVkIGludCB2YWw7 CisJaW50IHJldDsKKworCXZhbCA9IEZJRUxEX1BSRVAoSU5WX0lDTTQyNjA3X1RFTVBfQ09ORklH MF9GSUxURVJfTUFTSywKKwkJCSBJTlZfSUNNNDI2MDdfRklMVEVSX0JXXzM0SFopOworCXJldCA9 IHJlZ21hcF91cGRhdGVfYml0cyhzdC0+bWFwLCBJTlZfSUNNNDI2MDdfUkVHX1RFTVBfQ09ORklH MCwKKwkJCQkgSU5WX0lDTTQyNjA3X1RFTVBfQ09ORklHMF9GSUxURVJfTUFTSywgdmFsKTsKKwlp ZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIGludl9pY200MjYwN19zZXRfcHdyX21n bXQwKHN0LCBzdC0+Y29uZi5neXJvLm1vZGUsCisJCQkJCSAgc3QtPmNvbmYuYWNjZWwubW9kZSwg ZW5hYmxlLAorCQkJCQkgIHNsZWVwX21zKTsKK30KKwogc3RhdGljIGludCBpbnZfaWNtNDI2MDdf c2V0X2NvbmYoc3RydWN0IGludl9pY200MjYwN19zdGF0ZSAqc3QsCiAJCQkJIGNvbnN0IHN0cnVj dCBpbnZfaWNtNDI2MDdfY29uZiAqY29uZikKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2lt dS9pbnZfaWNtNDI2MDcvaW52X2ljbTQyNjA3X3RlbXAuYyBiL2RyaXZlcnMvaWlvL2ltdS9pbnZf aWNtNDI2MDcvaW52X2ljbTQyNjA3X3RlbXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjlhNjBlMWE0NzhiMAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvaWlv L2ltdS9pbnZfaWNtNDI2MDcvaW52X2ljbTQyNjA3X3RlbXAuYwpAQCAtMCwwICsxLDgxIEBACisv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorLyoKKyAqIENvcHly aWdodCAoQykgMjAyNiBJbnZlblNlbnNlLCBJbmMuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Ns ZWFudXAuaD4KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIu aD4KKyNpbmNsdWRlIDxsaW51eC9paW8vaWlvLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4K KyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+ CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC91bmFsaWduZWQuaD4K KworI2luY2x1ZGUgImludl9pY200MjYwNy5oIgorI2luY2x1ZGUgImludl9pY200MjYwN190ZW1w LmgiCisKK3N0YXRpYyBpbnQgaW52X2ljbTQyNjA3X3RlbXBfcmVhZChzdHJ1Y3QgaW52X2ljbTQy NjA3X3N0YXRlICpzdCwgczE2ICp0ZW1wKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IHJlZ21h cF9nZXRfZGV2aWNlKHN0LT5tYXApOworCXU4IHJhd1syXTsKKwlpbnQgcmV0OworCisJUE1fUlVO VElNRV9BQ1FVSVJFX0FVVE9TVVNQRU5EKGRldiwgcG0pOworCXJldCA9IFBNX1JVTlRJTUVfQUNR VUlSRV9FUlIoJnBtKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJZ3VhcmQobXV0ZXgp KCZzdC0+bG9jayk7CisKKwlzdC0+Y29uZi50ZW1wX2VuID0gdHJ1ZTsKKwlyZXQgPSBpbnZfaWNt NDI2MDdfc2V0X3RlbXBfY29uZihzdCwgc3QtPmNvbmYudGVtcF9lbiwgTlVMTCk7CisJc3QtPmNv bmYudGVtcF9lbiA9IGZhbHNlOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXQgPSBy ZWdtYXBfYnVsa19yZWFkKHN0LT5tYXAsIElOVl9JQ000MjYwN19SRUdfVEVNUF9EQVRBMSwKKwkJ CSAgICAgICByYXcsIHNpemVvZihyYXcpKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJ KnRlbXAgPSBnZXRfdW5hbGlnbmVkX2JlMTYocmF3KTsKKwlpZiAoKnRlbXAgPT0gSU5WX0lDTTQy NjA3X0RBVEFfSU5WQUxJRCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gMDsKK30KKwor aW50IGludl9pY200MjYwN190ZW1wX3JlYWRfcmF3KHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYs CisJCQkJc3RydWN0IGlpb19jaGFuX3NwZWMgY29uc3QgKmNoYW4sCisJCQkJaW50ICp2YWwsIGlu dCAqdmFsMiwgbG9uZyBtYXNrKQoreworCXN0cnVjdCBpbnZfaWNtNDI2MDdfc3RhdGUgKnN0ID0g aWlvX2RldmljZV9nZXRfZHJ2ZGF0YShpbmRpb19kZXYpOworCXMxNiB0ZW1wOworCWludCByZXQ7 CisKKwlzd2l0Y2ggKG1hc2spIHsKKwljYXNlIElJT19DSEFOX0lORk9fUkFXOgorCQlyZXQgPSBp bnZfaWNtNDI2MDdfdGVtcF9yZWFkKHN0LCAmdGVtcCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4g cmV0OworCQkqdmFsID0gdGVtcDsKKwkJcmV0dXJuIElJT19WQUxfSU5UOworCS8qCisJICogVMKw QyA9ICh0ZW1wIC8gMTI4KSArIDI1CisJICogVG3CsEMgPSAxMDAwICogKCh0ZW1wICogMTAwIC8g MTI4MDApICsgMjUpCisJICogc2NhbGU6IDEwMDAwMCAvIDEyODAwIH49IDcuODEyNQorCSAqIG9m ZnNldDogMzIwMAorCSAqLworCWNhc2UgSUlPX0NIQU5fSU5GT19TQ0FMRToKKwkJKnZhbCA9IDc7 CisJCSp2YWwyID0gODEyNTAwMDAwOworCQlyZXR1cm4gSUlPX1ZBTF9JTlRfUExVU19OQU5POwor CWNhc2UgSUlPX0NIQU5fSU5GT19PRkZTRVQ6CisJCSp2YWwgPSAzMjAwOworCQlyZXR1cm4gSUlP X1ZBTF9JTlQ7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9paW8vaW11L2ludl9pY200MjYwNy9pbnZfaWNtNDI2MDdfdGVtcC5oIGIvZHJp dmVycy9paW8vaW11L2ludl9pY200MjYwNy9pbnZfaWNtNDI2MDdfdGVtcC5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2I3YjQ2MGZmYjQ0Ci0tLSAvZGV2L251bGwK KysrIGIvZHJpdmVycy9paW8vaW11L2ludl9pY200MjYwNy9pbnZfaWNtNDI2MDdfdGVtcC5oCkBA IC0wLDAgKzEsMzcgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxh dGVyICovCisvKgorICogQ29weXJpZ2h0IChDKSAyMDI2IEludmVuU2Vuc2UsIEluYy4KKyAqLwor CisjaWZuZGVmIElOVl9JQ000MjYwN19URU1QX0hfCisjZGVmaW5lIElOVl9JQ000MjYwN19URU1Q X0hfCisKKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKworc3RydWN0IGlpb19kZXY7CitzdHJ1 Y3QgaWlvX2NoYW5fc3BlYzsKKworI2RlZmluZSBJTlZfSUNNNDI2MDdfVEVNUF9DSEFOKF9pbmRl eCkJCQkJXAorewkJCQkJCQkJXAorCS50eXBlID0gSUlPX1RFTVAsCQkJCQlcCisJLmluZm9fbWFz a19zZXBhcmF0ZSA9CQkJCQlcCisJCUJJVChJSU9fQ0hBTl9JTkZPX1JBVykgfAkJCVwKKwkJQklU KElJT19DSEFOX0lORk9fT0ZGU0VUKSB8CQkJXAorCQlCSVQoSUlPX0NIQU5fSU5GT19TQ0FMRSks CQkJXAorCS5pbmZvX21hc2tfc2hhcmVkX2J5X2FsbCA9CQkJCVwKKwkJQklUKElJT19DSEFOX0lO Rk9fU0FNUF9GUkVRKSwJCQlcCisJLmluZm9fbWFza19zaGFyZWRfYnlfYWxsX2F2YWlsYWJsZSA9 CQkJXAorCQlCSVQoSUlPX0NIQU5fSU5GT19TQU1QX0ZSRVEpLAkJCVwKKwkuc2Nhbl9pbmRleCA9 IF9pbmRleCwJCQkJCVwKKwkuc2Nhbl90eXBlID0gewkJCQkJCVwKKwkJLnNpZ24gPSAncycsCQkJ CQlcCisJCS5yZWFsYml0cyA9IDE2LAkJCQkJXAorCQkuc3RvcmFnZWJpdHMgPSAxNiwJCQkJXAor CX0sCQkJCQkJCVwKK30KKworaW50IGludl9pY200MjYwN190ZW1wX3JlYWRfcmF3KHN0cnVjdCBp aW9fZGV2ICppbmRpb19kZXYsCisJCQkgICAgICAgc3RydWN0IGlpb19jaGFuX3NwZWMgY29uc3Qg KmNoYW4sCisJCQkgICAgICAgaW50ICp2YWwsIGludCAqdmFsMiwgbG9uZyBtYXNrKTsKKworI2Vu ZGlmCi0tIAoyLjQzLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LXJvY2tjaGlwCg==