static int miniabb_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) { printk("[Miniabb] :: miniabb i2c probe \n"); struct i2c_client *new_client; struct miniabb_i2c_data *obj; u8 databuf[2]; int err = 0; if(!(obj = kzalloc(sizeof(*obj), GFP_KERNEL))) { miniabb_i2c_client = NULL; return -ENOMEM; } memset(obj, 0, sizeof(struct miniabb_i2c_data)); i2c_data = obj; obj->client = client; new_client = obj->client; i2c_set_clientdata(new_client,obj); miniabb_i2c_client = client; //printk("miniabb_i2c_client number = 0x%x.\n", miniabb_i2c_client); if (MINIABB_CheckDevID(client) < 0) { obj = i2c_get_clientdata(new_client); kfree(obj); miniabb_i2c_client = NULL; return -1; } if(err = miniabb_create_attr(&miniabb_driver.driver)) { printk("miniabb create attribute err = %d\n", err); } /* */ if (Is_Not_FactoryCable_PowerOn() == 0) { miniabb_is_PTM = MINI_ABB_FACTORY_MODE; } else { miniabb_is_PTM = MINI_ABB_NORMAL_MODE; } /* */ return 0; }
static int miniabb_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) { printk("[Miniabb] :: miniabb i2c probe \n"); struct i2c_client *new_client; struct miniabb_i2c_data *obj; u8 databuf[2]; int err = 0; if(!(obj = kzalloc(sizeof(*obj), GFP_KERNEL))) { err = -ENOMEM; goto exit; } memset(obj, 0, sizeof(struct miniabb_i2c_data)); i2c_data = obj; obj->client = client; new_client = obj->client; i2c_set_clientdata(new_client,obj); miniabb_i2c_client = client; //printk("miniabb_i2c_client number = 0x%x.\n", miniabb_i2c_client); MINIABB_CheckDevID(client); if(err = miniabb_create_attr(&miniabb_driver.driver)) { printk("miniabb create attribute err = %d\n", err); } return 0; exit: miniabb_i2c_client = NULL; return err; }