diff options
author | Quinn Jensen <quinn.jensen@freescale.com> | 2007-05-24 18:07:45 -0600 |
---|---|---|
committer | Quinn Jensen <quinn.jensen@freescale.com> | 2007-05-24 18:07:45 -0600 |
commit | 82bd5670411dd16c269cfa61c527b00f30be0bb2 (patch) | |
tree | 681b47d49577fd0834c78710b0f3a45603a2c246 /drivers | |
parent | 7b284f8792b5efb4bc06664190570d01cb6ed553 (diff) |
CR TLSbo87444: Unify light ioctl
Description: Modified the light ioctl such that the implementation is
similar in the case for different PMIC chips.
http://www.bitshrine.org/gpp/linux-2.6.19.2-mx-unify_light_ioctl.patch
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mxc/pmic/mc13783/pmic_light.c | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/drivers/mxc/pmic/mc13783/pmic_light.c b/drivers/mxc/pmic/mc13783/pmic_light.c index 38827077ec1a..077a9b15ea56 100644 --- a/drivers/mxc/pmic/mc13783/pmic_light.c +++ b/drivers/mxc/pmic/mc13783/pmic_light.c @@ -2334,8 +2334,7 @@ static int pmic_light_ioctl(struct inode *inode, struct file *file, CHECK_ERROR_KFREE(pmic_bklit_set_mode(bklit_setting->channel, bklit_setting->mode), (kfree(bklit_setting))); - //CHECK_ERROR(pmic_bklit_set_strobemode(bklit_setting->channel, - // bklit_setting->strobe)); + CHECK_ERROR_KFREE(pmic_bklit_set_current(bklit_setting->channel, bklit_setting-> current_level), @@ -2347,9 +2346,12 @@ static int pmic_light_ioctl(struct inode *inode, struct file *file, CHECK_ERROR_KFREE(pmic_bklit_set_cycle_time (bklit_setting->cycle_time), (kfree(bklit_setting))); - pmic_bklit_set_boost_mode(bklit_setting->en_dis); - pmic_bklit_config_boost_mode(bklit_setting->abms, - bklit_setting->abr); + CHECK_ERROR_KFREE(pmic_bklit_set_boost_mode + (bklit_setting->en_dis), + (kfree(bklit_setting))); + CHECK_ERROR_KFREE(pmic_bklit_config_boost_mode + (bklit_setting->abms, bklit_setting->abr), + (kfree(bklit_setting))); if (bklit_setting->edge_slow != false) { CHECK_ERROR_KFREE(pmic_bklit_enable_edge_slow(), (kfree(bklit_setting))); @@ -2373,18 +2375,30 @@ static int pmic_light_ioctl(struct inode *inode, struct file *file, return -EFAULT; } - pmic_bklit_get_current(bklit_setting->channel, - &bklit_setting->current_level); - pmic_bklit_get_cycle_time(&bklit_setting->cycle_time); - pmic_bklit_get_dutycycle(bklit_setting->channel, - &bklit_setting->duty_cycle); + CHECK_ERROR_KFREE(pmic_bklit_get_current(bklit_setting->channel, + &bklit_setting-> + current_level), + (kfree(bklit_setting))); + CHECK_ERROR_KFREE(pmic_bklit_get_cycle_time + (&bklit_setting->cycle_time), + (kfree(bklit_setting))); + CHECK_ERROR_KFREE(pmic_bklit_get_dutycycle + (bklit_setting->channel, + &bklit_setting->duty_cycle), + (kfree(bklit_setting))); bklit_setting->strobe = BACKLIGHT_STROBE_NONE; - pmic_bklit_get_mode(bklit_setting->channel, - &bklit_setting->mode); - pmic_bklit_get_edge_slow(&bklit_setting->edge_slow); - pmic_bklit_get_boost_mode(&bklit_setting->en_dis); - pmic_bklit_gets_boost_mode(&bklit_setting->abms, - &bklit_setting->abr); + CHECK_ERROR_KFREE(pmic_bklit_get_mode(bklit_setting->channel, + &bklit_setting->mode), + (kfree(bklit_setting))); + CHECK_ERROR_KFREE(pmic_bklit_get_edge_slow + (&bklit_setting->edge_slow), + (kfree(bklit_setting))); + CHECK_ERROR_KFREE(pmic_bklit_get_boost_mode + (&bklit_setting->en_dis), + (kfree(bklit_setting))); + CHECK_ERROR_KFREE(pmic_bklit_gets_boost_mode + (&bklit_setting->abms, &bklit_setting->abr), + (kfree(bklit_setting))); if (copy_to_user((t_bklit_setting_param *) arg, bklit_setting, sizeof(t_bklit_setting_param))) { |