#define BRIGHTNESS_MAX 0xffff
                .maximum = BRIGHTNESS_MAX,
                .step    = 1,
-#define BRIGHTNESS_DEF 0x7fff
+#define BRIGHTNESS_DEF 0x8000
                .default_value = BRIGHTNESS_DEF,
            },
            .set = sd_setbrightness,
        unsigned int expo;
        __u8 k2;
 
-       k2 = sd->brightness >> 10;
+       k2 = ((int) sd->brightness - 0x8000) >> 10;
        switch (sd->sensor) {
        case SENSOR_HV7131R:
                expo = sd->brightness << 4;
        case SENSOR_OM6802:
                expo = sd->brightness >> 6;
                sd->exposure = setexposure(gspca_dev, expo);
-               k2 >>= 1;
+               k2 = sd->brightness >> 11;
                break;
        }