Linux Power Management development
 help / color / mirror / Atom feed
* [PATCH 0/9] drivers: Transition to the faux device interface
@ 2025-03-17 10:13 Sudeep Holla
  2025-03-17 10:13 ` [PATCH 1/9] cpuidle: psci: " Sudeep Holla
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Sudeep Holla @ 2025-03-17 10:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Sudeep Holla, Greg Kroah-Hartman, Lorenzo Pieralisi,
	Rafael J. Wysocki, Daniel Lezcano, linux-pm, Andre Przywara,
	Herbert Xu, Jeff Johnson, linux-crypto, Ard Biesheuvel, linux-efi,
	Alexandre Belloni, linux-rtc, Mark Brown, Takashi Iwai,
	linux-sound, Andrew Lunn, David S. Miller, netdev,
	Borislav Petkov, linux-acpi, Jonathan Cameron

Recently when debugging why one of the scmi platform device was not
showing up under /sys/devices/platform/firmware:scmi instead was
appearing directly under /sys/devices/platform, I noticed the new
faux interface /sys/devices/faux.

Looking through the discussion and the background, I got excited and
took the opportunity to clear all the platform devices under
/sys/devices/platform on the Arm Juno/FVP platforms that are really
faux devices. Only the platform devices created for the device nodes
from the DT remain under /sys/devices/platform after these changes.

All the patches are independent of each other.

Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
Greg Kroah-Hartman (1):
      regulator: dummy: convert to use the faux device interface

Sudeep Holla (8):
      cpuidle: psci: Transition to the faux device interface
      hwrng: arm-smccc-trng - transition to the faux device interface
      efi: Remove redundant creation of the "efivars" platform device
      rtc: efi: Transition to the faux device interface
      virt: efi_secret: Transition to the faux device interface
      ASoC: soc-utils: Transition to the faux device interface
      net: phy: fixed_phy: transition to the faux device interface
      ACPI: APEI: EINJ: Transition to the faux device interface

 drivers/acpi/apei/einj-core.c             | 32 +++++++++---------------
 drivers/char/hw_random/arm_smccc_trng.c   | 40 +++++++++++++++++++++---------
 drivers/cpuidle/cpuidle-psci.c            | 26 +++++++-------------
 drivers/firmware/efi/efi.c                | 10 --------
 drivers/firmware/smccc/smccc.c            | 21 ----------------
 drivers/net/phy/fixed_phy.c               | 16 ++++++------
 drivers/regulator/dummy.c                 | 37 +++++++---------------------
 drivers/rtc/rtc-efi.c                     | 31 ++++++++++++++++-------
 drivers/virt/coco/efi_secret/efi_secret.c | 41 ++++++++++++++++++-------------
 sound/soc/soc-utils.c                     | 34 +++++++++----------------
 10 files changed, 124 insertions(+), 164 deletions(-)
---
base-commit: 80e54e84911a923c40d7bee33a34c1b4be148d7a
change-id: 20250315-plat2faux_dev-8c28b35be96a
-- 
Regards,
Sudeep


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

* [PATCH 1/9] cpuidle: psci: Transition to the faux device interface
  2025-03-17 10:13 [PATCH 0/9] drivers: Transition to the faux device interface Sudeep Holla
@ 2025-03-17 10:13 ` Sudeep Holla
  2025-04-09 18:03   ` Rafael J. Wysocki
  2025-03-17 13:01 ` [PATCH 0/9] drivers: " Greg Kroah-Hartman
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Sudeep Holla @ 2025-03-17 10:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: Sudeep Holla, Greg Kroah-Hartman, Lorenzo Pieralisi,
	Rafael J. Wysocki, Daniel Lezcano, linux-pm

The PSCI cpuidle driver does not require the creation of a platform
device. Originally, this approach was chosen for simplicity when the
driver was first implemented.

With the introduction of the lightweight faux device interface, we now
have a more appropriate alternative. Migrate the driver to utilize the
faux bus, given that the platform device it previously created was not
a real one anyway. This will simplify the code, reducing its footprint
while maintaining functionality.

Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: linux-pm@vger.kernel.org
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 drivers/cpuidle/cpuidle-psci.c | 26 +++++++++-----------------
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/drivers/cpuidle/cpuidle-psci.c b/drivers/cpuidle/cpuidle-psci.c
index 2562dc001fc1de69732ef28f383d2809262a3d96..3e38f712dab3785d5caa8d103fd0146156005921 100644
--- a/drivers/cpuidle/cpuidle-psci.c
+++ b/drivers/cpuidle/cpuidle-psci.c
@@ -16,7 +16,7 @@
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/of.h>
-#include <linux/platform_device.h>
+#include <linux/device/faux.h>
 #include <linux/psci.h>
 #include <linux/pm_domain.h>
 #include <linux/pm_runtime.h>
@@ -404,14 +404,14 @@ static int psci_idle_init_cpu(struct device *dev, int cpu)
  * to register cpuidle driver then rollback to cancel all CPUs
  * registration.
  */
-static int psci_cpuidle_probe(struct platform_device *pdev)
+static int psci_cpuidle_probe(struct faux_device *fdev)
 {
 	int cpu, ret;
 	struct cpuidle_driver *drv;
 	struct cpuidle_device *dev;
 
 	for_each_possible_cpu(cpu) {
-		ret = psci_idle_init_cpu(&pdev->dev, cpu);
+		ret = psci_idle_init_cpu(&fdev->dev, cpu);
 		if (ret)
 			goto out_fail;
 	}
@@ -431,26 +431,18 @@ static int psci_cpuidle_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static struct platform_driver psci_cpuidle_driver = {
+static struct faux_device_ops psci_cpuidle_ops = {
 	.probe = psci_cpuidle_probe,
-	.driver = {
-		.name = "psci-cpuidle",
-	},
 };
 
 static int __init psci_idle_init(void)
 {
-	struct platform_device *pdev;
-	int ret;
+	struct faux_device *fdev;
 
-	ret = platform_driver_register(&psci_cpuidle_driver);
-	if (ret)
-		return ret;
-
-	pdev = platform_device_register_simple("psci-cpuidle", -1, NULL, 0);
-	if (IS_ERR(pdev)) {
-		platform_driver_unregister(&psci_cpuidle_driver);
-		return PTR_ERR(pdev);
+	fdev = faux_device_create("psci-cpuidle", NULL, &psci_cpuidle_ops);
+	if (!fdev) {
+		pr_err("Failed to create psci-cpuidle device\n");
+		return -ENODEV;
 	}
 
 	return 0;

-- 
2.34.1


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

* Re: [PATCH 0/9] drivers: Transition to the faux device interface
  2025-03-17 10:13 [PATCH 0/9] drivers: Transition to the faux device interface Sudeep Holla
  2025-03-17 10:13 ` [PATCH 1/9] cpuidle: psci: " Sudeep Holla
@ 2025-03-17 13:01 ` Greg Kroah-Hartman
  2025-03-17 14:28   ` Sudeep Holla
  2025-03-17 14:20 ` Mark Brown
  2025-03-17 18:10 ` (subset) " Mark Brown
  3 siblings, 1 reply; 9+ messages in thread
From: Greg Kroah-Hartman @ 2025-03-17 13:01 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: linux-kernel, Lorenzo Pieralisi, Rafael J. Wysocki,
	Daniel Lezcano, linux-pm, Andre Przywara, Herbert Xu,
	Jeff Johnson, linux-crypto, Ard Biesheuvel, linux-efi,
	Alexandre Belloni, linux-rtc, Mark Brown, Takashi Iwai,
	linux-sound, Andrew Lunn, David S. Miller, netdev,
	Borislav Petkov, linux-acpi, Jonathan Cameron

On Mon, Mar 17, 2025 at 10:13:12AM +0000, Sudeep Holla wrote:
> Recently when debugging why one of the scmi platform device was not
> showing up under /sys/devices/platform/firmware:scmi instead was
> appearing directly under /sys/devices/platform, I noticed the new
> faux interface /sys/devices/faux.
> 
> Looking through the discussion and the background, I got excited and
> took the opportunity to clear all the platform devices under
> /sys/devices/platform on the Arm Juno/FVP platforms that are really
> faux devices. Only the platform devices created for the device nodes
> from the DT remain under /sys/devices/platform after these changes.
> 
> All the patches are independent of each other.

That's great, but you need to send these all independently to each
subsystem as needed.  Having it all in one series doesn't work for any
of the maintainers of any of the subsystems.

And I'm glad to see this work happening, thanks for doing that!

greg k-h

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

* Re: [PATCH 0/9] drivers: Transition to the faux device interface
  2025-03-17 10:13 [PATCH 0/9] drivers: Transition to the faux device interface Sudeep Holla
  2025-03-17 10:13 ` [PATCH 1/9] cpuidle: psci: " Sudeep Holla
  2025-03-17 13:01 ` [PATCH 0/9] drivers: " Greg Kroah-Hartman
@ 2025-03-17 14:20 ` Mark Brown
  2025-03-17 18:10 ` (subset) " Mark Brown
  3 siblings, 0 replies; 9+ messages in thread
From: Mark Brown @ 2025-03-17 14:20 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: linux-kernel, Greg Kroah-Hartman, Lorenzo Pieralisi,
	Rafael J. Wysocki, Daniel Lezcano, linux-pm, Andre Przywara,
	Herbert Xu, Jeff Johnson, linux-crypto, Ard Biesheuvel, linux-efi,
	Alexandre Belloni, linux-rtc, Takashi Iwai, linux-sound,
	Andrew Lunn, David S. Miller, netdev, Borislav Petkov, linux-acpi,
	Jonathan Cameron

[-- Attachment #1: Type: text/plain, Size: 275 bytes --]

On Mon, Mar 17, 2025 at 10:13:12AM +0000, Sudeep Holla wrote:

> All the patches are independent of each other.

If that's the case don't send them in a series, it makes things more
complicated to apply and the CCs cause more mail.  Split independent
things up by subsystem.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

* Re: [PATCH 0/9] drivers: Transition to the faux device interface
  2025-03-17 13:01 ` [PATCH 0/9] drivers: " Greg Kroah-Hartman
@ 2025-03-17 14:28   ` Sudeep Holla
  0 siblings, 0 replies; 9+ messages in thread
From: Sudeep Holla @ 2025-03-17 14:28 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Lorenzo Pieralisi, Rafael J. Wysocki,
	Daniel Lezcano, linux-pm, Andre Przywara, Herbert Xu,
	Jeff Johnson, linux-crypto, Ard Biesheuvel, linux-efi,
	Alexandre Belloni, linux-rtc, Mark Brown, Takashi Iwai,
	linux-sound, Andrew Lunn, David S. Miller, netdev,
	Borislav Petkov, linux-acpi, Jonathan Cameron

On Mon, Mar 17, 2025 at 02:01:55PM +0100, Greg Kroah-Hartman wrote:
> On Mon, Mar 17, 2025 at 10:13:12AM +0000, Sudeep Holla wrote:
> > Recently when debugging why one of the scmi platform device was not
> > showing up under /sys/devices/platform/firmware:scmi instead was
> > appearing directly under /sys/devices/platform, I noticed the new
> > faux interface /sys/devices/faux.
> > 
> > Looking through the discussion and the background, I got excited and
> > took the opportunity to clear all the platform devices under
> > /sys/devices/platform on the Arm Juno/FVP platforms that are really
> > faux devices. Only the platform devices created for the device nodes
> > from the DT remain under /sys/devices/platform after these changes.
> > 
> > All the patches are independent of each other.
> 
> That's great, but you need to send these all independently to each
> subsystem as needed.  Having it all in one series doesn't work for any
> of the maintainers of any of the subsystems.
> 

Sure I can do that. I initially had idea of creating a macro that made
all of them depend on the macro but later dropped as I wanted to check
if that is good or a bad idea. I just asked you in the thread 2/9.

> And I'm glad to see this work happening, thanks for doing that!
> 

Thanks for adding faux interface!

-- 
Regards,
Sudeep

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

* Re: (subset) [PATCH 0/9] drivers: Transition to the faux device interface
  2025-03-17 10:13 [PATCH 0/9] drivers: Transition to the faux device interface Sudeep Holla
                   ` (2 preceding siblings ...)
  2025-03-17 14:20 ` Mark Brown
@ 2025-03-17 18:10 ` Mark Brown
  3 siblings, 0 replies; 9+ messages in thread
From: Mark Brown @ 2025-03-17 18:10 UTC (permalink / raw)
  To: linux-kernel, Sudeep Holla
  Cc: Greg Kroah-Hartman, Lorenzo Pieralisi, Rafael J. Wysocki,
	Daniel Lezcano, linux-pm, Andre Przywara, Herbert Xu,
	Jeff Johnson, linux-crypto, Ard Biesheuvel, linux-efi,
	Alexandre Belloni, linux-rtc, Takashi Iwai, linux-sound,
	Andrew Lunn, David S. Miller, netdev, Borislav Petkov, linux-acpi,
	Jonathan Cameron

On Mon, 17 Mar 2025 10:13:12 +0000, Sudeep Holla wrote:
> Recently when debugging why one of the scmi platform device was not
> showing up under /sys/devices/platform/firmware:scmi instead was
> appearing directly under /sys/devices/platform, I noticed the new
> faux interface /sys/devices/faux.
> 
> Looking through the discussion and the background, I got excited and
> took the opportunity to clear all the platform devices under
> /sys/devices/platform on the Arm Juno/FVP platforms that are really
> faux devices. Only the platform devices created for the device nodes
> from the DT remain under /sys/devices/platform after these changes.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[6/9] ASoC: soc-utils: Transition to the faux device interface
      commit: 18abb3797f1ceca97a705aa1c14cbec5c6fcab79

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark


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

* Re: [PATCH 1/9] cpuidle: psci: Transition to the faux device interface
  2025-03-17 10:13 ` [PATCH 1/9] cpuidle: psci: " Sudeep Holla
@ 2025-04-09 18:03   ` Rafael J. Wysocki
  2025-04-09 19:17     ` Sudeep Holla
  0 siblings, 1 reply; 9+ messages in thread
From: Rafael J. Wysocki @ 2025-04-09 18:03 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: linux-kernel, Greg Kroah-Hartman, Lorenzo Pieralisi,
	Rafael J. Wysocki, Daniel Lezcano, linux-pm

On Mon, Mar 17, 2025 at 11:13 AM Sudeep Holla <sudeep.holla@arm.com> wrote:
>
> The PSCI cpuidle driver does not require the creation of a platform
> device. Originally, this approach was chosen for simplicity when the
> driver was first implemented.
>
> With the introduction of the lightweight faux device interface, we now
> have a more appropriate alternative. Migrate the driver to utilize the
> faux bus, given that the platform device it previously created was not
> a real one anyway. This will simplify the code, reducing its footprint
> while maintaining functionality.
>
> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
> Cc: "Rafael J. Wysocki" <rafael@kernel.org>
> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> Cc: linux-pm@vger.kernel.org
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>

Do you want me to pick up this one?

> ---
>  drivers/cpuidle/cpuidle-psci.c | 26 +++++++++-----------------
>  1 file changed, 9 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/cpuidle/cpuidle-psci.c b/drivers/cpuidle/cpuidle-psci.c
> index 2562dc001fc1de69732ef28f383d2809262a3d96..3e38f712dab3785d5caa8d103fd0146156005921 100644
> --- a/drivers/cpuidle/cpuidle-psci.c
> +++ b/drivers/cpuidle/cpuidle-psci.c
> @@ -16,7 +16,7 @@
>  #include <linux/kernel.h>
>  #include <linux/module.h>
>  #include <linux/of.h>
> -#include <linux/platform_device.h>
> +#include <linux/device/faux.h>
>  #include <linux/psci.h>
>  #include <linux/pm_domain.h>
>  #include <linux/pm_runtime.h>
> @@ -404,14 +404,14 @@ static int psci_idle_init_cpu(struct device *dev, int cpu)
>   * to register cpuidle driver then rollback to cancel all CPUs
>   * registration.
>   */
> -static int psci_cpuidle_probe(struct platform_device *pdev)
> +static int psci_cpuidle_probe(struct faux_device *fdev)
>  {
>         int cpu, ret;
>         struct cpuidle_driver *drv;
>         struct cpuidle_device *dev;
>
>         for_each_possible_cpu(cpu) {
> -               ret = psci_idle_init_cpu(&pdev->dev, cpu);
> +               ret = psci_idle_init_cpu(&fdev->dev, cpu);
>                 if (ret)
>                         goto out_fail;
>         }
> @@ -431,26 +431,18 @@ static int psci_cpuidle_probe(struct platform_device *pdev)
>         return ret;
>  }
>
> -static struct platform_driver psci_cpuidle_driver = {
> +static struct faux_device_ops psci_cpuidle_ops = {
>         .probe = psci_cpuidle_probe,
> -       .driver = {
> -               .name = "psci-cpuidle",
> -       },
>  };
>
>  static int __init psci_idle_init(void)
>  {
> -       struct platform_device *pdev;
> -       int ret;
> +       struct faux_device *fdev;
>
> -       ret = platform_driver_register(&psci_cpuidle_driver);
> -       if (ret)
> -               return ret;
> -
> -       pdev = platform_device_register_simple("psci-cpuidle", -1, NULL, 0);
> -       if (IS_ERR(pdev)) {
> -               platform_driver_unregister(&psci_cpuidle_driver);
> -               return PTR_ERR(pdev);
> +       fdev = faux_device_create("psci-cpuidle", NULL, &psci_cpuidle_ops);
> +       if (!fdev) {
> +               pr_err("Failed to create psci-cpuidle device\n");
> +               return -ENODEV;
>         }
>
>         return 0;
>
> --
> 2.34.1
>

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

* Re: [PATCH 1/9] cpuidle: psci: Transition to the faux device interface
  2025-04-09 18:03   ` Rafael J. Wysocki
@ 2025-04-09 19:17     ` Sudeep Holla
  2025-04-09 19:28       ` Rafael J. Wysocki
  0 siblings, 1 reply; 9+ messages in thread
From: Sudeep Holla @ 2025-04-09 19:17 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: linux-kernel, Greg Kroah-Hartman, Lorenzo Pieralisi,
	Daniel Lezcano, linux-pm

On Wed, Apr 09, 2025 at 08:03:32PM +0200, Rafael J. Wysocki wrote:
> On Mon, Mar 17, 2025 at 11:13 AM Sudeep Holla <sudeep.holla@arm.com> wrote:
> >
> > The PSCI cpuidle driver does not require the creation of a platform
> > device. Originally, this approach was chosen for simplicity when the
> > driver was first implemented.
> >
> > With the introduction of the lightweight faux device interface, we now
> > have a more appropriate alternative. Migrate the driver to utilize the
> > faux bus, given that the platform device it previously created was not
> > a real one anyway. This will simplify the code, reducing its footprint
> > while maintaining functionality.
> >
> > Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
> > Cc: "Rafael J. Wysocki" <rafael@kernel.org>
> > Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> > Cc: linux-pm@vger.kernel.org
> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> 
> Do you want me to pick up this one?
> 

Yes you can pick this up.

Just checked again, this is v1 and correct version.

-- 
Regards,
Sudeep

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

* Re: [PATCH 1/9] cpuidle: psci: Transition to the faux device interface
  2025-04-09 19:17     ` Sudeep Holla
@ 2025-04-09 19:28       ` Rafael J. Wysocki
  0 siblings, 0 replies; 9+ messages in thread
From: Rafael J. Wysocki @ 2025-04-09 19:28 UTC (permalink / raw)
  To: Sudeep Holla
  Cc: Rafael J. Wysocki, linux-kernel, Greg Kroah-Hartman,
	Lorenzo Pieralisi, Daniel Lezcano, linux-pm

On Wed, Apr 9, 2025 at 9:18 PM Sudeep Holla <sudeep.holla@arm.com> wrote:
>
> On Wed, Apr 09, 2025 at 08:03:32PM +0200, Rafael J. Wysocki wrote:
> > On Mon, Mar 17, 2025 at 11:13 AM Sudeep Holla <sudeep.holla@arm.com> wrote:
> > >
> > > The PSCI cpuidle driver does not require the creation of a platform
> > > device. Originally, this approach was chosen for simplicity when the
> > > driver was first implemented.
> > >
> > > With the introduction of the lightweight faux device interface, we now
> > > have a more appropriate alternative. Migrate the driver to utilize the
> > > faux bus, given that the platform device it previously created was not
> > > a real one anyway. This will simplify the code, reducing its footprint
> > > while maintaining functionality.
> > >
> > > Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
> > > Cc: "Rafael J. Wysocki" <rafael@kernel.org>
> > > Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> > > Cc: linux-pm@vger.kernel.org
> > > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> >
> > Do you want me to pick up this one?
> >
>
> Yes you can pick this up.
>
> Just checked again, this is v1 and correct version.

Applied as 6.16 material, thanks!

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

end of thread, other threads:[~2025-04-09 19:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-17 10:13 [PATCH 0/9] drivers: Transition to the faux device interface Sudeep Holla
2025-03-17 10:13 ` [PATCH 1/9] cpuidle: psci: " Sudeep Holla
2025-04-09 18:03   ` Rafael J. Wysocki
2025-04-09 19:17     ` Sudeep Holla
2025-04-09 19:28       ` Rafael J. Wysocki
2025-03-17 13:01 ` [PATCH 0/9] drivers: " Greg Kroah-Hartman
2025-03-17 14:28   ` Sudeep Holla
2025-03-17 14:20 ` Mark Brown
2025-03-17 18:10 ` (subset) " Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox