diff options
author | Hans de Goede <hdegoede@redhat.com> | 2010-01-07 10:04:04 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-02-26 13:10:39 -0500 |
commit | ab269d300ef9fe7e2f60613d0ac160e12b84658e (patch) | |
tree | 9c26012bbf9294282d366e51da9d0ed01da6b88d /drivers/media/video/gspca/stv0680.c | |
parent | 9336960d075839b41bef89a0c68899c4025e8289 (diff) |
V4L/DVB (13994): gscpa_stv0680: Fix camera initialization on hotplug
stv0680 cameras currently only work when already plugged in when the system
boots (or when manually re-loading the driver after boot). This patch fixes
this.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/gspca/stv0680.c')
-rw-r--r-- | drivers/media/video/gspca/stv0680.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/media/video/gspca/stv0680.c b/drivers/media/video/gspca/stv0680.c index 856675e00e2d..7312bf43113b 100644 --- a/drivers/media/video/gspca/stv0680.c +++ b/drivers/media/video/gspca/stv0680.c | |||
@@ -138,6 +138,10 @@ static int sd_config(struct gspca_dev *gspca_dev, | |||
138 | struct sd *sd = (struct sd *) gspca_dev; | 138 | struct sd *sd = (struct sd *) gspca_dev; |
139 | struct cam *cam = &gspca_dev->cam; | 139 | struct cam *cam = &gspca_dev->cam; |
140 | 140 | ||
141 | /* Give the camera some time to settle, otherwise initalization will | ||
142 | fail on hotplug, and yes it really needs a full second. */ | ||
143 | msleep(1000); | ||
144 | |||
141 | /* ping camera to be sure STV0680 is present */ | 145 | /* ping camera to be sure STV0680 is present */ |
142 | if (stv_sndctrl(gspca_dev, 0, 0x88, 0x5678, 0x02) != 0x02 || | 146 | if (stv_sndctrl(gspca_dev, 0, 0x88, 0x5678, 0x02) != 0x02 || |
143 | gspca_dev->usb_buf[0] != 0x56 || gspca_dev->usb_buf[1] != 0x78) { | 147 | gspca_dev->usb_buf[0] != 0x56 || gspca_dev->usb_buf[1] != 0x78) { |