Use a more typical kernel logging style.
The current macro hides the gspca_dev argument so add it to the
macro uses instead.
Miscellanea:
o Add missing '\n' terminations to formats
o Realign arguments to open parenthesis
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
                /* check the packet status and length */
                if (urb0->iso_frame_desc[i].actual_length != SD_PKT_SZ
                    || urb->iso_frame_desc[i].actual_length != SD_PKT_SZ) {
-                       PERR("ISOC bad lengths %d / %d",
-                               urb0->iso_frame_desc[i].actual_length,
-                               urb->iso_frame_desc[i].actual_length);
+                       gspca_err(gspca_dev, "ISOC bad lengths %d / %d\n",
+                                 urb0->iso_frame_desc[i].actual_length,
+                                 urb->iso_frame_desc[i].actual_length);
                        gspca_dev->last_packet_type = DISCARD_PACKET;
                        continue;
                }
 
        struct usb_device *dev = gspca_dev->dev;
 
        if (len > USB_BUF_SZ) {
-               PERR("reg_r: buffer overflow\n");
+               gspca_err(gspca_dev, "reg_r: buffer overflow\n");
                return;
        }
 
        struct usb_device *dev = gspca_dev->dev;
 
        if (len > USB_BUF_SZ) {
-               PERR("reg_w: buffer overflow\n");
+               gspca_err(gspca_dev, "reg_w: buffer overflow\n");
                return;
        }
        PDEBUG(D_USBO, "reg write [%02x] = %02x..", index, *buffer);
                reg_w_val(gspca_dev, 0x0053, 0x00);
        } while (--retry);
        if (retry == 0)
-               PERR("Damned Errors sending jpeg Table");
+               gspca_err(gspca_dev, "Damned Errors sending jpeg Table\n");
        /* send the qtable now */
        reg_r(gspca_dev, 0x0001, 1);            /* -> 0x18 */
        length = 8;
 
                pipe = usb_sndctrlpipe(gspca_dev->dev, 0);
                requesttype = USB_TYPE_VENDOR | USB_RECIP_DEVICE;
        } else {
-               PERR("Unexpected first byte of command: %x", command[0]);
+               gspca_err(gspca_dev, "Unexpected first byte of command: %x\n",
+                         command[0]);
                return -EINVAL;
        }
 
 
        if (sd->params.status.systemState != LO_POWER_STATE) {
                if (sd->params.status.systemState != WARM_BOOT_STATE) {
-                       PERR("unexpected state after lo power cmd: %02x",
-                            sd->params.status.systemState);
+                       gspca_err(gspca_dev, "unexpected state after lo power cmd: %02x\n",
+                                 sd->params.status.systemState);
                        printstatus(gspca_dev, &sd->params);
                }
                return -EIO;
                return ret;
 
        if (sd->params.status.systemState != HI_POWER_STATE) {
-               PERR("unexpected state after hi power cmd: %02x",
-                    sd->params.status.systemState);
+               gspca_err(gspca_dev, "unexpected state after hi power cmd: %02x\n",
+                         sd->params.status.systemState);
                printstatus(gspca_dev, &sd->params);
                return -EIO;
        }
        sd->params.version.firmwareVersion = 0;
        get_version_information(gspca_dev);
        if (sd->params.version.firmwareVersion != 1) {
-               PERR("only firmware version 1 is supported (got: %d)",
-                    sd->params.version.firmwareVersion);
+               gspca_err(gspca_dev, "only firmware version 1 is supported (got: %d)\n",
+                         sd->params.version.firmwareVersion);
                return -ENODEV;
        }
 
        /* Start the camera in low power mode */
        if (goto_low_power(gspca_dev)) {
                if (sd->params.status.systemState != WARM_BOOT_STATE) {
-                       PERR("unexpected systemstate: %02x",
-                            sd->params.status.systemState);
+                       gspca_err(gspca_dev, "unexpected systemstate: %02x\n",
+                                 sd->params.status.systemState);
                        printstatus(gspca_dev, &sd->params);
                        return -ENODEV;
                }
                return ret;
 
        if (sd->params.status.fatalError) {
-               PERR("fatal_error: %04x, vp_status: %04x",
-                    sd->params.status.fatalError, sd->params.status.vpStatus);
+               gspca_err(gspca_dev, "fatal_error: %04x, vp_status: %04x\n",
+                         sd->params.status.fatalError,
+                         sd->params.status.vpStatus);
                return -EIO;
        }
 
 
 
                if (gspca_dev->usb_err < 0) {
 
-                       PERR("usb error request no: %d / %d\n",
-                               i, n_reqs);
+                       gspca_err(gspca_dev, "usb error request no: %d / %d\n",
+                                 i, n_reqs);
                } else if (preq->bRequestType & USB_DIR_IN) {
 
                        PDEBUG(D_STREAM,
        reg_rw(gspca_dev,
                bRequestType, bRequest, wValue, wIndex, 0);
        if (gspca_dev->usb_err < 0)
-               PERR("usb error in setexposure(gain) sequence.\n");
+               gspca_err(gspca_dev, "usb error in setexposure(gain) sequence\n");
 
        reg_rw(gspca_dev,
                bRequestType, bRequest, (xtimeVal<<4), 0x6300, 0);
        if (gspca_dev->usb_err < 0)
-               PERR("usb error in setexposure(time) sequence.\n");
+               gspca_err(gspca_dev, "usb error in setexposure(time) sequence\n");
 }
 
 /* specific webcam descriptor */
                                V4L2_CID_GAIN,
                                14,  33,  1,  24);/* [dB] */
        if (hdl->error) {
-               PERR("Could not initialize controls: %d\n",
-                       hdl->error);
+               gspca_err(gspca_dev, "Could not initialize controls: %d\n",
+                         hdl->error);
                return hdl->error;
        }
 
 
        struct usb_device *dev = gspca_dev->dev;
 
        if (len > USB_BUF_SZ) {
-               PERR("reg_r: buffer overflow\n");
+               gspca_err(gspca_dev, "reg_r: buffer overflow\n");
                return;
        }
 
                     : 0);              /* stopvideo */
        ret = Et_WaitStatus(gspca_dev);
        if (ret != 0)
-               PERR("timeout video on/off");
+               gspca_err(gspca_dev, "timeout video on/off\n");
        return ret;
 }
 
 
                pr_err("ctrl transfer failed %4d [p%02x r%d v%04x i%04x len%d]\n",
                       r, pref, req, val, index, len);
        else if (len > 1 && r < len)
-               PERR("short ctrl transfer %d/%d", r, len);
+               gspca_err(gspca_dev, "short ctrl transfer %d/%d\n", r, len);
 
        msleep(1);
 
 
        case 0:
                if (gspca_dev->sd_desc->int_pkt_scan(gspca_dev,
                    urb->transfer_buffer, urb->actual_length) < 0) {
-                       PERR("Unknown packet received");
+                       gspca_err(gspca_dev, "Unknown packet received\n");
                }
                break;
 
                break;
 
        default:
-               PERR("URB error %i, resubmitting", urb->status);
+               gspca_err(gspca_dev, "URB error %i, resubmitting\n",
+                         urb->status);
                urb->status = 0;
                ret = 0;
        }
        urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
        ret = usb_submit_urb(urb, GFP_KERNEL);
        if (ret < 0) {
-               PERR("submit int URB failed with error %i", ret);
+               gspca_err(gspca_dev, "submit int URB failed with error %i\n",
+                         ret);
                goto error_submit;
        }
        gspca_dev->int_urb = urb;
                if (gspca_dev->frozen)
                        return;
 #endif
-               PERR("urb status: %d", urb->status);
+               gspca_err(gspca_dev, "urb status: %d\n", urb->status);
                urb->status = 0;
                goto resubmit;
        }
                if (gspca_dev->frozen)
                        return;
 #endif
-               PERR("urb status: %d", urb->status);
+               gspca_err(gspca_dev, "urb status: %d\n", urb->status);
                urb->status = 0;
                goto resubmit;
        }
        /* append the packet to the frame buffer */
        if (len > 0) {
                if (gspca_dev->image_len + len > gspca_dev->frsz) {
-                       PERR("frame overflow %d > %d",
-                               gspca_dev->image_len + len,
-                               gspca_dev->frsz);
+                       gspca_err(gspca_dev, "frame overflow %d > %d\n",
+                                 gspca_dev->image_len + len,
+                                 gspca_dev->frsz);
                        packet_type = DISCARD_PACKET;
                } else {
 /* !! image is NULL only when last pkt is LAST or DISCARD
                /* the bandwidth is not wide enough
                 * negotiate or try a lower alternate setting */
 retry:
-               PERR("alt %d - bandwidth not wide enough, trying again", alt);
+               gspca_err(gspca_dev, "alt %d - bandwidth not wide enough, trying again\n",
+                         alt);
                msleep(20);     /* wait for kill complete */
                if (gspca_dev->sd_desc->isoc_nego) {
                        ret = gspca_dev->sd_desc->isoc_nego(gspca_dev);
                if (copy_to_user((__u8 __user *) frame->v4l2_buf.m.userptr,
                                 frame->data,
                                 frame->v4l2_buf.bytesused)) {
-                       PERR("dqbuf cp to user failed");
+                       gspca_err(gspca_dev, "dqbuf cp to user failed\n");
                        ret = -EFAULT;
                }
        }
                count = frame->v4l2_buf.bytesused;
        ret = copy_to_user(data, frame->data, count);
        if (ret != 0) {
-               PERR("read cp to user lack %d / %zd", ret, count);
+               gspca_err(gspca_dev, "read cp to user lack %d / %zd\n",
+                         ret, count);
                ret = -EFAULT;
                goto out;
        }
 
 #define PDEBUG(level, fmt, ...) \
        v4l2_dbg(level, gspca_debug, &gspca_dev->v4l2_dev, fmt, ##__VA_ARGS__)
 
-#define PERR(fmt, ...) \
-       v4l2_err(&gspca_dev->v4l2_dev, fmt, ##__VA_ARGS__)
+#define gspca_err(gspca_dev, fmt, ...)                         \
+       v4l2_err(&(gspca_dev)->v4l2_dev, fmt, ##__VA_ARGS__)
 
 #define GSPCA_MAX_FRAMES 16    /* maximum number of video frame buffers */
 /* image transfers */
 
        msleep(2);
        setfreq(gspca_dev, v4l2_ctrl_g_ctrl(sd->freq));
        if (gspca_dev->usb_err < 0)
-               PERR("Start streaming command failed");
+               gspca_err(gspca_dev, "Start streaming command failed\n");
        return gspca_dev->usb_err;
 }
 
 
                if (gspca_dev->frozen)
                        return;
 #endif
-               PERR("urb status: %d", urb->status);
+               gspca_err(gspca_dev, "urb status: %d\n", urb->status);
                st = usb_submit_urb(urb, GFP_ATOMIC);
                if (st < 0)
                        pr_err("resubmit urb error %d\n", st);
        sd->last_data_urb = NULL;
 
        if (!data_urb || data_urb->start_frame != status_urb->start_frame) {
-               PERR("lost sync on frames");
+               gspca_err(gspca_dev, "lost sync on frames\n");
                goto resubmit;
        }
 
        if (data_urb->number_of_packets != status_urb->number_of_packets) {
-               PERR("no packets does not match, data: %d, status: %d",
-                    data_urb->number_of_packets,
-                    status_urb->number_of_packets);
+               gspca_err(gspca_dev, "no packets does not match, data: %d, status: %d\n",
+                         data_urb->number_of_packets,
+                         status_urb->number_of_packets);
                goto resubmit;
        }
 
        for (i = 0; i < status_urb->number_of_packets; i++) {
                if (data_urb->iso_frame_desc[i].status ||
                    status_urb->iso_frame_desc[i].status) {
-                       PERR("pkt %d data-status %d, status-status %d", i,
-                            data_urb->iso_frame_desc[i].status,
-                            status_urb->iso_frame_desc[i].status);
+                       gspca_err(gspca_dev, "pkt %d data-status %d, status-status %d\n",
+                                 i,
+                                 data_urb->iso_frame_desc[i].status,
+                                 status_urb->iso_frame_desc[i].status);
                        gspca_dev->last_packet_type = DISCARD_PACKET;
                        continue;
                }
 
                if (status_urb->iso_frame_desc[i].actual_length != 1) {
-                       PERR("bad status packet length %d",
-                            status_urb->iso_frame_desc[i].actual_length);
+                       gspca_err(gspca_dev, "bad status packet length %d\n",
+                                 status_urb->iso_frame_desc[i].actual_length);
                        gspca_dev->last_packet_type = DISCARD_PACKET;
                        continue;
                }
        if (data_urb) {
                st = usb_submit_urb(data_urb, GFP_ATOMIC);
                if (st < 0)
-                       PERR("usb_submit_urb(data_urb) ret %d", st);
+                       gspca_err(gspca_dev, "usb_submit_urb(data_urb) ret %d\n",
+                                 st);
        }
        st = usb_submit_urb(status_urb, GFP_ATOMIC);
        if (st < 0)
-               PERR("usb_submit_urb(status_urb) ret %d\n", st);
+               gspca_err(gspca_dev, "usb_submit_urb(status_urb) ret %d\n", st);
 }
 
 static int sd_s_ctrl(struct v4l2_ctrl *ctrl)
 
        return 0;
 
 fail:
-       PERR("ALi m5602 webcam failed");
+       gspca_err(gspca_dev, "ALi m5602 webcam failed\n");
        cam->cam_mode = NULL;
        cam->nmodes = 0;
 
 
                        return err_code;
        }
        if (status != 0x0a)
-               PERR("status is %02x", status);
+               gspca_err(gspca_dev, "status is %02x\n", status);
 
        tries = 0;
        while (tries < 4) {
        gspca_dev->usb_buf[0] = 0x01;
        gspca_dev->usb_buf[1] = 0x00;
        if (mr_write(gspca_dev, 2) < 0)
-               PERR("Stream Stop failed");
+               gspca_err(gspca_dev, "Stream Stop failed\n");
 }
 
 static void lcd_stop(struct gspca_dev *gspca_dev)
        gspca_dev->usb_buf[0] = 0x19;
        gspca_dev->usb_buf[1] = 0x54;
        if (mr_write(gspca_dev, 2) < 0)
-               PERR("LCD Stop failed");
+               gspca_err(gspca_dev, "LCD Stop failed\n");
 }
 
 static int isoc_enable(struct gspca_dev *gspca_dev)
 
                        sd->gspca_dev.usb_buf, 1, 500);
 leave:
        if (ret < 0) {
-               PERR("reg_w %02x failed %d\n", index, ret);
+               gspca_err(gspca_dev, "reg_w %02x failed %d\n", index, ret);
                sd->gspca_dev.usb_err = ret;
                return;
        }
                PDEBUG(D_USBI, "GET %02x 0000 %04x %02x",
                        req, index, ret);
        } else {
-               PERR("reg_r %02x failed %d\n", index, ret);
+               gspca_err(gspca_dev, "reg_r %02x failed %d\n", index, ret);
                sd->gspca_dev.usb_err = ret;
        }
 
        if (ret >= 0) {
                ret = sd->gspca_dev.usb_buf[0];
        } else {
-               PERR("reg_r8 %02x failed %d\n", index, ret);
+               gspca_err(gspca_dev, "reg_r8 %02x failed %d\n", index, ret);
                sd->gspca_dev.usb_err = ret;
        }
 
                        0, index,
                        sd->gspca_dev.usb_buf, n, 500);
        if (ret < 0) {
-               PERR("reg_w32 %02x failed %d\n", index, ret);
+               gspca_err(gspca_dev, "reg_w32 %02x failed %d\n", index, ret);
                sd->gspca_dev.usb_err = ret;
        }
 }
                        (u16) value, (u16) reg, NULL, 0, 500);
 
        if (ret < 0) {
-               PERR("ovfx2_i2c_w %02x failed %d\n", reg, ret);
+               gspca_err(gspca_dev, "ovfx2_i2c_w %02x failed %d\n", reg, ret);
                sd->gspca_dev.usb_err = ret;
        }
 
                ret = sd->gspca_dev.usb_buf[0];
                PDEBUG(D_USBI, "ovfx2_i2c_r %02x %02x", reg, ret);
        } else {
-               PERR("ovfx2_i2c_r %02x failed %d\n", reg, ret);
+               gspca_err(gspca_dev, "ovfx2_i2c_r %02x failed %d\n", reg, ret);
                sd->gspca_dev.usb_err = ret;
        }
 
        int high, low;
 
        if (sd->bridge != BRIDGE_OVFX2) {
-               PERR("error hires sensors only supported with ovfx2\n");
+               gspca_err(gspca_dev, "error hires sensors only supported with ovfx2\n");
                return;
        }
 
                }
                break;
        }
-       PERR("Error unknown sensor type: %02x%02x\n", high, low);
+       gspca_err(gspca_dev, "Error unknown sensor type: %02x%02x\n",
+                 high, low);
 }
 
 /* This initializes the OV8110, OV8610 sensor. The OV8110 uses
        /* Detect sensor (sub)type */
        rc = i2c_r(sd, OV7610_REG_COM_I);
        if (rc < 0) {
-               PERR("Error detecting sensor type");
+               gspca_err(gspca_dev, "Error detecting sensor type\n");
                return;
        }
        if ((rc & 3) == 1)
                sd->sensor = SEN_OV8610;
        else
-               PERR("Unknown image sensor version: %d\n", rc & 3);
+               gspca_err(gspca_dev, "Unknown image sensor version: %d\n",
+                         rc & 3);
 }
 
 /* This initializes the OV7610, OV7620, or OV76BE sensor. The OV76BE uses
        /* add OV7670 here
         * it appears to be wrongly detected as a 7610 by default */
        if (rc < 0) {
-               PERR("Error detecting sensor type\n");
+               gspca_err(gspca_dev, "Error detecting sensor type\n");
                return;
        }
        if ((rc & 3) == 3) {
                /* try to read product id registers */
                high = i2c_r(sd, 0x0a);
                if (high < 0) {
-                       PERR("Error detecting camera chip PID\n");
+                       gspca_err(gspca_dev, "Error detecting camera chip PID\n");
                        return;
                }
                low = i2c_r(sd, 0x0b);
                if (low < 0) {
-                       PERR("Error detecting camera chip VER\n");
+                       gspca_err(gspca_dev, "Error detecting camera chip VER\n");
                        return;
                }
                if (high == 0x76) {
                        switch (low) {
                        case 0x30:
-                               PERR("Sensor is an OV7630/OV7635\n");
-                               PERR("7630 is not supported by this driver\n");
+                               gspca_err(gspca_dev, "Sensor is an OV7630/OV7635\n");
+                               gspca_err(gspca_dev, "7630 is not supported by this driver\n");
                                return;
                        case 0x40:
                                PDEBUG(D_PROBE, "Sensor is an OV7645");
                                sd->sensor = SEN_OV7660;
                                break;
                        default:
-                               PERR("Unknown sensor: 0x76%02x\n", low);
+                               gspca_err(gspca_dev, "Unknown sensor: 0x76%02x\n",
+                                         low);
                                return;
                        }
                } else {
                        sd->sensor = SEN_OV7620;
                }
        } else {
-               PERR("Unknown image sensor version: %d\n", rc & 3);
+               gspca_err(gspca_dev, "Unknown image sensor version: %d\n",
+                         rc & 3);
        }
 }
 
        /* Detect sensor (sub)type */
        rc = i2c_r(sd, OV7610_REG_COM_I);
        if (rc < 0) {
-               PERR("Error detecting sensor type\n");
+               gspca_err(gspca_dev, "Error detecting sensor type\n");
                return;
        }
 
                pr_warn("WARNING: Sensor is an OV66307. Your camera may have been misdetected in previous driver versions.\n");
                break;
        default:
-               PERR("FATAL: Unknown sensor version: 0x%02x\n", rc);
+               gspca_err(gspca_dev, "FATAL: Unknown sensor version: 0x%02x\n",
+                         rc);
                return;
        }
 
        } else if (init_ov_sensor(sd, OV_HIRES_SID) >= 0) {
                ov_hires_configure(sd);
        } else {
-               PERR("Can't determine sensor slave IDs\n");
+               gspca_err(gspca_dev, "Can't determine sensor slave IDs\n");
                goto error;
        }
 
        }
        return gspca_dev->usb_err;
 error:
-       PERR("OV519 Config failed");
+       gspca_err(gspca_dev, "OV519 Config failed\n");
        return -EINVAL;
 }
 
        intf = usb_ifnum_to_if(sd->gspca_dev.dev, sd->gspca_dev.iface);
        alt = usb_altnum_to_altsetting(intf, sd->gspca_dev.alt);
        if (!alt) {
-               PERR("Couldn't get altsetting\n");
+               gspca_err(gspca_dev, "Couldn't get altsetting\n");
                sd->gspca_dev.usb_err = -EIO;
                return;
        }
        intf = usb_ifnum_to_if(sd->gspca_dev.dev, sd->gspca_dev.iface);
        alt = usb_altnum_to_altsetting(intf, sd->gspca_dev.alt);
        if (!alt) {
-               PERR("Couldn't get altsetting\n");
+               gspca_err(gspca_dev, "Couldn't get altsetting\n");
                sd->gspca_dev.usb_err = -EIO;
                return;
        }
                        /* Frame end */
                        if ((in[9] + 1) * 8 != gspca_dev->pixfmt.width ||
                            (in[10] + 1) * 8 != gspca_dev->pixfmt.height) {
-                               PERR("Invalid frame size, got: %dx%d, requested: %dx%d\n",
-                                       (in[9] + 1) * 8, (in[10] + 1) * 8,
-                                       gspca_dev->pixfmt.width,
-                                       gspca_dev->pixfmt.height);
+                               gspca_err(gspca_dev, "Invalid frame size, got: %dx%d, requested: %dx%d\n",
+                                         (in[9] + 1) * 8, (in[10] + 1) * 8,
+                                         gspca_dev->pixfmt.width,
+                                         gspca_dev->pixfmt.height);
                                gspca_dev->last_packet_type = DISCARD_PACKET;
                                return;
                        }
                   except that they may contain part of the footer), are
                   numbered 0 */
                else if (sd->packet_nr == 0 || data[len]) {
-                       PERR("Invalid packet nr: %d (expect: %d)",
-                               (int)data[len], (int)sd->packet_nr);
+                       gspca_err(gspca_dev, "Invalid packet nr: %d (expect: %d)\n",
+                                 (int)data[len], (int)sd->packet_nr);
                        gspca_dev->last_packet_type = DISCARD_PACKET;
                        return;
                }
                        QUALITY_MIN, QUALITY_MAX, 1, QUALITY_DEF);
 
        if (hdl->error) {
-               PERR("Could not initialize controls\n");
+               gspca_err(gspca_dev, "Could not initialize controls\n");
                return hdl->error;
        }
        if (gspca_dev->autogain)
 
                case 0x03:
                        break;
                default:
-                       PERR("sccb status 0x%02x, attempt %d/5",
-                              data, i + 1);
+                       gspca_err(gspca_dev, "sccb status 0x%02x, attempt %d/5\n",
+                                 data, i + 1);
                }
        }
        return 0;
 
                        break;
                default:
                        if (len > USB_BUF_SZ) {
-                               PERR("Incorrect variable sequence");
+                               gspca_err(gspca_dev, "Incorrect variable sequence\n");
                                return;
                        }
                        while (len > 0) {
 
                        break;
                default:
                        if (len > USB_BUF_SZ) {
-                               PERR("Incorrect variable sequence");
+                               gspca_err(gspca_dev, "Incorrect variable sequence\n");
                                return;
                        }
                        while (len > 0) {
 
 
        result = sn9c2028_read1(gspca_dev);
        if (result < 0)
-               PERR("Camera Stop read failed");
+               gspca_err(gspca_dev, "Camera Stop read failed\n");
 
        memset(data, 0, 6);
        data[0] = 0x14;
        result = sn9c2028_command(gspca_dev, data);
        if (result < 0)
-               PERR("Camera Stop command failed");
+               gspca_err(gspca_dev, "Camera Stop command failed\n");
 }
 
 static void do_autogain(struct gspca_dev *gspca_dev, int avg_lum)
 
        if (gspca_dev->usb_err < 0)
                return;
        if (len > USB_BUF_SZ) {
-               PERR("reg_r: buffer overflow\n");
+               gspca_err(gspca_dev, "reg_r: buffer overflow\n");
                return;
        }
 
                value, buffer[0], buffer[1]);
 
        if (len > USB_BUF_SZ) {
-               PERR("reg_w: buffer overflow\n");
+               gspca_err(gspca_dev, "reg_w: buffer overflow\n");
                return;
        }
 
 
                w += 15;
                msleep(w);
        } while (--i > 0);
-       PERR("wait_status_0 timeout");
+       gspca_err(gspca_dev, "wait_status_0 timeout\n");
        gspca_dev->usb_err = -ETIME;
 }
 
                        return;
                }
        } while (--i > 0);
-       PERR("wait_status_1 timeout");
+       gspca_err(gspca_dev, "wait_status_1 timeout\n");
        gspca_dev->usb_err = -ETIME;
 }
 
 
                return err;
        err = reg_r_wait(gspca_dev, 0x06, 0, 0);
        if (err < 0) {
-               PERR("reg_r_wait() failed");
+               gspca_err(gspca_dev, "reg_r_wait() failed\n");
                return err;
        }
        /* all ok */
 static int spca500_synch310(struct gspca_dev *gspca_dev)
 {
        if (usb_set_interface(gspca_dev->dev, gspca_dev->iface, 0) < 0) {
-               PERR("Set packet size: set interface error");
+               gspca_err(gspca_dev, "Set packet size: set interface error\n");
                goto error;
        }
        spca500_ping310(gspca_dev);
        if (usb_set_interface(gspca_dev->dev,
                                gspca_dev->iface,
                                gspca_dev->alt) < 0) {
-               PERR("Set packet size: set interface error");
+               gspca_err(gspca_dev, "Set packet size: set interface error\n");
                goto error;
        }
        return 0;
        err = spca50x_setup_qtable(gspca_dev, 0x00, 0x8800, 0x8840,
                                 qtable_pocketdv);
        if (err < 0)
-               PERR("spca50x_setup_qtable failed on init");
+               gspca_err(gspca_dev, "spca50x_setup_qtable failed on init\n");
 
        /* set qtable index */
        reg_w(gspca_dev, 0x00, 0x8880, 2);
                                           0x00, 0x8800, 0x8840,
                                           qtable_creative_pccam);
                if (err < 0)
-                       PERR("spca50x_setup_qtable failed");
+                       gspca_err(gspca_dev, "spca50x_setup_qtable failed\n");
                /* Init SDRAM - needed for SDRAM access */
                reg_w(gspca_dev, 0x00, 0x870a, 0x04);
 
                reg_w(gspca_dev, 0x00, 0x8000, 0x0004);
                msleep(500);
                if (reg_r_wait(gspca_dev, 0, 0x8000, 0x44) != 0)
-                       PERR("reg_r_wait() failed");
+                       gspca_err(gspca_dev, "reg_r_wait() failed\n");
 
                reg_r(gspca_dev, 0x816b, 1);
                Data = gspca_dev->usb_buf[0];
                /* enable drop packet */
                err = reg_w(gspca_dev, 0x00, 0x850a, 0x0001);
                if (err < 0)
-                       PERR("failed to enable drop packet");
+                       gspca_err(gspca_dev, "failed to enable drop packet\n");
                reg_w(gspca_dev, 0x00, 0x8880, 3);
                err = spca50x_setup_qtable(gspca_dev,
                                           0x00, 0x8800, 0x8840,
                                           qtable_creative_pccam);
                if (err < 0)
-                       PERR("spca50x_setup_qtable failed");
+                       gspca_err(gspca_dev, "spca50x_setup_qtable failed\n");
 
                /* Init SDRAM - needed for SDRAM access */
                reg_w(gspca_dev, 0x00, 0x870a, 0x04);
                reg_w(gspca_dev, 0x00, 0x8000, 0x0004);
 
                if (reg_r_wait(gspca_dev, 0, 0x8000, 0x44) != 0)
-                       PERR("reg_r_wait() failed");
+                       gspca_err(gspca_dev, "reg_r_wait() failed\n");
 
                reg_r(gspca_dev, 0x816b, 1);
                Data = gspca_dev->usb_buf[0];
                /* do a full reset */
                err = spca500_full_reset(gspca_dev);
                if (err < 0)
-                       PERR("spca500_full_reset failed");
+                       gspca_err(gspca_dev, "spca500_full_reset failed\n");
 
                /* enable drop packet */
                err = reg_w(gspca_dev, 0x00, 0x850a, 0x0001);
                if (err < 0)
-                       PERR("failed to enable drop packet");
+                       gspca_err(gspca_dev, "failed to enable drop packet\n");
                reg_w(gspca_dev, 0x00, 0x8880, 3);
                err = spca50x_setup_qtable(gspca_dev,
                                           0x00, 0x8800, 0x8840,
                                           qtable_creative_pccam);
                if (err < 0)
-                       PERR("spca50x_setup_qtable failed");
+                       gspca_err(gspca_dev, "spca50x_setup_qtable failed\n");
 
                spca500_setmode(gspca_dev, xmult, ymult);
                reg_w(gspca_dev, 0x20, 0x0001, 0x0004);
                reg_w(gspca_dev, 0x00, 0x8000, 0x0004);
 
                if (reg_r_wait(gspca_dev, 0, 0x8000, 0x44) != 0)
-                       PERR("reg_r_wait() failed");
+                       gspca_err(gspca_dev, "reg_r_wait() failed\n");
 
                reg_r(gspca_dev, 0x816b, 1);
                Data = gspca_dev->usb_buf[0];
                /* do a full reset */
                err = spca500_full_reset(gspca_dev);
                if (err < 0)
-                       PERR("spca500_full_reset failed");
+                       gspca_err(gspca_dev, "spca500_full_reset failed\n");
                /* enable drop packet */
                reg_w(gspca_dev, 0x00, 0x850a, 0x0001);
                reg_w(gspca_dev, 0x00, 0x8880, 0);
                                           0x00, 0x8800, 0x8840,
                                           qtable_kodak_ez200);
                if (err < 0)
-                       PERR("spca50x_setup_qtable failed");
+                       gspca_err(gspca_dev, "spca50x_setup_qtable failed\n");
                spca500_setmode(gspca_dev, xmult, ymult);
 
                reg_w(gspca_dev, 0x20, 0x0001, 0x0004);
                reg_w(gspca_dev, 0x00, 0x8000, 0x0004);
 
                if (reg_r_wait(gspca_dev, 0, 0x8000, 0x44) != 0)
-                       PERR("reg_r_wait() failed");
+                       gspca_err(gspca_dev, "reg_r_wait() failed\n");
 
                reg_r(gspca_dev, 0x816b, 1);
                Data = gspca_dev->usb_buf[0];
                err = spca50x_setup_qtable(gspca_dev,
                                   0x00, 0x8800, 0x8840, qtable_pocketdv);
                if (err < 0)
-                       PERR("spca50x_setup_qtable failed");
+                       gspca_err(gspca_dev, "spca50x_setup_qtable failed\n");
                reg_w(gspca_dev, 0x00, 0x8880, 2);
 
                /* familycam Quicksmart pocketDV stuff */
                                        0x00, 0x8800,
                                        0x8840, qtable_creative_pccam);
                if (err < 0)
-                       PERR("spca50x_setup_qtable failed");
+                       gspca_err(gspca_dev, "spca50x_setup_qtable failed\n");
                reg_w(gspca_dev, 0x00, 0x8880, 3);
                reg_w(gspca_dev, 0x00, 0x800a, 0x00);
                /* Init SDRAM - needed for SDRAM access */
 
                ret = reg_write(gspca_dev, data[i][0], data[i][2],
                                                                data[i][1]);
                if (ret < 0) {
-                       PERR("Reg write failed for 0x%02x,0x%02x,0x%02x",
-                               data[i][0], data[i][1], data[i][2]);
+                       gspca_err(gspca_dev, "Reg write failed for 0x%02x,0x%02x,0x%02x\n",
+                                 data[i][0], data[i][1], data[i][2]);
                        return ret;
                }
                i++;
 
        ret = reg_read(gspca_dev, 0x06, 0x16);
 
        if (ret < 0) {
-               PERR("register read failed err: %d", ret);
+               gspca_err(gspca_dev, "register read failed err: %d\n", ret);
                return ret;
        }
        if (ret != 0x0101) {
 
                if (gspca_dev->usb_buf[0] == 0)
                        break;
                if (--retry <= 0) {
-                       PERR("ssi_w busy %02x", gspca_dev->usb_buf[0]);
+                       gspca_err(gspca_dev, "ssi_w busy %02x\n",
+                                 gspca_dev->usb_buf[0]);
                        ret = -1;
                        break;
                }
 
 
                /* This should never happen */
                if (len < 2) {
-                       PERR("Short SOF packet, ignoring");
+                       gspca_err(gspca_dev, "Short SOF packet, ignoring\n");
                        gspca_dev->last_packet_type = DISCARD_PACKET;
                        return;
                }
 
        }
 
        if (ret < 0) {
-               PERR("Start streaming command failed");
+               gspca_err(gspca_dev, "Start streaming command failed\n");
                return ret;
        }
        /* Start the workqueue function to do the streaming */
 
 
        ret = sq905c_command(gspca_dev, SQ905C_GET_ID, 0);
        if (ret < 0) {
-               PERR("Get version command failed");
+               gspca_err(gspca_dev, "Get version command failed\n");
                return ret;
        }
 
        ret = sq905c_read(gspca_dev, 0xf5, 0, 20);
        if (ret < 0) {
-               PERR("Reading version command failed");
+               gspca_err(gspca_dev, "Reading version command failed\n");
                return ret;
        }
        /* Note we leave out the usb id and the manufacturing date */
        }
 
        if (ret < 0) {
-               PERR("Start streaming command failed");
+               gspca_err(gspca_dev, "Start streaming command failed\n");
                return ret;
        }
        /* Start the workqueue function to do the streaming */
 
                return;
 
        if ((batchsize - 1) * 3 > USB_BUF_SZ) {
-               PERR("Bug: usb_buf overflow\n");
+               gspca_err(gspca_dev, "Bug: usb_buf overflow\n");
                gspca_dev->usb_err = -ENOMEM;
                return;
        }
 
 static int stv0680_handle_error(struct gspca_dev *gspca_dev, int ret)
 {
        stv_sndctrl(gspca_dev, 0, 0x80, 0, 0x02); /* Get Last Error */
-       PERR("last error: %i,  command = 0x%x",
-              gspca_dev->usb_buf[0], gspca_dev->usb_buf[1]);
+       gspca_err(gspca_dev, "last error: %i,  command = 0x%x\n",
+                 gspca_dev->usb_buf[0], gspca_dev->usb_buf[1]);
        return ret;
 }
 
        gspca_dev->usb_buf[0] = 0x0f;
 
        if (stv_sndctrl(gspca_dev, 0, 0x87, 0, 0x08) != 0x08) {
-               PERR("Get_Camera_Mode failed");
+               gspca_err(gspca_dev, "Get_Camera_Mode failed\n");
                return stv0680_handle_error(gspca_dev, -EIO);
        }
 
        gspca_dev->usb_buf[0] = mode;
 
        if (stv_sndctrl(gspca_dev, 3, 0x07, 0x0100, 0x08) != 0x08) {
-               PERR("Set_Camera_Mode failed");
+               gspca_err(gspca_dev, "Set_Camera_Mode failed\n");
                return stv0680_handle_error(gspca_dev, -EIO);
        }
 
        /* Verify we got what we've asked for */
        if (stv0680_get_video_mode(gspca_dev) != mode) {
-               PERR("Error setting camera video mode!");
+               gspca_err(gspca_dev, "Error setting camera video mode!\n");
                return -EIO;
        }
 
        /* ping camera to be sure STV0680 is present */
        if (stv_sndctrl(gspca_dev, 0, 0x88, 0x5678, 0x02) != 0x02 ||
            gspca_dev->usb_buf[0] != 0x56 || gspca_dev->usb_buf[1] != 0x78) {
-               PERR("STV(e): camera ping failed!!");
+               gspca_err(gspca_dev, "STV(e): camera ping failed!!\n");
                return stv0680_handle_error(gspca_dev, -ENODEV);
        }
 
 
        if (stv_sndctrl(gspca_dev, 2, 0x06, 0x0200, 0x22) != 0x22 ||
            gspca_dev->usb_buf[7] != 0xa0 || gspca_dev->usb_buf[8] != 0x23) {
-               PERR("Could not get descriptor 0200.");
+               gspca_err(gspca_dev, "Could not get descriptor 0200\n");
                return stv0680_handle_error(gspca_dev, -ENODEV);
        }
        if (stv_sndctrl(gspca_dev, 0, 0x8a, 0, 0x02) != 0x02)
                return stv0680_handle_error(gspca_dev, -ENODEV);
 
        if (!(gspca_dev->usb_buf[7] & 0x09)) {
-               PERR("Camera supports neither CIF nor QVGA mode");
+               gspca_err(gspca_dev, "Camera supports neither CIF nor QVGA mode\n");
                return -ENODEV;
        }
        if (gspca_dev->usb_buf[7] & 0x01)
 
        intf = usb_ifnum_to_if(sd->gspca_dev.dev, sd->gspca_dev.iface);
        alt = usb_altnum_to_altsetting(intf, sd->gspca_dev.alt);
        if (!alt) {
-               PERR("Couldn't get altsetting");
+               gspca_err(gspca_dev, "Couldn't get altsetting\n");
                return -EIO;
        }
 
 
        ret = usb_set_interface(gspca_dev->dev, gspca_dev->iface, 1);
        if (ret < 0)
-               PERR("set alt 1 err %d", ret);
+               gspca_err(gspca_dev, "set alt 1 err %d\n", ret);
 
        return ret;
 }
                len -= 4;
 
                if (len < chunk_len) {
-                       PERR("URB packet length is smaller than the specified chunk length");
+                       gspca_err(gspca_dev, "URB packet length is smaller than the specified chunk length\n");
                        gspca_dev->last_packet_type = DISCARD_PACKET;
                        return;
                }
                                sd->to_skip = gspca_dev->pixfmt.width * 4;
 
                        if (chunk_len)
-                               PERR("Chunk length is non-zero on a SOF");
+                               gspca_err(gspca_dev, "Chunk length is non-zero on a SOF\n");
                        break;
 
                case 0x8002:
                                        NULL, 0);
 
                        if (chunk_len)
-                               PERR("Chunk length is non-zero on a EOF");
+                               gspca_err(gspca_dev, "Chunk length is non-zero on a EOF\n");
                        break;
 
                case 0x0005:
 
        int ret;
 
        if (len > USB_BUF_SZ) {
-               PERR("reg_r: buffer overflow\n");
+               gspca_err(gspca_dev, "reg_r: buffer overflow\n");
                return;
        }
        if (gspca_dev->usb_err < 0)
 
 static int val_reply(struct gspca_dev *gspca_dev, const char *reply, int rc)
 {
        if (rc < 0) {
-               PERR("reply has error %d", rc);
+               gspca_err(gspca_dev, "reply has error %d\n", rc);
                return -EIO;
        }
        if (rc != 1) {
-               PERR("Bad reply size %d", rc);
+               gspca_err(gspca_dev, "Bad reply size %d\n", rc);
                return -EIO;
        }
        if (reply[0] != 0x08) {
-               PERR("Bad reply 0x%02x", (int)reply[0]);
+               gspca_err(gspca_dev, "Bad reply 0x%02x\n", (int)reply[0]);
                return -EIO;
        }
        return 0;
                0x0B, 0xC0, value, index, buff, 1, 500);
        PDEBUG(D_USBO, "rc=%d, ret={0x%02x}", rc, (int)buff[0]);
        if (rc < 0) {
-               PERR("Failed reg_w(0x0B, 0xC0, 0x%04X, 0x%04X) w/ rc %d\n",
-                       value, index, rc);
+               gspca_err(gspca_dev, "Failed reg_w(0x0B, 0xC0, 0x%04X, 0x%04X) w/ rc %d\n",
+                         value, index, rc);
                gspca_dev->usb_err = rc;
                return;
        }
        if (val_reply(gspca_dev, buff, rc)) {
-               PERR("Bad reply to reg_w(0x0B, 0xC0, 0x%04X, 0x%04X\n",
-                       value, index);
+               gspca_err(gspca_dev, "Bad reply to reg_w(0x0B, 0xC0, 0x%04X, 0x%04X\n",
+                         value, index);
                gspca_dev->usb_err = -EIO;
        }
 }
        else if (w == 3264)
                value = val * 3 / 2;
        else {
-               PERR("Invalid width %u\n", w);
+               gspca_err(gspca_dev, "Invalid width %u\n", w);
                gspca_dev->usb_err = -EINVAL;
                return;
        }
                reg_w_buf(gspca_dev,
                               reg_init_res, ARRAY_SIZE(reg_init_res));
        } else {
-               PERR("bad width %u\n", w);
+               gspca_err(gspca_dev, "bad width %u\n", w);
                gspca_dev->usb_err = -EINVAL;
                return;
        }
                reg_w(gspca_dev, 0x0B4B, REG_FRAME_LENGTH_LINES_);
                reg_w(gspca_dev, 0x1F40, REG_LINE_LENGTH_PCK_);
        } else {
-               PERR("bad width %u\n", w);
+               gspca_err(gspca_dev, "bad width %u\n", w);
                gspca_dev->usb_err = -EINVAL;
                return;
        }
        rc = usb_control_msg(gspca_dev->dev, usb_rcvctrlpipe(gspca_dev->dev, 0),
                             0x16, 0xC0, 0x0000, 0x0000, buff, 2, 500);
        if (val_reply(gspca_dev, buff, rc)) {
-               PERR("failed key req");
+               gspca_err(gspca_dev, "failed key req\n");
                return -EIO;
        }
 
        rc = usb_control_msg(gspca_dev->dev, usb_sndctrlpipe(gspca_dev->dev, 0),
                             0x01, 0x40, 0x0001, 0x000F, NULL, 0, 500);
        if (rc < 0) {
-               PERR("failed to replay packet 176 w/ rc %d\n", rc);
+               gspca_err(gspca_dev, "failed to replay packet 176 w/ rc %d\n",
+                         rc);
                return rc;
        }
 
        rc = usb_control_msg(gspca_dev->dev, usb_sndctrlpipe(gspca_dev->dev, 0),
                             0x01, 0x40, 0x0000, 0x000F, NULL, 0, 500);
        if (rc < 0) {
-               PERR("failed to replay packet 178 w/ rc %d\n", rc);
+               gspca_err(gspca_dev, "failed to replay packet 178 w/ rc %d\n",
+                         rc);
                return rc;
        }
 
        rc = usb_control_msg(gspca_dev->dev, usb_sndctrlpipe(gspca_dev->dev, 0),
                             0x01, 0x40, 0x0001, 0x000F, NULL, 0, 500);
        if (rc < 0) {
-               PERR("failed to replay packet 180 w/ rc %d\n", rc);
+               gspca_err(gspca_dev, "failed to replay packet 180 w/ rc %d\n",
+                         rc);
                return rc;
        }
 
        rc = usb_control_msg(gspca_dev->dev, usb_sndctrlpipe(gspca_dev->dev, 0),
                             0x01, 0x40, 0x0003, 0x000F, NULL, 0, 500);
        if (rc < 0) {
-               PERR("failed to replay final packet w/ rc %d\n", rc);
+               gspca_err(gspca_dev, "failed to replay final packet w/ rc %d\n",
+                         rc);
                return rc;
        }
 
 
        rc = configure(gspca_dev);
        if (rc < 0) {
-               PERR("Failed configure");
+               gspca_err(gspca_dev, "Failed configure\n");
                return rc;
        }
        /* First two frames have messed up gains
                        V4L2_CID_RED_BALANCE, 0, 1023, 1, 295);
 
        if (hdl->error) {
-               PERR("Could not initialize controls\n");
+               gspca_err(gspca_dev, "Could not initialize controls\n");
                return hdl->error;
        }
        return 0;
 
                ret = value;
                PDEBUG(D_USBI, "i2c [0x%02X] -> 0x%02X", reg, value);
        } else
-               PERR("i2c read [0x%02x] failed", reg);
+               gspca_err(gspca_dev, "i2c read [0x%02x] failed\n", reg);
 
        return ret;
 }