* v4 [PATCH 07/10] TDA18271: Allow frontend to set DELSYS @ 2011-12-10 4:43 Manu Abraham 2011-12-10 12:41 ` Mauro Carvalho Chehab 0 siblings, 1 reply; 4+ messages in thread From: Manu Abraham @ 2011-12-10 4:43 UTC (permalink / raw) To: Linux Media Mailing List [-- Attachment #1: Type: text/plain, Size: 1 bytes --] [-- Attachment #2: 0007-TDA18271-Allow-frontend-to-set-DELSYS-rather-than-qu.patch --] [-- Type: text/x-patch, Size: 3713 bytes --] From 252d4ec800ba73bde8958b8c23ca92a6e17288e2 Mon Sep 17 00:00:00 2001 From: Manu Abraham <abraham.manu@gmail.com> Date: Thu, 24 Nov 2011 19:15:56 +0530 Subject: [PATCH 07/10] TDA18271: Allow frontend to set DELSYS, rather than querying fe->ops.info.type With any tuner that can tune to multiple delivery systems/standards, it does query fe->ops.info.type to determine frontend type and set the delivery system type. fe->ops.info.type can handle only 4 delivery systems, viz FE_QPSK, FE_QAM, FE_OFDM and FE_ATSC. The change allows the tuner to be set to any delivery system specified in fe_delivery_system_t, thereby simplifying a lot of issues. Signed-off-by: Manu Abraham <abraham.manu@gmail.com> --- drivers/media/common/tuners/tda18271-fe.c | 81 +++++++++++++++-------------- 1 files changed, 41 insertions(+), 40 deletions(-) diff --git a/drivers/media/common/tuners/tda18271-fe.c b/drivers/media/common/tuners/tda18271-fe.c index 3347c5b..cee1a39 100644 --- a/drivers/media/common/tuners/tda18271-fe.c +++ b/drivers/media/common/tuners/tda18271-fe.c @@ -935,69 +935,70 @@ static int tda18271_set_params(struct dvb_frontend *fe, struct tda18271_std_map *std_map = &priv->std; struct tda18271_std_map_item *map; int ret; - u32 bw, freq = params->frequency; + u32 bw, bandwidth = 0, freq; + fe_delivery_system_t delsys; + + delsys = fe->dtv_property_cache.delivery_system; + bw = fe->dtv_property_cache.bandwidth_hz; + freq = fe->dtv_property_cache.frequency; priv->mode = TDA18271_DIGITAL; - if (fe->ops.info.type == FE_ATSC) { - switch (params->u.vsb.modulation) { - case VSB_8: - case VSB_16: - map = &std_map->atsc_6; - break; - case QAM_64: - case QAM_256: - map = &std_map->qam_6; - break; - default: - tda_warn("modulation not set!\n"); + if (!delsys || !freq) { + tda_warn("delsys:%d freq:%d!\n", delsys, freq); + return -EINVAL; + } + switch (delsys) { + case SYS_ATSC: + map = &std_map->atsc_6; + bandwidth = 6000000; + break; + case SYS_DVBC_ANNEX_B: + map = &std_map->qam_6; + bandwidth = 6000000; + break; + case SYS_DVBC_ANNEX_A: + case SYS_DVBC_ANNEX_C: + map = &std_map->qam_8; + bandwidth = 8000000; + break; + case SYS_DVBT: + case SYS_DVBT2: + if (!bw) return -EINVAL; - } -#if 0 - /* userspace request is already center adjusted */ - freq += 1750000; /* Adjust to center (+1.75MHZ) */ -#endif - bw = 6000000; - } else if (fe->ops.info.type == FE_OFDM) { - switch (params->u.ofdm.bandwidth) { - case BANDWIDTH_6_MHZ: - bw = 6000000; + switch (bw) { + case 6000000: map = &std_map->dvbt_6; break; - case BANDWIDTH_7_MHZ: - bw = 7000000; + case 7000000: map = &std_map->dvbt_7; break; - case BANDWIDTH_8_MHZ: - bw = 8000000; + case 8000000: map = &std_map->dvbt_8; break; default: - tda_warn("bandwidth not set!\n"); - return -EINVAL; + ret = -EINVAL; + goto fail; } - } else if (fe->ops.info.type == FE_QAM) { - /* DVB-C */ - map = &std_map->qam_8; - bw = 8000000; - } else { - tda_warn("modulation type not supported!\n"); - return -EINVAL; + break; + default: + tda_warn("Invalid delivery system!\n"); + ret = -EINVAL; + goto fail; } - /* When tuning digital, the analog demod must be tri-stated */ if (fe->ops.analog_ops.standby) fe->ops.analog_ops.standby(fe); - ret = tda18271_tune(fe, map, freq, bw); + ret = tda18271_tune(fe, map, freq, bandwidth); if (tda_fail(ret)) goto fail; priv->if_freq = map->if_freq; priv->frequency = freq; - priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? - params->u.ofdm.bandwidth : 0; + priv->bandwidth = (delsys == SYS_DVBT || delsys == SYS_DVBT2) ? + bandwidth : 0; fail: return ret; } -- 1.7.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: v4 [PATCH 07/10] TDA18271: Allow frontend to set DELSYS 2011-12-10 4:43 v4 [PATCH 07/10] TDA18271: Allow frontend to set DELSYS Manu Abraham @ 2011-12-10 12:41 ` Mauro Carvalho Chehab 2011-12-10 12:45 ` Mauro Carvalho Chehab 0 siblings, 1 reply; 4+ messages in thread From: Mauro Carvalho Chehab @ 2011-12-10 12:41 UTC (permalink / raw) To: Manu Abraham; +Cc: Linux Media Mailing List On 10-12-2011 02:43, Manu Abraham wrote: > From 252d4ec800ba73bde8958b8c23ca92a6e17288e2 Mon Sep 17 00:00:00 2001 > From: Manu Abraham <abraham.manu@gmail.com> > Date: Thu, 24 Nov 2011 19:15:56 +0530 > Subject: [PATCH 07/10] TDA18271: Allow frontend to set DELSYS, rather than querying fe->ops.info.type > > With any tuner that can tune to multiple delivery systems/standards, it does > query fe->ops.info.type to determine frontend type and set the delivery > system type. fe->ops.info.type can handle only 4 delivery systems, viz FE_QPSK, > FE_QAM, FE_OFDM and FE_ATSC. > > The change allows the tuner to be set to any delivery system specified in > fe_delivery_system_t, thereby simplifying a lot of issues. > > Signed-off-by: Manu Abraham <abraham.manu@gmail.com> > --- > drivers/media/common/tuners/tda18271-fe.c | 81 +++++++++++++++-------------- > 1 files changed, 41 insertions(+), 40 deletions(-) > > diff --git a/drivers/media/common/tuners/tda18271-fe.c b/drivers/media/common/tuners/tda18271-fe.c > index 3347c5b..cee1a39 100644 > --- a/drivers/media/common/tuners/tda18271-fe.c > +++ b/drivers/media/common/tuners/tda18271-fe.c > @@ -935,69 +935,70 @@ static int tda18271_set_params(struct dvb_frontend *fe, > struct tda18271_std_map *std_map = &priv->std; > struct tda18271_std_map_item *map; > int ret; > - u32 bw, freq = params->frequency; > + u32 bw, bandwidth = 0, freq; > + fe_delivery_system_t delsys; > + > + delsys = fe->dtv_property_cache.delivery_system; > + bw = fe->dtv_property_cache.bandwidth_hz; > + freq = fe->dtv_property_cache.frequency; > > priv->mode = TDA18271_DIGITAL; > > - if (fe->ops.info.type == FE_ATSC) { > - switch (params->u.vsb.modulation) { > - case VSB_8: > - case VSB_16: > - map = &std_map->atsc_6; > - break; > - case QAM_64: > - case QAM_256: > - map = &std_map->qam_6; > - break; > - default: > - tda_warn("modulation not set!\n"); > + if (!delsys || !freq) { > + tda_warn("delsys:%d freq:%d!\n", delsys, freq); > + return -EINVAL; > + } > + switch (delsys) { > + case SYS_ATSC: > + map = &std_map->atsc_6; > + bandwidth = 6000000; > + break; > + case SYS_DVBC_ANNEX_B: > + map = &std_map->qam_6; > + bandwidth = 6000000; > + break; > + case SYS_DVBC_ANNEX_A: > + case SYS_DVBC_ANNEX_C: > + map = &std_map->qam_8; > + bandwidth = 8000000; > + break; This is wrong. The bandwidth needs to be calculated, based on the roll-off factor. Also, this patch doesn't apply anymore, due to the patches that were already applied. > + case SYS_DVBT: > + case SYS_DVBT2: > + if (!bw) > return -EINVAL; > - } > -#if 0 > - /* userspace request is already center adjusted */ > - freq += 1750000; /* Adjust to center (+1.75MHZ) */ > -#endif > - bw = 6000000; > - } else if (fe->ops.info.type == FE_OFDM) { > - switch (params->u.ofdm.bandwidth) { > - case BANDWIDTH_6_MHZ: > - bw = 6000000; > + switch (bw) { > + case 6000000: > map = &std_map->dvbt_6; > break; > - case BANDWIDTH_7_MHZ: > - bw = 7000000; > + case 7000000: > map = &std_map->dvbt_7; > break; > - case BANDWIDTH_8_MHZ: > - bw = 8000000; > + case 8000000: > map = &std_map->dvbt_8; > break; > default: > - tda_warn("bandwidth not set!\n"); > - return -EINVAL; > + ret = -EINVAL; > + goto fail; > } > - } else if (fe->ops.info.type == FE_QAM) { > - /* DVB-C */ > - map = &std_map->qam_8; > - bw = 8000000; > - } else { > - tda_warn("modulation type not supported!\n"); > - return -EINVAL; > + break; > + default: > + tda_warn("Invalid delivery system!\n"); > + ret = -EINVAL; > + goto fail; > } > - > /* When tuning digital, the analog demod must be tri-stated */ > if (fe->ops.analog_ops.standby) > fe->ops.analog_ops.standby(fe); > > - ret = tda18271_tune(fe, map, freq, bw); > + ret = tda18271_tune(fe, map, freq, bandwidth); > > if (tda_fail(ret)) > goto fail; > > priv->if_freq = map->if_freq; > priv->frequency = freq; > - priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? > - params->u.ofdm.bandwidth : 0; > + priv->bandwidth = (delsys == SYS_DVBT || delsys == SYS_DVBT2) ? > + bandwidth : 0; This rises an interesting point: it may be useful to store the bandwidth used by the tuner, in order to allow applications to retrieve this value. Besides that, returning 0 for bandwidth is meaningless, as the transmission uses some bandwidth. So, IMO, this is better: priv->bandwidth = bandwidth; Regards, Mauro ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: v4 [PATCH 07/10] TDA18271: Allow frontend to set DELSYS 2011-12-10 12:41 ` Mauro Carvalho Chehab @ 2011-12-10 12:45 ` Mauro Carvalho Chehab 2011-12-12 4:06 ` Manu Abraham 0 siblings, 1 reply; 4+ messages in thread From: Mauro Carvalho Chehab @ 2011-12-10 12:45 UTC (permalink / raw) To: Manu Abraham; +Cc: Linux Media Mailing List On 10-12-2011 10:41, Mauro Carvalho Chehab wrote: > On 10-12-2011 02:43, Manu Abraham wrote: >> From 252d4ec800ba73bde8958b8c23ca92a6e17288e2 Mon Sep 17 00:00:00 2001 >> From: Manu Abraham <abraham.manu@gmail.com> >> Date: Thu, 24 Nov 2011 19:15:56 +0530 >> Subject: [PATCH 07/10] TDA18271: Allow frontend to set DELSYS, rather than querying fe->ops.info.type >> >> With any tuner that can tune to multiple delivery systems/standards, it does >> query fe->ops.info.type to determine frontend type and set the delivery >> system type. fe->ops.info.type can handle only 4 delivery systems, viz FE_QPSK, >> FE_QAM, FE_OFDM and FE_ATSC. >> >> The change allows the tuner to be set to any delivery system specified in >> fe_delivery_system_t, thereby simplifying a lot of issues. >> >> Signed-off-by: Manu Abraham <abraham.manu@gmail.com> >> --- >> drivers/media/common/tuners/tda18271-fe.c | 81 +++++++++++++++-------------- >> 1 files changed, 41 insertions(+), 40 deletions(-) >> >> diff --git a/drivers/media/common/tuners/tda18271-fe.c b/drivers/media/common/tuners/tda18271-fe.c >> index 3347c5b..cee1a39 100644 >> --- a/drivers/media/common/tuners/tda18271-fe.c >> +++ b/drivers/media/common/tuners/tda18271-fe.c >> @@ -935,69 +935,70 @@ static int tda18271_set_params(struct dvb_frontend *fe, >> struct tda18271_std_map *std_map = &priv->std; >> struct tda18271_std_map_item *map; >> int ret; >> - u32 bw, freq = params->frequency; >> + u32 bw, bandwidth = 0, freq; >> + fe_delivery_system_t delsys; >> + >> + delsys = fe->dtv_property_cache.delivery_system; >> + bw = fe->dtv_property_cache.bandwidth_hz; >> + freq = fe->dtv_property_cache.frequency; >> >> priv->mode = TDA18271_DIGITAL; >> >> - if (fe->ops.info.type == FE_ATSC) { >> - switch (params->u.vsb.modulation) { >> - case VSB_8: >> - case VSB_16: >> - map = &std_map->atsc_6; >> - break; >> - case QAM_64: >> - case QAM_256: >> - map = &std_map->qam_6; >> - break; >> - default: >> - tda_warn("modulation not set!\n"); >> + if (!delsys || !freq) { >> + tda_warn("delsys:%d freq:%d!\n", delsys, freq); >> + return -EINVAL; >> + } >> + switch (delsys) { >> + case SYS_ATSC: >> + map = &std_map->atsc_6; >> + bandwidth = 6000000; >> + break; >> + case SYS_DVBC_ANNEX_B: >> + map = &std_map->qam_6; >> + bandwidth = 6000000; >> + break; >> + case SYS_DVBC_ANNEX_A: >> + case SYS_DVBC_ANNEX_C: >> + map = &std_map->qam_8; >> + bandwidth = 8000000; >> + break; > > This is wrong. > > The bandwidth needs to be calculated, based on the roll-off factor. > Also, this patch doesn't apply anymore, due to the patches that were > already applied. This is actually not true. The other tda18271 has the code for bandwidth calculus, not this one. Anyway, this driver needs a bandwidth estimation for DVB-C. Mental note added. > >> + case SYS_DVBT: >> + case SYS_DVBT2: >> + if (!bw) >> return -EINVAL; >> - } >> -#if 0 >> - /* userspace request is already center adjusted */ >> - freq += 1750000; /* Adjust to center (+1.75MHZ) */ >> -#endif >> - bw = 6000000; >> - } else if (fe->ops.info.type == FE_OFDM) { >> - switch (params->u.ofdm.bandwidth) { >> - case BANDWIDTH_6_MHZ: >> - bw = 6000000; >> + switch (bw) { >> + case 6000000: >> map = &std_map->dvbt_6; >> break; >> - case BANDWIDTH_7_MHZ: >> - bw = 7000000; >> + case 7000000: >> map = &std_map->dvbt_7; >> break; >> - case BANDWIDTH_8_MHZ: >> - bw = 8000000; >> + case 8000000: >> map = &std_map->dvbt_8; >> break; >> default: >> - tda_warn("bandwidth not set!\n"); >> - return -EINVAL; >> + ret = -EINVAL; >> + goto fail; >> } >> - } else if (fe->ops.info.type == FE_QAM) { >> - /* DVB-C */ >> - map = &std_map->qam_8; >> - bw = 8000000; >> - } else { >> - tda_warn("modulation type not supported!\n"); >> - return -EINVAL; >> + break; >> + default: >> + tda_warn("Invalid delivery system!\n"); >> + ret = -EINVAL; >> + goto fail; >> } >> - >> /* When tuning digital, the analog demod must be tri-stated */ >> if (fe->ops.analog_ops.standby) >> fe->ops.analog_ops.standby(fe); >> >> - ret = tda18271_tune(fe, map, freq, bw); >> + ret = tda18271_tune(fe, map, freq, bandwidth); >> >> if (tda_fail(ret)) >> goto fail; >> >> priv->if_freq = map->if_freq; >> priv->frequency = freq; >> - priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? >> - params->u.ofdm.bandwidth : 0; >> + priv->bandwidth = (delsys == SYS_DVBT || delsys == SYS_DVBT2) ? >> + bandwidth : 0; > > This rises an interesting point: it may be useful to store the bandwidth > used by the tuner, in order to allow applications to retrieve this value. > > Besides that, returning 0 for bandwidth is meaningless, as the transmission > uses some bandwidth. So, IMO, this is better: > priv->bandwidth = bandwidth; > > Regards, > Mauro > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: v4 [PATCH 07/10] TDA18271: Allow frontend to set DELSYS 2011-12-10 12:45 ` Mauro Carvalho Chehab @ 2011-12-12 4:06 ` Manu Abraham 0 siblings, 0 replies; 4+ messages in thread From: Manu Abraham @ 2011-12-12 4:06 UTC (permalink / raw) To: Mauro Carvalho Chehab; +Cc: Linux Media Mailing List On Sat, Dec 10, 2011 at 6:15 PM, Mauro Carvalho Chehab <maurochehab@gmail.com> wrote: > On 10-12-2011 10:41, Mauro Carvalho Chehab wrote: >> >> On 10-12-2011 02:43, Manu Abraham wrote: >>> >>> From 252d4ec800ba73bde8958b8c23ca92a6e17288e2 Mon Sep 17 00:00:00 2001 >>> From: Manu Abraham <abraham.manu@gmail.com> >>> Date: Thu, 24 Nov 2011 19:15:56 +0530 >>> Subject: [PATCH 07/10] TDA18271: Allow frontend to set DELSYS, rather >>> than querying fe->ops.info.type >>> >>> With any tuner that can tune to multiple delivery systems/standards, it >>> does >>> query fe->ops.info.type to determine frontend type and set the delivery >>> system type. fe->ops.info.type can handle only 4 delivery systems, viz >>> FE_QPSK, >>> FE_QAM, FE_OFDM and FE_ATSC. >>> >>> The change allows the tuner to be set to any delivery system specified in >>> fe_delivery_system_t, thereby simplifying a lot of issues. >>> >>> Signed-off-by: Manu Abraham <abraham.manu@gmail.com> >>> --- >>> drivers/media/common/tuners/tda18271-fe.c | 81 >>> +++++++++++++++-------------- >>> 1 files changed, 41 insertions(+), 40 deletions(-) >>> >>> diff --git a/drivers/media/common/tuners/tda18271-fe.c >>> b/drivers/media/common/tuners/tda18271-fe.c >>> index 3347c5b..cee1a39 100644 >>> --- a/drivers/media/common/tuners/tda18271-fe.c >>> +++ b/drivers/media/common/tuners/tda18271-fe.c >>> @@ -935,69 +935,70 @@ static int tda18271_set_params(struct dvb_frontend >>> *fe, >>> struct tda18271_std_map *std_map = &priv->std; >>> struct tda18271_std_map_item *map; >>> int ret; >>> - u32 bw, freq = params->frequency; >>> + u32 bw, bandwidth = 0, freq; >>> + fe_delivery_system_t delsys; >>> + >>> + delsys = fe->dtv_property_cache.delivery_system; >>> + bw = fe->dtv_property_cache.bandwidth_hz; >>> + freq = fe->dtv_property_cache.frequency; >>> >>> priv->mode = TDA18271_DIGITAL; >>> >>> - if (fe->ops.info.type == FE_ATSC) { >>> - switch (params->u.vsb.modulation) { >>> - case VSB_8: >>> - case VSB_16: >>> - map = &std_map->atsc_6; >>> - break; >>> - case QAM_64: >>> - case QAM_256: >>> - map = &std_map->qam_6; >>> - break; >>> - default: >>> - tda_warn("modulation not set!\n"); >>> + if (!delsys || !freq) { >>> + tda_warn("delsys:%d freq:%d!\n", delsys, freq); >>> + return -EINVAL; >>> + } >>> + switch (delsys) { >>> + case SYS_ATSC: >>> + map = &std_map->atsc_6; >>> + bandwidth = 6000000; >>> + break; >>> + case SYS_DVBC_ANNEX_B: >>> + map = &std_map->qam_6; >>> + bandwidth = 6000000; >>> + break; >>> + case SYS_DVBC_ANNEX_A: >>> + case SYS_DVBC_ANNEX_C: >>> + map = &std_map->qam_8; >>> + bandwidth = 8000000; >>> + break; >> >> >> This is wrong. >> >> The bandwidth needs to be calculated, based on the roll-off factor. > > > >> Also, this patch doesn't apply anymore, due to the patches that were >> already applied. > > > This is actually not true. The other tda18271 has the code for bandwidth > calculus, not this one. Anyway, this driver needs a bandwidth estimation > for DVB-C. Mental note added. > When applying a patch series, the right way is not to make too many modifications, thinking that some other driver has it. What I did was to handle it according to the coding style and code flow of each driver. In any case, you can add calculations based on rolloff in a later stage. Rather than making large changes which the driver authors/maintainers might not appreciate. >> >>> + case SYS_DVBT: >>> + case SYS_DVBT2: >>> + if (!bw) >>> return -EINVAL; >>> - } >>> -#if 0 >>> - /* userspace request is already center adjusted */ >>> - freq += 1750000; /* Adjust to center (+1.75MHZ) */ >>> -#endif >>> - bw = 6000000; >>> - } else if (fe->ops.info.type == FE_OFDM) { >>> - switch (params->u.ofdm.bandwidth) { >>> - case BANDWIDTH_6_MHZ: >>> - bw = 6000000; >>> + switch (bw) { >>> + case 6000000: >>> map = &std_map->dvbt_6; >>> break; >>> - case BANDWIDTH_7_MHZ: >>> - bw = 7000000; >>> + case 7000000: >>> map = &std_map->dvbt_7; >>> break; >>> - case BANDWIDTH_8_MHZ: >>> - bw = 8000000; >>> + case 8000000: >>> map = &std_map->dvbt_8; >>> break; >>> default: >>> - tda_warn("bandwidth not set!\n"); >>> - return -EINVAL; >>> + ret = -EINVAL; >>> + goto fail; >>> } >>> - } else if (fe->ops.info.type == FE_QAM) { >>> - /* DVB-C */ >>> - map = &std_map->qam_8; >>> - bw = 8000000; >>> - } else { >>> - tda_warn("modulation type not supported!\n"); >>> - return -EINVAL; >>> + break; >>> + default: >>> + tda_warn("Invalid delivery system!\n"); >>> + ret = -EINVAL; >>> + goto fail; >>> } >>> - >>> /* When tuning digital, the analog demod must be tri-stated */ >>> if (fe->ops.analog_ops.standby) >>> fe->ops.analog_ops.standby(fe); >>> >>> - ret = tda18271_tune(fe, map, freq, bw); >>> + ret = tda18271_tune(fe, map, freq, bandwidth); >>> >>> if (tda_fail(ret)) >>> goto fail; >>> >>> priv->if_freq = map->if_freq; >>> priv->frequency = freq; >>> - priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? >>> - params->u.ofdm.bandwidth : 0; >>> + priv->bandwidth = (delsys == SYS_DVBT || delsys == SYS_DVBT2) ? >>> + bandwidth : 0; >> >> >> This rises an interesting point: it may be useful to store the bandwidth >> used by the tuner, in order to allow applications to retrieve this value. >> The logic is the same as that of the existing logic, nothing new. No new logic introduced. - priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? - params->u.ofdm.bandwidth : 0; + priv->bandwidth = (delsys == SYS_DVBT || delsys == SYS_DVBT2) ? + bandwidth : 0; As you can see, only fe_info has been switched to use delsys instead. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-12-12 4:06 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-12-10 4:43 v4 [PATCH 07/10] TDA18271: Allow frontend to set DELSYS Manu Abraham 2011-12-10 12:41 ` Mauro Carvalho Chehab 2011-12-10 12:45 ` Mauro Carvalho Chehab 2011-12-12 4:06 ` Manu Abraham
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.