static int __exit bd2802_remove(struct i2c_client *client) { struct bd2802_led *led = i2c_get_clientdata(client); int i; gpio_set_value(led->pdata->reset_gpio, 0); bd2802_unregister_led_classdev(led); if (led->adf_on) bd2802_disable_adv_conf(led); for (i = 0; i < ARRAY_SIZE(bd2802_attributes); i++) device_remove_file(&led->client->dev, bd2802_attributes[i]); return 0; }
static int __exit bd2802_remove(struct i2c_client *client) { struct bd2802_led *led = i2c_get_clientdata(client); bd2802_unregister_led_classdev(led); gpio_set_value(led->pdata->reset_gpio, 0); if (led->adf_on) bd2802_disable_adv_conf(led); device_remove_file(&client->dev, &bd2802_adv_conf_attr); i2c_set_clientdata(client, NULL); kfree(led); return 0; }