summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/baseband-xmm-power2.c
diff options
context:
space:
mode:
authorrepo sync -j4 # Run four syncs in parallel <sgadagottu@nvidia.com>2011-11-04 15:33:57 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:52:41 -0800
commitf2407b3eaf113450b42569cd5942a082f924f2ba (patch)
tree07c9f11892eb6bc0ad2b59be58ccb0eba216f071 /arch/arm/mach-tegra/baseband-xmm-power2.c
parent33cdc22fd89824ff72f679d9954dc84cd2783698 (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.c19
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);
}