On 05/10/2018 09:31 AM, Andrew F. Davis wrote: > On 05/10/2018 09:04 AM, Dan Murphy wrote: > >>>> +static int lm3601x_remove(struct i2c_client *client) >>>> +{ >>>> + struct lm3601x_led *led = i2c_get_clientdata(client); >>>> + >>>> + regmap_write(led->regmap, LM3601X_ENABLE_REG, 0); >>>> + >>> >>> >>> If probe doesn't enable this, remove shouldn't disable it. It can lead >>> to odd cases if the driver is removed and added again. >> >> I want to make sure the LED is off and in standby mode. Maybe I will just set it to >> the default value instead. >> > > > Why? If you want to do this then implement PM controls and put it in > standby mode there. > > Implementing PM controls does not cause this line to be removed on a removal. >>> >>> Plus, removing the driver is not a command to disable the LED anyway. >> >> True but you don't want to leave any LEDs in the on state without a driver to support it. >> This could burn out the LED or the board if left on on max brightness >> > > > I disagree, we should not try to decide what the user wants here. We > should only do what we are instructed to do, which for remove() is to > cleanup what probe has done so the driver can be removed w/o leaking > memory or device state. So your OK with a causing a burn out of the device or LED or draining the battery because the driver was unloaded and there is not way to turn it off besides hard power cycling the device. Because even a reboot of the device will still leave the LED on throughout the boot until the driver is reloaded. I will let the maintainer weigh in on this issue. > > >> >> Dan >> -- ------------------ Dan Murphy -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html