Message ID | 1fe41b71c258b21f8d309cf505f382e5da51a5c4.1307875512.git.hans.verkuil@cisco.com (mailing list archive) |
---|---|
State | RFC |
Headers | show |
Em 12-06-2011 07:59, Hans Verkuil escreveu: > From: Hans Verkuil <hans.verkuil@cisco.com> > > Get rid of a number of unnecessary tuner_dbg messages by simplifying > the std fixup function. Seems ok to me. > > Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> > --- > drivers/media/video/tuner-core.c | 92 +++++++++++--------------------------- > 1 files changed, 27 insertions(+), 65 deletions(-) > > diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c > index ee43e0a..462a8f4 100644 > --- a/drivers/media/video/tuner-core.c > +++ b/drivers/media/video/tuner-core.c > @@ -832,7 +832,7 @@ static void set_tv_freq(struct i2c_client *c, unsigned int freq) > /** > * tuner_fixup_std - force a given video standard variant > * > - * @t: tuner internal struct > + * @std: TV standard > * > * A few devices or drivers have problem to detect some standard variations. > * On other operational systems, the drivers generally have a per-country > @@ -842,57 +842,39 @@ static void set_tv_freq(struct i2c_client *c, unsigned int freq) > * to distinguish all video standard variations, a modprobe parameter can > * be used to force a video standard match. > */ > -static int tuner_fixup_std(struct tuner *t) > +static v4l2_std_id tuner_fixup_std(struct tuner *t, v4l2_std_id std) > { > - if ((t->std & V4L2_STD_PAL) == V4L2_STD_PAL) { > + if (pal[0] != '-' && (std & V4L2_STD_PAL) == V4L2_STD_PAL) { > switch (pal[0]) { > case '6': > - tuner_dbg("insmod fixup: PAL => PAL-60\n"); > - t->std = V4L2_STD_PAL_60; > - break; > + return V4L2_STD_PAL_60; > case 'b': > case 'B': > case 'g': > case 'G': > - tuner_dbg("insmod fixup: PAL => PAL-BG\n"); > - t->std = V4L2_STD_PAL_BG; > - break; > + return V4L2_STD_PAL_BG; > case 'i': > case 'I': > - tuner_dbg("insmod fixup: PAL => PAL-I\n"); > - t->std = V4L2_STD_PAL_I; > - break; > + return V4L2_STD_PAL_I; > case 'd': > case 'D': > case 'k': > case 'K': > - tuner_dbg("insmod fixup: PAL => PAL-DK\n"); > - t->std = V4L2_STD_PAL_DK; > - break; > + return V4L2_STD_PAL_DK; > case 'M': > case 'm': > - tuner_dbg("insmod fixup: PAL => PAL-M\n"); > - t->std = V4L2_STD_PAL_M; > - break; > + return V4L2_STD_PAL_M; > case 'N': > case 'n': > - if (pal[1] == 'c' || pal[1] == 'C') { > - tuner_dbg("insmod fixup: PAL => PAL-Nc\n"); > - t->std = V4L2_STD_PAL_Nc; > - } else { > - tuner_dbg("insmod fixup: PAL => PAL-N\n"); > - t->std = V4L2_STD_PAL_N; > - } > - break; > - case '-': > - /* default parameter, do nothing */ > - break; > + if (pal[1] == 'c' || pal[1] == 'C') > + return V4L2_STD_PAL_Nc; > + return V4L2_STD_PAL_N; > default: > tuner_warn("pal= argument not recognised\n"); > break; > } > } > - if ((t->std & V4L2_STD_SECAM) == V4L2_STD_SECAM) { > + if (secam[0] != '-' && (std & V4L2_STD_SECAM) == V4L2_STD_SECAM) { > switch (secam[0]) { > case 'b': > case 'B': > @@ -900,63 +882,42 @@ static int tuner_fixup_std(struct tuner *t) > case 'G': > case 'h': > case 'H': > - tuner_dbg("insmod fixup: SECAM => SECAM-BGH\n"); > - t->std = V4L2_STD_SECAM_B | > - V4L2_STD_SECAM_G | > - V4L2_STD_SECAM_H; > - break; > + return V4L2_STD_SECAM_B | > + V4L2_STD_SECAM_G | > + V4L2_STD_SECAM_H; > case 'd': > case 'D': > case 'k': > case 'K': > - tuner_dbg("insmod fixup: SECAM => SECAM-DK\n"); > - t->std = V4L2_STD_SECAM_DK; > - break; > + return V4L2_STD_SECAM_DK; > case 'l': > case 'L': > - if ((secam[1] == 'C') || (secam[1] == 'c')) { > - tuner_dbg("insmod fixup: SECAM => SECAM-L'\n"); > - t->std = V4L2_STD_SECAM_LC; > - } else { > - tuner_dbg("insmod fixup: SECAM => SECAM-L\n"); > - t->std = V4L2_STD_SECAM_L; > - } > - break; > - case '-': > - /* default parameter, do nothing */ > - break; > + if ((secam[1] == 'C') || (secam[1] == 'c')) > + return V4L2_STD_SECAM_LC; > + return V4L2_STD_SECAM_L; > default: > tuner_warn("secam= argument not recognised\n"); > break; > } > } > > - if ((t->std & V4L2_STD_NTSC) == V4L2_STD_NTSC) { > + if (ntsc[0] != '-' && (std & V4L2_STD_NTSC) == V4L2_STD_NTSC) { > switch (ntsc[0]) { > case 'm': > case 'M': > - tuner_dbg("insmod fixup: NTSC => NTSC-M\n"); > - t->std = V4L2_STD_NTSC_M; > - break; > + return V4L2_STD_NTSC_M; > case 'j': > case 'J': > - tuner_dbg("insmod fixup: NTSC => NTSC_M_JP\n"); > - t->std = V4L2_STD_NTSC_M_JP; > - break; > + return V4L2_STD_NTSC_M_JP; > case 'k': > case 'K': > - tuner_dbg("insmod fixup: NTSC => NTSC_M_KR\n"); > - t->std = V4L2_STD_NTSC_M_KR; > - break; > - case '-': > - /* default parameter, do nothing */ > - break; > + return V4L2_STD_NTSC_M_KR; > default: > tuner_info("ntsc= argument not recognised\n"); > break; > } > } > - return 0; > + return std; > } > > /* > @@ -1112,8 +1073,9 @@ static int tuner_s_std(struct v4l2_subdev *sd, v4l2_std_id std) > if (!set_mode_freq(client, t, V4L2_TUNER_ANALOG_TV, 0)) > return 0; > > - t->std = std; > - tuner_fixup_std(t); > + t->std = tuner_fixup_std(t, std); > + if (t->std != std) > + tuner_dbg("Fixup standard %llx to %llx\n", std, t->std); > > return 0; > } -- 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
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c index ee43e0a..462a8f4 100644 --- a/drivers/media/video/tuner-core.c +++ b/drivers/media/video/tuner-core.c @@ -832,7 +832,7 @@ static void set_tv_freq(struct i2c_client *c, unsigned int freq) /** * tuner_fixup_std - force a given video standard variant * - * @t: tuner internal struct + * @std: TV standard * * A few devices or drivers have problem to detect some standard variations. * On other operational systems, the drivers generally have a per-country @@ -842,57 +842,39 @@ static void set_tv_freq(struct i2c_client *c, unsigned int freq) * to distinguish all video standard variations, a modprobe parameter can * be used to force a video standard match. */ -static int tuner_fixup_std(struct tuner *t) +static v4l2_std_id tuner_fixup_std(struct tuner *t, v4l2_std_id std) { - if ((t->std & V4L2_STD_PAL) == V4L2_STD_PAL) { + if (pal[0] != '-' && (std & V4L2_STD_PAL) == V4L2_STD_PAL) { switch (pal[0]) { case '6': - tuner_dbg("insmod fixup: PAL => PAL-60\n"); - t->std = V4L2_STD_PAL_60; - break; + return V4L2_STD_PAL_60; case 'b': case 'B': case 'g': case 'G': - tuner_dbg("insmod fixup: PAL => PAL-BG\n"); - t->std = V4L2_STD_PAL_BG; - break; + return V4L2_STD_PAL_BG; case 'i': case 'I': - tuner_dbg("insmod fixup: PAL => PAL-I\n"); - t->std = V4L2_STD_PAL_I; - break; + return V4L2_STD_PAL_I; case 'd': case 'D': case 'k': case 'K': - tuner_dbg("insmod fixup: PAL => PAL-DK\n"); - t->std = V4L2_STD_PAL_DK; - break; + return V4L2_STD_PAL_DK; case 'M': case 'm': - tuner_dbg("insmod fixup: PAL => PAL-M\n"); - t->std = V4L2_STD_PAL_M; - break; + return V4L2_STD_PAL_M; case 'N': case 'n': - if (pal[1] == 'c' || pal[1] == 'C') { - tuner_dbg("insmod fixup: PAL => PAL-Nc\n"); - t->std = V4L2_STD_PAL_Nc; - } else { - tuner_dbg("insmod fixup: PAL => PAL-N\n"); - t->std = V4L2_STD_PAL_N; - } - break; - case '-': - /* default parameter, do nothing */ - break; + if (pal[1] == 'c' || pal[1] == 'C') + return V4L2_STD_PAL_Nc; + return V4L2_STD_PAL_N; default: tuner_warn("pal= argument not recognised\n"); break; } } - if ((t->std & V4L2_STD_SECAM) == V4L2_STD_SECAM) { + if (secam[0] != '-' && (std & V4L2_STD_SECAM) == V4L2_STD_SECAM) { switch (secam[0]) { case 'b': case 'B': @@ -900,63 +882,42 @@ static int tuner_fixup_std(struct tuner *t) case 'G': case 'h': case 'H': - tuner_dbg("insmod fixup: SECAM => SECAM-BGH\n"); - t->std = V4L2_STD_SECAM_B | - V4L2_STD_SECAM_G | - V4L2_STD_SECAM_H; - break; + return V4L2_STD_SECAM_B | + V4L2_STD_SECAM_G | + V4L2_STD_SECAM_H; case 'd': case 'D': case 'k': case 'K': - tuner_dbg("insmod fixup: SECAM => SECAM-DK\n"); - t->std = V4L2_STD_SECAM_DK; - break; + return V4L2_STD_SECAM_DK; case 'l': case 'L': - if ((secam[1] == 'C') || (secam[1] == 'c')) { - tuner_dbg("insmod fixup: SECAM => SECAM-L'\n"); - t->std = V4L2_STD_SECAM_LC; - } else { - tuner_dbg("insmod fixup: SECAM => SECAM-L\n"); - t->std = V4L2_STD_SECAM_L; - } - break; - case '-': - /* default parameter, do nothing */ - break; + if ((secam[1] == 'C') || (secam[1] == 'c')) + return V4L2_STD_SECAM_LC; + return V4L2_STD_SECAM_L; default: tuner_warn("secam= argument not recognised\n"); break; } } - if ((t->std & V4L2_STD_NTSC) == V4L2_STD_NTSC) { + if (ntsc[0] != '-' && (std & V4L2_STD_NTSC) == V4L2_STD_NTSC) { switch (ntsc[0]) { case 'm': case 'M': - tuner_dbg("insmod fixup: NTSC => NTSC-M\n"); - t->std = V4L2_STD_NTSC_M; - break; + return V4L2_STD_NTSC_M; case 'j': case 'J': - tuner_dbg("insmod fixup: NTSC => NTSC_M_JP\n"); - t->std = V4L2_STD_NTSC_M_JP; - break; + return V4L2_STD_NTSC_M_JP; case 'k': case 'K': - tuner_dbg("insmod fixup: NTSC => NTSC_M_KR\n"); - t->std = V4L2_STD_NTSC_M_KR; - break; - case '-': - /* default parameter, do nothing */ - break; + return V4L2_STD_NTSC_M_KR; default: tuner_info("ntsc= argument not recognised\n"); break; } } - return 0; + return std; } /* @@ -1112,8 +1073,9 @@ static int tuner_s_std(struct v4l2_subdev *sd, v4l2_std_id std) if (!set_mode_freq(client, t, V4L2_TUNER_ANALOG_TV, 0)) return 0; - t->std = std; - tuner_fixup_std(t); + t->std = tuner_fixup_std(t, std); + if (t->std != std) + tuner_dbg("Fixup standard %llx to %llx\n", std, t->std); return 0; }