alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [alsa-devel] [PATCH 00/44] ASoC: don't use snd_pcm_ops
@ 2019-10-02  5:29 Kuninori Morimoto
  2019-10-02  5:30 ` [alsa-devel] [PATCH 01/44] ASoC: soc-core: merge snd_pcm_ops member to component driver Kuninori Morimoto
                   ` (44 more replies)
  0 siblings, 45 replies; 90+ messages in thread
From: Kuninori Morimoto @ 2019-10-02  5:29 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


Hi Mark

Current snd_soc_component_driver is using snd_pcm_ops.
But, it is mainly for ALSA, thus, it not good much to ALSA SoC.

For example .open case (1)(2),
each callback can't know it is called for which component.
Thus, it need to use using snd_soc_rtdcom_lookup() (3).

	--- ALSA SoC  ---
	...
	if (component->driver->ops &&
	    component->driver->ops->open)
(1)		return component->driver->ops->open(substream);
	...

	--- driver ---
(2)	static int xxx_open(struct snd_pcm_substream *substream)
	{
		struct snd_soc_pcm_runtime *rtd = substream->private_data;
(3)		struct snd_soc_component *component = snd_soc_rtdcom_lookup(..);
		...
	}

It works today, but, will not work in the future if we support multi
CPU/Codec/Platform, because 1 rtd might have multiple components which
have same driver name.
In other words snd_soc_rtdcom_lookup() doesn't work correctly in the future.

To solve this issue, each callback needs to be called with component.
This patch copies each snd_pcm_ops member under component driver,
and having "component" as parameter.

	--- ALSA SoC  ---
	...
	if (component->driver->open)
=>		return component->driver->open(component, substream);
	...

	--- driver ---
=>	static int xxx_open(struct snd_soc_component *component,
			    struct snd_pcm_substream *substream)
	{
		...
	}


Kuninori Morimoto (44):
  ASoC: soc-core: merge snd_pcm_ops member to component driver
  ASoC: soc-core: add new pcm_construct/pcm_destruct
  ASoC: soc-core: add snd_soc_pcm_lib_ioctl()
  ASoC: intel: sst-haswell-pcm: remove snd_pcm_ops
  ASoC: intel: skl-pcm: remove snd_pcm_ops
  ASoC: intel: sst-mfld-platform-pcm: remove snd_pcm_ops
  ASoC: intel: sst-baytrail-pcm: remove snd_pcm_ops
  ASoC: amd: acp3x-pcm-dma: remove snd_pcm_ops
  ASoC: amd: acp-pcm-dma: remove snd_pcm_ops
  ASoC: atmel: atmel-pcm-pdc: remove snd_pcm_ops
  ASoC: au1x: dbdma2: remove snd_pcm_ops
  ASoC: au1x: dma: remove snd_pcm_ops
  ASoC: xtensa: xtfpga-i2s: remove snd_pcm_ops
  ASoC: xilinx: xlnx_formatter_pcm: remove snd_pcm_ops
  ASoC: uniphier: aio-dma: remove snd_pcm_ops
  ASoC: txx9: txx9aclc: remove snd_pcm_ops
  ASoC: stm: stm32_adfsdm: remove snd_pcm_ops
  ASoC: sprd: sprd-pcm-dma: remove snd_pcm_ops
  ASoC: sof: pcm: remove snd_pcm_ops
  ASoC: sh: rsnd: remove snd_pcm_ops
  ASoC: sh: fsi: remove snd_pcm_ops
  ASoC: sh: dma-sh7760: remove snd_pcm_ops
  ASoC: sh: siu_pcm: remove snd_pcm_ops
  ASoC: samsung: idma: remove snd_pcm_ops
  ASoC: qcom: lpass-platform: remove snd_pcm_ops
  ASoC: qcom: q6routing: remove snd_pcm_ops
  ASoC: qcom: q6asm-dai: remove snd_pcm_ops
  ASoC: pxa: mmp-pcm: remove snd_pcm_ops
  ASoC: pxa: remove snd_pcm_ops
  ASoC: meson: remove snd_pcm_ops
  ASoC: mediatek: mtk-btcvsd: remove snd_pcm_ops
  ASoC: mediatek: remove snd_pcm_ops
  ASoC: kirkwood: kirkwood-dma: remove snd_pcm_ops
  ASoC: dwc: dwc-pcm: remove snd_pcm_ops
  ASoC: rt5514-spi: remove snd_pcm_ops
  ASoC: bcm: cygnus-pcm: remove snd_pcm_ops
  ASoC: fsl: imx-pcm-fiq: remove snd_pcm_ops
  ASoC: fsl: fsl_dma: remove snd_pcm_ops
  ASoC: fsl: mpc5200_dma: remove snd_pcm_ops
  ASoC: fsl: fsl_asrc_dma: remove snd_pcm_ops
  ASoC: fsl: fsl_dma: don't use snd_soc_rtdcom_lookup()
  ASoC: soc-generic-dmaengine-pcm: remove snd_pcm_ops
  ASoC: soc-utils: remove snd_pcm_ops
  ASoC: soc-component: remove snd_pcm_ops from component driver

 include/sound/pxa2xx-lib.h                         |  26 +++++-
 include/sound/soc-component.h                      |  41 ++++++++-
 include/sound/soc.h                                |   5 +
 sound/arm/pxa2xx-pcm-lib.c                         |  80 +++++++++++++---
 sound/soc/amd/acp-pcm-dma.c                        |  63 ++++++-------
 sound/soc/amd/raven/acp3x-pcm-dma.c                |  54 +++++------
 sound/soc/atmel/atmel-pcm-pdc.c                    |  48 +++++-----
 sound/soc/au1x/dbdma2.c                            |  64 +++++++------
 sound/soc/au1x/dma.c                               |  63 +++++++------
 sound/soc/bcm/cygnus-pcm.c                         |  56 +++++------
 sound/soc/codecs/rt5514-spi.c                      |  41 +++++----
 sound/soc/dwc/dwc-pcm.c                            |  48 +++++-----
 sound/soc/fsl/fsl_asrc_dma.c                       |  56 +++++------
 sound/soc/fsl/fsl_dma.c                            |  53 +++++------
 sound/soc/fsl/imx-pcm-fiq.c                        |  56 ++++++-----
 sound/soc/fsl/mpc5200_dma.c                        |  51 ++++++-----
 sound/soc/intel/atom/sst-mfld-platform-pcm.c       |  30 +++---
 sound/soc/intel/baytrail/sst-baytrail-pcm.c        |  52 +++++------
 sound/soc/intel/haswell/sst-haswell-pcm.c          |  62 +++++++------
 sound/soc/intel/skylake/skl-pcm.c                  |  67 +++++++++-----
 sound/soc/kirkwood/kirkwood-dma.c                  |  50 +++++-----
 .../soc/mediatek/common/mtk-afe-platform-driver.c  |  28 +++---
 .../soc/mediatek/common/mtk-afe-platform-driver.h  |  10 +-
 sound/soc/mediatek/common/mtk-btcvsd.c             |  76 ++++++---------
 sound/soc/mediatek/mt6797/mt6797-afe-pcm.c         |  11 ++-
 sound/soc/mediatek/mt8183/mt8183-afe-pcm.c         |  11 ++-
 sound/soc/meson/axg-fifo.c                         |  56 +++++------
 sound/soc/meson/axg-fifo.h                         |  20 +++-
 sound/soc/meson/axg-frddr.c                        |  24 ++++-
 sound/soc/meson/axg-toddr.c                        |  24 ++++-
 sound/soc/pxa/mmp-pcm.c                            |  62 ++++++++-----
 sound/soc/pxa/pxa-ssp.c                            |  14 ++-
 sound/soc/pxa/pxa2xx-ac97.c                        |  14 ++-
 sound/soc/pxa/pxa2xx-i2s.c                         |  14 ++-
 sound/soc/pxa/pxa2xx-pcm.c                         |  14 ++-
 sound/soc/qcom/lpass-platform.c                    |  70 +++++++-------
 sound/soc/qcom/qdsp6/q6asm-dai.c                   |  71 +++++++-------
 sound/soc/qcom/qdsp6/q6routing.c                   |  14 +--
 sound/soc/samsung/idma.c                           |  58 ++++++------
 sound/soc/sh/dma-sh7760.c                          |  46 +++++-----
 sound/soc/sh/fsi.c                                 |  31 ++++---
 sound/soc/sh/rcar/core.c                           |  23 +++--
 sound/soc/sh/siu_pcm.c                             |  44 +++++----
 sound/soc/soc-component.c                          |  76 +++++++--------
 sound/soc/soc-core.c                               |  12 +++
 sound/soc/soc-generic-dmaengine-pcm.c              | 102 ++++++++++-----------
 sound/soc/soc-pcm.c                                |  11 +--
 sound/soc/soc-utils.c                              |  11 +--
 sound/soc/sof/pcm.c                                |  88 +++++++++---------
 sound/soc/sprd/sprd-pcm-dma.c                      |  74 +++++++--------
 sound/soc/stm/stm32_adfsdm.c                       |  42 +++++----
 sound/soc/txx9/txx9aclc.c                          |  48 +++++-----
 sound/soc/uniphier/aio-dma.c                       |  51 ++++++-----
 sound/soc/xilinx/xlnx_formatter_pcm.c              |  54 +++++------
 sound/soc/xtensa/xtfpga-i2s.c                      |  30 +++---
 55 files changed, 1311 insertions(+), 1089 deletions(-)

-- 
2.7.4

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

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

end of thread, other threads:[~2019-10-08 13:23 UTC | newest]

Thread overview: 90+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-02  5:29 [alsa-devel] [PATCH 00/44] ASoC: don't use snd_pcm_ops Kuninori Morimoto
2019-10-02  5:30 ` [alsa-devel] [PATCH 01/44] ASoC: soc-core: merge snd_pcm_ops member to component driver Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: soc-core: merge snd_pcm_ops member to component driver" to the asoc tree Mark Brown
2019-10-02  5:30 ` [alsa-devel] [PATCH 02/44] ASoC: soc-core: add new pcm_construct/pcm_destruct Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: soc-core: add new pcm_construct/pcm_destruct" to the asoc tree Mark Brown
2019-10-02  5:31 ` [alsa-devel] [PATCH 03/44] ASoC: soc-core: add snd_soc_pcm_lib_ioctl() Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: soc-core: add snd_soc_pcm_lib_ioctl()" to the asoc tree Mark Brown
2019-10-02  5:31 ` [alsa-devel] [PATCH 04/44] ASoC: intel: sst-haswell-pcm: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: intel: sst-haswell-pcm: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:31 ` [alsa-devel] [PATCH 05/44] ASoC: intel: skl-pcm: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: intel: skl-pcm: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:31 ` [alsa-devel] [PATCH 06/44] ASoC: intel: sst-mfld-platform-pcm: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: intel: sst-mfld-platform-pcm: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:31 ` [alsa-devel] [PATCH 07/44] ASoC: intel: sst-baytrail-pcm: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: intel: sst-baytrail-pcm: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:31 ` [alsa-devel] [PATCH 08/44] ASoC: amd: acp3x-pcm-dma: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: amd: acp3x-pcm-dma: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:31 ` [alsa-devel] [PATCH 09/44] ASoC: amd: acp-pcm-dma: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: amd: acp-pcm-dma: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:32 ` [alsa-devel] [PATCH 10/44] ASoC: atmel: atmel-pcm-pdc: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: atmel: atmel-pcm-pdc: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:32 ` [alsa-devel] [PATCH 11/44] ASoC: au1x: dbdma2: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: au1x: dbdma2: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:32 ` [alsa-devel] [PATCH 12/44] ASoC: au1x: dma: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: au1x: dma: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:32 ` [alsa-devel] [PATCH 13/44] ASoC: xtensa: xtfpga-i2s: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: xtensa: xtfpga-i2s: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:32 ` [alsa-devel] [PATCH 14/44] ASoC: xilinx: xlnx_formatter_pcm: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: xilinx: xlnx_formatter_pcm: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:32 ` [alsa-devel] [PATCH 14/44] ASoC: xilinx: xlnx_formatter_pcm: remove snd_pcm_ops Kuninori Morimoto
2019-10-02  5:32 ` [alsa-devel] [PATCH 15/44] ASoC: uniphier: aio-dma: " Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: uniphier: aio-dma: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:32 ` [alsa-devel] [PATCH 16/44] ASoC: txx9: txx9aclc: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: txx9: txx9aclc: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:32 ` [alsa-devel] [PATCH 17/44] ASoC: stm: stm32_adfsdm: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: stm: stm32_adfsdm: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:32 ` [alsa-devel] [PATCH 18/44] ASoC: sprd: sprd-pcm-dma: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: sprd: sprd-pcm-dma: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:32 ` [alsa-devel] [PATCH 19/44] ASoC: sof: pcm: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: sof: pcm: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:33 ` [alsa-devel] [PATCH 20/44] ASoC: sh: rsnd: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: sh: rsnd: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:33 ` [alsa-devel] [PATCH 21/44] ASoC: sh: fsi: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: sh: fsi: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:33 ` [alsa-devel] [PATCH 22/44] ASoC: sh: dma-sh7760: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: sh: dma-sh7760: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:33 ` [alsa-devel] [PATCH 23/44] ASoC: sh: siu_pcm: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: sh: siu_pcm: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:33 ` [alsa-devel] [PATCH 24/44] ASoC: samsung: idma: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: samsung: idma: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:33 ` [alsa-devel] [PATCH 25/44] ASoC: qcom: lpass-platform: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: qcom: lpass-platform: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:33 ` [alsa-devel] [PATCH 26/44] ASoC: qcom: q6routing: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: qcom: q6routing: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:33 ` [alsa-devel] [PATCH 27/44] ASoC: qcom: q6asm-dai: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: qcom: q6asm-dai: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:33 ` [alsa-devel] [PATCH 28/44] ASoC: pxa: mmp-pcm: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: pxa: mmp-pcm: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:33 ` [alsa-devel] [PATCH 29/44] ASoC: pxa: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: pxa: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:33 ` [alsa-devel] [PATCH 30/44] ASoC: meson: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: meson: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:34 ` [alsa-devel] [PATCH 31/44] ASoC: mediatek: mtk-btcvsd: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: mediatek: mtk-btcvsd: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:34 ` [alsa-devel] [PATCH 32/44] ASoC: mediatek: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: mediatek: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:34 ` [alsa-devel] [PATCH 33/44] ASoC: kirkwood: kirkwood-dma: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: kirkwood: kirkwood-dma: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:34 ` [alsa-devel] [PATCH 34/44] ASoC: dwc: dwc-pcm: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: dwc: dwc-pcm: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:34 ` [alsa-devel] [PATCH 35/44] ASoC: rt5514-spi: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: rt5514-spi: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:34 ` [alsa-devel] [PATCH 36/44] ASoC: bcm: cygnus-pcm: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: bcm: cygnus-pcm: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:34 ` [alsa-devel] [PATCH 37/44] ASoC: fsl: imx-pcm-fiq: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: fsl: imx-pcm-fiq: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:34 ` [alsa-devel] [PATCH 38/44] ASoC: fsl: fsl_dma: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: fsl: fsl_dma: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:34 ` [alsa-devel] [PATCH 39/44] ASoC: fsl: mpc5200_dma: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: fsl: mpc5200_dma: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:34 ` [alsa-devel] [PATCH 40/44] ASoC: fsl: fsl_asrc_dma: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: fsl: fsl_asrc_dma: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:34 ` [alsa-devel] [PATCH 41/44] ASoC: fsl: fsl_dma: don't use snd_soc_rtdcom_lookup() Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: fsl: fsl_dma: don't use snd_soc_rtdcom_lookup()" to the asoc tree Mark Brown
2019-10-02  5:35 ` [alsa-devel] [PATCH 42/44] ASoC: soc-generic-dmaengine-pcm: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: soc-generic-dmaengine-pcm: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:35 ` [alsa-devel] [PATCH 43/44] ASoC: soc-utils: remove snd_pcm_ops Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: soc-utils: remove snd_pcm_ops" to the asoc tree Mark Brown
2019-10-02  5:35 ` [alsa-devel] [PATCH 44/44] ASoC: soc-component: remove snd_pcm_ops from component driver Kuninori Morimoto
2019-10-08 12:53   ` [alsa-devel] Applied "ASoC: soc-component: remove snd_pcm_ops from component driver" to the asoc tree Mark Brown

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).