* [PATCH 0/4] staging: r8188eu: some more odm cleanup
@ 2022-01-22 17:05 Martin Kaiser
2022-01-22 17:05 ` [PATCH 1/4] staging: r8188eu: EntryMaxUndecoratedSmoothedPWDB is set but not used Martin Kaiser
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Martin Kaiser @ 2022-01-22 17:05 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Larry Finger, Phillip Potter, Michael Straube, linux-staging,
linux-kernel, Martin Kaiser
Remove some flags in the odm layer which are always set.
Remove an unused variable and merge two small functions.
Martin Kaiser (4):
staging: r8188eu: EntryMaxUndecoratedSmoothedPWDB is set but not used
staging: r8188eu: ODM_RF_TX_PWR_TRACK is always set
staging: r8188eu: ODM_RF_CALIBRATION is always set
staging: r8188eu: merge Init_ODM_ComInfo_88E and rtl8188e_init_dm_priv
drivers/staging/r8188eu/hal/HalPhyRf_8188e.c | 5 ---
drivers/staging/r8188eu/hal/odm.c | 8 -----
drivers/staging/r8188eu/hal/rtl8188e_dm.c | 32 ++++---------------
drivers/staging/r8188eu/include/odm.h | 4 ---
drivers/staging/r8188eu/include/rtl8188e_dm.h | 3 +-
5 files changed, 8 insertions(+), 44 deletions(-)
--
2.30.2
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/4] staging: r8188eu: EntryMaxUndecoratedSmoothedPWDB is set but not used
2022-01-22 17:05 [PATCH 0/4] staging: r8188eu: some more odm cleanup Martin Kaiser
@ 2022-01-22 17:05 ` Martin Kaiser
2022-01-22 17:05 ` [PATCH 2/4] staging: r8188eu: ODM_RF_TX_PWR_TRACK is always set Martin Kaiser
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Martin Kaiser @ 2022-01-22 17:05 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Larry Finger, Phillip Potter, Michael Straube, linux-staging,
linux-kernel, Martin Kaiser
The variable EntryMaxUndecoratedSmoothedPWDB in struct dm_priv
is set but not used. Remove it.
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
drivers/staging/r8188eu/hal/odm.c | 5 -----
drivers/staging/r8188eu/include/rtl8188e_dm.h | 3 +--
2 files changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/staging/r8188eu/hal/odm.c b/drivers/staging/r8188eu/hal/odm.c
index 8156e4acaa09..7de0f458d788 100644
--- a/drivers/staging/r8188eu/hal/odm.c
+++ b/drivers/staging/r8188eu/hal/odm.c
@@ -494,11 +494,6 @@ static void odm_RSSIMonitorCheck(struct odm_dm_struct *pDM_Odm)
}
}
- if (tmpEntryMaxPWDB != 0) /* If associated entry is found */
- pdmpriv->EntryMaxUndecoratedSmoothedPWDB = tmpEntryMaxPWDB;
- else
- pdmpriv->EntryMaxUndecoratedSmoothedPWDB = 0;
-
if (tmpEntryMinPWDB != 0xff) /* If associated entry is found */
pdmpriv->EntryMinUndecoratedSmoothedPWDB = tmpEntryMinPWDB;
else
diff --git a/drivers/staging/r8188eu/include/rtl8188e_dm.h b/drivers/staging/r8188eu/include/rtl8188e_dm.h
index 0b3a9a1a4e5c..d62cdfc2db20 100644
--- a/drivers/staging/r8188eu/include/rtl8188e_dm.h
+++ b/drivers/staging/r8188eu/include/rtl8188e_dm.h
@@ -12,9 +12,8 @@ enum{
struct dm_priv {
u32 InitODMFlag;
- /* Upper and Lower Signal threshold for Rate Adaptive*/
+ /* Lower Signal threshold for Rate Adaptive */
int EntryMinUndecoratedSmoothedPWDB;
- int EntryMaxUndecoratedSmoothedPWDB;
int MinUndecoratedPWDBForDM;
};
--
2.30.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/4] staging: r8188eu: ODM_RF_TX_PWR_TRACK is always set
2022-01-22 17:05 [PATCH 0/4] staging: r8188eu: some more odm cleanup Martin Kaiser
2022-01-22 17:05 ` [PATCH 1/4] staging: r8188eu: EntryMaxUndecoratedSmoothedPWDB is set but not used Martin Kaiser
@ 2022-01-22 17:05 ` Martin Kaiser
2022-01-22 17:05 ` [PATCH 3/4] staging: r8188eu: ODM_RF_CALIBRATION " Martin Kaiser
2022-01-22 17:05 ` [PATCH 4/4] staging: r8188eu: merge Init_ODM_ComInfo_88E and rtl8188e_init_dm_priv Martin Kaiser
3 siblings, 0 replies; 8+ messages in thread
From: Martin Kaiser @ 2022-01-22 17:05 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Larry Finger, Phillip Potter, Michael Straube, linux-staging,
linux-kernel, Martin Kaiser
The ODM_RF_TX_PWR_TRACK flag is set in Init_ODM_ComInfo_88E directly
after the driver is probed and it's never cleared.
Remove the flag and the one place where it's checked.
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
drivers/staging/r8188eu/hal/odm.c | 3 ---
drivers/staging/r8188eu/hal/rtl8188e_dm.c | 7 ++-----
drivers/staging/r8188eu/include/odm.h | 1 -
3 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/drivers/staging/r8188eu/hal/odm.c b/drivers/staging/r8188eu/hal/odm.c
index 7de0f458d788..9b4b75c225a7 100644
--- a/drivers/staging/r8188eu/hal/odm.c
+++ b/drivers/staging/r8188eu/hal/odm.c
@@ -898,9 +898,6 @@ void ODM_TXPowerTrackingCheck(struct odm_dm_struct *pDM_Odm)
{
struct adapter *Adapter = pDM_Odm->Adapter;
- if (!(pDM_Odm->SupportAbility & ODM_RF_TX_PWR_TRACK))
- return;
-
if (!pDM_Odm->RFCalibrateInfo.TM_Trigger) { /* at least delay 1 sec */
rtl8188e_PHY_SetRFReg(Adapter, RF_PATH_A, RF_T_METER_88E, BIT(17) | BIT(16), 0x03);
diff --git a/drivers/staging/r8188eu/hal/rtl8188e_dm.c b/drivers/staging/r8188eu/hal/rtl8188e_dm.c
index adf87c1721ee..2f7294f0486d 100644
--- a/drivers/staging/r8188eu/hal/rtl8188e_dm.c
+++ b/drivers/staging/r8188eu/hal/rtl8188e_dm.c
@@ -37,8 +37,7 @@ static void Init_ODM_ComInfo_88E(struct adapter *Adapter)
ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_RF_ANTENNA_TYPE, hal_data->TRxAntDivType);
- pdmpriv->InitODMFlag = ODM_RF_CALIBRATION |
- ODM_RF_TX_PWR_TRACK;
+ pdmpriv->InitODMFlag = ODM_RF_CALIBRATION;
ODM_CmnInfoUpdate(dm_odm, ODM_CMNINFO_ABILITY, pdmpriv->InitODMFlag);
}
@@ -53,9 +52,7 @@ static void Update_ODM_ComInfo_88E(struct adapter *Adapter)
struct dm_priv *pdmpriv = &hal_data->dmpriv;
int i;
- pdmpriv->InitODMFlag = ODM_BB_RSSI_MONITOR |
- ODM_RF_CALIBRATION |
- ODM_RF_TX_PWR_TRACK;
+ pdmpriv->InitODMFlag = ODM_BB_RSSI_MONITOR | ODM_RF_CALIBRATION;
if (hal_data->AntDivCfg)
pdmpriv->InitODMFlag |= ODM_BB_ANT_DIV;
diff --git a/drivers/staging/r8188eu/include/odm.h b/drivers/staging/r8188eu/include/odm.h
index 50960e7daf1d..ed6f724841d3 100644
--- a/drivers/staging/r8188eu/include/odm.h
+++ b/drivers/staging/r8188eu/include/odm.h
@@ -153,7 +153,6 @@ enum odm_ability_def {
ODM_BB_PWR_TRA = BIT(8),
/* RF ODM section BIT 24-31 */
- ODM_RF_TX_PWR_TRACK = BIT(24),
ODM_RF_CALIBRATION = BIT(26),
};
--
2.30.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/4] staging: r8188eu: ODM_RF_CALIBRATION is always set
2022-01-22 17:05 [PATCH 0/4] staging: r8188eu: some more odm cleanup Martin Kaiser
2022-01-22 17:05 ` [PATCH 1/4] staging: r8188eu: EntryMaxUndecoratedSmoothedPWDB is set but not used Martin Kaiser
2022-01-22 17:05 ` [PATCH 2/4] staging: r8188eu: ODM_RF_TX_PWR_TRACK is always set Martin Kaiser
@ 2022-01-22 17:05 ` Martin Kaiser
2022-01-26 7:49 ` Dan Carpenter
2022-01-22 17:05 ` [PATCH 4/4] staging: r8188eu: merge Init_ODM_ComInfo_88E and rtl8188e_init_dm_priv Martin Kaiser
3 siblings, 1 reply; 8+ messages in thread
From: Martin Kaiser @ 2022-01-22 17:05 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Larry Finger, Phillip Potter, Michael Straube, linux-staging,
linux-kernel, Martin Kaiser
The ODM_RF_CALIBRATION flag is set in Init_ODM_ComInfo_88E directly
after the driver is probed and it's never cleared.
Remove the flag and the code where it's set or checked.
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
drivers/staging/r8188eu/hal/HalPhyRf_8188e.c | 5 -----
drivers/staging/r8188eu/hal/rtl8188e_dm.c | 7 +------
drivers/staging/r8188eu/include/odm.h | 3 ---
3 files changed, 1 insertion(+), 14 deletions(-)
diff --git a/drivers/staging/r8188eu/hal/HalPhyRf_8188e.c b/drivers/staging/r8188eu/hal/HalPhyRf_8188e.c
index 21ecc90a558c..5f7a2668cabb 100644
--- a/drivers/staging/r8188eu/hal/HalPhyRf_8188e.c
+++ b/drivers/staging/r8188eu/hal/HalPhyRf_8188e.c
@@ -893,9 +893,6 @@ void PHY_IQCalibrate_8188E(struct adapter *adapt, bool recovery)
rOFDM0_XCTxAFE, rOFDM0_XDTxAFE,
rOFDM0_RxIQExtAnta};
- if (!(dm_odm->SupportAbility & ODM_RF_CALIBRATION))
- return;
-
/* 20120213<Kordan> Turn on when continuous Tx to pass lab testing. (required by Edlu) */
if (singletone || carrier_sup)
return;
@@ -993,8 +990,6 @@ void PHY_LCCalibrate_8188E(struct adapter *adapt)
struct hal_data_8188e *pHalData = &adapt->haldata;
struct odm_dm_struct *dm_odm = &pHalData->odmpriv;
- if (!(dm_odm->SupportAbility & ODM_RF_CALIBRATION))
- return;
/* 20120213<Kordan> Turn on when continuous Tx to pass lab testing. (required by Edlu) */
if (singletone || carrier_sup)
return;
diff --git a/drivers/staging/r8188eu/hal/rtl8188e_dm.c b/drivers/staging/r8188eu/hal/rtl8188e_dm.c
index 2f7294f0486d..558aa85f1a9f 100644
--- a/drivers/staging/r8188eu/hal/rtl8188e_dm.c
+++ b/drivers/staging/r8188eu/hal/rtl8188e_dm.c
@@ -25,7 +25,6 @@ static void dm_InitGPIOSetting(struct adapter *Adapter)
static void Init_ODM_ComInfo_88E(struct adapter *Adapter)
{
struct hal_data_8188e *hal_data = &Adapter->haldata;
- struct dm_priv *pdmpriv = &hal_data->dmpriv;
struct odm_dm_struct *dm_odm = &hal_data->odmpriv;
/* Init Value */
@@ -36,10 +35,6 @@ static void Init_ODM_ComInfo_88E(struct adapter *Adapter)
ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_MP_TEST_CHIP, IS_NORMAL_CHIP(hal_data->VersionID));
ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_RF_ANTENNA_TYPE, hal_data->TRxAntDivType);
-
- pdmpriv->InitODMFlag = ODM_RF_CALIBRATION;
-
- ODM_CmnInfoUpdate(dm_odm, ODM_CMNINFO_ABILITY, pdmpriv->InitODMFlag);
}
static void Update_ODM_ComInfo_88E(struct adapter *Adapter)
@@ -52,7 +47,7 @@ static void Update_ODM_ComInfo_88E(struct adapter *Adapter)
struct dm_priv *pdmpriv = &hal_data->dmpriv;
int i;
- pdmpriv->InitODMFlag = ODM_BB_RSSI_MONITOR | ODM_RF_CALIBRATION;
+ pdmpriv->InitODMFlag = ODM_BB_RSSI_MONITOR;
if (hal_data->AntDivCfg)
pdmpriv->InitODMFlag |= ODM_BB_ANT_DIV;
diff --git a/drivers/staging/r8188eu/include/odm.h b/drivers/staging/r8188eu/include/odm.h
index ed6f724841d3..63e0b6725bee 100644
--- a/drivers/staging/r8188eu/include/odm.h
+++ b/drivers/staging/r8188eu/include/odm.h
@@ -151,9 +151,6 @@ enum odm_ability_def {
ODM_BB_RSSI_MONITOR = BIT(4),
ODM_BB_ANT_DIV = BIT(6),
ODM_BB_PWR_TRA = BIT(8),
-
- /* RF ODM section BIT 24-31 */
- ODM_RF_CALIBRATION = BIT(26),
};
# define ODM_ITRF_USB 0x2
--
2.30.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/4] staging: r8188eu: merge Init_ODM_ComInfo_88E and rtl8188e_init_dm_priv
2022-01-22 17:05 [PATCH 0/4] staging: r8188eu: some more odm cleanup Martin Kaiser
` (2 preceding siblings ...)
2022-01-22 17:05 ` [PATCH 3/4] staging: r8188eu: ODM_RF_CALIBRATION " Martin Kaiser
@ 2022-01-22 17:05 ` Martin Kaiser
3 siblings, 0 replies; 8+ messages in thread
From: Martin Kaiser @ 2022-01-22 17:05 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Larry Finger, Phillip Potter, Michael Straube, linux-staging,
linux-kernel, Martin Kaiser
rtl8188e_init_dm_priv is the only caller of Init_ODM_ComInfo_88E.
Merge the two functions.
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
drivers/staging/r8188eu/hal/rtl8188e_dm.c | 22 ++++++----------------
1 file changed, 6 insertions(+), 16 deletions(-)
diff --git a/drivers/staging/r8188eu/hal/rtl8188e_dm.c b/drivers/staging/r8188eu/hal/rtl8188e_dm.c
index 558aa85f1a9f..a05d8687c18d 100644
--- a/drivers/staging/r8188eu/hal/rtl8188e_dm.c
+++ b/drivers/staging/r8188eu/hal/rtl8188e_dm.c
@@ -22,21 +22,6 @@ static void dm_InitGPIOSetting(struct adapter *Adapter)
/* */
/* functions */
/* */
-static void Init_ODM_ComInfo_88E(struct adapter *Adapter)
-{
- struct hal_data_8188e *hal_data = &Adapter->haldata;
- struct odm_dm_struct *dm_odm = &hal_data->odmpriv;
-
- /* Init Value */
- memset(dm_odm, 0, sizeof(*dm_odm));
-
- dm_odm->Adapter = Adapter;
-
- ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_MP_TEST_CHIP, IS_NORMAL_CHIP(hal_data->VersionID));
-
- ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_RF_ANTENNA_TYPE, hal_data->TRxAntDivType);
-}
-
static void Update_ODM_ComInfo_88E(struct adapter *Adapter)
{
struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv;
@@ -102,9 +87,14 @@ void rtl8188e_init_dm_priv(struct adapter *Adapter)
{
struct hal_data_8188e *hal_data = &Adapter->haldata;
struct dm_priv *pdmpriv = &hal_data->dmpriv;
+ struct odm_dm_struct *dm_odm = &hal_data->odmpriv;
memset(pdmpriv, 0, sizeof(struct dm_priv));
- Init_ODM_ComInfo_88E(Adapter);
+ memset(dm_odm, 0, sizeof(*dm_odm));
+
+ dm_odm->Adapter = Adapter;
+ ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_MP_TEST_CHIP, IS_NORMAL_CHIP(hal_data->VersionID));
+ ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_RF_ANTENNA_TYPE, hal_data->TRxAntDivType);
}
/* Add new function to reset the state of antenna diversity before link. */
--
2.30.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 3/4] staging: r8188eu: ODM_RF_CALIBRATION is always set
2022-01-22 17:05 ` [PATCH 3/4] staging: r8188eu: ODM_RF_CALIBRATION " Martin Kaiser
@ 2022-01-26 7:49 ` Dan Carpenter
2022-01-26 8:30 ` Martin Kaiser
0 siblings, 1 reply; 8+ messages in thread
From: Dan Carpenter @ 2022-01-26 7:49 UTC (permalink / raw)
To: Martin Kaiser
Cc: Greg Kroah-Hartman, Larry Finger, Phillip Potter, Michael Straube,
linux-staging, linux-kernel
On Sat, Jan 22, 2022 at 06:05:46PM +0100, Martin Kaiser wrote:
> @@ -36,10 +35,6 @@ static void Init_ODM_ComInfo_88E(struct adapter *Adapter)
> ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_MP_TEST_CHIP, IS_NORMAL_CHIP(hal_data->VersionID));
>
> ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_RF_ANTENNA_TYPE, hal_data->TRxAntDivType);
> -
> - pdmpriv->InitODMFlag = ODM_RF_CALIBRATION;
> -
> - ODM_CmnInfoUpdate(dm_odm, ODM_CMNINFO_ABILITY, pdmpriv->InitODMFlag);
Wait, why did you remove the ODM_CmnInfoUpdate()?
> }
regards,
dan carpenter
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/4] staging: r8188eu: ODM_RF_CALIBRATION is always set
2022-01-26 7:49 ` Dan Carpenter
@ 2022-01-26 8:30 ` Martin Kaiser
2022-01-26 10:30 ` Dan Carpenter
0 siblings, 1 reply; 8+ messages in thread
From: Martin Kaiser @ 2022-01-26 8:30 UTC (permalink / raw)
To: Dan Carpenter
Cc: Greg Kroah-Hartman, Larry Finger, Phillip Potter, Michael Straube,
linux-staging, linux-kernel
Hi Dan,
Thus wrote Dan Carpenter (dan.carpenter@oracle.com):
> On Sat, Jan 22, 2022 at 06:05:46PM +0100, Martin Kaiser wrote:
> > @@ -36,10 +35,6 @@ static void Init_ODM_ComInfo_88E(struct adapter *Adapter)
> > ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_MP_TEST_CHIP, IS_NORMAL_CHIP(hal_data->VersionID));
> > ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_RF_ANTENNA_TYPE, hal_data->TRxAntDivType);
> > -
> > - pdmpriv->InitODMFlag = ODM_RF_CALIBRATION;
> > -
> > - ODM_CmnInfoUpdate(dm_odm, ODM_CMNINFO_ABILITY, pdmpriv->InitODMFlag);
> Wait, why did you remove the ODM_CmnInfoUpdate()?
I removed the last item that Init_ODM_ComInfo_88E added to
pdmpriv->InitODMFlag. Init_ODM_ComInfo_88E does no longer modify
pdmpriv->InitODMFlag, there's no need for updating the odm internal
status.
Best regards,
Martin
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/4] staging: r8188eu: ODM_RF_CALIBRATION is always set
2022-01-26 8:30 ` Martin Kaiser
@ 2022-01-26 10:30 ` Dan Carpenter
0 siblings, 0 replies; 8+ messages in thread
From: Dan Carpenter @ 2022-01-26 10:30 UTC (permalink / raw)
To: Martin Kaiser
Cc: Greg Kroah-Hartman, Larry Finger, Phillip Potter, Michael Straube,
linux-staging, linux-kernel
On Wed, Jan 26, 2022 at 09:30:10AM +0100, Martin Kaiser wrote:
> Hi Dan,
>
> Thus wrote Dan Carpenter (dan.carpenter@oracle.com):
>
> > On Sat, Jan 22, 2022 at 06:05:46PM +0100, Martin Kaiser wrote:
> > > @@ -36,10 +35,6 @@ static void Init_ODM_ComInfo_88E(struct adapter *Adapter)
> > > ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_MP_TEST_CHIP, IS_NORMAL_CHIP(hal_data->VersionID));
>
> > > ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_RF_ANTENNA_TYPE, hal_data->TRxAntDivType);
> > > -
> > > - pdmpriv->InitODMFlag = ODM_RF_CALIBRATION;
> > > -
> > > - ODM_CmnInfoUpdate(dm_odm, ODM_CMNINFO_ABILITY, pdmpriv->InitODMFlag);
>
> > Wait, why did you remove the ODM_CmnInfoUpdate()?
>
> I removed the last item that Init_ODM_ComInfo_88E added to
> pdmpriv->InitODMFlag. Init_ODM_ComInfo_88E does no longer modify
> pdmpriv->InitODMFlag, there's no need for updating the odm internal
> status.
Ah. Okay. Thanks!
regards,
dan carpenter
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-01-26 10:31 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-22 17:05 [PATCH 0/4] staging: r8188eu: some more odm cleanup Martin Kaiser
2022-01-22 17:05 ` [PATCH 1/4] staging: r8188eu: EntryMaxUndecoratedSmoothedPWDB is set but not used Martin Kaiser
2022-01-22 17:05 ` [PATCH 2/4] staging: r8188eu: ODM_RF_TX_PWR_TRACK is always set Martin Kaiser
2022-01-22 17:05 ` [PATCH 3/4] staging: r8188eu: ODM_RF_CALIBRATION " Martin Kaiser
2022-01-26 7:49 ` Dan Carpenter
2022-01-26 8:30 ` Martin Kaiser
2022-01-26 10:30 ` Dan Carpenter
2022-01-22 17:05 ` [PATCH 4/4] staging: r8188eu: merge Init_ODM_ComInfo_88E and rtl8188e_init_dm_priv Martin Kaiser
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox