diff -r b6b82258cf5e linux/drivers/media/video/saa7115.cÂ  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
--- a/linux/drivers/media/video/saa7115.cÂ  Â  Â Â Â Thu Dec 31 19:14:54 2009 -0200Â  Â  Â  Â  
+++ b/linux/drivers/media/video/saa7115.cÂ  Â  Â Â Â Sun Jan 17 22:54:21 2010 -0800Â  Â  Â  Â  
@@ -1338,6 +1338,59 @@Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
Â  Â  Â  Â  return 0;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
 }Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+static int saa711x_s_power(struct v4l2_subdev *sd, int val)Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+{Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â Â Â struct saa711x_state *state = to_state(sd);Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â Â Â if(val > 1 || val < 0)Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â  Â  Â  Â  Â Â Â return -EINVAL;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â Â Â /* There really isn't a way to put the chip into power savingÂ  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â  Â  Â  Â  Â Â Â other than by pulling CE to ground so all we do is returnÂ  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â  Â  Â  Â  Â Â Â out of this functionÂ  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â Â Â */Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â Â Â if(val == 0)Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â  Â  Â  Â  Â Â Â return 0;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â Â Â /* When enabling the chip again we need to reinitialize theÂ  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â  Â  Â  Â  Â Â Â all the valuesÂ  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â Â Â */Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â Â Â state->input = -1;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â Â Â state->output = SAA7115_IPORT_ON;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â Â Â state->enable = 1;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â Â Â state->radio = 0;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â Â Â state->bright = 128;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â Â Â state->contrast = 64;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â Â Â state->hue = 0;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â Â Â state->sat = 64;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â Â Â state->audclk_freq = 48000;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â Â Â v4l2_dbg(1, debug, sd, "writing init values s_power\n");Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â Â Â /* init to 60hz/48khz */Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â Â Â state->crystal_freq = SAA7115_FREQ_24_576_MHZ;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â Â Â switch (state->ident) {Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â Â Â 
+Â  Â  Â Â Â case V4L2_IDENT_SAA7111:Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â  Â  Â  Â  Â Â Â saa711x_writeregs(sd, saa7111_init);Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â  Â  Â  Â  Â Â Â break;Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â Â Â case V4L2_IDENT_SAA7113:Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  
+Â  Â  Â  Â  Â  Â  Â Â Â saa711x_writeregs(sd, saa7113_init);
+Â  Â  Â  Â  Â  Â  Â Â Â break;
+Â  Â  Â Â Â default:
+Â  Â  Â  Â  Â  Â  Â Â Â state->crystal_freq = SAA7115_FREQ_32_11_MHZ;
+Â  Â  Â  Â  Â  Â  Â Â Â saa711x_writeregs(sd, saa7115_init_auto_input);
+Â  Â  Â Â Â }
+Â  Â  Â Â Â if (state->ident != V4L2_IDENT_SAA7111)
+Â  Â  Â  Â  Â  Â  Â Â Â saa711x_writeregs(sd, saa7115_init_misc);
+Â  Â  Â Â Â saa711x_set_v4lstd(sd, V4L2_STD_NTSC);
+
+Â  Â  Â Â Â v4l2_dbg(1, debug, sd, "status: (1E) 0x%02x, (1F) 0x%02x\n",
+Â  Â  Â  Â  Â  Â  Â Â Â saa711x_read(sd, R_1E_STATUS_BYTE_1_VD_DEC),
+Â  Â  Â  Â  Â  Â  Â Â Â saa711x_read(sd, R_1F_STATUS_BYTE_2_VD_DEC));
+Â  Â  Â Â Â return 0;
+}
+
 static int saa711x_reset(struct v4l2_subdev *sd, u32 val)
 {
Â  Â  Â  Â  v4l2_dbg(1, debug, sd, "decoder RESET\n");
@@ -1513,6 +1566,7 @@
Â  Â  Â  Â  .s_std = saa711x_s_std,
Â  Â  Â  Â  .reset = saa711x_reset,
Â  Â  Â  Â  .s_gpio = saa711x_s_gpio,
+Â  Â  Â Â Â .s_power = saa711x_s_power,
 #ifdef CONFIG_VIDEO_ADV_DEBUG
Â  Â  Â  Â  .g_register = saa711x_g_register,
Â  Â  Â  Â  .s_register = saa711x_s_register,
