static int bfin_lq035_fb_open(struct fb_info *info, int user) { unsigned long flags; spin_lock_irqsave(&bfin_lq035_lock, flags); lq035_open_cnt++; spin_unlock_irqrestore(&bfin_lq035_lock, flags); if (lq035_open_cnt <= 1) { bfin_write_PPI_CONTROL(0); SSYNC(); set_vcomm(); config_dma(); config_ppi(); /* start dma */ enable_dma(CH_PPI); SSYNC(); bfin_write_PPI_CONTROL(bfin_read_PPI_CONTROL() | PORT_EN); SSYNC(); if (!t_conf_done) { config_timers(); start_timers(); } /* gpio_set_value(MOD,1); */ } return 0; }
static int ad5280_probe(struct i2c_adapter *adap, int addr, int kind) { struct i2c_client *client; int rc; client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); if (!client) return -ENOMEM; strncpy(client->name, ad5280_drv_name, I2C_NAME_SIZE); client->addr = addr; client->adapter = adap; client->driver = &ad5280_driver; if ((rc = i2c_attach_client(client)) != 0) { kfree(client); printk(KERN_ERR DRIVER_NAME ": i2c_attach_client fail: %d\n", rc); return rc; } ad5280_client = client; set_vcomm(); return 0; }