Dmitri Belimov | 2 Sep 03:37 2009
Picon

[PATCH] Add FM radio for the XC5000

Hi All

Add FM radio for the xc5000 silicon tuner chip.

diff -r 28f8b0ebd224 linux/drivers/media/common/tuners/xc5000.c
--- a/linux/drivers/media/common/tuners/xc5000.c	Sun Aug 23 13:55:25 2009 -0300
+++ b/linux/drivers/media/common/tuners/xc5000.c	Wed Sep 02 06:32:12 2009 +1000
 <at>  <at>  -747,14 +747,11  <at>  <at> 
 	return ret;
 }

-static int xc5000_set_analog_params(struct dvb_frontend *fe,
+static int xc5000_set_tv_freq(struct dvb_frontend *fe,
 	struct analog_parameters *params)
 {
 	struct xc5000_priv *priv = fe->tuner_priv;
 	int ret;
-
-	if (xc5000_is_firmware_loaded(fe) != XC_RESULT_SUCCESS)
-		xc_load_fw_and_init_tuner(fe);

 	dprintk(1, "%s() frequency=%d (in units of 62.5khz)\n",
 		__func__, params->frequency);
 <at>  <at>  -834,6 +831,67  <at>  <at> 

 	return 0;
 }
+
+static int xc5000_set_radio_freq(struct dvb_frontend *fe,
+	struct analog_parameters *params)
(Continue reading)

Devin Heitmueller | 2 Sep 03:53 2009

Re: [PATCH] Add FM radio for the XC5000

On Tue, Sep 1, 2009 at 9:37 PM, Dmitri Belimov<d.belimov <at> gmail.com> wrote:
> Hi All
>
> Add FM radio for the xc5000 silicon tuner chip.
>
> diff -r 28f8b0ebd224 linux/drivers/media/common/tuners/xc5000.c
> --- a/linux/drivers/media/common/tuners/xc5000.c        Sun Aug 23 13:55:25 2009 -0300
> +++ b/linux/drivers/media/common/tuners/xc5000.c        Wed Sep 02 06:32:12 2009 +1000
>  <at>  <at>  -747,14 +747,11  <at>  <at> 
>        return ret;
>  }
>
> -static int xc5000_set_analog_params(struct dvb_frontend *fe,
> +static int xc5000_set_tv_freq(struct dvb_frontend *fe,
>        struct analog_parameters *params)
>  {
>        struct xc5000_priv *priv = fe->tuner_priv;
>        int ret;
> -
> -       if (xc5000_is_firmware_loaded(fe) != XC_RESULT_SUCCESS)
> -               xc_load_fw_and_init_tuner(fe);
>
>        dprintk(1, "%s() frequency=%d (in units of 62.5khz)\n",
>                __func__, params->frequency);
>  <at>  <at>  -834,6 +831,67  <at>  <at> 
>
>        return 0;
>  }
> +
> +static int xc5000_set_radio_freq(struct dvb_frontend *fe,
(Continue reading)

Dmitri Belimov | 2 Sep 05:13 2009
Picon

[PATCH] Change tuner type of BeholdTV cards

Hi All.

Change tuner type to correct for BeholdTV cards with FM1216MK5.

diff -r be01f82499cc linux/drivers/media/video/saa7134/saa7134-cards.c
--- a/linux/drivers/media/video/saa7134/saa7134-cards.c	Mon Aug 31 23:14:06 2009 -0300
+++ b/linux/drivers/media/video/saa7134/saa7134-cards.c	Wed Sep 02 08:03:58 2009 +1000
 <at>  <at>  -4203,7 +4203,7  <at>  <at> 
 		/*Dmitry Belimov <d.belimov <at> gmail.com> */
 		.name           = "Beholder BeholdTV 505 RDS",
 		.audio_clock    = 0x00200000,
-		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3, /* FIXME to MK5 */
+		.tuner_type     = TUNER_PHILIPS_FM1216MK5,
 		.radio_type     = UNSET,
 		.tuner_addr     = ADDR_UNSET,
 		.radio_addr     = ADDR_UNSET,
 <at>  <at>  -4268,7 +4268,7  <at>  <at> 
 		/*Dmitry Belimov <d.belimov <at> gmail.com> */
 		.name           = "Beholder BeholdTV 507 RDS",
 		.audio_clock    = 0x00187de7,
-		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3, /* FIXME to MK5 */
+		.tuner_type     = TUNER_PHILIPS_FM1216MK5,
 		.radio_type     = UNSET,
 		.tuner_addr     = ADDR_UNSET,
 		.radio_addr     = ADDR_UNSET,
 <at>  <at>  -4419,7 +4419,7  <at>  <at> 
 		/* Andrey Melnikoff <temnota <at> kmv.ru> */
 		.name           = "Beholder BeholdTV 607 FM",
 		.audio_clock    = 0x00187de7,
-		.tuner_type     = TUNER_PHILIPS_FM1216ME_MK3, /* FIXME to MK5 */
(Continue reading)

Dmitri Belimov | 2 Sep 05:24 2009
Picon

Re: [PATCH] Add FM radio for the XC5000

Hi Devin

Yes I agree. Not so good way. I was send because didn't recieved any reply from Steven Toth.
Main reason do FM radio working right now.

I think you can do next step for writing this workaround and make patch for it. 
I'll write config and make some tests for our card.

With my best regards, Dmitry.

> On Tue, Sep 1, 2009 at 9:37 PM, Dmitri Belimov<d.belimov <at> gmail.com>
> wrote:
> > Hi All
> >
> > Add FM radio for the xc5000 silicon tuner chip.
> >
> > diff -r 28f8b0ebd224 linux/drivers/media/common/tuners/xc5000.c
> > --- a/linux/drivers/media/common/tuners/xc5000.c        Sun Aug 23
> > 13:55:25 2009 -0300 +++
> > b/linux/drivers/media/common/tuners/xc5000.c        Wed Sep 02
> > 06:32:12 2009 +1000  <at>  <at>  -747,14 +747,11  <at>  <at>  return ret;
> >  }
> >
> > -static int xc5000_set_analog_params(struct dvb_frontend *fe,
> > +static int xc5000_set_tv_freq(struct dvb_frontend *fe,
> >        struct analog_parameters *params)
> >  {
> >        struct xc5000_priv *priv = fe->tuner_priv;
> >        int ret;
> > -
(Continue reading)

Dmitri Belimov | 8 Sep 01:36 2009
Picon

[PATCH] Key filter for BeholdTV cards.

Hi All.

When fast push-pull button of remote control we can received incorrect
key code 0x00. Key information from IR decoder has ID of remote control 2 bytes,
byte of key code and byte of mirror key code.
Correct data
0x86 0x6B 0x00 0xFF

Wrong data
0x86 0x6B 0x00 0x00

This patch added additional test of mirror byte for filtering.

diff -r 2b49813f8482 linux/drivers/media/video/saa7134/saa7134-input.c
--- a/linux/drivers/media/video/saa7134/saa7134-input.c	Thu Sep 03 09:06:34 2009 -0300
+++ b/linux/drivers/media/video/saa7134/saa7134-input.c	Mon Sep 07 18:05:54 2009 +1000
 <at>  <at>  -286,6 +286,10  <at>  <at> 
 	 * So, skip not our, if disable full codes mode.
 	 */
 	if (data[10] != 0x6b && data[11] != 0x86 && disable_other_ir)
+		return 0;
+
+	/* Wrong data decode fix */
+	if (data[9] != (unsigned char)(~data[8]))
 		return 0;

 	*ir_key = data[9];
Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov <d.belimov <at> gmail.com>

With my best regards, Dmitry.
(Continue reading)

Kuninori Morimoto | 8 Sep 03:46 2009

[PATCH 0/4] tw9910 can use INTERLACE TB/BT


Hi Guennadi

These patches for tw9910.

Kuninori Morimoto
      soc-camera: tw9910: hsync_ctrl can control from platform
      soc-camera: tw9910 driver only check Product ID
      soc-camera: sh_mobile_ceu: Add V4L2_FIELD_INTERLACED_BT/TB support
      soc-camera: tw9910: use V4L2_FIELD_INTERLACED_TB/BT for field

h/v position for tw9910 should be controlled from platform.
1st patches is for this
(I will send MigoR patch to controll it)

tw9910 has fixed Product ID and some revision ID.
2nd patch change to check only Product ID.

3rd/4th patch add INTERLACE TB/TB support for CEU and tw9910

--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request <at> redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

Kuninori Morimoto | 8 Sep 03:46 2009

[PATCH 1/4] soc-camera: tw9910: hsync_ctrl can control from platform


Signed-off-by: Kuninori Morimoto <morimoto.kuninori <at> renesas.com>
---
 drivers/media/video/tw9910.c |   31 ++++++++++++++-----------------
 include/media/tw9910.h       |    2 ++
 2 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/drivers/media/video/tw9910.c b/drivers/media/video/tw9910.c
index e41eb9c..79ba997 100644
--- a/drivers/media/video/tw9910.c
+++ b/drivers/media/video/tw9910.c
 <at>  <at>  -192,6 +192,10  <at>  <at> 
 #define RTSEL_FIELD 0x06 /* 0110 = FIELD */
 #define RTSEL_RTCO  0x07 /* 0111 = RTCO ( Real Time Control ) */

+/* HSYNC default */
+#define HSTART 0x0160
+#define HEND   0x0300
+
 /*
  * structure
  */
 <at>  <at>  -216,11 +220,6  <at>  <at>  struct tw9910_cropping_ctrl {
 	u16 hactive;
 };

-struct tw9910_hsync_ctrl {
-	u16 start;
-	u16 end;
-};
(Continue reading)

Kuninori Morimoto | 8 Sep 03:46 2009

[PATCH 2/4] soc-camera: tw9910 driver only check Product ID


Signed-off-by: Kuninori Morimoto <morimoto.kuninori <at> renesas.com>
---
 drivers/media/video/tw9910.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/media/video/tw9910.c b/drivers/media/video/tw9910.c
index 79ba997..478be16 100644
--- a/drivers/media/video/tw9910.c
+++ b/drivers/media/video/tw9910.c
 <at>  <at>  -883,8 +883,7  <at>  <at>  static int tw9910_video_probe(struct soc_camera_device *icd,
 	 */
 	val = i2c_smbus_read_byte_data(client, ID);

-	if (0x0B != GET_ID(val) ||
-	    0x00 != GET_ReV(val)) {
+	if (0x0B != GET_ID(val)) {
 		dev_err(&client->dev,
 			"Product ID error %x:%x\n", GET_ID(val), GET_ReV(val));
 		return -ENODEV;
--

-- 
1.6.0.4

--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request <at> redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list

Kuninori Morimoto | 8 Sep 02:48 2009

[PATCH 4/4] soc-camera: tw9910: use V4L2_FIELD_INTERLACED_TB/BT for field


Signed-off-by: Kuninori Morimoto <morimoto.kuninori <at> renesas.com>
---
 drivers/media/video/tw9910.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/media/video/tw9910.c b/drivers/media/video/tw9910.c
index 478be16..3bbdc76 100644
--- a/drivers/media/video/tw9910.c
+++ b/drivers/media/video/tw9910.c
 <at>  <at>  -828,13 +828,19  <at>  <at>  static int tw9910_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
 static int tw9910_try_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
 {
 	struct i2c_client *client = sd->priv;
+	struct tw9910_priv *priv = to_tw9910(client);
 	struct soc_camera_device *icd = client->dev.platform_data;
 	struct v4l2_pix_format *pix = &f->fmt.pix;
 	const struct tw9910_scale_ctrl *scale;
+	enum v4l2_field field;
+
+	field = i2c_smbus_read_byte_data(client, STATUS1) & 0x10 ?
+		V4L2_FIELD_INTERLACED_TB : V4L2_FIELD_INTERLACED_BT;

-	if (V4L2_FIELD_ANY == pix->field) {
-		pix->field = V4L2_FIELD_INTERLACED;
-	} else if (V4L2_FIELD_INTERLACED != pix->field) {
+	if ((V4L2_FIELD_ANY         == pix->field) ||
+	    (V4L2_FIELD_INTERLACED  == pix->field)) {
+		pix->field = field;
+	} else if (field != pix->field) {
(Continue reading)

Kuninori Morimoto | 8 Sep 03:46 2009

[PATCH 3/4] soc-camera: sh_mobile_ceu: Add V4L2_FIELD_INTERLACED_BT/TB support


Signed-off-by: Kuninori Morimoto <morimoto.kuninori <at> renesas.com>
---
 drivers/media/video/sh_mobile_ceu_camera.c |   52 ++++++++++++++++++++++-----
 1 files changed, 42 insertions(+), 10 deletions(-)

diff --git a/drivers/media/video/sh_mobile_ceu_camera.c b/drivers/media/video/sh_mobile_ceu_camera.c
index 3e7a148..92812e5 100644
--- a/drivers/media/video/sh_mobile_ceu_camera.c
+++ b/drivers/media/video/sh_mobile_ceu_camera.c
 <at>  <at>  -104,7 +104,10  <at>  <at>  struct sh_mobile_ceu_dev {

 	u32 cflcr;

-	unsigned int is_interlaced:1;
+	unsigned int is_interlaced;
+#define TOP_ITL 1	/* 1: interlace top field start */
+#define BTM_ITL 2	/* 2: interlace bottom field start */
+
 	unsigned int image_mode:1;
 	unsigned int is_16bit:1;
 };
 <at>  <at>  -247,6 +250,8  <at>  <at>  static int sh_mobile_ceu_capture(struct sh_mobile_ceu_dev *pcdev)
 {
 	struct soc_camera_device *icd = pcdev->icd;
 	dma_addr_t phys_addr_top, phys_addr_bottom;
+	unsigned long top1, top2;
+	unsigned long bottom1, bottom2;
 	u32 status;
 	int ret = 0;
(Continue reading)


Gmane