mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Simona Vetter <simona.vetter@ffwll.ch>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Louis Chauvet" <louis.chauvet@bootlin.com>,
	linux-kernel@vger.kernel.org, "Lyude Paul" <lyude@redhat.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	"Danilo Krummrich" <dakr@kernel.org>,
	"Alexander Lobakin" <aleksander.lobakin@intel.com>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Lukas Wunner" <lukas@wunner.de>,
	"Mark Brown" <broonie@kernel.org>,
	"Maíra Canal" <mairacanal@riseup.net>,
	"Robin Murphy" <robin.murphy@arm.com>,
	"Simona Vetter" <simona.vetter@ffwll.ch>,
	"Zijun Hu" <quic_zijuhu@quicinc.com>,
	linux-usb@vger.kernel.org, rust-for-linux@vger.kernel.org,
	"José Expósito" <jose.exposito89@gmail.com>
Subject: Re: [PATCH v4 0/9] Driver core: Add faux bus devices
Date: Fri, 28 Feb 2025 11:38:55 +0100	[thread overview]
Message-ID: <Z8GSPwC7hqFFwAVi@phenom.ffwll.local> (raw)
In-Reply-To: <2025022719-papaya-resample-0b59@gregkh>

On Thu, Feb 27, 2025 at 07:30:29AM -0800, Greg Kroah-Hartman wrote:
> On Thu, Feb 27, 2025 at 02:06:21PM +0100, Louis Chauvet wrote:
> > 
> > 
> > Le 10/02/2025 à 13:30, Greg Kroah-Hartman a écrit :
> > > 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 and 2 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.
> > 
> > Hi all,
> > 
> > I have a maybe dumb question regarding the patches 3..9: do they break the
> > UAPI?
> > 
> > With a platform device, the drivers appear under /sys/bus/platform, but with
> > faux device, they appear under /sys/bus/faux.
> > 
> > I ask because I found out that one (see my reply to [2]) of the main drm
> > library expects to find all the devices under pci, usb, platform, virtio and
> > host1x buses [1], so at least for the vgem and vkms driver, this library
> > will be broken (it will not crash, but previously detected devices will
> > suddenly disappear).
> 
> Why does a userspace tool want to walk bus types?  Shouldn't it just be
> iterating over the userspace class type instead?  classes are how
> devices are exposed to userspace, not through a bus.  That way if there
> is a new bus type tomorrow (like this one), code will just keep working.
> 
> What does the tool actually do in the platform device's directory?

Yeah this should work. In the past, mostly for historical reasons (pci
enumeration in Xserver due to everything being userspace drivers) this
wasn't the case. But modern drm drivers should go hunt for a compatible
drm_driver name, enumerating all drm devices of the right class (legacy
aka display or render or accel), because that string name is the uapi
promise for the driver-specific uapi.

Anything that uses generic drm apis like kernel modesetting shouldn't
care, unless you've managed to hard-code your device path in your config
somewhere. But almost everything does automatic setup nowadays, at least
as a fallback.

Plus vgem and vkms are mostly for validation, that stuff we can fix
without annoying real users. It's kinda like breaking debugfs, which you
need anyway for running most of the igt testcases.

tldr; I'm not worried, and if something breaks we need and can fix it.

Cheers, Sima
-- 
Simona Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

  reply	other threads:[~2025-02-28 10:39 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-10 12:30 Greg Kroah-Hartman
2025-02-10 12:30 ` [PATCH v4 1/9] driver core: add a faux bus for use when a simple device/bus is needed Greg Kroah-Hartman
2025-02-10 14:29   ` Kurt Borja
2025-02-10 14:45     ` Greg Kroah-Hartman
2025-02-10 14:58       ` Kurt Borja
2025-02-10 15:36         ` Greg Kroah-Hartman
2025-02-10 15:52           ` Kurt Borja
2025-02-11  5:50             ` Greg Kroah-Hartman
2025-02-11 20:06             ` Lyude Paul
2025-02-11 21:57               ` Kurt Borja
2025-02-11 15:29     ` Zijun Hu
2025-02-11 15:49       ` Kurt Borja
2025-02-12  7:39         ` Greg Kroah-Hartman
2025-02-10 17:56   ` Kurt Borja
2025-02-11  7:27     ` Greg Kroah-Hartman
2025-02-11  7:33       ` Greg Kroah-Hartman
2025-02-11  7:43         ` Kurt Borja
2025-02-11  8:17           ` Greg Kroah-Hartman
2025-02-11  8:36             ` Kurt Borja
2025-02-11  2:49   ` Zijun Hu
2025-02-10 12:30 ` [PATCH v4 2/9] rust/kernel: Add faux device bindings Greg Kroah-Hartman
2025-02-10 16:32   ` Benno Lossin
2025-02-10 18:18     ` Danilo Krummrich
2025-02-11  5:52     ` Greg Kroah-Hartman
2025-02-10 18:41   ` Lyude Paul
2025-02-10 21:31   ` Danilo Krummrich
2025-02-12 14:58   ` Gary Guo
2025-02-10 12:30 ` [PATCH v4 3/9] regulator: dummy: convert to use the faux device interface Greg Kroah-Hartman
2025-02-10 12:30 ` [PATCH v4 4/9] x86/microcode: move away from using a fake platform device Greg Kroah-Hartman
2025-02-10 12:30 ` [PATCH v4 5/9] wifi: cfg80211: " Greg Kroah-Hartman
2025-02-10 12:30 ` [PATCH v4 6/9] tlclk: convert to use faux_device Greg Kroah-Hartman
2025-02-10 12:30 ` [PATCH v4 7/9] misc: lis3lv02d: " Greg Kroah-Hartman
2025-02-10 12:30 ` [PATCH v4 8/9] drm/vgem/vgem_drv " Greg Kroah-Hartman
2025-02-25 11:38   ` Thomas Zimmermann
2025-02-26  8:18     ` Thomas Zimmermann
2025-02-10 12:30 ` [PATCH v4 9/9] drm/vkms: " Greg Kroah-Hartman
2025-02-10 14:37   ` Louis Chauvet
2025-02-10 14:49     ` Greg Kroah-Hartman
2025-02-25 11:41     ` Thomas Zimmermann
2025-02-25 13:51       ` Louis Chauvet
2025-02-26 10:07         ` Greg Kroah-Hartman
2025-03-11 17:20           ` José Expósito
2025-03-11 17:24             ` José Expósito
2025-03-12  6:22             ` Greg KH
2025-03-13 14:22               ` Simona Vetter
2025-03-13 17:20                 ` José Expósito
2025-06-13  8:15                   ` Thomas Zimmermann
2025-06-13 11:55                     ` José Expósito
2025-06-13 12:33                       ` Thomas Zimmermann
2025-06-13 15:28                         ` José Expósito
2025-06-13 15:39                           ` Thomas Zimmermann
2025-02-27 13:06 ` [PATCH v4 0/9] Driver core: Add faux bus devices Louis Chauvet
2025-02-27 15:18   ` Andy Shevchenko
2025-02-27 15:30   ` Greg Kroah-Hartman
2025-02-28 10:38     ` Simona Vetter [this message]
2025-02-28 11:27   ` José Expósito

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z8GSPwC7hqFFwAVi@phenom.ffwll.local \
    --to=simona.vetter@ffwll.ch \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=aleksander.lobakin@intel.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bhelgaas@google.com \
    --cc=broonie@kernel.org \
    --cc=dakr@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jose.exposito89@gmail.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=louis.chauvet@bootlin.com \
    --cc=lukas@wunner.de \
    --cc=lyude@redhat.com \
    --cc=mairacanal@riseup.net \
    --cc=quic_zijuhu@quicinc.com \
    --cc=rafael@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=rust-for-linux@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®