lkml.org 
[lkml]   [2007]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[2.6.22.2 review 28/84] V4L: ivtv: fix broken VBI output support

    From: Hans Verkuil <hverkuil@xs4all.nl>

    The old service_set_out setting was still tested, even though it no longer
    was ever set and was in fact obsolete. This meant that everything that was
    written to /dev/vbi16 was ignored. Removed the service_set_out variable
    altogether and now it works again.

    (cherry picked from commit 47fd3ba9fc62d23a985f4969719c3091438d21c5)

    Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
    Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/media/video/ivtv/ivtv-driver.h | 1 -
    drivers/media/video/ivtv/ivtv-vbi.c | 31 +++++++++++--------------------
    2 files changed, 11 insertions(+), 21 deletions(-)

    --- a/drivers/media/video/ivtv/ivtv-driver.h
    +++ b/drivers/media/video/ivtv/ivtv-driver.h
    @@ -650,7 +650,6 @@ struct vbi_info {
    /* convenience pointer to sliced struct in vbi_in union */
    struct v4l2_sliced_vbi_format *sliced_in;
    u32 service_set_in;
    - u32 service_set_out;
    int insert_mpeg;

    /* Buffer for the maximum of 2 * 18 * packet_size sliced VBI lines.
    --- a/drivers/media/video/ivtv/ivtv-vbi.c
    +++ b/drivers/media/video/ivtv/ivtv-vbi.c
    @@ -219,31 +219,23 @@ ssize_t ivtv_write_vbi(struct ivtv *itv,
    int found_cc = 0;
    int cc_pos = itv->vbi.cc_pos;

    - if (itv->vbi.service_set_out == 0)
    - return -EPERM;
    -
    while (count >= sizeof(struct v4l2_sliced_vbi_data)) {
    switch (p->id) {
    case V4L2_SLICED_CAPTION_525:
    - if (p->id == V4L2_SLICED_CAPTION_525 &&
    - p->line == 21 &&
    - (itv->vbi.service_set_out &
    - V4L2_SLICED_CAPTION_525) == 0) {
    - break;
    - }
    - found_cc = 1;
    - if (p->field) {
    - cc[2] = p->data[0];
    - cc[3] = p->data[1];
    - } else {
    - cc[0] = p->data[0];
    - cc[1] = p->data[1];
    + if (p->line == 21) {
    + found_cc = 1;
    + if (p->field) {
    + cc[2] = p->data[0];
    + cc[3] = p->data[1];
    + } else {
    + cc[0] = p->data[0];
    + cc[1] = p->data[1];
    + }
    }
    break;

    case V4L2_SLICED_VPS:
    - if (p->line == 16 && p->field == 0 &&
    - (itv->vbi.service_set_out & V4L2_SLICED_VPS)) {
    + if (p->line == 16 && p->field == 0) {
    itv->vbi.vps[0] = p->data[2];
    itv->vbi.vps[1] = p->data[8];
    itv->vbi.vps[2] = p->data[9];
    @@ -255,8 +247,7 @@ ssize_t ivtv_write_vbi(struct ivtv *itv,
    break;

    case V4L2_SLICED_WSS_625:
    - if (p->line == 23 && p->field == 0 &&
    - (itv->vbi.service_set_out & V4L2_SLICED_WSS_625)) {
    + if (p->line == 23 && p->field == 0) {
    /* No lock needed for WSS */
    itv->vbi.wss = p->data[0] | (p->data[1] << 8);
    itv->vbi.wss_found = 1;
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-08-07 23:25    [W:0.045 / U:61.424 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site