/* This initializes the OV6x20 camera chip and relevant variables. */ static int ov6x20_init(struct i2c_client *c) { struct ovcamchip *ov = i2c_get_clientdata(c); struct ov6x20 *s; int rc; DDEBUG(4, &c->dev, "entered"); switch (c->adapter->id) { case I2C_ALGO_SMBUS | I2C_HW_SMBUS_OV511: rc = ov_write_regvals(c, regvals_init_6x20_511); break; case I2C_ALGO_SMBUS | I2C_HW_SMBUS_OV518: rc = ov_write_regvals(c, regvals_init_6x20_518); break; default: dev_err(&c->dev, "ov6x20: Unsupported adapter\n"); rc = -ENODEV; } if (rc < 0) return rc; ov->spriv = s = kmalloc(sizeof *s, GFP_KERNEL); if (!s) return -ENOMEM; memset(s, 0, sizeof *s); s->auto_brt = 1; s->auto_exp = 1; return rc; }
static int ov76be_init(struct i2c_client *c) { struct ovcamchip *ov = i2c_get_clientdata(c); struct ov76be *s; int rc; DDEBUG(4, &c->dev, "entered"); rc = ov_write_regvals(c, regvals_init_76be); if (rc < 0) return rc; ov->spriv = s = kzalloc(sizeof *s, GFP_KERNEL); if (!s) return -ENOMEM; s->auto_brt = 1; s->auto_exp = 1; return rc; }