Loading drivers/leds/leds-qpnp-flash.c +15 −4 Original line number Diff line number Diff line Loading @@ -225,6 +225,7 @@ struct qpnp_flash_led { struct pinctrl_state *gpio_state_suspend; struct flash_node_data *flash_node; struct power_supply *battery_psy; struct workqueue_struct *ordered_workq; struct mutex flash_led_lock; struct qpnp_flash_led_buffer *log; struct dentry *dbgfs_root; Loading Loading @@ -1479,16 +1480,16 @@ static void qpnp_flash_led_brightness_set(struct led_classdev *led_cdev, flash_node->prgm_current = led->flash_node[0].prgm_current + led->flash_node[1].prgm_current; schedule_work(&flash_node->work); return; } } else { if (value < FLASH_LED_MIN_CURRENT_MA && value != 0) value = FLASH_LED_MIN_CURRENT_MA; flash_node->prgm_current = value; schedule_work(&flash_node->work); return; } queue_work(led->ordered_workq, &flash_node->work); return; } static int qpnp_flash_led_init_settings(struct qpnp_flash_led *led) Loading Loading @@ -2075,6 +2076,13 @@ static int qpnp_flash_led_probe(struct spmi_device *spmi) mutex_init(&led->flash_led_lock); led->ordered_workq = alloc_ordered_workqueue("flash_led_workqueue", 0); if (!led->ordered_workq) { dev_err(&spmi->dev, "Failed to allocate ordered workqueue\n"); return -ENOMEM; } for_each_child_of_node(node, temp) { led->flash_node[i].cdev.brightness_set = qpnp_flash_led_brightness_set; Loading Loading @@ -2184,6 +2192,8 @@ error_led_register: } debugfs_remove_recursive(root); mutex_destroy(&led->flash_led_lock); destroy_workqueue(led->ordered_workq); return rc; } Loading @@ -2202,6 +2212,7 @@ static int qpnp_flash_led_remove(struct spmi_device *spmi) } debugfs_remove_recursive(led->dbgfs_root); mutex_destroy(&led->flash_led_lock); destroy_workqueue(led->ordered_workq); return 0; } Loading Loading
drivers/leds/leds-qpnp-flash.c +15 −4 Original line number Diff line number Diff line Loading @@ -225,6 +225,7 @@ struct qpnp_flash_led { struct pinctrl_state *gpio_state_suspend; struct flash_node_data *flash_node; struct power_supply *battery_psy; struct workqueue_struct *ordered_workq; struct mutex flash_led_lock; struct qpnp_flash_led_buffer *log; struct dentry *dbgfs_root; Loading Loading @@ -1479,16 +1480,16 @@ static void qpnp_flash_led_brightness_set(struct led_classdev *led_cdev, flash_node->prgm_current = led->flash_node[0].prgm_current + led->flash_node[1].prgm_current; schedule_work(&flash_node->work); return; } } else { if (value < FLASH_LED_MIN_CURRENT_MA && value != 0) value = FLASH_LED_MIN_CURRENT_MA; flash_node->prgm_current = value; schedule_work(&flash_node->work); return; } queue_work(led->ordered_workq, &flash_node->work); return; } static int qpnp_flash_led_init_settings(struct qpnp_flash_led *led) Loading Loading @@ -2075,6 +2076,13 @@ static int qpnp_flash_led_probe(struct spmi_device *spmi) mutex_init(&led->flash_led_lock); led->ordered_workq = alloc_ordered_workqueue("flash_led_workqueue", 0); if (!led->ordered_workq) { dev_err(&spmi->dev, "Failed to allocate ordered workqueue\n"); return -ENOMEM; } for_each_child_of_node(node, temp) { led->flash_node[i].cdev.brightness_set = qpnp_flash_led_brightness_set; Loading Loading @@ -2184,6 +2192,8 @@ error_led_register: } debugfs_remove_recursive(root); mutex_destroy(&led->flash_led_lock); destroy_workqueue(led->ordered_workq); return rc; } Loading @@ -2202,6 +2212,7 @@ static int qpnp_flash_led_remove(struct spmi_device *spmi) } debugfs_remove_recursive(led->dbgfs_root); mutex_destroy(&led->flash_led_lock); destroy_workqueue(led->ordered_workq); return 0; } Loading