• Andy Walls's avatar
    V4L/DVB: cx25840, v4l2-subdev, ivtv, pvrusb2: Fix ivtv/cx25840 tinny audio · 3ccc646b
    Andy Walls authored
    This change attempts to fix the ivtv tinny audio problem by keeping digitizer
    to encoder audio clocks running, while disabling the video clocks as needed to
    avoid unpredictable PCI bus hangs.
    
    To accomplish this, for the cx25840 module enabling of audio streaming had
    to be separated from enabling video streaming, requiring an additional
    v4l2_subdev_audio_op and calls to this new op in the pvrusb2 and ivtv drivers.
    
    The cx231xx and cx23885 driver use the cx25840 module for affecting only
    video on s_stream calls, so those drivers needed no change.
    
    The CX23418 hardware does not exhibit either the tinny audio problem nor the PCI
    bus hang, so the cx18 driver did not need corresponding changes.
    
    CX2341[56] based cards that are not using the CX2584x family of chips
    do not seem to be affected by the tinny audio problem, and this change should
    not affect how they are configured. It will delay their first capture by
    starting by another 300 msec though.
    
    Many thanks go to Argus <pthorn-ivtvd@styx2002.no-ip.org> and
    Martin Dauskardt <martin.dauskardt@gmx.de> whose persistent testing and
    investigation of this problem will hopefully fix this problem once and for all
    for many ivtv users.
    Reported-by: default avatarMartin Dauskardt <martin.dauskardt@gmx.de>
    Reported-by: default avatarArgus <pthorn-ivtvd@styx2002.no-ip.org>
    Signed-off-by: default avatarAndy Walls <awalls@radix.net>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    3ccc646b
ivtv-streams.c 27.2 KB