2019-06-03 07:44:51 +02:00
// SPDX-License-Identifier: GPL-2.0-only
2006-06-26 20:58:46 -03:00
/*
*
* Copyright ( C ) 2005 Mike Isely < isely @ pobox . com >
* Copyright ( C ) 2004 Aurelien Alleaume < slts @ free . fr >
*/
# include "pvrusb2-audio.h"
# include "pvrusb2-hdw-internal.h"
# include "pvrusb2-debug.h"
# include <linux/videodev2.h>
2015-11-13 19:40:07 -02:00
# include <media/drv-intf/msp3400.h>
2006-06-26 20:58:46 -03:00
# include <media/v4l2-common.h>
2009-03-06 23:48:42 -03:00
2007-11-26 02:07:26 -03:00
struct routing_scheme {
const int * def ;
unsigned int cnt ;
} ;
static const int routing_scheme0 [ ] = {
[ PVR2_CVAL_INPUT_TV ] = MSP_INPUT_DEFAULT ,
[ PVR2_CVAL_INPUT_RADIO ] = MSP_INPUT ( MSP_IN_SCART2 ,
MSP_IN_TUNER1 ,
MSP_DSP_IN_SCART ,
MSP_DSP_IN_SCART ) ,
[ PVR2_CVAL_INPUT_COMPOSITE ] = MSP_INPUT ( MSP_IN_SCART1 ,
MSP_IN_TUNER1 ,
MSP_DSP_IN_SCART ,
MSP_DSP_IN_SCART ) ,
[ PVR2_CVAL_INPUT_SVIDEO ] = MSP_INPUT ( MSP_IN_SCART1 ,
MSP_IN_TUNER1 ,
MSP_DSP_IN_SCART ,
MSP_DSP_IN_SCART ) ,
} ;
2009-06-20 14:55:31 -03:00
static const struct routing_scheme routing_def0 = {
. def = routing_scheme0 ,
. cnt = ARRAY_SIZE ( routing_scheme0 ) ,
} ;
static const struct routing_scheme * routing_schemes [ ] = {
[ PVR2_ROUTING_SCHEME_HAUPPAUGE ] = & routing_def0 ,
2007-11-26 02:07:26 -03:00
} ;
2009-03-07 00:52:06 -03:00
void pvr2_msp3400_subdev_update ( struct pvr2_hdw * hdw , struct v4l2_subdev * sd )
{
2009-03-07 01:57:25 -03:00
if ( hdw - > input_dirty | | hdw - > force_dirty ) {
2009-03-07 00:52:06 -03:00
const struct routing_scheme * sp ;
unsigned int sid = hdw - > hdw_desc - > signal_routing_scheme ;
2009-04-02 11:26:22 -03:00
u32 input ;
2009-03-07 00:52:06 -03:00
pvr2_trace ( PVR2_TRACE_CHIPS , " subdev msp3400 v4l2 set_stereo " ) ;
2009-08-07 05:32:20 -03:00
sp = ( sid < ARRAY_SIZE ( routing_schemes ) ) ?
routing_schemes [ sid ] : NULL ;
2009-03-07 00:52:06 -03:00
2009-08-07 05:32:20 -03:00
if ( ( sp ! = NULL ) & &
2009-03-07 00:52:06 -03:00
( hdw - > input_val > = 0 ) & &
( hdw - > input_val < sp - > cnt ) ) {
2009-04-02 11:26:22 -03:00
input = sp - > def [ hdw - > input_val ] ;
2009-03-07 00:52:06 -03:00
} else {
pvr2_trace ( PVR2_TRACE_ERROR_LEGS ,
[media] pvrusb2: don't break long lines
Due to the 80-cols restrictions, and latter due to checkpatch
warnings, several strings were broken into multiple lines. This
is not considered a good practice anymore, as it makes harder
to grep for strings at the source code.
As we're right now fixing other drivers due to KERN_CONT, we need
to be able to identify what printk strings don't end with a "\n".
It is a way easier to detect those if we don't break long lines.
So, join those continuation lines.
The patch was generated via the script below, and manually
adjusted if needed.
</script>
use Text::Tabs;
while (<>) {
if ($next ne "") {
$c=$_;
if ($c =~ /^\s+\"(.*)/) {
$c2=$1;
$next =~ s/\"\n$//;
$n = expand($next);
$funpos = index($n, '(');
$pos = index($c2, '",');
if ($funpos && $pos > 0) {
$s1 = substr $c2, 0, $pos + 2;
$s2 = ' ' x ($funpos + 1) . substr $c2, $pos + 2;
$s2 =~ s/^\s+//;
$s2 = ' ' x ($funpos + 1) . $s2 if ($s2 ne "");
print unexpand("$next$s1\n");
print unexpand("$s2\n") if ($s2 ne "");
} else {
print "$next$c2\n";
}
$next="";
next;
} else {
print $next;
}
$next="";
} else {
if (m/\"$/) {
if (!m/\\n\"$/) {
$next=$_;
next;
}
}
}
print $_;
}
</script>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2016-10-18 17:44:18 -02:00
" *** WARNING *** subdev msp3400 set_input: Invalid routing scheme (%u) and/or input (%d) " ,
2009-03-07 00:52:06 -03:00
sid , hdw - > input_val ) ;
return ;
}
2009-04-02 11:26:22 -03:00
sd - > ops - > audio - > s_routing ( sd , input ,
MSP_OUTPUT ( MSP_SC_IN_DSP_SCART1 ) , 0 ) ;
2009-03-07 00:52:06 -03:00
}
}