Merge tag 'char-misc-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 17 Feb 2026 17:11:04 +0000 (09:11 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 17 Feb 2026 17:11:04 +0000 (09:11 -0800)
Pull char/misc/IIO driver updates from Greg KH:
 "Here is the big set of char/misc/iio and other smaller driver
  subsystem changes for 7.0-rc1. Lots of little things in here,
  including:

   - Loads of iio driver changes and updates and additions

   - gpib driver updates

   - interconnect driver updates

   - i3c driver updates

   - hwtracing (coresight and intel) driver updates

   - deletion of the obsolete mwave driver

   - binder driver updates (rust and c versions)

   - mhi driver updates (causing a merge conflict, see below)

   - mei driver updates

   - fsi driver updates

   - eeprom driver updates

   - lots of other small char and misc driver updates and cleanups

  All of these have been in linux-next for a while, with no reported
  issues"

* tag 'char-misc-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (297 commits)
  mux: mmio: fix regmap leak on probe failure
  rust_binder: return p from rust_binder_transaction_target_node()
  drivers: android: binder: Update ARef imports from sync::aref
  rust_binder: fix needless borrow in context.rs
  iio: magn: mmc5633: Fix Kconfig for combination of I3C as module and driver builtin
  iio: sca3000: Fix a resource leak in sca3000_probe()
  iio: proximity: rfd77402: Add interrupt handling support
  iio: proximity: rfd77402: Document device private data structure
  iio: proximity: rfd77402: Use devm-managed mutex initialization
  iio: proximity: rfd77402: Use kernel helper for result polling
  iio: proximity: rfd77402: Align polling timeout with datasheet
  iio: cros_ec: Allow enabling/disabling calibration mode
  iio: frequency: ad9523: correct kernel-doc bad line warning
  iio: buffer: buffer_impl.h: fix kernel-doc warnings
  iio: gyro: itg3200: Fix unchecked return value in read_raw
  MAINTAINERS: add entry for ADE9000 driver
  iio: accel: sca3000: remove unused last_timestamp field
  iio: accel: adxl372: remove unused int2_bitmask field
  iio: adc: ad7766: Use iio_trigger_generic_data_rdy_poll()
  iio: magnetometer: Remove IRQF_ONESHOT
  ...

17 files changed:
1  2 
Documentation/admin-guide/devices.txt
Documentation/devicetree/bindings/trivial-devices.yaml
Documentation/devicetree/bindings/vendor-prefixes.yaml
Documentation/userspace-api/ioctl/ioctl-number.rst
MAINTAINERS
drivers/android/binder.c
drivers/android/binder/rust_binder_main.rs
drivers/android/binder/thread.rs
drivers/android/binder/transaction.rs
drivers/android/binder_alloc.c
drivers/bus/fsl-mc/fsl-mc-bus.c
drivers/misc/kgdbts.c
drivers/net/wireless/ath/ath12k/wifi7/mhi.c
drivers/spi/spi-fsi.c
include/linux/platform_data/cros_ec_commands.h
include/linux/units.h
samples/rust/rust_misc_device.rs

Simple merge
diff --cc MAINTAINERS
Simple merge
Simple merge
@@@ -87,10 -89,18 +87,18 @@@ module! 
      license: "GPL",
  }
  
+ use kernel::bindings::rust_binder_layout;
+ #[no_mangle]
+ static RUST_BINDER_LAYOUT: rust_binder_layout = rust_binder_layout {
+     t: transaction::TRANSACTION_LAYOUT,
+     p: process::PROCESS_LAYOUT,
+     n: node::NODE_LAYOUT,
+ };
  fn next_debug_id() -> usize {
 -    static NEXT_DEBUG_ID: AtomicUsize = AtomicUsize::new(0);
 +    static NEXT_DEBUG_ID: Atomic<usize> = Atomic::new(0);
  
 -    NEXT_DEBUG_ID.fetch_add(1, Ordering::Relaxed)
 +    NEXT_DEBUG_ID.fetch_add(1, Relaxed)
  }
  
  /// Provides a single place to write Binder return values via the
@@@ -15,11 -15,9 +15,10 @@@ use kernel::
      security,
      seq_file::SeqFile,
      seq_print,
 +    sync::atomic::{ordering::Relaxed, Atomic},
      sync::poll::{PollCondVar, PollTable},
-     sync::{Arc, SpinLock},
+     sync::{aref::ARef, Arc, SpinLock},
      task::Task,
-     types::ARef,
      uaccess::UserSlice,
      uapi,
  };
Simple merge
Simple merge
Simple merge
Simple merge
index b8d9726,0000000..988affa
mode 100644,000000..100644
--- /dev/null
@@@ -1,138 -1,0 +1,134 @@@
-               .auto_queue = false,
 +// SPDX-License-Identifier: BSD-3-Clause-Clear
 +/*
 + * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
 + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
 + */
 +
 +#include "../mhi.h"
 +#include "mhi.h"
 +
 +static const struct mhi_channel_config ath12k_wifi7_mhi_channels_qcn9274[] = {
 +      {
 +              .num = 20,
 +              .name = "IPCR",
 +              .num_elements = 32,
 +              .event_ring = 1,
 +              .dir = DMA_TO_DEVICE,
 +              .ee_mask = 0x4,
 +              .pollcfg = 0,
 +              .doorbell = MHI_DB_BRST_DISABLE,
 +              .lpm_notify = false,
 +              .offload_channel = false,
 +              .doorbell_mode_switch = false,
-               .auto_queue = true,
 +      },
 +      {
 +              .num = 21,
 +              .name = "IPCR",
 +              .num_elements = 32,
 +              .event_ring = 1,
 +              .dir = DMA_FROM_DEVICE,
 +              .ee_mask = 0x4,
 +              .pollcfg = 0,
 +              .doorbell = MHI_DB_BRST_DISABLE,
 +              .lpm_notify = false,
 +              .offload_channel = false,
 +              .doorbell_mode_switch = false,
-               .auto_queue = false,
 +      },
 +};
 +
 +static struct mhi_event_config ath12k_wifi7_mhi_events_qcn9274[] = {
 +      {
 +              .num_elements = 32,
 +              .irq_moderation_ms = 0,
 +              .irq = 1,
 +              .data_type = MHI_ER_CTRL,
 +              .mode = MHI_DB_BRST_DISABLE,
 +              .hardware_event = false,
 +              .client_managed = false,
 +              .offload_channel = false,
 +      },
 +      {
 +              .num_elements = 256,
 +              .irq_moderation_ms = 1,
 +              .irq = 2,
 +              .mode = MHI_DB_BRST_DISABLE,
 +              .priority = 1,
 +              .hardware_event = false,
 +              .client_managed = false,
 +              .offload_channel = false,
 +      },
 +};
 +
 +const struct mhi_controller_config ath12k_wifi7_mhi_config_qcn9274 = {
 +      .max_channels = 30,
 +      .timeout_ms = 10000,
 +      .use_bounce_buf = false,
 +      .buf_len = 0,
 +      .num_channels = ARRAY_SIZE(ath12k_wifi7_mhi_channels_qcn9274),
 +      .ch_cfg = ath12k_wifi7_mhi_channels_qcn9274,
 +      .num_events = ARRAY_SIZE(ath12k_wifi7_mhi_events_qcn9274),
 +      .event_cfg = ath12k_wifi7_mhi_events_qcn9274,
 +};
 +
 +static const struct mhi_channel_config ath12k_wifi7_mhi_channels_wcn7850[] = {
 +      {
 +              .num = 20,
 +              .name = "IPCR",
 +              .num_elements = 64,
 +              .event_ring = 1,
 +              .dir = DMA_TO_DEVICE,
 +              .ee_mask = 0x4,
 +              .pollcfg = 0,
 +              .doorbell = MHI_DB_BRST_DISABLE,
 +              .lpm_notify = false,
 +              .offload_channel = false,
 +              .doorbell_mode_switch = false,
-               .auto_queue = true,
 +      },
 +      {
 +              .num = 21,
 +              .name = "IPCR",
 +              .num_elements = 64,
 +              .event_ring = 1,
 +              .dir = DMA_FROM_DEVICE,
 +              .ee_mask = 0x4,
 +              .pollcfg = 0,
 +              .doorbell = MHI_DB_BRST_DISABLE,
 +              .lpm_notify = false,
 +              .offload_channel = false,
 +              .doorbell_mode_switch = false,
 +      },
 +};
 +
 +static struct mhi_event_config ath12k_wifi7_mhi_events_wcn7850[] = {
 +      {
 +              .num_elements = 32,
 +              .irq_moderation_ms = 0,
 +              .irq = 1,
 +              .mode = MHI_DB_BRST_DISABLE,
 +              .data_type = MHI_ER_CTRL,
 +              .hardware_event = false,
 +              .client_managed = false,
 +              .offload_channel = false,
 +      },
 +      {
 +              .num_elements = 256,
 +              .irq_moderation_ms = 1,
 +              .irq = 2,
 +              .mode = MHI_DB_BRST_DISABLE,
 +              .priority = 1,
 +              .hardware_event = false,
 +              .client_managed = false,
 +              .offload_channel = false,
 +      },
 +};
 +
 +const struct mhi_controller_config ath12k_wifi7_mhi_config_wcn7850 = {
 +      .max_channels = 128,
 +      .timeout_ms = 2000,
 +      .use_bounce_buf = false,
 +      .buf_len = 8192,
 +      .num_channels = ARRAY_SIZE(ath12k_wifi7_mhi_channels_wcn7850),
 +      .ch_cfg = ath12k_wifi7_mhi_channels_wcn7850,
 +      .num_events = ARRAY_SIZE(ath12k_wifi7_mhi_events_wcn7850),
 +      .event_cfg = ath12k_wifi7_mhi_events_wcn7850,
 +};
@@@ -528,12 -528,13 +528,12 @@@ static size_t fsi_spi_max_transfer_size
        return SPI_FSI_MAX_RX_SIZE;
  }
  
- static int fsi_spi_probe(struct device *dev)
+ static int fsi_spi_probe(struct fsi_device *fsi)
  {
        int rc;
 -      struct device_node *np;
        int num_controllers_registered = 0;
        struct fsi2spi *bridge;
-       struct fsi_device *fsi = to_fsi_dev(dev);
+       struct device *dev = &fsi->dev;
  
        rc = fsi_spi_check_mux(fsi, dev);
        if (rc)
Simple merge
@@@ -95,8 -95,9 +95,7 @@@
  //! }
  //! ```
  
 -use core::pin::Pin;
 -
  use kernel::{
-     c_str,
      device::Device,
      fs::{File, Kiocb},
      ioctl::{_IO, _IOC_SIZE, _IOR, _IOW},