int m5602_write_bridge(
        struct sd *sd, u8 address, u8 i2c_data);
 
+int m5602_write_sensor(struct sd *sd, const u8 address,
+                      u8 *i2c_data, const u8 len);
+
 #endif
 
                } else {
                        data[0] = preinit_mt9m111[i][2];
                        data[1] = preinit_mt9m111[i][3];
-                       mt9m111_write_sensor(sd,
+                       m5602_write_sensor(sd,
                                preinit_mt9m111[i][1], data, 2);
                }
        }
                } else {
                        data[0] = init_mt9m111[i][2];
                        data[1] = init_mt9m111[i][3];
-                       err = mt9m111_write_sensor(sd,
+                       err = m5602_write_sensor(sd,
                                init_mt9m111[i][1], data, 2);
                }
        }
        PDEBUG(D_V4L2, "Set vertical flip to %d", val);
 
        /* Set the correct page map */
-       err = mt9m111_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
+       err = m5602_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
        if (err < 0)
                goto out;
 
                goto out;
 
        data[0] = (data[0] & 0xfe) | val;
-       err = mt9m111_write_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B,
+       err = m5602_write_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B,
                                   data, 2);
 out:
        return err;
        PDEBUG(D_V4L2, "Set horizontal flip to %d", val);
 
        /* Set the correct page map */
-       err = mt9m111_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
+       err = m5602_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
        if (err < 0)
                goto out;
 
                goto out;
 
        data[0] = (data[0] & 0xfd) | ((val << 1) & 0x02);
-       err = mt9m111_write_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B,
+       err = m5602_write_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B,
                                        data, 2);
 out:
        return err;
        struct sd *sd = (struct sd *) gspca_dev;
 
        /* Set the correct page map */
-       err = mt9m111_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
+       err = m5602_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
        if (err < 0)
                goto out;
 
        PDEBUG(D_V4L2, "tmp=%d, data[1]=%d, data[0]=%d", tmp,
               data[1], data[0]);
 
-       err = mt9m111_write_sensor(sd, MT9M111_SC_GLOBAL_GAIN,
+       err = m5602_write_sensor(sd, MT9M111_SC_GLOBAL_GAIN,
                                   data, 2);
 out:
        return err;
 
        info("Dumping the mt9m111 sensor core registers");
        value[1] = MT9M111_SENSOR_CORE;
-       mt9m111_write_sensor(sd, MT9M111_PAGE_MAP, value, 2);
+       m5602_write_sensor(sd, MT9M111_PAGE_MAP, value, 2);
        for (address = 0; address < 0xff; address++) {
                mt9m111_read_sensor(sd, address, value, 2);
                info("register 0x%x contains 0x%x%x",
 
        info("Dumping the mt9m111 color pipeline registers");
        value[1] = MT9M111_COLORPIPE;
-       mt9m111_write_sensor(sd, MT9M111_PAGE_MAP, value, 2);
+       m5602_write_sensor(sd, MT9M111_PAGE_MAP, value, 2);
        for (address = 0; address < 0xff; address++) {
                mt9m111_read_sensor(sd, address, value, 2);
                info("register 0x%x contains 0x%x%x",
 
        info("Dumping the mt9m111 camera control registers");
        value[1] = MT9M111_CAMERA_CONTROL;
-       mt9m111_write_sensor(sd, MT9M111_PAGE_MAP, value, 2);
+       m5602_write_sensor(sd, MT9M111_PAGE_MAP, value, 2);
        for (address = 0; address < 0xff; address++) {
                mt9m111_read_sensor(sd, address, value, 2);
                info("register 0x%x contains 0x%x%x",
 
        for (i = 0; i < ARRAY_SIZE(preinit_ov9650); i++) {
                u8 data = preinit_ov9650[i][2];
                if (preinit_ov9650[i][0] == SENSOR)
-                       ov9650_write_sensor(sd,
+                       m5602_write_sensor(sd,
                                            preinit_ov9650[i][1], &data, 1);
                else
                        m5602_write_bridge(sd, preinit_ov9650[i][1], data);
        for (i = 0; i < ARRAY_SIZE(init_ov9650) && !err; i++) {
                data = init_ov9650[i][2];
                if (init_ov9650[i][0] == SENSOR)
-                       err = ov9650_write_sensor(sd, init_ov9650[i][1],
+                       err = m5602_write_sensor(sd, init_ov9650[i][1],
                                                  &data, 1);
                else
                        err = m5602_write_bridge(sd, init_ov9650[i][1], data);
        if (dmi_check_system(ov9650_flip_dmi_table) && !err) {
                info("vflip quirk active");
                data = 0x30;
-               err = ov9650_write_sensor(sd, OV9650_MVFP, &data, 1);
+               err = m5602_write_sensor(sd, OV9650_MVFP, &data, 1);
        }
 
        return err;
        for (i = 0; i < ARRAY_SIZE(power_down_ov9650) && !err; i++) {
                u8 data = power_down_ov9650[i][2];
                if (power_down_ov9650[i][0] == SENSOR)
-                       err = ov9650_write_sensor(sd,
+                       err = m5602_write_sensor(sd,
                                            power_down_ov9650[i][1], &data, 1);
                else
                        err = m5602_write_bridge(sd, power_down_ov9650[i][1],
 
        /* The 6 MSBs */
        i2c_data = (val >> 10) & 0x3f;
-       err = ov9650_write_sensor(sd, OV9650_AECHM,
+       err = m5602_write_sensor(sd, OV9650_AECHM,
                                  &i2c_data, 1);
        if (err < 0)
                goto out;
 
        /* The 8 middle bits */
        i2c_data = (val >> 2) & 0xff;
-       err = ov9650_write_sensor(sd, OV9650_AECH,
+       err = m5602_write_sensor(sd, OV9650_AECH,
                                  &i2c_data, 1);
        if (err < 0)
                goto out;
 
        /* The 2 LSBs */
        i2c_data = val & 0x03;
-       err = ov9650_write_sensor(sd, OV9650_COM1, &i2c_data, 1);
+       err = m5602_write_sensor(sd, OV9650_COM1, &i2c_data, 1);
 
 out:
        return err;
        /* Mask away all uninteresting bits */
        i2c_data = ((val & 0x0300) >> 2) |
                        (i2c_data & 0x3F);
-       err = ov9650_write_sensor(sd, OV9650_VREF, &i2c_data, 1);
+       err = m5602_write_sensor(sd, OV9650_VREF, &i2c_data, 1);
 
        /* The 8 LSBs */
        i2c_data = val & 0xff;
-       err = ov9650_write_sensor(sd, OV9650_GAIN, &i2c_data, 1);
+       err = m5602_write_sensor(sd, OV9650_GAIN, &i2c_data, 1);
        return err;
 }
 
                             val & 0xff);
 
        i2c_data = val & 0xff;
-       err = ov9650_write_sensor(sd, OV9650_RED, &i2c_data, 1);
+       err = m5602_write_sensor(sd, OV9650_RED, &i2c_data, 1);
 
        return err;
 }
               val & 0xff);
 
        i2c_data = val & 0xff;
-       err = ov9650_write_sensor(sd, OV9650_BLUE, &i2c_data, 1);
+       err = m5602_write_sensor(sd, OV9650_BLUE, &i2c_data, 1);
 
        return err;
 }
                i2c_data = ((i2c_data & 0xdf) |
                           ((val & 0x01) << 5));
 
-       err = ov9650_write_sensor(sd, OV9650_MVFP, &i2c_data, 1);
+       err = m5602_write_sensor(sd, OV9650_MVFP, &i2c_data, 1);
 out:
        return err;
 }
                i2c_data = ((i2c_data & 0xef) |
                                ((val & 0x01) << 4));
 
-       err = ov9650_write_sensor(sd, OV9650_MVFP, &i2c_data, 1);
+       err = m5602_write_sensor(sd, OV9650_MVFP, &i2c_data, 1);
 out:
        return err;
 }
 
        /* Mask away all uninteresting bits */
        i2c_data = ((val & 0x0300) >> 2) | (i2c_data & 0x3F);
-       err = ov9650_write_sensor(sd, OV9650_VREF, &i2c_data, 1);
+       err = m5602_write_sensor(sd, OV9650_VREF, &i2c_data, 1);
        if (err < 0)
                goto out;
 
        /* The 8 LSBs */
        i2c_data = val & 0xff;
-       err = ov9650_write_sensor(sd, OV9650_GAIN, &i2c_data, 1);
+       err = m5602_write_sensor(sd, OV9650_GAIN, &i2c_data, 1);
 
 out:
        return err;
                goto out;
 
        i2c_data = ((i2c_data & 0xfd) | ((val & 0x01) << 1));
-       err = ov9650_write_sensor(sd, OV9650_COM8, &i2c_data, 1);
+       err = m5602_write_sensor(sd, OV9650_COM8, &i2c_data, 1);
 out:
        return err;
 }
                goto out;
 
        i2c_data = ((i2c_data & 0xfb) | ((val & 0x01) << 2));
-       err = ov9650_write_sensor(sd, OV9650_COM8, &i2c_data, 1);
+       err = m5602_write_sensor(sd, OV9650_COM8, &i2c_data, 1);
 out:
        return err;
 }
                u8 test_value[2] = {0xff, 0xff};
 
                ov9650_read_sensor(sd, address, &old_value, 1);
-               ov9650_write_sensor(sd, address, test_value, 1);
+               m5602_write_sensor(sd, address, test_value, 1);
                ov9650_read_sensor(sd, address, &ctrl_value, 1);
 
                if (ctrl_value == test_value[0])
                        info("register 0x%x is read only", address);
 
                /* Restore original value */
-               ov9650_write_sensor(sd, address, &old_value, 1);
+               m5602_write_sensor(sd, address, &old_value, 1);
        }
 }
 
        for (i = 0; i < ARRAY_SIZE(preinit_po1030); i++) {
                u8 data = preinit_po1030[i][2];
                if (preinit_po1030[i][0] == SENSOR)
-                       po1030_write_sensor(sd,
+                       m5602_write_sensor(sd,
                                preinit_po1030[i][1], &data, 1);
                else
                        m5602_write_bridge(sd, preinit_po1030[i][1], data);
 
                case SENSOR:
                        data[0] = init_po1030[i][2];
-                       err = po1030_write_sensor(sd,
+                       err = m5602_write_sensor(sd,
                                init_po1030[i][1], data, 1);
                        break;
 
                case SENSOR_LONG:
                        data[0] = init_po1030[i][2];
                        data[1] = init_po1030[i][3];
-                       err = po1030_write_sensor(sd,
+                       err = m5602_write_sensor(sd,
                                init_po1030[i][1], data, 2);
                        break;
                default:
        PDEBUG(D_V4L2, "Set exposure to high byte to 0x%x",
               i2c_data);
 
-       err = po1030_write_sensor(sd, PO1030_REG_INTEGLINES_H,
+       err = m5602_write_sensor(sd, PO1030_REG_INTEGLINES_H,
                                  &i2c_data, 1);
        if (err < 0)
                goto out;
        i2c_data = (val & 0xff);
        PDEBUG(D_V4L2, "Set exposure to low byte to 0x%x",
               i2c_data);
-       err = po1030_write_sensor(sd, PO1030_REG_INTEGLINES_M,
+       err = m5602_write_sensor(sd, PO1030_REG_INTEGLINES_M,
                                  &i2c_data, 1);
 
 out:
 
        i2c_data = (val & 0x01) << 7;
 
-       err = po1030_write_sensor(sd, PO1030_REG_CONTROL2,
+       err = m5602_write_sensor(sd, PO1030_REG_CONTROL2,
                                  &i2c_data, 1);
 
        return err;
 
        i2c_data = (val & 0x01) << 6;
 
-       err = po1030_write_sensor(sd, PO1030_REG_CONTROL2,
+       err = m5602_write_sensor(sd, PO1030_REG_CONTROL2,
                                  &i2c_data, 1);
 
        return err;
 
        i2c_data = val & 0xff;
        PDEBUG(D_V4L2, "Set global gain to %d", i2c_data);
-       err = po1030_write_sensor(sd, PO1030_REG_GLOBALGAIN,
+       err = m5602_write_sensor(sd, PO1030_REG_GLOBALGAIN,
                                  &i2c_data, 1);
        return err;
 }
 
        i2c_data = val & 0xff;
        PDEBUG(D_V4L2, "Set red gain to %d", i2c_data);
-       err = po1030_write_sensor(sd, PO1030_REG_RED_GAIN,
+       err = m5602_write_sensor(sd, PO1030_REG_RED_GAIN,
                                  &i2c_data, 1);
        return err;
 }
        int err;
        i2c_data = val & 0xff;
        PDEBUG(D_V4L2, "Set blue gain to %d", i2c_data);
-       err = po1030_write_sensor(sd, PO1030_REG_BLUE_GAIN,
+       err = m5602_write_sensor(sd, PO1030_REG_BLUE_GAIN,
                                  &i2c_data, 1);
 
        return err;
                u8 test_value[2] = {0xff, 0xff};
 
                po1030_read_sensor(sd, address, &old_value, 1);
-               po1030_write_sensor(sd, address, test_value, 1);
+               m5602_write_sensor(sd, address, test_value, 1);
                po1030_read_sensor(sd, address, &ctrl_value, 1);
 
                if (ctrl_value == test_value[0])
                        info("register 0x%x is read only", address);
 
                /* Restore original value */
-               po1030_write_sensor(sd, address, &old_value, 1);
+               m5602_write_sensor(sd, address, &old_value, 1);
        }
 }
 
 
                case SENSOR:
                        data[0] = preinit_s5k4aa[i][2];
-                       err = s5k4aa_write_sensor(sd,
+                       err = m5602_write_sensor(sd,
                                                  preinit_s5k4aa[i][1],
                                                  data, 1);
                        break;
                case SENSOR_LONG:
                        data[0] = preinit_s5k4aa[i][2];
                        data[1] = preinit_s5k4aa[i][3];
-                       err = s5k4aa_write_sensor(sd,
+                       err = m5602_write_sensor(sd,
                                                  preinit_s5k4aa[i][1],
                                                  data, 2);
                        break;
 
                case SENSOR:
                        data[0] = init_s5k4aa[i][2];
-                       err = s5k4aa_write_sensor(sd,
+                       err = m5602_write_sensor(sd,
                                init_s5k4aa[i][1], data, 1);
                        break;
 
                case SENSOR_LONG:
                        data[0] = init_s5k4aa[i][2];
                        data[1] = init_s5k4aa[i][3];
-                       err = s5k4aa_write_sensor(sd,
+                       err = m5602_write_sensor(sd,
                                init_s5k4aa[i][1], data, 2);
                        break;
                default:
        if (!err && dmi_check_system(s5k4aa_vflip_dmi_table)) {
                u8 data = 0x02;
                info("vertical flip quirk active");
-               s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
+               m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
                s5k4aa_read_sensor(sd, S5K4AA_READ_MODE, &data, 1);
                data |= S5K4AA_RM_V_FLIP;
                data &= ~S5K4AA_RM_H_FLIP;
-               s5k4aa_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
+               m5602_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
 
                /* Decrement COLSTART to preserve color order (BGGR) */
                s5k4aa_read_sensor(sd, S5K4AA_COLSTART_LO, &data, 1);
                data--;
-               s5k4aa_write_sensor(sd, S5K4AA_COLSTART_LO, &data, 1);
+               m5602_write_sensor(sd, S5K4AA_COLSTART_LO, &data, 1);
 
                /* Increment ROWSTART to preserve color order (BGGR) */
                s5k4aa_read_sensor(sd, S5K4AA_ROWSTART_LO, &data, 1);
                data++;
-               s5k4aa_write_sensor(sd, S5K4AA_ROWSTART_LO, &data, 1);
+               m5602_write_sensor(sd, S5K4AA_ROWSTART_LO, &data, 1);
        }
 
        return (err < 0) ? err : 0;
        u8 data = S5K4AA_PAGE_MAP_2;
        int err;
 
-       err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
                goto out;
 
        int err;
 
        PDEBUG(D_V4L2, "Set exposure to %d", val);
-       err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
                goto out;
        data = (val >> 8) & 0xff;
-       err = s5k4aa_write_sensor(sd, S5K4AA_EXPOSURE_HI, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_EXPOSURE_HI, &data, 1);
        if (err < 0)
                goto out;
        data = val & 0xff;
-       err = s5k4aa_write_sensor(sd, S5K4AA_EXPOSURE_LO, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_EXPOSURE_LO, &data, 1);
 out:
        return err;
 }
        u8 data = S5K4AA_PAGE_MAP_2;
        int err;
 
-       err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
                goto out;
 
        int err;
 
        PDEBUG(D_V4L2, "Set vertical flip to %d", val);
-       err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
                goto out;
-       err = s5k4aa_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
        if (err < 0)
                goto out;
        data = ((data & ~S5K4AA_RM_V_FLIP)
                        | ((val & 0x01) << 7));
-       err = s5k4aa_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
        if (err < 0)
                goto out;
 
                        goto out;
 
                data++;
-               err = s5k4aa_write_sensor(sd, S5K4AA_ROWSTART_LO, &data, 1);
+               err = m5602_write_sensor(sd, S5K4AA_ROWSTART_LO, &data, 1);
        } else {
                err = s5k4aa_read_sensor(sd, S5K4AA_ROWSTART_LO, &data, 1);
                if (err < 0)
                        goto out;
 
                data--;
-               err = s5k4aa_write_sensor(sd, S5K4AA_ROWSTART_LO, &data, 1);
+               err = m5602_write_sensor(sd, S5K4AA_ROWSTART_LO, &data, 1);
        }
 out:
        return err;
        u8 data = S5K4AA_PAGE_MAP_2;
        int err;
 
-       err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
                goto out;
 
 
        PDEBUG(D_V4L2, "Set horizontal flip to %d",
               val);
-       err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
                goto out;
-       err = s5k4aa_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
        if (err < 0)
                goto out;
 
        data = ((data & ~S5K4AA_RM_H_FLIP) | ((val & 0x01) << 6));
-       err = s5k4aa_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_READ_MODE, &data, 1);
        if (err < 0)
                goto out;
 
                if (err < 0)
                        goto out;
                data++;
-               err = s5k4aa_write_sensor(sd, S5K4AA_COLSTART_LO, &data, 1);
+               err = m5602_write_sensor(sd, S5K4AA_COLSTART_LO, &data, 1);
                if (err < 0)
                        goto out;
        } else {
                if (err < 0)
                        goto out;
                data--;
-               err = s5k4aa_write_sensor(sd, S5K4AA_COLSTART_LO, &data, 1);
+               err = m5602_write_sensor(sd, S5K4AA_COLSTART_LO, &data, 1);
        }
 out:
        return err;
        u8 data = S5K4AA_PAGE_MAP_2;
        int err;
 
-       err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
                goto out;
 
        int err;
 
        PDEBUG(D_V4L2, "Set gain to %d", val);
-       err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
        if (err < 0)
                goto out;
 
        data = val & 0xff;
-       err = s5k4aa_write_sensor(sd, S5K4AA_GAIN_2, &data, 1);
+       err = m5602_write_sensor(sd, S5K4AA_GAIN_2, &data, 1);
 
 out:
        return err;
        u8 page, old_page;
        s5k4aa_read_sensor(sd, S5K4AA_PAGE_MAP, &old_page, 1);
        for (page = 0; page < 16; page++) {
-               s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &page, 1);
+               m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &page, 1);
                info("Dumping the s5k4aa register state for page 0x%x", page);
                for (address = 0; address <= 0xff; address++) {
                        u8 value = 0;
        info("s5k4aa register state dump complete");
 
        for (page = 0; page < 16; page++) {
-               s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &page, 1);
+               m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &page, 1);
                info("Probing for which registers that are "
                     "read/write for page 0x%x", page);
                for (address = 0; address <= 0xff; address++) {
                        u8 old_value, ctrl_value, test_value = 0xff;
 
                        s5k4aa_read_sensor(sd, address, &old_value, 1);
-                       s5k4aa_write_sensor(sd, address, &test_value, 1);
+                       m5602_write_sensor(sd, address, &test_value, 1);
                        s5k4aa_read_sensor(sd, address, &ctrl_value, 1);
 
                        if (ctrl_value == test_value)
                                info("register 0x%x is read only", address);
 
                        /* Restore original value */
-                       s5k4aa_write_sensor(sd, address, &old_value, 1);
+                       m5602_write_sensor(sd, address, &old_value, 1);
                }
        }
        info("Read/write register probing complete");
-       s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &old_page, 1);
+       m5602_write_sensor(sd, S5K4AA_PAGE_MAP, &old_page, 1);
 }
 
        for (i = 0; i < ARRAY_SIZE(preinit_s5k83a) && !err; i++) {
                u8 data[2] = {preinit_s5k83a[i][2], preinit_s5k83a[i][3]};
                if (preinit_s5k83a[i][0] == SENSOR)
-                       err = s5k83a_write_sensor(sd, preinit_s5k83a[i][1],
+                       err = m5602_write_sensor(sd, preinit_s5k83a[i][1],
                                data, 2);
                else
                        err = m5602_write_bridge(sd, preinit_s5k83a[i][1],
 
                case SENSOR:
                        data[0] = init_s5k83a[i][2];
-                       err = s5k83a_write_sensor(sd,
+                       err = m5602_write_sensor(sd,
                                init_s5k83a[i][1], data, 1);
                        break;
 
                case SENSOR_LONG:
                        data[0] = init_s5k83a[i][2];
                        data[1] = init_s5k83a[i][3];
-                       err = s5k83a_write_sensor(sd,
+                       err = m5602_write_sensor(sd,
                                init_s5k83a[i][1], data, 2);
                        break;
                default:
        s5k83a_read_sensor(sd, S5K83A_PAGE_MAP, &old_page, 1);
 
        for (page = 0; page < 16; page++) {
-               s5k83a_write_sensor(sd, S5K83A_PAGE_MAP, &page, 1);
+               m5602_write_sensor(sd, S5K83A_PAGE_MAP, &page, 1);
                info("Dumping the s5k83a register state for page 0x%x", page);
                for (address = 0; address <= 0xff; address++) {
                        u8 val = 0;
        info("s5k83a register state dump complete");
 
        for (page = 0; page < 16; page++) {
-               s5k83a_write_sensor(sd, S5K83A_PAGE_MAP, &page, 1);
+               m5602_write_sensor(sd, S5K83A_PAGE_MAP, &page, 1);
                info("Probing for which registers that are read/write "
                      "for page 0x%x", page);
                for (address = 0; address <= 0xff; address++) {
                        u8 old_val, ctrl_val, test_val = 0xff;
 
                        s5k83a_read_sensor(sd, address, &old_val, 1);
-                       s5k83a_write_sensor(sd, address, &test_val, 1);
+                       m5602_write_sensor(sd, address, &test_val, 1);
                        s5k83a_read_sensor(sd, address, &ctrl_val, 1);
 
                        if (ctrl_val == test_val)
                                info("register 0x%x is read only", address);
 
                        /* Restore original val */
-                       s5k83a_write_sensor(sd, address, &old_val, 1);
+                       m5602_write_sensor(sd, address, &old_val, 1);
                }
        }
        info("Read/write register probing complete");
-       s5k83a_write_sensor(sd, S5K83A_PAGE_MAP, &old_page, 1);
+       m5602_write_sensor(sd, S5K83A_PAGE_MAP, &old_page, 1);
 }
 
 int s5k83a_get_brightness(struct gspca_dev *gspca_dev, __s32 *val)
 
        data[0] = 0x00;
        data[1] = 0x20;
-       err = s5k83a_write_sensor(sd, 0x14, data, 2);
+       err = m5602_write_sensor(sd, 0x14, data, 2);
        if (err < 0)
                goto out;
 
        data[0] = 0x01;
        data[1] = 0x00;
-       err = s5k83a_write_sensor(sd, 0x0d, data, 2);
+       err = m5602_write_sensor(sd, 0x0d, data, 2);
        if (err < 0)
                goto out;
 
                  of these registers */
        data[0] = val >> 3; /* brightness, high 5 bits */
        data[1] = val >> 1; /* brightness, high 7 bits */
-       err = s5k83a_write_sensor(sd, S5K83A_BRIGHTNESS, data, 2);
+       err = m5602_write_sensor(sd, S5K83A_BRIGHTNESS, data, 2);
 
 out:
        return err;
        struct sd *sd = (struct sd *) gspca_dev;
 
        data[0] = val;
-       err = s5k83a_write_sensor(sd, S5K83A_WHITENESS, data, 1);
+       err = m5602_write_sensor(sd, S5K83A_WHITENESS, data, 1);
 
        return err;
 }
 
        data[0] = 0;
        data[1] = val;
-       err = s5k83a_write_sensor(sd, S5K83A_GAIN, data, 2);
+       err = m5602_write_sensor(sd, S5K83A_GAIN, data, 2);
        return err;
 }
 
        struct sd *sd = (struct sd *) gspca_dev;
 
        data[0] = 0x05;
-       err = s5k83a_write_sensor(sd, S5K83A_PAGE_MAP, data, 1);
+       err = m5602_write_sensor(sd, S5K83A_PAGE_MAP, data, 1);
        if (err < 0)
                goto out;
 
        struct sd *sd = (struct sd *) gspca_dev;
 
        data[0] = 0x05;
-       err = s5k83a_write_sensor(sd, S5K83A_PAGE_MAP, data, 1);
+       err = m5602_write_sensor(sd, S5K83A_PAGE_MAP, data, 1);
        if (err < 0)
                goto out;
 
        /* set or zero six bit, seven is hflip */
        data[0] = (val) ? (data[0] & 0x80) | 0x40 | S5K83A_FLIP_MASK
                        : (data[0] & 0x80) | S5K83A_FLIP_MASK;
-       err = s5k83a_write_sensor(sd, S5K83A_FLIP, data, 1);
+       err = m5602_write_sensor(sd, S5K83A_FLIP, data, 1);
        if (err < 0)
                goto out;
 
        data[0] = (val) ? 0x0b : 0x0a;
-       err = s5k83a_write_sensor(sd, S5K83A_VFLIP_TUNE, data, 1);
+       err = m5602_write_sensor(sd, S5K83A_VFLIP_TUNE, data, 1);
 
 out:
        return err;
        struct sd *sd = (struct sd *) gspca_dev;
 
        data[0] = 0x05;
-       err = s5k83a_write_sensor(sd, S5K83A_PAGE_MAP, data, 1);
+       err = m5602_write_sensor(sd, S5K83A_PAGE_MAP, data, 1);
        if (err < 0)
                goto out;
 
        struct sd *sd = (struct sd *) gspca_dev;
 
        data[0] = 0x05;
-       err = s5k83a_write_sensor(sd, S5K83A_PAGE_MAP, data, 1);
+       err = m5602_write_sensor(sd, S5K83A_PAGE_MAP, data, 1);
        if (err < 0)
                goto out;
 
        /* set or zero seven bit, six is vflip */
        data[0] = (val) ? (data[0] & 0x40) | 0x80 | S5K83A_FLIP_MASK
                        : (data[0] & 0x40) | S5K83A_FLIP_MASK;
-       err = s5k83a_write_sensor(sd, S5K83A_FLIP, data, 1);
+       err = m5602_write_sensor(sd, S5K83A_FLIP, data, 1);
        if (err < 0)
                goto out;
 
        data[0] = (val) ? 0x0a : 0x0b;
-       err = s5k83a_write_sensor(sd, S5K83A_HFLIP_TUNE, data, 1);
+       err = m5602_write_sensor(sd, S5K83A_HFLIP_TUNE, data, 1);
 out:
        return err;
 }