From: Chris Pascoe Date: Sun, 2 Dec 2007 09:36:42 +0000 (-0300) Subject: V4L/DVB (6852): xc2028: s-code offset should not modify internal control structure X-Git-Tag: v2.6.25-rc1~1235^2~171 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=ad35ce9e3e03b1515c8581bababb0e64d05cf1ad;p=karo-tx-linux.git V4L/DVB (6852): xc2028: s-code offset should not modify internal control structure Don't modify the control structure that was provided at attach when applying an offset to the S-Code, otherwise it will be incorrect on subsequent tunes. Signed-off-by: Chris Pascoe Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/video/tuner-xc2028.c b/drivers/media/video/tuner-xc2028.c index 416c717eb78e..81cc7f607d4e 100644 --- a/drivers/media/video/tuner-xc2028.c +++ b/drivers/media/video/tuner-xc2028.c @@ -956,6 +956,7 @@ static int xc2028_set_params(struct dvb_frontend *fe, struct xc2028_data *priv = fe->tuner_priv; unsigned int type=0; fe_bandwidth_t bw = BANDWIDTH_8_MHZ; + u16 demod = 0; tuner_dbg("%s called\n", __FUNCTION__); @@ -1009,10 +1010,10 @@ static int xc2028_set_params(struct dvb_frontend *fe, /* All S-code tables need a 200kHz shift */ if (priv->ctrl.demod) - priv->ctrl.demod += 200; + demod = priv->ctrl.demod + 200; return generic_set_freq(fe, p->frequency, - T_DIGITAL_TV, type, 0, priv->ctrl.demod); + T_DIGITAL_TV, type, 0, demod); } static int xc2028_sleep(struct dvb_frontend *fe)