diff options
Diffstat (limited to 'drivers/media/video/gspca/sn9c20x.c')
-rw-r--r-- | drivers/media/video/gspca/sn9c20x.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/drivers/media/video/gspca/sn9c20x.c b/drivers/media/video/gspca/sn9c20x.c index 644a7fd4701a..83a718f0f3f9 100644 --- a/drivers/media/video/gspca/sn9c20x.c +++ b/drivers/media/video/gspca/sn9c20x.c | |||
@@ -20,7 +20,6 @@ | |||
20 | 20 | ||
21 | #ifdef CONFIG_INPUT | 21 | #ifdef CONFIG_INPUT |
22 | #include <linux/input.h> | 22 | #include <linux/input.h> |
23 | #include <linux/slab.h> | ||
24 | #endif | 23 | #endif |
25 | 24 | ||
26 | #include "gspca.h" | 25 | #include "gspca.h" |
@@ -89,7 +88,7 @@ struct sd { | |||
89 | u8 hstart; | 88 | u8 hstart; |
90 | u8 vstart; | 89 | u8 vstart; |
91 | 90 | ||
92 | u8 *jpeg_hdr; | 91 | u8 jpeg_hdr[JPEG_HDR_SZ]; |
93 | u8 quality; | 92 | u8 quality; |
94 | 93 | ||
95 | u8 flags; | 94 | u8 flags; |
@@ -2162,10 +2161,6 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
2162 | int height = gspca_dev->height; | 2161 | int height = gspca_dev->height; |
2163 | u8 fmt, scale = 0; | 2162 | u8 fmt, scale = 0; |
2164 | 2163 | ||
2165 | sd->jpeg_hdr = kmalloc(JPEG_HDR_SZ, GFP_KERNEL); | ||
2166 | if (sd->jpeg_hdr == NULL) | ||
2167 | return -ENOMEM; | ||
2168 | |||
2169 | jpeg_define(sd->jpeg_hdr, height, width, | 2164 | jpeg_define(sd->jpeg_hdr, height, width, |
2170 | 0x21); | 2165 | 0x21); |
2171 | jpeg_set_qual(sd->jpeg_hdr, sd->quality); | 2166 | jpeg_set_qual(sd->jpeg_hdr, sd->quality); |
@@ -2197,8 +2192,8 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
2197 | } | 2192 | } |
2198 | 2193 | ||
2199 | configure_sensor_output(gspca_dev, mode); | 2194 | configure_sensor_output(gspca_dev, mode); |
2200 | reg_w(gspca_dev, 0x1100, sd->jpeg_hdr + JPEG_QT0_OFFSET, 64); | 2195 | reg_w(gspca_dev, 0x1100, &sd->jpeg_hdr[JPEG_QT0_OFFSET], 64); |
2201 | reg_w(gspca_dev, 0x1140, sd->jpeg_hdr + JPEG_QT1_OFFSET, 64); | 2196 | reg_w(gspca_dev, 0x1140, &sd->jpeg_hdr[JPEG_QT1_OFFSET], 64); |
2202 | reg_w(gspca_dev, 0x10fb, CLR_WIN(width, height), 5); | 2197 | reg_w(gspca_dev, 0x10fb, CLR_WIN(width, height), 5); |
2203 | reg_w(gspca_dev, 0x1180, HW_WIN(mode, sd->hstart, sd->vstart), 6); | 2198 | reg_w(gspca_dev, 0x1180, HW_WIN(mode, sd->hstart, sd->vstart), 6); |
2204 | reg_w1(gspca_dev, 0x1189, scale); | 2199 | reg_w1(gspca_dev, 0x1189, scale); |
@@ -2226,12 +2221,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev) | |||
2226 | reg_w1(gspca_dev, 0x1061, gspca_dev->usb_buf[0] & ~0x02); | 2221 | reg_w1(gspca_dev, 0x1061, gspca_dev->usb_buf[0] & ~0x02); |
2227 | } | 2222 | } |
2228 | 2223 | ||
2229 | static void sd_stop0(struct gspca_dev *gspca_dev) | ||
2230 | { | ||
2231 | struct sd *sd = (struct sd *) gspca_dev; | ||
2232 | kfree(sd->jpeg_hdr); | ||
2233 | } | ||
2234 | |||
2235 | static void do_autoexposure(struct gspca_dev *gspca_dev, u16 avg_lum) | 2224 | static void do_autoexposure(struct gspca_dev *gspca_dev, u16 avg_lum) |
2236 | { | 2225 | { |
2237 | struct sd *sd = (struct sd *) gspca_dev; | 2226 | struct sd *sd = (struct sd *) gspca_dev; |
@@ -2397,7 +2386,6 @@ static const struct sd_desc sd_desc = { | |||
2397 | .init = sd_init, | 2386 | .init = sd_init, |
2398 | .start = sd_start, | 2387 | .start = sd_start, |
2399 | .stopN = sd_stopN, | 2388 | .stopN = sd_stopN, |
2400 | .stop0 = sd_stop0, | ||
2401 | .pkt_scan = sd_pkt_scan, | 2389 | .pkt_scan = sd_pkt_scan, |
2402 | #ifdef CONFIG_INPUT | 2390 | #ifdef CONFIG_INPUT |
2403 | .int_pkt_scan = sd_int_pkt_scan, | 2391 | .int_pkt_scan = sd_int_pkt_scan, |