void ICACHE_FLASH_ATTR led_object_pack(PARAMS * params) { if(NULL == params) { PRINTF("Create first tlv param failed.\n"); return; } struct led* led = create_led(); led_get(led); if (add_next_uint8(params, led->red)) { PRINTF("Add next tlv param failed.\n"); return; } if (add_next_uint8(params, led->green)) { PRINTF("Add next tlv param failed.\n"); return; } if (add_next_uint8(params, led->blue)) { PRINTF("Add next tlv param failed.\n"); return; } delete_led(led); }
void ICACHE_FLASH_ATTR led_object_unpack(PARAMS* params) { struct led* led = create_led(); led->red = get_next_uint8(params); led->green = get_next_uint8(params); led->blue = get_next_uint8(params); led_set(led); delete_led(led); }
static int asus_led_remove(struct i2c_client *client) { struct led_info_priv *priv; int i; LED_INFO("%s +++ \n", __func__); priv = dev_get_drvdata(&client->dev); for (i = 0; i < priv->num_leds; i++) { #ifdef CONTROL_LED device_remove_file(priv->leds[i].cdev.dev, &dev_attr_disable); #endif device_remove_file(priv->leds[i].cdev.dev, &dev_attr_blink); delete_led(&priv->leds[i]); } dev_set_drvdata(&client->dev, NULL); kfree(priv); return 0; }
static int asus_led_remove(struct platform_device *pdev) { struct led_info_priv *priv = dev_get_drvdata(&pdev->dev); int i; LED_info("%s\n", __func__); for (i = 0; i < priv->num_leds; i++) { #ifdef CONTROL_LED device_remove_file(&priv->leds[i].cdev.dev, &dev_attr_disable); #endif device_remove_file(&priv->leds[i].cdev.dev, &dev_attr_blink); delete_led(&priv->leds[i]); } dev_set_drvdata(&pdev->dev, NULL); kfree(priv); gpio_free(RED_LED_GPIO); gpio_free(GREEN_LED_GPIO); return 0; }