Sfoglia il codice sorgente

V4L/DVB (10251): cx25840: add comments explaining what the init() does.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Hans Verkuil 16 anni fa
parent
commit
6ca187abb2
2 ha cambiato i file con 22 aggiunte e 0 eliminazioni
  1. 10 0
      drivers/media/video/cx25840/cx25840-core.c
  2. 12 0
      include/media/cx25840.h

+ 10 - 0
drivers/media/video/cx25840/cx25840-core.c

@@ -1101,6 +1101,16 @@ static void log_audio_status(struct i2c_client *client)
 
 
 /* ----------------------------------------------------------------------- */
 /* ----------------------------------------------------------------------- */
 
 
+/* This init operation must be called to load the driver's firmware.
+   Without this the audio standard detection will fail and you will
+   only get mono.
+
+   Since loading the firmware is often problematic when the driver is
+   compiled into the kernel I recommend postponing calling this function
+   until the first open of the video device. Another reason for
+   postponing it is that loading this firmware takes a long time (seconds)
+   due to the slow i2c bus speed. So it will speed up the boot process if
+   you can avoid loading the fw as long as the video device isn't used.  */
 static int cx25840_init(struct v4l2_subdev *sd, u32 val)
 static int cx25840_init(struct v4l2_subdev *sd, u32 val)
 {
 {
 	struct cx25840_state *state = to_state(sd);
 	struct cx25840_state *state = to_state(sd);

+ 12 - 0
include/media/cx25840.h

@@ -21,6 +21,18 @@
 #ifndef _CX25840_H_
 #ifndef _CX25840_H_
 #define _CX25840_H_
 #define _CX25840_H_
 
 
+/* Note that the cx25840 driver requires that the bridge driver calls the
+   v4l2_subdev's init operation in order to load the driver's firmware.
+   Without this the audio standard detection will fail and you will
+   only get mono.
+
+   Since loading the firmware is often problematic when the driver is
+   compiled into the kernel I recommend postponing calling this function
+   until the first open of the video device. Another reason for
+   postponing it is that loading this firmware takes a long time (seconds)
+   due to the slow i2c bus speed. So it will speed up the boot process if
+   you can avoid loading the fw as long as the video device isn't used. */
+
 enum cx25840_video_input {
 enum cx25840_video_input {
 	/* Composite video inputs In1-In8 */
 	/* Composite video inputs In1-In8 */
 	CX25840_COMPOSITE1 = 1,
 	CX25840_COMPOSITE1 = 1,