--- linux-2.6/drivers/media/video/gspca/zc3xx.c 2008-07-29 23:26:21.000000000 -0400 +++ linux-2.6-wk/drivers/media/video/gspca/zc3xx.c 2008-08-03 02:17:29.000000000 -0400 @@ -6476,12 +6476,15 @@ Tgamma = gamma_tb[sd->gamma]; Tgradient = gradient_tb[sd->gamma]; - k = (sd->contrast - 128) /* -128 / 128 */ + if(!Tgamma) + k = 0; + else + k = (sd->contrast - 128) /* -128 / 128 */ * Tgamma[0]; PDEBUG(D_CONF, "gamma:%d contrast:%d gamma coeff: %d/128", sd->gamma, sd->contrast, k); for (i = 0; i < 16; i++) { - g = Tgamma[i] + kgamma_tb[i] * k / 128; + g = (Tgamma ? Tgamma[i] : 0) + kgamma_tb[i] * k / 128; if (g > 0xff) g = 0xff; else if (g <= 0) @@ -6497,7 +6500,7 @@ PDEBUG(D_CONF, " %02x %02x %02x %02x %02x %02x %02x %02x", v[8], v[9], v[10], v[11], v[12], v[13], v[14], v[15]); for (i = 0; i < 16; i++) { - g = Tgradient[i] - kgrad_tb[i] * k / 128; + g = (Tgradient ? Tgradient[i] : 0) - kgrad_tb[i] * k / 128; if (g > 0xff) g = 0xff; else if (g <= 0) {