diff options
author | repo sync -j4 # Run four syncs in parallel <sgadagottu@nvidia.com> | 2011-11-04 15:33:57 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:52:41 -0800 |
commit | f2407b3eaf113450b42569cd5942a082f924f2ba (patch) | |
tree | 07c9f11892eb6bc0ad2b59be58ccb0eba216f071 /arch/arm/mach-tegra/baseband-xmm-power2.c | |
parent | 33cdc22fd89824ff72f679d9954dc84cd2783698 (diff) |
arm: tegra: xmm: Implementation for L2 power management
Implemented L2 power management using autopm.
Added code for AP/CP initiated L2->L0 resume.
BUG 828389
BUG 873401
Reviewed-on: http://git-master/r/62115
(cherry picked from commit 14de0dc3ba9637b82a600693730752f2cbfebc66)
Change-Id: I233b777e96592fbf25e3c0a92d2d74dc7162eb40
Reviewed-on: http://git-master/r/66503
Reviewed-by: Michael Hsu <mhsu@nvidia.com>
Tested-by: Michael Hsu <mhsu@nvidia.com>
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-by: Steve Lin <stlin@nvidia.com>
Rebase-Id: R6779d1c8045deee78111d2b5b32a0400a7c3b4b0
Diffstat (limited to 'arch/arm/mach-tegra/baseband-xmm-power2.c')
-rw-r--r-- | arch/arm/mach-tegra/baseband-xmm-power2.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/arch/arm/mach-tegra/baseband-xmm-power2.c b/arch/arm/mach-tegra/baseband-xmm-power2.c index acb2ac344266..bdb3fe3cfba3 100644 --- a/arch/arm/mach-tegra/baseband-xmm-power2.c +++ b/arch/arm/mach-tegra/baseband-xmm-power2.c @@ -26,6 +26,7 @@ #include <linux/delay.h> #include <linux/fs.h> #include <linux/uaccess.h> +#include <linux/wakelock.h> #include <mach/usb_phy.h> #include "baseband-xmm-power.h" #include "board.h" @@ -33,7 +34,7 @@ MODULE_LICENSE("GPL"); -static unsigned long XYZ = 500 * 1000000 + 30 * 1000 + 50; +static unsigned long XYZ = 1000 * 1000000 + 800 * 1000 + 500; module_param(modem_ver, ulong, 0644); MODULE_PARM_DESC(modem_ver, @@ -382,11 +383,10 @@ static void baseband_xmm_power2_flashless_pm_ver_ge_1130_step3 struct file *filp; oldfs = get_fs(); set_fs(KERNEL_DS); - filp = filp_open("/sys/bus/usb/devices/usb2/2-1/manufacturer", + filp = filp_open("/dev/ttyACM0", O_RDONLY, 0); if (IS_ERR(filp) || (filp == NULL)) { - pr_err("open /sys/bus/usb/devices" - "/usb2/2-1/manufacturer failed %ld\n", + pr_err("/dev/ttyACM0 %ld\n", PTR_ERR(filp)); } else { filp_close(filp, NULL); @@ -443,11 +443,10 @@ static void baseband_xmm_power2_flashless_pm_ver_ge_1130_step4 struct file *filp; oldfs = get_fs(); set_fs(KERNEL_DS); - filp = filp_open("/sys/bus/usb/devices/usb2/2-1/manufacturer", + filp = filp_open("/dev/ttyACM0", O_RDONLY, 0); if (IS_ERR(filp) || (filp == NULL)) { - pr_err("open /sys/bus/usb/devices" - "/usb2/2-1/manufacturer failed %ld\n", + pr_err("open /dev/ttyACM0 failed %ld\n", PTR_ERR(filp)); } else { filp_close(filp, NULL); @@ -488,7 +487,7 @@ static void baseband_xmm_power2_work_func(struct work_struct *work) = (struct baseband_xmm_power_work_t *) work; int err; - pr_debug("%s\n", __func__); + pr_debug("%s bbxmm_work->state=%d\n", __func__, bbxmm_work->state); switch (bbxmm_work->state) { case BBXMM_WORK_UNINIT: @@ -598,6 +597,7 @@ static int baseband_xmm_power2_driver_probe(struct platform_device *device) baseband_power2_driver_data = data; /* init work queue */ + pr_debug("%s: init work queue\n", __func__); workqueue = create_singlethread_workqueue ("baseband_xmm_power2_workqueue"); if (!workqueue) { @@ -610,12 +610,12 @@ static int baseband_xmm_power2_driver_probe(struct platform_device *device) pr_err("cannot allocate baseband_xmm_power2_work\n"); return -1; } + pr_debug("%s: BBXMM_WORK_INIT\n", __func__); INIT_WORK((struct work_struct *) baseband_xmm_power2_work, baseband_xmm_power2_work_func); baseband_xmm_power2_work->state = BBXMM_WORK_INIT; queue_work(workqueue, (struct work_struct *) baseband_xmm_power2_work); - return 0; } @@ -693,6 +693,7 @@ static struct platform_driver baseband_power2_driver = { static int __init baseband_xmm_power2_init(void) { pr_debug("%s\n", __func__); + return platform_driver_register(&baseband_power2_driver); } |