diff options
author | Kumar Sanghvi <Kumar.Sanghvi@stericsson.com> | 2010-04-15 19:07:05 +0530 |
---|---|---|
committer | John Rigby <john.rigby@linaro.org> | 2010-09-02 22:45:04 -0600 |
commit | 2f0eb522b8bd35f251cd36e864c7cde9549d2e00 (patch) | |
tree | 10cbf8a828e15b4630e100747b4fcbb193dd4593 | |
parent | 4964f19d26679a556faa45773fa9286a07b16777 (diff) | |
download | linux-2.6.34-ux500-2f0eb522b8bd35f251cd36e864c7cde9549d2e00.tar.gz |
PRCMU: Move mod_sw_reset_req handling from AckMb7 to AckMb0
as per PRCMU FW 12_0_4_0
Signed-off-by: Kumar Sanghvi <Kumar.Sanghvi@stericsson.com>
-rwxr-xr-x | arch/arm/mach-ux500/prcmu-fw.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/arch/arm/mach-ux500/prcmu-fw.c b/arch/arm/mach-ux500/prcmu-fw.c index 1668539959c..4f2df6c7640 100755 --- a/arch/arm/mach-ux500/prcmu-fw.c +++ b/arch/arm/mach-ux500/prcmu-fw.c @@ -1845,16 +1845,26 @@ void prcmu_ack_mb0_wkuph_status_tasklet(unsigned long tasklet_data) /* ca_wake_req signal - modem wakes up ARM */ if (event_8500 & (1 << 5)) { /* call shrm driver callback */ + dbg_printk("ack_mb0_tasklet:ca_wake_req arrived !\n"); if (prcmu_ca_wake_req_shrm_callback != NULL) (*prcmu_ca_wake_req_shrm_callback)(1); else { - printk(KERN_INFO "\n prcmu: SHRM callback for \ - ca_wake_req not registered!!\n"); + printk(KERN_INFO "\nSHRM callback ca_wake_req NULL\n"); /* SHRM driver not initialized */ spin_lock_irqsave(&ca_wake_lock, flags); ca_wake_req_pending++; spin_unlock_irqrestore(&ca_wake_lock, flags); } + } else if (event_8500 & (1 << 20)) { + /* mod_sw_reset_req bit - forward it to SHRM driver*/ + dbg_printk("ack_mb0_tasklet:mod_sw_reset_req arrived !\n"); + if (prcmu_modem_reset_shrm != NULL) + (*prcmu_modem_reset_shrm)(); + else { + /* SHRM callback for reset not registered!*/ + printk(KERN_INFO "\nSHRM callback for reset NULL\n"); + } + } prcmu_ack_wakeup_reason(); @@ -1871,19 +1881,13 @@ void prcmu_ack_mb7_status_tasklet(unsigned long tasklet_data) /* read the ack mb7 value and carry out actions accordingly */ u8 ack_mb7 = readb(PRCM_ACK_MB7); + dbg_printk("\n prcmu_ack_mb7_status_tasklet \n"); + switch (ack_mb7) { - case MOD_SW_RESET_REQ: - /*forward the reset request to SHRM */ - if (prcmu_modem_reset_shrm != NULL) - (*prcmu_modem_reset_shrm)(); - else { - /* SHRM callback for reset not registered!*/ - printk(KERN_INFO "\nSHRM callback for reset NULL\n"); - } - break; case CA_SLEEP_REQ: /* modem no longer requires to communicate * with ARM so ARM can go to sleep */ + dbg_printk("\nack_mb7_tasklet:CA_SLEEP_REQ\n"); if (prcmu_ca_wake_req_shrm_callback != NULL) (*prcmu_ca_wake_req_shrm_callback)(0); else { @@ -1894,6 +1898,7 @@ void prcmu_ack_mb7_status_tasklet(unsigned long tasklet_data) case HOST_PORT_ACK: /* modem up.ARM can communicate to modem */ /* wake_up_interruptible- prcmu_arm_wakeup_modem api*/ + dbg_printk("\nack_mb7_tasklet:HOST_PORT_ACK\n"); wake_up_interruptible(&ack_mb7_queue); break; }; |