All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Lucas Tanure <tanureal@opensource.cirrus.com>,
	James Schulman <james.schulman@cirrus.com>,
	David Rhodes <david.rhodes@cirrus.com>,
	Mark Brown <broonie@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>
Cc: alsa-devel@alsa-project.org, kbuild-all@lists.01.org,
	Lucas Tanure <tanureal@opensource.cirrus.com>,
	patches@opensource.cirrus.com, linux-kernel@vger.kernel.org,
	Richard Fitzgerald <rf@opensource.cirrus.com>
Subject: Re: [PATCH 07/15] ASoC: cs42l42: Set clock source for both ways of stream
Date: Wed, 3 Mar 2021 08:02:32 +0800	[thread overview]
Message-ID: <202103030706.6qGFiiHF-lkp@intel.com> (raw)
In-Reply-To: <20210302170454.39679-8-tanureal@opensource.cirrus.com>

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

Hi Lucas,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on asoc/for-next]
[also build test ERROR on v5.12-rc1 next-20210302]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Lucas-Tanure/Report-jack-and-button-detection-Capture-Support/20210303-012348
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
config: arc-allyesconfig (attached as .config)
compiler: arceb-elf-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/d004d17fc0cf6b114d467e0b352fe619c2d653a4
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Lucas-Tanure/Report-jack-and-button-detection-Capture-Support/20210303-012348
        git checkout d004d17fc0cf6b114d467e0b352fe619c2d653a4
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

Note: the linux-review/Lucas-Tanure/Report-jack-and-button-detection-Capture-Support/20210303-012348 HEAD 844324ce32306dc48f88e1a9fb44f51783b3942d builds fine.
      It only hurts bisectibility.

All errors (new ones prefixed by >>):

   sound/soc/codecs/cs42l42.c: In function 'cs42l42_mute_stream':
>> sound/soc/codecs/cs42l42.c:804:3: error: 'cs42l42' undeclared (first use in this function)
     804 |   cs42l42->stream_use &= ~(1 << stream);
         |   ^~~~~~~
   sound/soc/codecs/cs42l42.c:804:3: note: each undeclared identifier is reported only once for each function it appears in


vim +/cs42l42 +804 sound/soc/codecs/cs42l42.c

   788	
   789	static int cs42l42_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
   790	{
   791		struct snd_soc_component *component = dai->component;
   792		unsigned int regval;
   793		u8 fullScaleVol;
   794	
   795		if (mute) {
   796			/* Mute the headphone */
   797			if (stream == SNDRV_PCM_STREAM_PLAYBACK)
   798				snd_soc_component_update_bits(component, CS42L42_HP_CTL,
   799							      CS42L42_HP_ANA_AMUTE_MASK |
   800							      CS42L42_HP_ANA_BMUTE_MASK,
   801							      CS42L42_HP_ANA_AMUTE_MASK |
   802							      CS42L42_HP_ANA_BMUTE_MASK);
   803	
 > 804			cs42l42->stream_use &= ~(1 << stream);
   805			if(!cs42l42->stream_use) {
   806				/*
   807				 * Switch to the internal oscillator.
   808				 * SCLK must remain running until after this clock switch.
   809				 * Without a source of clock the I2C bus doesn't work.
   810				 */
   811				snd_soc_component_update_bits(component, CS42L42_OSC_SWITCH,
   812							      CS42L42_SCLK_PRESENT_MASK, 0);
   813				snd_soc_component_update_bits(component, CS42L42_PLL_CTL1,
   814							      CS42L42_PLL_START_MASK, 0);
   815			}
   816		} else {
   817			if (!cs42l42->stream_use) {
   818				/* SCLK must be running before codec unmute */
   819				snd_soc_component_update_bits(component, CS42L42_PLL_CTL1,
   820							      CS42L42_PLL_START_MASK, 1);
   821	
   822				/* Mark SCLK as present, turn off internal oscillator */
   823				snd_soc_component_update_bits(component, CS42L42_OSC_SWITCH,
   824							      CS42L42_SCLK_PRESENT_MASK,
   825							      CS42L42_SCLK_PRESENT_MASK);
   826			}
   827			cs42l42->stream_use |= 1 << stream;
   828	
   829			if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
   830				/* Read the headphone load */
   831				regval = snd_soc_component_read(component, CS42L42_LOAD_DET_RCSTAT);
   832				if (((regval & CS42L42_RLA_STAT_MASK) >> CS42L42_RLA_STAT_SHIFT) ==
   833				    CS42L42_RLA_STAT_15_OHM) {
   834					fullScaleVol = CS42L42_HP_FULL_SCALE_VOL_MASK;
   835				} else {
   836					fullScaleVol = 0;
   837				}
   838	
   839				/* Un-mute the headphone, set the full scale volume flag */
   840				snd_soc_component_update_bits(component, CS42L42_HP_CTL,
   841							      CS42L42_HP_ANA_AMUTE_MASK |
   842							      CS42L42_HP_ANA_BMUTE_MASK |
   843							      CS42L42_HP_FULL_SCALE_VOL_MASK, fullScaleVol);
   844			}
   845		}
   846	
   847		return 0;
   848	}
   849	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 67513 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 07/15] ASoC: cs42l42: Set clock source for both ways of stream
Date: Wed, 03 Mar 2021 08:02:32 +0800	[thread overview]
Message-ID: <202103030706.6qGFiiHF-lkp@intel.com> (raw)
In-Reply-To: <20210302170454.39679-8-tanureal@opensource.cirrus.com>

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

Hi Lucas,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on asoc/for-next]
[also build test ERROR on v5.12-rc1 next-20210302]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Lucas-Tanure/Report-jack-and-button-detection-Capture-Support/20210303-012348
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
config: arc-allyesconfig (attached as .config)
compiler: arceb-elf-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/d004d17fc0cf6b114d467e0b352fe619c2d653a4
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Lucas-Tanure/Report-jack-and-button-detection-Capture-Support/20210303-012348
        git checkout d004d17fc0cf6b114d467e0b352fe619c2d653a4
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

Note: the linux-review/Lucas-Tanure/Report-jack-and-button-detection-Capture-Support/20210303-012348 HEAD 844324ce32306dc48f88e1a9fb44f51783b3942d builds fine.
      It only hurts bisectibility.

All errors (new ones prefixed by >>):

   sound/soc/codecs/cs42l42.c: In function 'cs42l42_mute_stream':
>> sound/soc/codecs/cs42l42.c:804:3: error: 'cs42l42' undeclared (first use in this function)
     804 |   cs42l42->stream_use &= ~(1 << stream);
         |   ^~~~~~~
   sound/soc/codecs/cs42l42.c:804:3: note: each undeclared identifier is reported only once for each function it appears in


vim +/cs42l42 +804 sound/soc/codecs/cs42l42.c

   788	
   789	static int cs42l42_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
   790	{
   791		struct snd_soc_component *component = dai->component;
   792		unsigned int regval;
   793		u8 fullScaleVol;
   794	
   795		if (mute) {
   796			/* Mute the headphone */
   797			if (stream == SNDRV_PCM_STREAM_PLAYBACK)
   798				snd_soc_component_update_bits(component, CS42L42_HP_CTL,
   799							      CS42L42_HP_ANA_AMUTE_MASK |
   800							      CS42L42_HP_ANA_BMUTE_MASK,
   801							      CS42L42_HP_ANA_AMUTE_MASK |
   802							      CS42L42_HP_ANA_BMUTE_MASK);
   803	
 > 804			cs42l42->stream_use &= ~(1 << stream);
   805			if(!cs42l42->stream_use) {
   806				/*
   807				 * Switch to the internal oscillator.
   808				 * SCLK must remain running until after this clock switch.
   809				 * Without a source of clock the I2C bus doesn't work.
   810				 */
   811				snd_soc_component_update_bits(component, CS42L42_OSC_SWITCH,
   812							      CS42L42_SCLK_PRESENT_MASK, 0);
   813				snd_soc_component_update_bits(component, CS42L42_PLL_CTL1,
   814							      CS42L42_PLL_START_MASK, 0);
   815			}
   816		} else {
   817			if (!cs42l42->stream_use) {
   818				/* SCLK must be running before codec unmute */
   819				snd_soc_component_update_bits(component, CS42L42_PLL_CTL1,
   820							      CS42L42_PLL_START_MASK, 1);
   821	
   822				/* Mark SCLK as present, turn off internal oscillator */
   823				snd_soc_component_update_bits(component, CS42L42_OSC_SWITCH,
   824							      CS42L42_SCLK_PRESENT_MASK,
   825							      CS42L42_SCLK_PRESENT_MASK);
   826			}
   827			cs42l42->stream_use |= 1 << stream;
   828	
   829			if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
   830				/* Read the headphone load */
   831				regval = snd_soc_component_read(component, CS42L42_LOAD_DET_RCSTAT);
   832				if (((regval & CS42L42_RLA_STAT_MASK) >> CS42L42_RLA_STAT_SHIFT) ==
   833				    CS42L42_RLA_STAT_15_OHM) {
   834					fullScaleVol = CS42L42_HP_FULL_SCALE_VOL_MASK;
   835				} else {
   836					fullScaleVol = 0;
   837				}
   838	
   839				/* Un-mute the headphone, set the full scale volume flag */
   840				snd_soc_component_update_bits(component, CS42L42_HP_CTL,
   841							      CS42L42_HP_ANA_AMUTE_MASK |
   842							      CS42L42_HP_ANA_BMUTE_MASK |
   843							      CS42L42_HP_FULL_SCALE_VOL_MASK, fullScaleVol);
   844			}
   845		}
   846	
   847		return 0;
   848	}
   849	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 67513 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Lucas Tanure <tanureal@opensource.cirrus.com>,
	James Schulman <james.schulman@cirrus.com>,
	David Rhodes <david.rhodes@cirrus.com>,
	Mark Brown <broonie@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>
Cc: kbuild-all@lists.01.org, patches@opensource.cirrus.com,
	Richard Fitzgerald <rf@opensource.cirrus.com>,
	alsa-devel@alsa-project.org,
	Lucas Tanure <tanureal@opensource.cirrus.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 07/15] ASoC: cs42l42: Set clock source for both ways of stream
Date: Wed, 3 Mar 2021 08:02:32 +0800	[thread overview]
Message-ID: <202103030706.6qGFiiHF-lkp@intel.com> (raw)
In-Reply-To: <20210302170454.39679-8-tanureal@opensource.cirrus.com>

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

Hi Lucas,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on asoc/for-next]
[also build test ERROR on v5.12-rc1 next-20210302]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Lucas-Tanure/Report-jack-and-button-detection-Capture-Support/20210303-012348
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
config: arc-allyesconfig (attached as .config)
compiler: arceb-elf-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/d004d17fc0cf6b114d467e0b352fe619c2d653a4
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Lucas-Tanure/Report-jack-and-button-detection-Capture-Support/20210303-012348
        git checkout d004d17fc0cf6b114d467e0b352fe619c2d653a4
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

Note: the linux-review/Lucas-Tanure/Report-jack-and-button-detection-Capture-Support/20210303-012348 HEAD 844324ce32306dc48f88e1a9fb44f51783b3942d builds fine.
      It only hurts bisectibility.

All errors (new ones prefixed by >>):

   sound/soc/codecs/cs42l42.c: In function 'cs42l42_mute_stream':
>> sound/soc/codecs/cs42l42.c:804:3: error: 'cs42l42' undeclared (first use in this function)
     804 |   cs42l42->stream_use &= ~(1 << stream);
         |   ^~~~~~~
   sound/soc/codecs/cs42l42.c:804:3: note: each undeclared identifier is reported only once for each function it appears in


vim +/cs42l42 +804 sound/soc/codecs/cs42l42.c

   788	
   789	static int cs42l42_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
   790	{
   791		struct snd_soc_component *component = dai->component;
   792		unsigned int regval;
   793		u8 fullScaleVol;
   794	
   795		if (mute) {
   796			/* Mute the headphone */
   797			if (stream == SNDRV_PCM_STREAM_PLAYBACK)
   798				snd_soc_component_update_bits(component, CS42L42_HP_CTL,
   799							      CS42L42_HP_ANA_AMUTE_MASK |
   800							      CS42L42_HP_ANA_BMUTE_MASK,
   801							      CS42L42_HP_ANA_AMUTE_MASK |
   802							      CS42L42_HP_ANA_BMUTE_MASK);
   803	
 > 804			cs42l42->stream_use &= ~(1 << stream);
   805			if(!cs42l42->stream_use) {
   806				/*
   807				 * Switch to the internal oscillator.
   808				 * SCLK must remain running until after this clock switch.
   809				 * Without a source of clock the I2C bus doesn't work.
   810				 */
   811				snd_soc_component_update_bits(component, CS42L42_OSC_SWITCH,
   812							      CS42L42_SCLK_PRESENT_MASK, 0);
   813				snd_soc_component_update_bits(component, CS42L42_PLL_CTL1,
   814							      CS42L42_PLL_START_MASK, 0);
   815			}
   816		} else {
   817			if (!cs42l42->stream_use) {
   818				/* SCLK must be running before codec unmute */
   819				snd_soc_component_update_bits(component, CS42L42_PLL_CTL1,
   820							      CS42L42_PLL_START_MASK, 1);
   821	
   822				/* Mark SCLK as present, turn off internal oscillator */
   823				snd_soc_component_update_bits(component, CS42L42_OSC_SWITCH,
   824							      CS42L42_SCLK_PRESENT_MASK,
   825							      CS42L42_SCLK_PRESENT_MASK);
   826			}
   827			cs42l42->stream_use |= 1 << stream;
   828	
   829			if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
   830				/* Read the headphone load */
   831				regval = snd_soc_component_read(component, CS42L42_LOAD_DET_RCSTAT);
   832				if (((regval & CS42L42_RLA_STAT_MASK) >> CS42L42_RLA_STAT_SHIFT) ==
   833				    CS42L42_RLA_STAT_15_OHM) {
   834					fullScaleVol = CS42L42_HP_FULL_SCALE_VOL_MASK;
   835				} else {
   836					fullScaleVol = 0;
   837				}
   838	
   839				/* Un-mute the headphone, set the full scale volume flag */
   840				snd_soc_component_update_bits(component, CS42L42_HP_CTL,
   841							      CS42L42_HP_ANA_AMUTE_MASK |
   842							      CS42L42_HP_ANA_BMUTE_MASK |
   843							      CS42L42_HP_FULL_SCALE_VOL_MASK, fullScaleVol);
   844			}
   845		}
   846	
   847		return 0;
   848	}
   849	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 67513 bytes --]

  reply	other threads:[~2021-03-03  0:04 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-02 17:04 [PATCH 00/15] Report jack and button detection + Capture Support Lucas Tanure
2021-03-02 17:04 ` Lucas Tanure
2021-03-02 17:04 ` [PATCH 01/15] ASoC: cs42l42: Don't enable/disable regulator at Bias Level Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:04 ` [PATCH 02/15] ASoC: cs42l42: Always wait at least 3ms after reset Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:04 ` [PATCH 03/15] ASoC: cs42l42: Remove power if the driver is being removed Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:12   ` Mark Brown
2021-03-02 17:12     ` Mark Brown
2021-03-02 17:04 ` [PATCH 04/15] ASoC: cs42l42: Disable regulators if probe fails Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:04 ` [PATCH 05/15] ASoC: cs42l42: Fix Bitclock polarity inversion Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:15   ` Mark Brown
2021-03-02 17:15     ` Mark Brown
2021-03-02 17:04 ` [PATCH 06/15] ASoC: cs42l42: Provide finer control on playback path Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:04 ` [PATCH 07/15] ASoC: cs42l42: Set clock source for both ways of stream Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-03  0:02   ` kernel test robot [this message]
2021-03-03  0:02     ` kernel test robot
2021-03-03  0:02     ` kernel test robot
2021-03-02 17:04 ` [PATCH 08/15] ASoC: cs42l42: Fix channel width support Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:20   ` Mark Brown
2021-03-02 17:20     ` Mark Brown
2021-03-02 17:04 ` [PATCH 09/15] ASoC: cs42l42: Add Capture Support Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:04 ` [PATCH 10/15] ASoC: cs42l42: Report jack and button detection Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:29   ` Mark Brown
2021-03-02 17:29     ` Mark Brown
2021-03-02 17:04 ` [PATCH 11/15] ASoC: cs42l42: Use bclk from hw_params if set_sysclk was not called Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:04 ` [PATCH 12/15] ASoC: cs42l42: Wait at least 150us after writing SCLK_PRESENT Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:30   ` Mark Brown
2021-03-02 17:30     ` Mark Brown
2021-03-02 22:56   ` kernel test robot
2021-03-02 22:56     ` kernel test robot
2021-03-02 22:56     ` kernel test robot
2021-03-02 22:56   ` [PATCH] ASoC: cs42l42: fix semicolon.cocci warnings kernel test robot
2021-03-02 22:56     ` kernel test robot
2021-03-02 22:56     ` kernel test robot
2021-03-02 17:04 ` [PATCH 13/15] ASoC: cs42l42: Only start PLL if it is needed Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:04 ` [PATCH 14/15] ASoC: cs42l42: Wait for PLL to lock before switching to it Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:04 ` [PATCH 15/15] ASoC: cs42l42: Fix mixer volume control Lucas Tanure
2021-03-02 17:04   ` Lucas Tanure
2021-03-02 17:30   ` Mark Brown
2021-03-02 17:30     ` Mark Brown

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=202103030706.6qGFiiHF-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=david.rhodes@cirrus.com \
    --cc=james.schulman@cirrus.com \
    --cc=kbuild-all@lists.01.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patches@opensource.cirrus.com \
    --cc=rf@opensource.cirrus.com \
    --cc=tanureal@opensource.cirrus.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.