rust-for-linux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] Driver core: Add faux bus devices
@ 2025-02-04 11:09 Greg Kroah-Hartman
  2025-02-04 11:09 ` [PATCH v2 1/5] driver core: add a faux bus for use when a simple device/bus is needed Greg Kroah-Hartman
                   ` (4 more replies)
  0 siblings, 5 replies; 34+ messages in thread
From: Greg Kroah-Hartman @ 2025-02-04 11:09 UTC (permalink / raw)
  To: linux-kernel, Rafael J. Wysocki, Danilo Krummrich, Lyude Paul
  Cc: Greg Kroah-Hartman, Alexander Lobakin, Andy Shevchenko,
	Bjorn Helgaas, Jonathan Cameron, Liam Girdwood, Lukas Wunner,
	Mark Brown, Maíra Canal, Robin Murphy, Simona Vetter,
	Zijun Hu, linux-usb, rust-for-linux


For years/decades now, I've been complaining when I see people use
platform devices for things that are obviously NOT platform devices.
To finally fix this up, here is a "faux bus" that should be used instead
of a platform device for these tiny and "fake" devices that people
create all over the place.

The api is even simpler than the normal platform device api, just two
functions, one to create a device and one to remove it.  When a device
is created, if a probe/release callback is offered, they will be called
at the proper time in the device's lifecycle.  When finished with the
device, just destroy it and all should be good.

This simple api should also hopefully provide for a simple rust binding
to it given the simple rules and lifecycle of the pointer passed back
from the creation function (i.e. it is alive and valid for as long as
you have not called destroy on it.)

I've also converted four different examples of platform device abuse, the
dummy regulator driver, the USB phy code, the x86 microcode dvice, and
the "regulator" device that wifi uses to load the firmware tables, to
use this api.  In all cases, the logic either was identical, or became
simpler, than before, a good sign (side note, a bug was fixed in the usb
phy code that no one ever noticed before).

Note, unless there are major objections, I'm leaning toward getting
patch 1 of this series merged during this -rc cycle so that all of the
individual driver subsystem cleanups can go through those subsystems as
needed, as well as allowing the rust developers to create a binding and
get that merged easier.  Having patch 1 merged on its own isn't going to
cause any changes if no one uses it, so that should be fine.

Changes from v2:
  - lots of cleanups to faux.c based on reviews, see patch 1 for details
  - actually tested the destroy device path, it worked first try!
  - added 3 more example drivers


Greg Kroah-Hartman (5):
  driver core: add a faux bus for use when a simple device/bus is needed
  regulator: dummy: convert to use the faux bus
  USB: phy: convert usb_phy_generic logic to use a faux device
  x86/microcode: move away from using a fake platform device
  wifi: cfg80211: move away from using a fake platform device

 arch/x86/kernel/cpu/microcode/core.c |  14 +-
 drivers/base/Makefile                |   2 +-
 drivers/base/base.h                  |   1 +
 drivers/base/faux.c                  | 196 +++++++++++++++++++++++++++
 drivers/base/init.c                  |   1 +
 drivers/regulator/dummy.c            |  37 ++---
 drivers/usb/chipidea/ci_hdrc_pci.c   |   2 +-
 drivers/usb/dwc2/pci.c               |   4 +-
 drivers/usb/musb/mediatek.c          |   4 +-
 drivers/usb/musb/mpfs.c              |   4 +-
 drivers/usb/musb/tusb6010.c          |   2 +-
 drivers/usb/phy/phy-generic.c        |   9 +-
 include/linux/device/faux.h          |  31 +++++
 include/linux/usb/usb_phy_generic.h  |   9 +-
 net/wireless/reg.c                   |  28 ++--
 15 files changed, 277 insertions(+), 67 deletions(-)
 create mode 100644 drivers/base/faux.c
 create mode 100644 include/linux/device/faux.h

-- 
2.48.1


^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2025-02-06 16:19 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-04 11:09 [PATCH v2 0/5] Driver core: Add faux bus devices Greg Kroah-Hartman
2025-02-04 11:09 ` [PATCH v2 1/5] driver core: add a faux bus for use when a simple device/bus is needed Greg Kroah-Hartman
2025-02-04 11:44   ` Danilo Krummrich
2025-02-04 11:52     ` Greg Kroah-Hartman
2025-02-04 12:04       ` Danilo Krummrich
2025-02-04 12:55         ` Greg Kroah-Hartman
2025-02-04 13:57           ` Danilo Krummrich
2025-02-04 12:46   ` Jonathan Cameron
2025-02-04 15:31   ` Alan Stern
2025-02-06  7:44     ` Greg Kroah-Hartman
2025-02-04 16:46   ` Rob Herring
2025-02-04 16:51     ` Rob Herring
2025-02-06  7:43     ` Greg Kroah-Hartman
2025-02-04 22:18   ` Lyude Paul
2025-02-06 10:50     ` Greg Kroah-Hartman
2025-02-04 22:51   ` Lyude Paul
2025-02-05  5:51     ` Greg Kroah-Hartman
2025-02-04 23:10   ` Lyude Paul
2025-02-05  5:53     ` Greg Kroah-Hartman
2025-02-05  7:57       ` Andy Shevchenko
2025-02-05  8:58         ` Greg Kroah-Hartman
2025-02-06 15:34   ` Zijun Hu
2025-02-06 16:19     ` Greg Kroah-Hartman
2025-02-04 11:09 ` [PATCH v2 2/5] regulator: dummy: convert to use the faux bus Greg Kroah-Hartman
2025-02-04 12:35   ` Mark Brown
2025-02-04 12:47   ` Jonathan Cameron
2025-02-04 11:09 ` [PATCH v2 3/5] USB: phy: convert usb_phy_generic logic to use a faux device Greg Kroah-Hartman
2025-02-05 10:19   ` Peter Chen
2025-02-05 12:27     ` Greg Kroah-Hartman
2025-02-05 13:41       ` Greg Kroah-Hartman
2025-02-06  1:54         ` Peter Chen
2025-02-06  5:46           ` Greg Kroah-Hartman
2025-02-04 11:09 ` [PATCH v2 4/5] x86/microcode: move away from using a fake platform device Greg Kroah-Hartman
2025-02-04 11:09 ` [PATCH v2 5/5] wifi: cfg80211: " Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).