From: Chris Pascoe Date: Mon, 19 Nov 2007 09:20:17 +0000 (-0300) Subject: V4L/DVB (6639): xc2028: correct divisor length X-Git-Tag: v2.6.25-rc1~1235^2~334 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ce4b3aa7c3c199466ae9f5ed32ea177912c8c3a;p=linux-2.6 V4L/DVB (6639): xc2028: correct divisor length The frequency divisor should only be four bytes long. Also, display the frequency and divisor correctly in the debug output. 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 7c86971a8d..e85992f970 100644 --- a/drivers/media/video/tuner-xc2028.c +++ b/drivers/media/video/tuner-xc2028.c @@ -740,7 +740,7 @@ static int generic_set_tv_freq(struct dvb_frontend *fe, u32 freq /* in Hz */ , { struct xc2028_data *priv = fe->tuner_priv; int rc = -EINVAL; - unsigned char buf[5]; + unsigned char buf[4]; u32 div, offset = 0; tuner_dbg("%s called\n", __FUNCTION__); @@ -758,7 +758,7 @@ static int generic_set_tv_freq(struct dvb_frontend *fe, u32 freq /* in Hz */ , goto ret; msleep(10); - tuner_dbg("should set frequency %d kHz)\n", freq / 1000); + tuner_dbg("should set frequency %d kHz\n", freq / 1000); if (check_firmware(fe, new_mode, std, bandwidth) < 0) goto ret; @@ -769,7 +769,6 @@ static int generic_set_tv_freq(struct dvb_frontend *fe, u32 freq /* in Hz */ , div = (freq - offset + DIV / 2) / DIV; /* CMD= Set frequency */ - if (priv->firm_version < 0x0202) rc = send_seq(priv, {0x00, 0x02, 0x00, 0x00}); else @@ -787,7 +786,6 @@ static int generic_set_tv_freq(struct dvb_frontend *fe, u32 freq /* in Hz */ , buf[1] = 0xff & (div >> 16); buf[2] = 0xff & (div >> 8); buf[3] = 0xff & (div); - buf[4] = 0; rc = i2c_send(priv, buf, sizeof(buf)); if (rc < 0) @@ -796,9 +794,9 @@ static int generic_set_tv_freq(struct dvb_frontend *fe, u32 freq /* in Hz */ , priv->frequency = freq; - tuner_dbg("divider= %02x %02x %02x %02x (freq=%d.%02d)\n", - buf[1], buf[2], buf[3], buf[4], - freq / 1000000, (freq % 1000000) / 10000); + tuner_dbg("divisor= %02x %02x %02x %02x (freq=%d.%03d)\n", + buf[0], buf[1], buf[2], buf[3], + freq / 1000000, (freq % 1000000) / 1000); rc = 0;