OpenCloudOS-Kernel/drivers/media/video/cx231xx
Trent Piepho 1ca27379f3 V4L/DVB (11913): cx231xx: TRY_FMT should not actually set anything
In the TRY_FMT handler the function get_scale() is called to find what the
scaler hardware will produce for a requested size.

The problem is that get_scale(struct cx231xx *dev, ..., unsigned int *vscale,
unsigned int *hscale) saves the calculated scale values into both the
pointer arguments and into dev's hscale and vscale fields.  TRY_FMT shouldn't
actually change anything in the device state.

The code to in get_scale() that writes to dev->[hv]scale can just be
deleted.  In all cases when dev's fields should be modified, get_scale()
was called with get_scale(dev, ..., &dev->hscale, &dev->vscale), so dev was
getting updated anyway.

This didn't actually cause a problem because nothing ever actually made use
of the hscale and vscale fields.  I changed cx231xx_resolution_set() to use
those fields rather than re-calculate them with a call to get_scale().

Updating [hv]scale in cx231xx_resolution_set() isn't necessary because
every call of cx231xx_resolution_set() was already preceded by a call to
get_scale() or setting the [hv]scale fields, so they will be always be
up-to-date w.r.t. width and height.

Removing the call to get_scale() from cx231xx_resolution_set() allowed
making get_scale() a static function, which is a good thing for something
with such a short name.  There is already another function with the same
name in the em28xx driver, but that one is static.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-06-23 03:21:20 -03:00
..
Kconfig V4L/DVB (11494a): cx231xx Kconfig fixes 2009-04-29 15:41:11 -03:00
Makefile V4L/DVB (11038): Fix the issue with audio module & correction of Names 2009-04-06 21:44:06 -03:00
cx231xx-audio.c cx231xx: Convert to snd_card_create() 2009-04-06 21:44:53 -03:00
cx231xx-avcore.c V4L/DVB (11913): cx231xx: TRY_FMT should not actually set anything 2009-06-23 03:21:20 -03:00
cx231xx-cards.c V4L/DVB (11845): ir-kbd-i2c: Use initialization data 2009-06-16 18:21:11 -03:00
cx231xx-conf-reg.h V4L/DVB (10958): cx231xx: some additional CodingStyle and minor fixes 2009-04-06 21:44:04 -03:00
cx231xx-core.c V4L/DVB (11134): cx231xx: dmesg cleanup 2009-04-06 21:44:10 -03:00
cx231xx-dvb.c V4L/DVB (10957): cx231xx: Fix CodingStyle 2009-04-06 21:44:03 -03:00
cx231xx-i2c.c V4L/DVB (11845): ir-kbd-i2c: Use initialization data 2009-06-16 18:21:11 -03:00
cx231xx-input.c V4L/DVB (11843): ir-kbd-i2c: Don't use i2c_client.name for our own needs 2009-06-16 18:21:11 -03:00
cx231xx-pcb-cfg.c V4L/DVB (11133): cx231xx: don't print pcb config debug messages by default 2009-04-06 21:44:09 -03:00
cx231xx-pcb-cfg.h V4L/DVB (11129): cx231xx: Use generic names for each device block 2009-04-06 21:44:07 -03:00
cx231xx-reg.h V4L/DVB (10958): cx231xx: some additional CodingStyle and minor fixes 2009-04-06 21:44:04 -03:00
cx231xx-vbi.c V4L/DVB: cx231xx: remove unused #include <linux/version.h>'s 2009-06-16 18:20:36 -03:00
cx231xx-vbi.h V4L/DVB (10957): cx231xx: Fix CodingStyle 2009-04-06 21:44:03 -03:00
cx231xx-video.c V4L/DVB (11913): cx231xx: TRY_FMT should not actually set anything 2009-06-23 03:21:20 -03:00
cx231xx.h V4L/DVB (11913): cx231xx: TRY_FMT should not actually set anything 2009-06-23 03:21:20 -03:00