Re: [PATCH] saa7164: convert to the control framework

2015-08-28 Thread Hans Verkuil
On 08/26/2015 03:23 PM, Steven Toth wrote:
 Has anyone tested the patch and validated each of the controls continue 
 to work?

 As I said: my saa7146 card is no longer recognized (not sure why), so I 
 was hoping
 you could test it.

 OK, will do. I probably won't get to this until the weekend, but I'll
 put this on my todo list.

 That's OK, there is no hurry. I tried to put my saa7164 in a different PC as 
 well,
 but it seems to be really broken as nothing appears in lspci :-(
 
 Send me your shipping address _privately_, I talk to Hauppauge about a
 replacement.
 

No need, I managed to get it working if I use a PCI-to-PCIe adapter card. Very
strange, it won't work in the PCIe slot of my motherboard, but using the PCI 
slot
and that adapter it works fine.

It's good that it was tested since the menu control creation code was wrong.

One thing that is very confusing to me: I have this board:

[ 1878.280918] CORE saa7164[0]: subsystem: 0070:8900, board: Hauppauge 
WinTV-HVR2200 [card=5,autodetected]
[ 1878.280928] saa7164[0]/0: found at :09:00.0, rev: 129, irq: 18, latency: 
0, mmio: 0xfb80
[ 1878.327399] tveeprom 14-: Hauppauge model 89519, rev B2F2, serial# 
4029789519
[ 1878.327405] tveeprom 14-: MAC address is 00:0d:fe:31:b5:4f
[ 1878.327409] tveeprom 14-: tuner model is NXP 18271C2_716x (idx 152, type 
4)
[ 1878.327413] tveeprom 14-: TV standards PAL(B/G) NTSC(M) PAL(I) 
SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc)
[ 1878.327416] tveeprom 14-: audio processor is SAA7164 (idx 43)
[ 1878.327418] tveeprom 14-: decoder processor is CX23887A (idx 39)
[ 1878.327420] tveeprom 14-: has radio
[ 1878.327423] saa7164[0]: Hauppauge eeprom: model=89519

but the default firmware with size 4919072 fails to work (image corrupt), 
instead
I need to use the firmware with size 4038864 (v4l-saa7164-1.0.3-3.fw).

For that I have to patch the driver.

Do you have an overview of which firmware is for which board?

There are a bunch of firmwares here:

http://www.steventoth.net/linux/hvr22xx/firmwares

but there are no instructions or an overview of which should be used.

I faintly remember asking you this before, but that's been a long time ago
and I can't find it in my mail archive.

I'm willing to do some driver cleanup and fix v4l2-compliance issues, but
I'd really like to fix this firmware issue first.

Regards,

Hans
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] saa7164: convert to the control framework

2015-08-28 Thread Hans Verkuil
On 08/28/2015 09:59 AM, Hans Verkuil wrote:
 On 08/26/2015 03:23 PM, Steven Toth wrote:
 Has anyone tested the patch and validated each of the controls continue 
 to work?

 As I said: my saa7146 card is no longer recognized (not sure why), so I 
 was hoping
 you could test it.

 OK, will do. I probably won't get to this until the weekend, but I'll
 put this on my todo list.

 That's OK, there is no hurry. I tried to put my saa7164 in a different PC 
 as well,
 but it seems to be really broken as nothing appears in lspci :-(

 Send me your shipping address _privately_, I talk to Hauppauge about a
 replacement.

 
 No need, I managed to get it working if I use a PCI-to-PCIe adapter card. Very
 strange, it won't work in the PCIe slot of my motherboard, but using the PCI 
 slot
 and that adapter it works fine.
 
 It's good that it was tested since the menu control creation code was wrong.
 
 One thing that is very confusing to me: I have this board:
 
 [ 1878.280918] CORE saa7164[0]: subsystem: 0070:8900, board: Hauppauge 
 WinTV-HVR2200 [card=5,autodetected]
 [ 1878.280928] saa7164[0]/0: found at :09:00.0, rev: 129, irq: 18, 
 latency: 0, mmio: 0xfb80
 [ 1878.327399] tveeprom 14-: Hauppauge model 89519, rev B2F2, serial# 
 4029789519
 [ 1878.327405] tveeprom 14-: MAC address is 00:0d:fe:31:b5:4f
 [ 1878.327409] tveeprom 14-: tuner model is NXP 18271C2_716x (idx 152, 
 type 4)
 [ 1878.327413] tveeprom 14-: TV standards PAL(B/G) NTSC(M) PAL(I) 
 SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc)
 [ 1878.327416] tveeprom 14-: audio processor is SAA7164 (idx 43)
 [ 1878.327418] tveeprom 14-: decoder processor is CX23887A (idx 39)
 [ 1878.327420] tveeprom 14-: has radio
 [ 1878.327423] saa7164[0]: Hauppauge eeprom: model=89519
 
 but the default firmware with size 4919072 fails to work (image corrupt), 
 instead
 I need to use the firmware with size 4038864 (v4l-saa7164-1.0.3-3.fw).

That's v4l-saa7164-1.0.2-3.fw, sorry for the confusion.

Googling suggests that you have patches for this that never made it upstream.
Can you post it?

Regards,

Hans

 
 For that I have to patch the driver.
 
 Do you have an overview of which firmware is for which board?
 
 There are a bunch of firmwares here:
 
 http://www.steventoth.net/linux/hvr22xx/firmwares
 
 but there are no instructions or an overview of which should be used.
 
 I faintly remember asking you this before, but that's been a long time ago
 and I can't find it in my mail archive.
 
 I'm willing to do some driver cleanup and fix v4l2-compliance issues, but
 I'd really like to fix this firmware issue first.
 
 Regards,
 
   Hans
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] saa7164: convert to the control framework

2015-08-28 Thread Hans Verkuil
On 08/28/2015 02:44 PM, Steven Toth wrote:
 Send me your shipping address _privately_, I talk to Hauppauge about a
 replacement.


 No need, I managed to get it working if I use a PCI-to-PCIe adapter card. 
 Very
 strange, it won't work in the PCIe slot of my motherboard, but using the PCI 
 slot
 and that adapter it works fine.
 
 Excellent.
 

 It's good that it was tested since the menu control creation code was wrong.
 
 Ahh.
 

 One thing that is very confusing to me: I have this board:

 [ 1878.280918] CORE saa7164[0]: subsystem: 0070:8900, board: Hauppauge 
 WinTV-HVR2200 [card=5,autodetected]
 [ 1878.280928] saa7164[0]/0: found at :09:00.0, rev: 129, irq: 18, 
 latency: 0, mmio: 0xfb80
 [ 1878.327399] tveeprom 14-: Hauppauge model 89519, rev B2F2, serial# 
 4029789519
 [ 1878.327405] tveeprom 14-: MAC address is 00:0d:fe:31:b5:4f
 [ 1878.327409] tveeprom 14-: tuner model is NXP 18271C2_716x (idx 152, 
 type 4)
 [ 1878.327413] tveeprom 14-: TV standards PAL(B/G) NTSC(M) PAL(I) 
 SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc)
 [ 1878.327416] tveeprom 14-: audio processor is SAA7164 (idx 43)
 [ 1878.327418] tveeprom 14-: decoder processor is CX23887A (idx 39)
 [ 1878.327420] tveeprom 14-: has radio
 [ 1878.327423] saa7164[0]: Hauppauge eeprom: model=89519

 but the default firmware with size 4919072 fails to work (image corrupt), 
 instead
 I need to use the firmware with size 4038864 (v4l-saa7164-1.0.3-3.fw).

 For that I have to patch the driver.
 
 Take a look at your board, on the main large PCIe IC, its probably
 marked as either a REV2 or a REV3, or a -02 or -03, what do you have?
 
 I suspect you have a rev-02 chip. Not many of them go out into
 production. (A few thousand, compared to significantly more -03
 chips).

The text on the chip is:

SAA7164E/2
P60962.00   10
ESG07271Y

I suspect the /2 means REV2.

Regards,

Hans
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] saa7164: convert to the control framework

2015-08-28 Thread Steven Toth
 but the default firmware with size 4919072 fails to work (image corrupt), 
 instead
 I need to use the firmware with size 4038864 (v4l-saa7164-1.0.3-3.fw).

 That's v4l-saa7164-1.0.2-3.fw, sorry for the confusion.

Right, you need to load the -02 firmware on a -02 board.


 Googling suggests that you have patches for this that never made it upstream.
 Can you post it?

I will. If you can confirm you have a -02 PCIe IC then I'll prep some
firmware patches for testing. To be clear, I think the current in
kernel tree is perfectly good for all -03 boards. For -02 boards
(fewer of these in the field) it may be a problem, but I'll fix.

I also plan to test the control framework changes, and the compliance
patches (thanks btw).

-- 
Steven Toth - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] saa7164: convert to the control framework

2015-08-28 Thread Steven Toth
 Send me your shipping address _privately_, I talk to Hauppauge about a
 replacement.


 No need, I managed to get it working if I use a PCI-to-PCIe adapter card. Very
 strange, it won't work in the PCIe slot of my motherboard, but using the PCI 
 slot
 and that adapter it works fine.

Excellent.


 It's good that it was tested since the menu control creation code was wrong.

Ahh.


 One thing that is very confusing to me: I have this board:

 [ 1878.280918] CORE saa7164[0]: subsystem: 0070:8900, board: Hauppauge 
 WinTV-HVR2200 [card=5,autodetected]
 [ 1878.280928] saa7164[0]/0: found at :09:00.0, rev: 129, irq: 18, 
 latency: 0, mmio: 0xfb80
 [ 1878.327399] tveeprom 14-: Hauppauge model 89519, rev B2F2, serial# 
 4029789519
 [ 1878.327405] tveeprom 14-: MAC address is 00:0d:fe:31:b5:4f
 [ 1878.327409] tveeprom 14-: tuner model is NXP 18271C2_716x (idx 152, 
 type 4)
 [ 1878.327413] tveeprom 14-: TV standards PAL(B/G) NTSC(M) PAL(I) 
 SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc)
 [ 1878.327416] tveeprom 14-: audio processor is SAA7164 (idx 43)
 [ 1878.327418] tveeprom 14-: decoder processor is CX23887A (idx 39)
 [ 1878.327420] tveeprom 14-: has radio
 [ 1878.327423] saa7164[0]: Hauppauge eeprom: model=89519

 but the default firmware with size 4919072 fails to work (image corrupt), 
 instead
 I need to use the firmware with size 4038864 (v4l-saa7164-1.0.3-3.fw).

 For that I have to patch the driver.

Take a look at your board, on the main large PCIe IC, its probably
marked as either a REV2 or a REV3, or a -02 or -03, what do you have?

I suspect you have a rev-02 chip. Not many of them go out into
production. (A few thousand, compared to significantly more -03
chips).


 Do you have an overview of which firmware is for which board?

Generally, for a long time, I was recommending that everyone run
NXP7164-2010-03-10.1.fw, this is actually the latest firmware. I've
been told it isn't reliable on the REV2 hardware though.

I'll go back to the windows driver and check how they're making the
firmware load decision. I can bring this logic into the Linux driver
and we can load the most appropriate f/w.


 There are a bunch of firmwares here:

 http://www.steventoth.net/linux/hvr22xx/firmwares

 but there are no instructions or an overview of which should be used.

If the stock -inkernel driver is wrong for the -02 then we should fix
that. It should be fine for the -03 though.


 I faintly remember asking you this before, but that's been a long time ago
 and I can't find it in my mail archive.

 I'm willing to do some driver cleanup and fix v4l2-compliance issues, but
 I'd really like to fix this firmware issue first.

Noted.


 Regards,

 Hans

Best,

- Steve

-- 
Steven Toth - Kernel Labs
http://www.kernellabs.com
+1.646.355.8490
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] saa7164: convert to the control framework

2015-08-28 Thread Steven Toth
 but the default firmware with size 4919072 fails to work (image corrupt), 
 instead
 I need to use the firmware with size 4038864 (v4l-saa7164-1.0.3-3.fw).

 For that I have to patch the driver.

 Take a look at your board, on the main large PCIe IC, its probably
 marked as either a REV2 or a REV3, or a -02 or -03, what do you have?

 I suspect you have a rev-02 chip. Not many of them go out into
 production. (A few thousand, compared to significantly more -03
 chips).

 The text on the chip is:

 SAA7164E/2
 P60962.00   10
 ESG07271Y

 I suspect the /2 means REV2.

Correct, thanks for confirming. I'll look into this.

-- 
Steven Toth - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] saa7164: convert to the control framework

2015-08-26 Thread Steven Toth
On Sat, Aug 22, 2015 at 8:46 AM, Hans Verkuil hverk...@xs4all.nl wrote:
 On 08/22/2015 02:06 PM, Steven Toth wrote:
 On Sat, Aug 22, 2015 at 6:47 AM, Hans Verkuil hverk...@xs4all.nl wrote:
 On 08/22/2015 09:24 AM, Ricardo Ribalda Delgado wrote:
 Hello Hans

 With this patch I guess two of my previous patches are not needed.
 Shall i resend the patchset or you just cherry pick the appropriate
 ones?

 Let's see how long it takes before I get an Ack (or not) from Steve. If 
 that's
 quick, then you can incorporate my patch in your patch series, if it takes
 longer (I know he's busy), then we can proceed with your patch series and 
 I'll
 rebase on top of that later.

 Hans, thanks for the work here.

 I've skimmed the patch buts its too much to eyeball to give a direct ack.

 Has anyone tested the patch and validated each of the controls continue to 
 work?

 As I said: my saa7146 card is no longer recognized (not sure why), so I was 
 hoping
 you could test it.

OK, will do. I probably won't get to this until the weekend, but I'll
put this on my todo list.

Thx.

-- 
Steven Toth - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] saa7164: convert to the control framework

2015-08-26 Thread Hans Verkuil
On 08/26/15 15:08, Steven Toth wrote:
 On Sat, Aug 22, 2015 at 8:46 AM, Hans Verkuil hverk...@xs4all.nl wrote:
 On 08/22/2015 02:06 PM, Steven Toth wrote:
 On Sat, Aug 22, 2015 at 6:47 AM, Hans Verkuil hverk...@xs4all.nl wrote:
 On 08/22/2015 09:24 AM, Ricardo Ribalda Delgado wrote:
 Hello Hans

 With this patch I guess two of my previous patches are not needed.
 Shall i resend the patchset or you just cherry pick the appropriate
 ones?

 Let's see how long it takes before I get an Ack (or not) from Steve. If 
 that's
 quick, then you can incorporate my patch in your patch series, if it takes
 longer (I know he's busy), then we can proceed with your patch series and 
 I'll
 rebase on top of that later.

 Hans, thanks for the work here.

 I've skimmed the patch buts its too much to eyeball to give a direct ack.

 Has anyone tested the patch and validated each of the controls continue to 
 work?

 As I said: my saa7146 card is no longer recognized (not sure why), so I was 
 hoping
 you could test it.
 
 OK, will do. I probably won't get to this until the weekend, but I'll
 put this on my todo list.

That's OK, there is no hurry. I tried to put my saa7164 in a different PC as 
well,
but it seems to be really broken as nothing appears in lspci :-(

Regards,

Hans
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] saa7164: convert to the control framework

2015-08-26 Thread Steven Toth
 Has anyone tested the patch and validated each of the controls continue to 
 work?

 As I said: my saa7146 card is no longer recognized (not sure why), so I was 
 hoping
 you could test it.

 OK, will do. I probably won't get to this until the weekend, but I'll
 put this on my todo list.

 That's OK, there is no hurry. I tried to put my saa7164 in a different PC as 
 well,
 but it seems to be really broken as nothing appears in lspci :-(

Send me your shipping address _privately_, I talk to Hauppauge about a
replacement.

-- 
Steven Toth - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] saa7164: convert to the control framework

2015-08-22 Thread Hans Verkuil
On 08/22/2015 09:24 AM, Ricardo Ribalda Delgado wrote:
 Hello Hans
 
 With this patch I guess two of my previous patches are not needed.
 Shall i resend the patchset or you just cherry pick the appropriate
 ones?

Let's see how long it takes before I get an Ack (or not) from Steve. If that's
quick, then you can incorporate my patch in your patch series, if it takes
longer (I know he's busy), then we can proceed with your patch series and I'll
rebase on top of that later.

Regards,

Hans

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] saa7164: convert to the control framework

2015-08-22 Thread Steven Toth
On Sat, Aug 22, 2015 at 6:47 AM, Hans Verkuil hverk...@xs4all.nl wrote:
 On 08/22/2015 09:24 AM, Ricardo Ribalda Delgado wrote:
 Hello Hans

 With this patch I guess two of my previous patches are not needed.
 Shall i resend the patchset or you just cherry pick the appropriate
 ones?

 Let's see how long it takes before I get an Ack (or not) from Steve. If that's
 quick, then you can incorporate my patch in your patch series, if it takes
 longer (I know he's busy), then we can proceed with your patch series and I'll
 rebase on top of that later.

Hans, thanks for the work here.

I've skimmed the patch buts its too much to eyeball to give a direct ack.

Has anyone tested the patch and validated each of the controls continue to work?

-- 
Steven Toth - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] saa7164: convert to the control framework

2015-08-22 Thread Ricardo Ribalda Delgado
Hello Hans

With this patch I guess two of my previous patches are not needed.
Shall i resend the patchset or you just cherry pick the appropriate
ones?


Thanks!
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] saa7164: convert to the control framework

2015-08-22 Thread Hans Verkuil
On 08/22/2015 02:06 PM, Steven Toth wrote:
 On Sat, Aug 22, 2015 at 6:47 AM, Hans Verkuil hverk...@xs4all.nl wrote:
 On 08/22/2015 09:24 AM, Ricardo Ribalda Delgado wrote:
 Hello Hans

 With this patch I guess two of my previous patches are not needed.
 Shall i resend the patchset or you just cherry pick the appropriate
 ones?

 Let's see how long it takes before I get an Ack (or not) from Steve. If 
 that's
 quick, then you can incorporate my patch in your patch series, if it takes
 longer (I know he's busy), then we can proceed with your patch series and 
 I'll
 rebase on top of that later.
 
 Hans, thanks for the work here.
 
 I've skimmed the patch buts its too much to eyeball to give a direct ack.
 
 Has anyone tested the patch and validated each of the controls continue to 
 work?

As I said: my saa7146 card is no longer recognized (not sure why), so I was 
hoping
you could test it.

Regards,

Hans

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] saa7164: convert to the control framework

2015-08-21 Thread Hans Verkuil
Convert this driver to the control framework. Note that the VBI device
nodes have no controls as there is nothing to control.

Signed-off-by: Hans Verkuil hans.verk...@cisco.com
---

Steve, can you test this patch? For some reason my saa7164 isn't seen anymore
on the PCIe bus, so I can't test it myself :-(

This patch greatly simplifies this driver w.r.t. control handling and it will
now be fully compliant to the spec as well.

Thanks,

Hans

---
 drivers/media/pci/saa7164/saa7164-encoder.c | 464 +---
 drivers/media/pci/saa7164/saa7164-vbi.c | 359 -
 drivers/media/pci/saa7164/saa7164.h |   2 +
 3 files changed, 84 insertions(+), 741 deletions(-)

diff --git a/drivers/media/pci/saa7164/saa7164-encoder.c 
b/drivers/media/pci/saa7164/saa7164-encoder.c
index 4434e0f..f5e1236 100644
--- a/drivers/media/pci/saa7164/saa7164-encoder.c
+++ b/drivers/media/pci/saa7164/saa7164-encoder.c
@@ -35,24 +35,6 @@ static struct saa7164_tvnorm saa7164_tvnorms[] = {
}
 };
 
-static const u32 saa7164_v4l2_ctrls[] = {
-   V4L2_CID_BRIGHTNESS,
-   V4L2_CID_CONTRAST,
-   V4L2_CID_SATURATION,
-   V4L2_CID_HUE,
-   V4L2_CID_AUDIO_VOLUME,
-   V4L2_CID_SHARPNESS,
-   V4L2_CID_MPEG_STREAM_TYPE,
-   V4L2_CID_MPEG_VIDEO_ASPECT,
-   V4L2_CID_MPEG_VIDEO_B_FRAMES,
-   V4L2_CID_MPEG_VIDEO_GOP_SIZE,
-   V4L2_CID_MPEG_AUDIO_MUTE,
-   V4L2_CID_MPEG_VIDEO_BITRATE_MODE,
-   V4L2_CID_MPEG_VIDEO_BITRATE,
-   V4L2_CID_MPEG_VIDEO_BITRATE_PEAK,
-   0
-};
-
 /* Take the encoder configuration form the port struct and
  * flush it to the hardware.
  */
@@ -396,253 +378,47 @@ static int vidioc_s_frequency(struct file *file, void 
*priv,
return 0;
 }
 
-static int vidioc_g_ctrl(struct file *file, void *priv,
-   struct v4l2_control *ctl)
+static int saa7164_s_ctrl(struct v4l2_ctrl *ctrl)
 {
-   struct saa7164_encoder_fh *fh = file-private_data;
-   struct saa7164_port *port = fh-port;
-   struct saa7164_dev *dev = port-dev;
-
-   dprintk(DBGLVL_ENC, %s(id=%d, value=%d)\n, __func__,
-   ctl-id, ctl-value);
-
-   switch (ctl-id) {
-   case V4L2_CID_BRIGHTNESS:
-   ctl-value = port-ctl_brightness;
-   break;
-   case V4L2_CID_CONTRAST:
-   ctl-value = port-ctl_contrast;
-   break;
-   case V4L2_CID_SATURATION:
-   ctl-value = port-ctl_saturation;
-   break;
-   case V4L2_CID_HUE:
-   ctl-value = port-ctl_hue;
-   break;
-   case V4L2_CID_SHARPNESS:
-   ctl-value = port-ctl_sharpness;
-   break;
-   case V4L2_CID_AUDIO_VOLUME:
-   ctl-value = port-ctl_volume;
-   break;
-   default:
-   return -EINVAL;
-   }
-
-   return 0;
-}
-
-static int vidioc_s_ctrl(struct file *file, void *priv,
-   struct v4l2_control *ctl)
-{
-   struct saa7164_encoder_fh *fh = file-private_data;
-   struct saa7164_port *port = fh-port;
+   struct saa7164_port *port =
+   container_of(ctrl-handler, struct saa7164_port, ctrl_handler);
+   struct saa7164_encoder_params *params = port-encoder_params;
struct saa7164_dev *dev = port-dev;
int ret = 0;
 
-   dprintk(DBGLVL_ENC, %s(id=%d, value=%d)\n, __func__,
-   ctl-id, ctl-value);
-
-   switch (ctl-id) {
+   switch (ctrl-id) {
case V4L2_CID_BRIGHTNESS:
-   if ((ctl-value = 0)  (ctl-value = 255)) {
-   port-ctl_brightness = ctl-value;
-   saa7164_api_set_usercontrol(port,
-   PU_BRIGHTNESS_CONTROL);
-   } else
-   ret = -EINVAL;
+   port-ctl_brightness = ctrl-val;
+   saa7164_api_set_usercontrol(port, PU_BRIGHTNESS_CONTROL);
break;
case V4L2_CID_CONTRAST:
-   if ((ctl-value = 0)  (ctl-value = 255)) {
-   port-ctl_contrast = ctl-value;
-   saa7164_api_set_usercontrol(port, PU_CONTRAST_CONTROL);
-   } else
-   ret = -EINVAL;
+   port-ctl_contrast = ctrl-val;
+   saa7164_api_set_usercontrol(port, PU_CONTRAST_CONTROL);
break;
case V4L2_CID_SATURATION:
-   if ((ctl-value = 0)  (ctl-value = 255)) {
-   port-ctl_saturation = ctl-value;
-   saa7164_api_set_usercontrol(port,
-   PU_SATURATION_CONTROL);
-   } else
-   ret = -EINVAL;
+   port-ctl_saturation = ctrl-val;
+   saa7164_api_set_usercontrol(port, PU_SATURATION_CONTROL);
break;
case V4L2_CID_HUE:
-   if ((ctl-value = 0)  (ctl-value = 255)) {
-   port-ctl_hue = ctl-value;
-