@@ -3176,6 +3176,10 @@
info_printk(core, "TV tuner type %d, Radio tuner type %d\n",
core->board.tuner_type, core->board.radio_type);
+ core->last_width = 320;
+ core->last_height = 240;
+ core->last_field = V4L2_FIELD_INTERLACED;
+
/* init hardware */
cx88_reset(core);
cx88_card_setup_pre_i2c(core);
@@ -715,6 +715,10 @@
unsigned int sheight = norm_maxh(core->tvnorm);
u32 value;
+ core->last_width = width;
+ core->last_height = height;
+ core->last_field = field;
+
dprintk(1,"set_scale: %dx%d [%s%s,%s]\n", width, height,
V4L2_FIELD_HAS_TOP(field) ? "T" : "",
V4L2_FIELD_HAS_BOTTOM(field) ? "B" : "",
@@ -1014,7 +1018,7 @@
cx_write(MO_VBI_PACKET, (10<<11) | norm_vbipack(norm));
// this is needed as well to set all tvnorm parameter
- cx88_set_scale(core, 320, 240, V4L2_FIELD_INTERLACED);
+ cx88_set_scale(core, core->last_width, core->last_height, core->last_field);
// audio
set_tvaudio(core);
@@ -352,6 +352,9 @@
u32 input;
u32 astat;
u32 use_nicam;
+ unsigned int last_width;
+ unsigned int last_height;
+ enum v4l2_field last_field;
/* IR remote control state */
struct cx88_IR *ir;