From: Antti Palosaari <crope@iki.fi>
To: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: Manu Abraham <abraham.manu@gmail.com>,
Simon Farnsworth <simon.farnsworth@onelan.com>,
Linux Media Mailing List <linux-media@vger.kernel.org>,
Devin Heitmueller <devin.heitmueller@gmail.com>
Subject: Re: [PATCH RFCv10 00/15] DVB QoS statistics API
Date: Wed, 23 Jan 2013 21:55:00 +0200 [thread overview]
Message-ID: <51004014.8020809@iki.fi> (raw)
In-Reply-To: <20130123165732.0e8e74bb@redhat.com>
On 01/23/2013 08:57 PM, Mauro Carvalho Chehab wrote:
> Em Wed, 23 Jan 2013 16:18:01 -0200
> Mauro Carvalho Chehab <mchehab@redhat.com> escreveu:
>
>> I'll soon post patches 1 and 2 after those changes. The remaining 4 patches
>> don't likely need any change.
>
> Actually, it sounds better to just do a diff between the two versions.
> Each individual patch on v13 is at:
> http://git.linuxtv.org/mchehab/experimental.git/shortlog/refs/heads/stats_v13
>
> Cheers,
> Mauro
>
> v13:
> - Add post-Viterbi BER on the API
> - Some documentation adjustments as suggested by Antti
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
For all the DVB-core related statistics API changes in that patch serie:
Reviewed-by: Antti Palosaari <crope@iki.fi>
I have still one comment about naming:
DTV_STAT_PRE_BIT_ERROR_COUNT => DTV_STAT_PRE_ERROR_BIT_COUNT
DTV_STAT_PRE_TOTAL_BIT_COUNT
DTV_STAT_POST_BIT_ERROR_COUNT => DTV_STAT_POST_ERROR_BIT_COUNT
DTV_STAT_POST_TOTAL_BIT_COUNT
DTV_STAT_ERROR_BLOCK_COUNT
DTV_STAT_TOTAL_BLOCK_COUNT
I like to change those two. Anyway, if you think current naming is
better then leave as it is.
>
> diff --git a/Documentation/DocBook/media/dvb/dvbproperty.xml b/Documentation/DocBook/media/dvb/dvbproperty.xml
> index 3f9f451..772314a 100644
> --- a/Documentation/DocBook/media/dvb/dvbproperty.xml
> +++ b/Documentation/DocBook/media/dvb/dvbproperty.xml
> @@ -467,7 +467,7 @@ typedef enum fe_delivery_system {
> <title><constant>DTV-ISDBT-LAYER*</constant> parameters</title>
> <para>ISDB-T channels can be coded hierarchically. As opposed to DVB-T in
> ISDB-T hierarchical layers can be decoded simultaneously. For that
> - reason a ISDB-T demodulator has 3 viterbi and 3 reed-solomon-decoders.</para>
> + reason a ISDB-T demodulator has 3 Viterbi and 3 Reed-Solomon decoders.</para>
> <para>ISDB-T has 3 hierarchical layers which each can use a part of the
> available segments. The total number of segments over all layers has
> to 13 in ISDB-T.</para>
> @@ -933,24 +933,24 @@ enum fe_interleaving {
> <listitem><constant>FE_SCALE_RELATIVE</constant> - The frontend provides a 0% to 100% measurement for Signal/Noise (actually, 0 to 65535).</listitem>
> </itemizedlist>
> </section>
> - <section id="DTV-STAT-BIT-ERROR-COUNT">
> - <title><constant>DTV_STAT_BIT_ERROR_COUNT</constant></title>
> - <para>Measures the number of bit errors before Viterbi.</para>
> - <para>This measure is taken during the same interval as <constant>DTV_STAT_TOTAL_BITS_COUNT</constant>.</para>
> + <section id="DTV-STAT-PRE-BIT-ERROR-COUNT">
> + <title><constant>DTV_STAT_PRE_BIT_ERROR_COUNT</constant></title>
> + <para>Measures the number of bit errors before the forward error correction (FEC) on the inner coding block (before Viterbi, LDPC or other inner code).</para>
> + <para>This measure is taken during the same interval as <constant>DTV_STAT_PRE_TOTAL_BIT_COUNT</constant>.</para>
> <para>In order to get the BER (Bit Error Rate) measurement, it should be divided by
> - <link linkend="DTV-STAT-TOTAL-BITS-COUNT"><constant>DTV_STAT_TOTAL_BITS_COUNT</constant></link>.</para>
> + <link linkend="DTV-STAT-PRE-TOTAL-BIT-COUNT"><constant>DTV_STAT_PRE_TOTAL_BIT_COUNT</constant></link>.</para>
> <para>This measurement is monotonically increased, as the frontend gets more bit count measurements.
> The frontend may reset it when a channel/transponder is tuned.</para>
> <para>Possible scales for this metric are:</para>
> <itemizedlist mark='bullet'>
> <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem>
> - <listitem><constant>FE_SCALE_COUNTER</constant> - Number of error bits counted before Viterbi.</listitem>
> + <listitem><constant>FE_SCALE_COUNTER</constant> - Number of error bits counted before the inner coding.</listitem>
> </itemizedlist>
> </section>
> - <section id="DTV-STAT-TOTAL-BITS-COUNT">
> - <title><constant>DTV_STAT_TOTAL_BITS_COUNT</constant></title>
> - <para>Measures the amount of bits received before the Viterbi block, during the same period as
> - <link linkend="DTV-STAT-BIT-ERROR-COUNT"><constant>DTV_STAT_BIT_ERROR_COUNT</constant></link> measurement was taken.</para>
> + <section id="DTV-STAT-PRE-TOTAL-BIT-COUNT">
> + <title><constant>DTV_STAT_PRE_TOTAL_BIT_COUNT</constant></title>
> + <para>Measures the amount of bits received before the inner code block, during the same period as
> + <link linkend="DTV-STAT-PRE-BIT-ERROR-COUNT"><constant>DTV_STAT_PRE_BIT_ERROR_COUNT</constant></link> measurement was taken.</para>
> <para>It should be noticed that this measurement can be smaller than the total amount of bits on the transport stream,
> as the frontend may need to manually restart the measurement, loosing some data between each measurement interval.</para>
> <para>This measurement is monotonically increased, as the frontend gets more bit count measurements.
> @@ -959,27 +959,56 @@ enum fe_interleaving {
> <itemizedlist mark='bullet'>
> <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem>
> <listitem><constant>FE_SCALE_COUNTER</constant> - Number of bits counted while measuring
> - <link linkend="DTV-STAT-BIT-ERROR-COUNT"><constant>DTV_STAT_BIT_ERROR_COUNT</constant></link>.</listitem>
> + <link linkend="DTV-STAT-PRE-BIT-ERROR-COUNT"><constant>DTV_STAT_PRE_BIT_ERROR_COUNT</constant></link>.</listitem>
> + </itemizedlist>
> + </section>
> + <section id="DTV-STAT-POST-BIT-ERROR-COUNT">
> + <title><constant>DTV_STAT_POST_BIT_ERROR_COUNT</constant></title>
> + <para>Measures the number of bit errors after the forward error correction (FEC) done by inner code block (after Viterbi, LDPC or other inner code).</para>
> + <para>This measure is taken during the same interval as <constant>DTV_STAT_POST_TOTAL_BIT_COUNT</constant>.</para>
> + <para>In order to get the BER (Bit Error Rate) measurement, it should be divided by
> + <link linkend="DTV-STAT-POST-TOTAL-BIT-COUNT"><constant>DTV_STAT_POST_TOTAL_BIT_COUNT</constant></link>.</para>
> + <para>This measurement is monotonically increased, as the frontend gets more bit count measurements.
> + The frontend may reset it when a channel/transponder is tuned.</para>
> + <para>Possible scales for this metric are:</para>
> + <itemizedlist mark='bullet'>
> + <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem>
> + <listitem><constant>FE_SCALE_COUNTER</constant> - Number of error bits counted after the inner coding.</listitem>
> + </itemizedlist>
> + </section>
> + <section id="DTV-STAT-POST-TOTAL-BIT-COUNT">
> + <title><constant>DTV_STAT_POST_TOTAL_BIT_COUNT</constant></title>
> + <para>Measures the amount of bits received after the inner coding, during the same period as
> + <link linkend="DTV-STAT-POST-BIT-ERROR-COUNT"><constant>DTV_STAT_POST_BIT_ERROR_COUNT</constant></link> measurement was taken.</para>
> + <para>It should be noticed that this measurement can be smaller than the total amount of bits on the transport stream,
> + as the frontend may need to manually restart the measurement, loosing some data between each measurement interval.</para>
> + <para>This measurement is monotonically increased, as the frontend gets more bit count measurements.
> + The frontend may reset it when a channel/transponder is tuned.</para>
> + <para>Possible scales for this metric are:</para>
> + <itemizedlist mark='bullet'>
> + <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem>
> + <listitem><constant>FE_SCALE_COUNTER</constant> - Number of bits counted while measuring
> + <link linkend="DTV-STAT-POST-BIT-ERROR-COUNT"><constant>DTV_STAT_POST_BIT_ERROR_COUNT</constant></link>.</listitem>
> </itemizedlist>
> </section>
> <section id="DTV-STAT-ERROR-BLOCK-COUNT">
> <title><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></title>
> - <para>Measures the number of block errors.</para>
> + <para>Measures the number of block errors after the outer forward error correction coding (after Reed-Solomon or other outer code).</para>
> <para>This measurement is monotonically increased, as the frontend gets more bit count measurements.
> The frontend may reset it when a channel/transponder is tuned.</para>
> <para>Possible scales for this metric are:</para>
> <itemizedlist mark='bullet'>
> <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem>
> - <listitem><constant>FE_SCALE_COUNTER</constant> - Number of error blocks counted after Red Salomon.</listitem>
> + <listitem><constant>FE_SCALE_COUNTER</constant> - Number of error blocks counted after the outer coding.</listitem>
> </itemizedlist>
> </section>
> - <section id="DTV-STAT-TOTAL-BLOCKS-COUNT">
> - <title><constant>DTV-STAT_TOTAL_BLOCKS_COUNT</constant></title>
> + <section id="DTV-STAT-TOTAL-BLOCK-COUNT">
> + <title><constant>DTV-STAT_TOTAL_BLOCK_COUNT</constant></title>
> <para>Measures the total number of blocks received during the same period as
> <link linkend="DTV-STAT-ERROR-BLOCK-COUNT"><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></link> measurement was taken.</para>
> <para>It can be used to calculate the PER indicator, by dividing
> <link linkend="DTV-STAT-ERROR-BLOCK-COUNT"><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></link>
> - by <link linkend="DTV-STAT-TOTAL-BLOCKS-COUNT"><constant>DTV-STAT-TOTAL-BLOCKS-COUNT</constant></link>.</para>
> + by <link linkend="DTV-STAT-TOTAL-BLOCK-COUNT"><constant>DTV-STAT-TOTAL-BLOCK-COUNT</constant></link>.</para>
> <para>Possible scales for this metric are:</para>
> <itemizedlist mark='bullet'>
> <listitem><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</listitem>
> diff --git a/Documentation/DocBook/media/dvb/frontend.xml b/Documentation/DocBook/media/dvb/frontend.xml
> index 426c252..df39ba3 100644
> --- a/Documentation/DocBook/media/dvb/frontend.xml
> +++ b/Documentation/DocBook/media/dvb/frontend.xml
> @@ -230,7 +230,7 @@ typedef enum fe_status {
> <entry align="char">The frontend has found a DVB signal</entry>
> </row><row>
> <entry align="char">FE_HAS_VITERBI</entry>
> -<entry align="char">The frontend FEC code is stable</entry>
> +<entry align="char">The frontend FEC inner coding (Viterbi, LDPC or other inner code) is stable</entry>
> </row><row>
> <entry align="char">FE_HAS_SYNC</entry>
> <entry align="char">Syncronization bytes was found</entry>
> diff --git a/drivers/media/dvb-core/dvb_frontend.c b/drivers/media/dvb-core/dvb_frontend.c
> index 66be7f7..f8943c2 100644
> --- a/drivers/media/dvb-core/dvb_frontend.c
> +++ b/drivers/media/dvb-core/dvb_frontend.c
> @@ -1057,10 +1057,12 @@ static struct dtv_cmds_h dtv_cmds[DTV_MAX_COMMAND + 1] = {
> /* Statistics API */
> _DTV_CMD(DTV_STAT_SIGNAL_STRENGTH, 0, 0),
> _DTV_CMD(DTV_STAT_CNR, 0, 0),
> - _DTV_CMD(DTV_STAT_BIT_ERROR_COUNT, 0, 0),
> - _DTV_CMD(DTV_STAT_TOTAL_BITS_COUNT, 0, 0),
> + _DTV_CMD(DTV_STAT_PRE_BIT_ERROR_COUNT, 0, 0),
> + _DTV_CMD(DTV_STAT_PRE_TOTAL_BIT_COUNT, 0, 0),
> + _DTV_CMD(DTV_STAT_POST_BIT_ERROR_COUNT, 0, 0),
> + _DTV_CMD(DTV_STAT_POST_TOTAL_BIT_COUNT, 0, 0),
> _DTV_CMD(DTV_STAT_ERROR_BLOCK_COUNT, 0, 0),
> - _DTV_CMD(DTV_STAT_TOTAL_BLOCKS_COUNT, 0, 0),
> + _DTV_CMD(DTV_STAT_TOTAL_BLOCK_COUNT, 0, 0),
> };
>
> static void dtv_property_dump(struct dvb_frontend *fe, struct dtv_property *tvp)
> @@ -1458,16 +1460,22 @@ static int dtv_property_process_get(struct dvb_frontend *fe,
> case DTV_STAT_CNR:
> tvp->u.st = c->cnr;
> break;
> - case DTV_STAT_BIT_ERROR_COUNT:
> - tvp->u.st = c->bit_error;
> + case DTV_STAT_PRE_BIT_ERROR_COUNT:
> + tvp->u.st = c->pre_bit_error;
> break;
> - case DTV_STAT_TOTAL_BITS_COUNT:
> - tvp->u.st = c->bit_count;
> + case DTV_STAT_PRE_TOTAL_BIT_COUNT:
> + tvp->u.st = c->pre_bit_count;
> + break;
> + case DTV_STAT_POST_BIT_ERROR_COUNT:
> + tvp->u.st = c->post_bit_error;
> + break;
> + case DTV_STAT_POST_TOTAL_BIT_COUNT:
> + tvp->u.st = c->post_bit_count;
> break;
> case DTV_STAT_ERROR_BLOCK_COUNT:
> tvp->u.st = c->block_error;
> break;
> - case DTV_STAT_TOTAL_BLOCKS_COUNT:
> + case DTV_STAT_TOTAL_BLOCK_COUNT:
> tvp->u.st = c->block_count;
> break;
> default:
> diff --git a/drivers/media/dvb-core/dvb_frontend.h b/drivers/media/dvb-core/dvb_frontend.h
> index 47952c5..b34922a 100644
> --- a/drivers/media/dvb-core/dvb_frontend.h
> +++ b/drivers/media/dvb-core/dvb_frontend.h
> @@ -397,8 +397,10 @@ struct dtv_frontend_properties {
> /* statistics data */
> struct dtv_fe_stats strength;
> struct dtv_fe_stats cnr;
> - struct dtv_fe_stats bit_error;
> - struct dtv_fe_stats bit_count;
> + struct dtv_fe_stats pre_bit_error;
> + struct dtv_fe_stats pre_bit_count;
> + struct dtv_fe_stats post_bit_error;
> + struct dtv_fe_stats post_bit_count;
> struct dtv_fe_stats block_error;
> struct dtv_fe_stats block_count;
> };
> diff --git a/drivers/media/dvb-frontends/mb86a20s.c b/drivers/media/dvb-frontends/mb86a20s.c
> index 56a027c..4f3e222 100644
> --- a/drivers/media/dvb-frontends/mb86a20s.c
> +++ b/drivers/media/dvb-frontends/mb86a20s.c
> @@ -721,8 +721,8 @@ static int mb86a20s_reset_counters(struct dvb_frontend *fe)
> if (state->last_frequency != c->frequency) {
> memset(&c->strength, 0, sizeof(c->strength));
> memset(&c->cnr, 0, sizeof(c->cnr));
> - memset(&c->bit_error, 0, sizeof(c->bit_error));
> - memset(&c->bit_count, 0, sizeof(c->bit_count));
> + memset(&c->pre_bit_error, 0, sizeof(c->pre_bit_error));
> + memset(&c->pre_bit_count, 0, sizeof(c->pre_bit_count));
> memset(&c->block_error, 0, sizeof(c->block_error));
> memset(&c->block_count, 0, sizeof(c->block_count));
>
> @@ -1232,8 +1232,8 @@ static void mb86a20s_stats_not_ready(struct dvb_frontend *fe)
>
> /* Per-layer stats - 3 layers + global */
> c->cnr.len = 4;
> - c->bit_error.len = 4;
> - c->bit_count.len = 4;
> + c->pre_bit_error.len = 4;
> + c->pre_bit_count.len = 4;
> c->block_error.len = 4;
> c->block_count.len = 4;
>
> @@ -1244,8 +1244,8 @@ static void mb86a20s_stats_not_ready(struct dvb_frontend *fe)
> /* Put all of them at FE_SCALE_NOT_AVAILABLE */
> for (i = 0; i < 4; i++) {
> c->cnr.stat[i].scale = FE_SCALE_NOT_AVAILABLE;
> - c->bit_error.stat[i].scale = FE_SCALE_NOT_AVAILABLE;
> - c->bit_count.stat[i].scale = FE_SCALE_NOT_AVAILABLE;
> + c->pre_bit_error.stat[i].scale = FE_SCALE_NOT_AVAILABLE;
> + c->pre_bit_count.stat[i].scale = FE_SCALE_NOT_AVAILABLE;
> c->block_error.stat[i].scale = FE_SCALE_NOT_AVAILABLE;
> c->block_count.stat[i].scale = FE_SCALE_NOT_AVAILABLE;
> }
> @@ -1257,7 +1257,7 @@ static int mb86a20s_get_stats(struct dvb_frontend *fe)
> struct dtv_frontend_properties *c = &fe->dtv_property_cache;
> int rc = 0, i;
> u32 bit_error = 0, bit_count = 0;
> - u32 t_bit_error = 0, t_bit_count = 0;
> + u32 t_pre_bit_error = 0, t_pre_bit_count = 0;
> int active_layers = 0, ber_layers = 0;
>
> dev_dbg(&state->i2c->dev, "%s called.\n", __func__);
> @@ -1278,17 +1278,17 @@ static int mb86a20s_get_stats(struct dvb_frontend *fe)
> &bit_error,
> &bit_count);
> if (rc >= 0) {
> - c->bit_error.stat[1 + i].scale = FE_SCALE_COUNTER;
> - c->bit_error.stat[1 + i].uvalue += bit_error;
> - c->bit_count.stat[1 + i].scale = FE_SCALE_COUNTER;
> - c->bit_count.stat[1 + i].uvalue += bit_count;
> + c->pre_bit_error.stat[1 + i].scale = FE_SCALE_COUNTER;
> + c->pre_bit_error.stat[1 + i].uvalue += bit_error;
> + c->pre_bit_count.stat[1 + i].scale = FE_SCALE_COUNTER;
> + c->pre_bit_count.stat[1 + i].uvalue += bit_count;
> } else if (rc != -EBUSY) {
> /*
> * If an I/O error happened,
> * measures are now unavailable
> */
> - c->bit_error.stat[1 + i].scale = FE_SCALE_NOT_AVAILABLE;
> - c->bit_count.stat[1 + i].scale = FE_SCALE_NOT_AVAILABLE;
> + c->pre_bit_error.stat[1 + i].scale = FE_SCALE_NOT_AVAILABLE;
> + c->pre_bit_count.stat[1 + i].scale = FE_SCALE_NOT_AVAILABLE;
> dev_err(&state->i2c->dev,
> "%s: Can't get BER for layer %c (error %d).\n",
> __func__, 'A' + i, rc);
> @@ -1298,8 +1298,8 @@ static int mb86a20s_get_stats(struct dvb_frontend *fe)
> ber_layers++;
>
> /* Update total BER */
> - t_bit_error += c->bit_error.stat[1 + i].uvalue;
> - t_bit_count += c->bit_count.stat[1 + i].uvalue;
> + t_pre_bit_error += c->pre_bit_error.stat[1 + i].uvalue;
> + t_pre_bit_count += c->pre_bit_count.stat[1 + i].uvalue;
> }
> }
>
> @@ -1315,10 +1315,10 @@ static int mb86a20s_get_stats(struct dvb_frontend *fe)
> * Total Bit Error/Count is calculated as the sum of the
> * bit errors on all active layers.
> */
> - c->bit_error.stat[0].scale = FE_SCALE_COUNTER;
> - c->bit_error.stat[0].uvalue = t_bit_error;
> - c->bit_count.stat[0].scale = FE_SCALE_COUNTER;
> - c->bit_count.stat[0].uvalue = t_bit_count;
> + c->pre_bit_error.stat[0].scale = FE_SCALE_COUNTER;
> + c->pre_bit_error.stat[0].uvalue = t_pre_bit_error;
> + c->pre_bit_count.stat[0].scale = FE_SCALE_COUNTER;
> + c->pre_bit_count.stat[0].uvalue = t_pre_bit_count;
> }
>
> return rc;
> @@ -1544,12 +1544,12 @@ struct dvb_frontend *mb86a20s_attach(const struct mb86a20s_config *config,
> struct mb86a20s_state *state;
> u8 rev;
>
> + dev_dbg(&i2c->dev, "%s called.\n", __func__);
> +
> /* allocate memory for the internal state */
> state = kzalloc(sizeof(struct mb86a20s_state), GFP_KERNEL);
> -
> - dev_dbg(&state->i2c->dev, "%s called.\n", __func__);
> if (state == NULL) {
> - dev_err(&state->i2c->dev,
> + dev_err(&i2c->dev,
> "%s: unable to allocate memory for state\n", __func__);
> goto error;
> }
> @@ -1567,10 +1567,10 @@ struct dvb_frontend *mb86a20s_attach(const struct mb86a20s_config *config,
> rev = mb86a20s_readreg(state, 0);
>
> if (rev == 0x13) {
> - dev_info(&state->i2c->dev,
> + dev_info(&i2c->dev,
> "Detected a Fujitsu mb86a20s frontend\n");
> } else {
> - dev_dbg(&state->i2c->dev,
> + dev_dbg(&i2c->dev,
> "Frontend revision %d is unknown - aborting.\n",
> rev);
> goto error;
> diff --git a/include/uapi/linux/dvb/frontend.h b/include/uapi/linux/dvb/frontend.h
> index 0cd62bd..1913a36 100644
> --- a/include/uapi/linux/dvb/frontend.h
> +++ b/include/uapi/linux/dvb/frontend.h
> @@ -368,12 +368,14 @@ struct dvb_frontend_event {
> /* Quality parameters */
> #define DTV_STAT_SIGNAL_STRENGTH 62
> #define DTV_STAT_CNR 63
> -#define DTV_STAT_BIT_ERROR_COUNT 64
> -#define DTV_STAT_TOTAL_BITS_COUNT 65
> -#define DTV_STAT_ERROR_BLOCK_COUNT 66
> -#define DTV_STAT_TOTAL_BLOCKS_COUNT 67
> -
> -#define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCKS_COUNT
> +#define DTV_STAT_PRE_BIT_ERROR_COUNT 64
> +#define DTV_STAT_PRE_TOTAL_BIT_COUNT 65
> +#define DTV_STAT_POST_BIT_ERROR_COUNT 66
> +#define DTV_STAT_POST_TOTAL_BIT_COUNT 67
> +#define DTV_STAT_ERROR_BLOCK_COUNT 68
> +#define DTV_STAT_TOTAL_BLOCK_COUNT 69
> +
> +#define DTV_MAX_COMMAND DTV_STAT_TOTAL_BLOCK_COUNT
>
> typedef enum fe_pilot {
> PILOT_ON,
>
--
http://palosaari.fi/
next prev parent reply other threads:[~2013-01-23 19:55 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-15 2:30 [PATCH RFCv10 00/15] DVB QoS statistics API Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 01/15] mb86a20s: improve error handling at get_frontend Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 02/15] dvb: Add DVBv5 stats properties for Quality of Service Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 03/15] dvb: the core logic to handle the DVBv5 QoS properties Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 04/15] mb86a20s: Update QoS statistics at FE read_status Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 05/15] mb86a20s: functions reorder Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 06/15] mb86a20s: Fix i2c gate on error Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 07/15] mb86a20s: improve debug for RF level Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 08/15] mb86a20s: fix interleaving and FEC retrival Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 09/15] mb86a20s: convert it to use dev_info/dev_err/dev_dbg Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 10/15] mb86a20s: -EBUSY is expected when getting QoS measures Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 11/15] mb86a20s: make AGC work better Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 12/15] mb86a20s: Some improvements for BER measurement Mauro Carvalho Chehab
2013-01-15 2:30 ` [PATCH RFCv10 13/15] mb86a20s: improve bit error count for BER Mauro Carvalho Chehab
2013-01-15 2:31 ` [PATCH RFCv10 14/15] dvb: increase API version Mauro Carvalho Chehab
2013-01-15 8:20 ` [PATCH RFCv10 00/15] DVB QoS statistics API Johannes Stezenbach
2013-01-15 8:55 ` Antti Palosaari
2013-01-15 12:23 ` Mauro Carvalho Chehab
2013-01-15 9:34 ` Antti Palosaari
2013-01-15 13:10 ` Mauro Carvalho Chehab
2013-01-15 14:49 ` Antti Palosaari
2013-01-15 15:21 ` Mauro Carvalho Chehab
2013-01-15 15:47 ` Devin Heitmueller
2013-01-15 17:02 ` Mauro Carvalho Chehab
2013-01-15 15:26 ` Antti Palosaari
2013-01-15 17:12 ` Mauro Carvalho Chehab
2013-01-15 20:37 ` Antti Palosaari
2013-01-16 4:26 ` Manu Abraham
2013-01-16 11:41 ` Luca Olivetti
2013-01-16 13:56 ` Mauro Carvalho Chehab
2013-01-16 15:19 ` Manu Abraham
2013-01-16 17:21 ` Mauro Carvalho Chehab
2013-01-16 18:26 ` Manu Abraham
2013-01-16 19:22 ` Mauro Carvalho Chehab
2013-01-16 21:40 ` Manu Abraham
2013-01-16 19:29 ` Simon Farnsworth
2013-01-16 21:37 ` Manu Abraham
2013-01-16 22:11 ` Mauro Carvalho Chehab
2013-01-17 3:26 ` Manu Abraham
2013-01-16 22:01 ` Mauro Carvalho Chehab
2013-01-17 3:40 ` Manu Abraham
2013-01-17 9:33 ` Antti Palosaari
2013-01-17 16:50 ` Mauro Carvalho Chehab
2013-01-17 17:15 ` Antti Palosaari
2013-01-17 18:11 ` Mauro Carvalho Chehab
2013-01-17 18:27 ` Antti Palosaari
2013-01-17 18:37 ` Manu Abraham
2013-01-17 18:50 ` Mauro Carvalho Chehab
2013-01-17 19:11 ` Antti Palosaari
2013-01-17 19:35 ` Mauro Carvalho Chehab
2013-01-17 21:29 ` Manu Abraham
2013-01-17 22:22 ` Antti Palosaari
2013-01-17 22:46 ` Mauro Carvalho Chehab
2013-01-22 12:16 ` Mauro Carvalho Chehab
2013-01-23 15:08 ` Antti Palosaari
2013-01-23 15:12 ` Antti Palosaari
2013-01-23 18:18 ` Mauro Carvalho Chehab
2013-01-23 18:57 ` Mauro Carvalho Chehab
2013-01-23 19:55 ` Antti Palosaari [this message]
2013-01-23 21:00 ` Mauro Carvalho Chehab
2013-01-23 22:02 ` Mauro Carvalho Chehab
2013-01-17 17:16 ` Manu Abraham
2013-01-17 17:22 ` Antti Palosaari
2013-01-17 17:37 ` [linux-media] " Klaus Schmidinger
2013-01-17 17:39 ` [linux-media] " Klaus Schmidinger
2013-01-17 18:36 ` Mauro Carvalho Chehab
2013-01-19 12:04 ` Mauro Carvalho Chehab
2013-01-16 13:24 ` Mauro Carvalho Chehab
2013-01-15 10:38 ` Manu Abraham
2013-01-15 15:23 ` Mauro Carvalho Chehab
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=51004014.8020809@iki.fi \
--to=crope@iki.fi \
--cc=abraham.manu@gmail.com \
--cc=devin.heitmueller@gmail.com \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@redhat.com \
--cc=simon.farnsworth@onelan.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 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).