public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] dspbridge: maemo lingering patches
@ 2010-01-23 10:19 Felipe Contreras
  2010-01-23 10:19 ` [PATCH 1/2] DSPBRIDGE: Use enable_off_mode variable instead of dsp_test_sleepstate Felipe Contreras
  2010-01-23 10:19 ` [PATCH 2/2] DSPBRIDGE: Various compile warning fixes Felipe Contreras
  0 siblings, 2 replies; 7+ messages in thread
From: Felipe Contreras @ 2010-01-23 10:19 UTC (permalink / raw)
  To: linux-omap; +Cc: Omar Ramirez Luna, Felipe Contreras

Hi,

These are some patches that were lingering in the maemo branch since a long
time ago.

Jouni Hogander (1):
  DSPBRIDGE: Use enable_off_mode variable instead of
    dsp_test_sleepstate

Mika Kukkonen (1):
  DSPBRIDGE: Various compile warning fixes

 arch/arm/plat-omap/include/dspbridge/dbc.h |    6 +++---
 arch/arm/plat-omap/include/dspbridge/dbg.h |    4 ++--
 arch/arm/plat-omap/include/dspbridge/gt.h  |   16 +++++++++-------
 arch/arm/plat-omap/include/dspbridge/mem.h |    2 +-
 drivers/dsp/bridge/rmgr/drv_interface.c    |    5 -----
 drivers/dsp/bridge/wmd/io_sm.c             |    5 ++---
 drivers/dsp/bridge/wmd/tiomap3430_pwr.c    |    9 ++++-----
 drivers/dsp/bridge/wmd/ue_deh.c            |    2 +-
 8 files changed, 22 insertions(+), 27 deletions(-)


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] DSPBRIDGE: Use enable_off_mode variable instead of dsp_test_sleepstate
  2010-01-23 10:19 [PATCH 0/2] dspbridge: maemo lingering patches Felipe Contreras
@ 2010-01-23 10:19 ` Felipe Contreras
  2010-01-26 22:23   ` Omar Ramirez Luna
  2010-01-23 10:19 ` [PATCH 2/2] DSPBRIDGE: Various compile warning fixes Felipe Contreras
  1 sibling, 1 reply; 7+ messages in thread
From: Felipe Contreras @ 2010-01-23 10:19 UTC (permalink / raw)
  To: linux-omap; +Cc: Omar Ramirez Luna, Jouni Hogander, Hiroshi DOYU

From: Jouni Hogander <jouni.hogander@nokia.com>

Signed-off-by: Jouni Hogander <jouni.hogander@nokia.com>
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
---
 drivers/dsp/bridge/rmgr/drv_interface.c |    5 -----
 drivers/dsp/bridge/wmd/tiomap3430_pwr.c |    9 ++++-----
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/drivers/dsp/bridge/rmgr/drv_interface.c b/drivers/dsp/bridge/rmgr/drv_interface.c
index a02a32a..b20f77e 100644
--- a/drivers/dsp/bridge/rmgr/drv_interface.c
+++ b/drivers/dsp/bridge/rmgr/drv_interface.c
@@ -78,8 +78,6 @@ s32 dsp_debug;
 
 struct platform_device *omap_dspbridge_dev;
 
-/* This is a test variable used by Bridge to test different sleep states */
-s32 dsp_test_sleepstate;
 struct bridge_dev {
 	struct cdev cdev;
 };
@@ -129,9 +127,6 @@ module_param(dsp_debug, int, 0);
 MODULE_PARM_DESC(dsp_debug, "Wait after loading DSP image. default = false");
 #endif
 
-module_param(dsp_test_sleepstate, int, 0);
-MODULE_PARM_DESC(dsp_test_sleepstate, "DSP Sleep state = 0");
-
 module_param(base_img, charp, 0);
 MODULE_PARM_DESC(base_img, "DSP base image, default = NULL");
 
diff --git a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
index 084f406..c0e0994 100644
--- a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
+++ b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
@@ -54,10 +54,9 @@
 #include <mach-omap2/cm-regbits-34xx.h>
 
 #ifdef CONFIG_PM
-extern s32 dsp_test_sleepstate;
+extern unsigned short enable_off_mode;
 #endif
 extern struct MAILBOX_CONTEXT mboxsetting;
-
 /*
  *  ======== handle_constraints_set ========
  *  	Sets new DSP constraint
@@ -196,7 +195,7 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN u32 dwCmd,
 	switch (pDevContext->dwBrdState) {
 	case BRD_RUNNING:
 		status = HW_MBOX_saveSettings(resources.dwMboxBase);
-		if (dsp_test_sleepstate == HW_PWR_STATE_OFF) {
+		if (enable_off_mode) {
 			CHNLSM_InterruptDSP2(pDevContext,
 					     MBX_PM_DSPHIBERNATE);
 			DBG_Trace(DBG_LEVEL7,
@@ -211,7 +210,7 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN u32 dwCmd,
 		break;
 	case BRD_RETENTION:
 		status = HW_MBOX_saveSettings(resources.dwMboxBase);
-		if (dsp_test_sleepstate == HW_PWR_STATE_OFF) {
+		if (enable_off_mode) {
 			CHNLSM_InterruptDSP2(pDevContext,
 					     MBX_PM_DSPHIBERNATE);
 			targetPwrState = HW_PWR_STATE_OFF;
@@ -261,7 +260,7 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN u32 dwCmd,
 			 pwrState);
 
 		/* Update the Bridger Driver state */
-		if (dsp_test_sleepstate == HW_PWR_STATE_OFF)
+		if (enable_off_mode)
 			pDevContext->dwBrdState = BRD_HIBERNATION;
 		else
 			pDevContext->dwBrdState = BRD_RETENTION;
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] DSPBRIDGE: Various compile warning fixes
  2010-01-23 10:19 [PATCH 0/2] dspbridge: maemo lingering patches Felipe Contreras
  2010-01-23 10:19 ` [PATCH 1/2] DSPBRIDGE: Use enable_off_mode variable instead of dsp_test_sleepstate Felipe Contreras
@ 2010-01-23 10:19 ` Felipe Contreras
  1 sibling, 0 replies; 7+ messages in thread
From: Felipe Contreras @ 2010-01-23 10:19 UTC (permalink / raw)
  To: linux-omap; +Cc: Omar Ramirez Luna, Mika Kukkonen, Ameya Palande

From: Mika Kukkonen <mika.kukkonen@nokia.com>

This patch contains indentation fixes and cleans up various warnings
uncovered with extra warning flags:
  - empty if() bodies
  - incorrect use of unsigned variables
  - bad comparison of pointer value
  - pointless check of unsigned value being smaller than zero
  - keyword 'extern' has to be first one in variable declaration

Signed-off-by: Mika Kukkonen <mika.kukkonen@nokia.com>
Signed-off-by: Ameya Palande <ameya.palande@nokia.com>
---
 arch/arm/plat-omap/include/dspbridge/dbc.h |    6 +++---
 arch/arm/plat-omap/include/dspbridge/dbg.h |    4 ++--
 arch/arm/plat-omap/include/dspbridge/gt.h  |   16 +++++++++-------
 arch/arm/plat-omap/include/dspbridge/mem.h |    2 +-
 drivers/dsp/bridge/wmd/io_sm.c             |    5 ++---
 drivers/dsp/bridge/wmd/ue_deh.c            |    2 +-
 6 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/arch/arm/plat-omap/include/dspbridge/dbc.h b/arch/arm/plat-omap/include/dspbridge/dbc.h
index ac5d178..1b3ac44 100644
--- a/arch/arm/plat-omap/include/dspbridge/dbc.h
+++ b/arch/arm/plat-omap/include/dspbridge/dbc.h
@@ -43,9 +43,9 @@
 
 #else
 
-#define DBC_Assert(exp)
-#define DBC_Require(exp)
-#define DBC_Ensure(exp)
+#define DBC_Assert(exp) {}
+#define DBC_Require(exp) {}
+#define DBC_Ensure(exp) {}
 
 #endif				/* DEBUG */
 
diff --git a/arch/arm/plat-omap/include/dspbridge/dbg.h b/arch/arm/plat-omap/include/dspbridge/dbg.h
index 2f61dab..4d01eca 100644
--- a/arch/arm/plat-omap/include/dspbridge/dbg.h
+++ b/arch/arm/plat-omap/include/dspbridge/dbg.h
@@ -80,9 +80,9 @@
 	extern DSP_STATUS DBG_Trace(IN u8 bLevel, IN char *pstrFormat, ...);
 #else
 
-#define DBG_Exit(void)
+#define DBG_Exit(void) do {} while (0)
 #define DBG_Init(void) true
-#define DBG_Trace(bLevel, pstrFormat, args...)
+#define DBG_Trace(bLevel, pstrFormat, args...) do {} while (0)
 
 #endif	/* (CONFIG_BRIDGE_DEBUG || DDSP_DEBUG_PRODUCT) && GT_TRACE */
 
diff --git a/arch/arm/plat-omap/include/dspbridge/gt.h b/arch/arm/plat-omap/include/dspbridge/gt.h
index 6082d15..9097910 100644
--- a/arch/arm/plat-omap/include/dspbridge/gt.h
+++ b/arch/arm/plat-omap/include/dspbridge/gt.h
@@ -252,13 +252,15 @@ extern struct GT_Config _GT_params;
 
 #define GT_query(mask, class)     false
 
-#define GT_0trace(mask, class, format)
-#define GT_1trace(mask, class, format, arg1)
-#define GT_2trace(mask, class, format, arg1, arg2)
-#define GT_3trace(mask, class, format, arg1, arg2, arg3)
-#define GT_4trace(mask, class, format, arg1, arg2, arg3, arg4)
-#define GT_5trace(mask, class, format, arg1, arg2, arg3, arg4, arg5)
-#define GT_6trace(mask, class, format, arg1, arg2, arg3, arg4, arg5, arg6)
+#define GT_0trace(mask, class, format) do {} while (0)
+#define GT_1trace(mask, class, format, arg1) do {} while (0)
+#define GT_2trace(mask, class, format, arg1, arg2) do {} while (0)
+#define GT_3trace(mask, class, format, arg1, arg2, arg3) do {} while (0)
+#define GT_4trace(mask, class, format, arg1, arg2, arg3, arg4) do {} while (0)
+#define GT_5trace(mask, class, format, arg1, arg2, arg3, arg4, arg5) \
+	do {} while (0)
+#define GT_6trace(mask, class, format, arg1, arg2, arg3, arg4, arg5, arg6) \
+	do {} while (0)
 
 #else				/* GT_TRACE == 1 */
 
diff --git a/arch/arm/plat-omap/include/dspbridge/mem.h b/arch/arm/plat-omap/include/dspbridge/mem.h
index 03b419a..353ffb0 100644
--- a/arch/arm/plat-omap/include/dspbridge/mem.h
+++ b/arch/arm/plat-omap/include/dspbridge/mem.h
@@ -286,7 +286,7 @@
  *  Ensures:
  *      - pBaseAddr no longer points to a valid linear address.
  */
-#define MEM_UnmapLinearAddress(pBaseAddr)
+#define MEM_UnmapLinearAddress(pBaseAddr) {}
 
 /*
  *  ======== MEM_ExtPhysPoolInit ========
diff --git a/drivers/dsp/bridge/wmd/io_sm.c b/drivers/dsp/bridge/wmd/io_sm.c
index e35ce57..587dc6c 100644
--- a/drivers/dsp/bridge/wmd/io_sm.c
+++ b/drivers/dsp/bridge/wmd/io_sm.c
@@ -221,8 +221,7 @@ DSP_STATUS WMD_IO_Create(OUT struct IO_MGR **phIOMgr,
 		bridge_workqueue = create_workqueue("bridge_work-queue");
 
 	if (bridge_workqueue <= 0)
-		DBG_Trace(DBG_LEVEL1, "Workque Create failed 0x%d \n",
-						bridge_workqueue);
+		DBG_Trace(DBG_LEVEL1, "Workqueue creation failed!\n");
 
 	/* Allocate IO manager object */
 	MEM_AllocObject(pIOMgr, struct IO_MGR, IO_MGRSIGNATURE);
@@ -1210,7 +1209,7 @@ static void InputChnl(struct IO_MGR *pIOMgr, struct CHNL_OBJECT *pChnl,
 			    pChnlMgr->uWordSize;
 	chnlId = IO_GetValue(pIOMgr->hWmdContext, struct SHM, sm, inputId);
 	dwArg = IO_GetLong(pIOMgr->hWmdContext, struct SHM, sm, arg);
-	if (!(chnlId >= 0) || !(chnlId < CHNL_MAXCHANNELS)) {
+	if (chnlId >= CHNL_MAXCHANNELS) {
 		/* Shouldn't be here: would indicate corrupted SHM. */
 		DBC_Assert(chnlId);
 		goto func_end;
diff --git a/drivers/dsp/bridge/wmd/ue_deh.c b/drivers/dsp/bridge/wmd/ue_deh.c
index 6166d97..2c3a2cd 100644
--- a/drivers/dsp/bridge/wmd/ue_deh.c
+++ b/drivers/dsp/bridge/wmd/ue_deh.c
@@ -189,7 +189,7 @@ void WMD_DEH_Notify(struct DEH_MGR *hDehMgr, u32 ulEventMask,
 	DSP_STATUS status = DSP_SOK;
 	u32 memPhysical = 0;
 	u32 HW_MMU_MAX_TLB_COUNT = 31;
-	u32 extern faultAddr;
+	extern u32 faultAddr;
 	struct CFG_HOSTRES resources;
 	HW_STATUS hwStatus;
 
-- 
1.6.6.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] DSPBRIDGE: Use enable_off_mode variable instead of dsp_test_sleepstate
  2010-01-23 10:19 ` [PATCH 1/2] DSPBRIDGE: Use enable_off_mode variable instead of dsp_test_sleepstate Felipe Contreras
@ 2010-01-26 22:23   ` Omar Ramirez Luna
  2010-01-27 21:00     ` Felipe Contreras
  2010-01-28  0:46     ` Nishanth Menon
  0 siblings, 2 replies; 7+ messages in thread
From: Omar Ramirez Luna @ 2010-01-26 22:23 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: linux-omap, Jouni Hogander, Hiroshi DOYU

Hi,

On 1/23/2010 4:19 AM, Felipe Contreras wrote:
> From: Jouni Hogander<jouni.hogander@nokia.com>
>
> Signed-off-by: Jouni Hogander<jouni.hogander@nokia.com>
> Signed-off-by: Hiroshi DOYU<Hiroshi.DOYU@nokia.com>

This patch is missing to export enable_off_mode otherwise it will fail 
while linking.

FTR, I don't like to be exporting symbols of other subsystems, guess the 
same applies to:

http://marc.info/?l=linux-omap&m=126450677527042&w=2

> ---
>   drivers/dsp/bridge/rmgr/drv_interface.c |    5 -----
>   drivers/dsp/bridge/wmd/tiomap3430_pwr.c |    9 ++++-----
>   2 files changed, 4 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/dsp/bridge/rmgr/drv_interface.c b/drivers/dsp/bridge/rmgr/drv_interface.c
> index a02a32a..b20f77e 100644
> --- a/drivers/dsp/bridge/rmgr/drv_interface.c
> +++ b/drivers/dsp/bridge/rmgr/drv_interface.c
> @@ -78,8 +78,6 @@ s32 dsp_debug;
>
>   struct platform_device *omap_dspbridge_dev;
>
> -/* This is a test variable used by Bridge to test different sleep states */
> -s32 dsp_test_sleepstate;
>   struct bridge_dev {
>   	struct cdev cdev;
>   };
> @@ -129,9 +127,6 @@ module_param(dsp_debug, int, 0);
>   MODULE_PARM_DESC(dsp_debug, "Wait after loading DSP image. default = false");
>   #endif
>
> -module_param(dsp_test_sleepstate, int, 0);
> -MODULE_PARM_DESC(dsp_test_sleepstate, "DSP Sleep state = 0");
> -
>   module_param(base_img, charp, 0);
>   MODULE_PARM_DESC(base_img, "DSP base image, default = NULL");
>
> diff --git a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> index 084f406..c0e0994 100644
> --- a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> +++ b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
> @@ -54,10 +54,9 @@
>   #include<mach-omap2/cm-regbits-34xx.h>
>
>   #ifdef CONFIG_PM
> -extern s32 dsp_test_sleepstate;
> +extern unsigned short enable_off_mode;
>   #endif
>   extern struct MAILBOX_CONTEXT mboxsetting;
> -
>   /*
>    *  ======== handle_constraints_set ========
>    *  	Sets new DSP constraint
> @@ -196,7 +195,7 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN u32 dwCmd,
>   	switch (pDevContext->dwBrdState) {
>   	case BRD_RUNNING:
>   		status = HW_MBOX_saveSettings(resources.dwMboxBase);
> -		if (dsp_test_sleepstate == HW_PWR_STATE_OFF) {
> +		if (enable_off_mode) {
>   			CHNLSM_InterruptDSP2(pDevContext,
>   					     MBX_PM_DSPHIBERNATE);
>   			DBG_Trace(DBG_LEVEL7,
> @@ -211,7 +210,7 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN u32 dwCmd,
>   		break;
>   	case BRD_RETENTION:
>   		status = HW_MBOX_saveSettings(resources.dwMboxBase);
> -		if (dsp_test_sleepstate == HW_PWR_STATE_OFF) {
> +		if (enable_off_mode) {
>   			CHNLSM_InterruptDSP2(pDevContext,
>   					     MBX_PM_DSPHIBERNATE);
>   			targetPwrState = HW_PWR_STATE_OFF;
> @@ -261,7 +260,7 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN u32 dwCmd,
>   			 pwrState);
>
>   		/* Update the Bridger Driver state */
> -		if (dsp_test_sleepstate == HW_PWR_STATE_OFF)
> +		if (enable_off_mode)
>   			pDevContext->dwBrdState = BRD_HIBERNATION;
>   		else
>   			pDevContext->dwBrdState = BRD_RETENTION;

- omar

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] DSPBRIDGE: Use enable_off_mode variable instead of dsp_test_sleepstate
  2010-01-26 22:23   ` Omar Ramirez Luna
@ 2010-01-27 21:00     ` Felipe Contreras
  2010-01-28  0:46     ` Nishanth Menon
  1 sibling, 0 replies; 7+ messages in thread
From: Felipe Contreras @ 2010-01-27 21:00 UTC (permalink / raw)
  To: Omar Ramirez Luna; +Cc: linux-omap, Jouni Hogander, Hiroshi DOYU

On Wed, Jan 27, 2010 at 12:23 AM, Omar Ramirez Luna <omar.ramirez@ti.com> wrote:
> Hi,
>
> On 1/23/2010 4:19 AM, Felipe Contreras wrote:
>>
>> From: Jouni Hogander<jouni.hogander@nokia.com>
>>
>> Signed-off-by: Jouni Hogander<jouni.hogander@nokia.com>
>> Signed-off-by: Hiroshi DOYU<Hiroshi.DOYU@nokia.com>
>
> This patch is missing to export enable_off_mode otherwise it will fail while
> linking.
>
> FTR, I don't like to be exporting symbols of other subsystems, guess the
> same applies to:

I don't know, I was just making sure this patch wasn't lost.

But to me, it looks like a hint that perhaps
drivers/dsp/bridge/wmd/tiomap3430_pwr.c
should move to:
arch/arm/mach-omap2/dspbridge.c

Then you could #include "pm.h", just like in
arch/arm/mach-omap2/serial.c

-- 
Felipe Contreras

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] DSPBRIDGE: Use enable_off_mode variable instead of dsp_test_sleepstate
  2010-01-26 22:23   ` Omar Ramirez Luna
  2010-01-27 21:00     ` Felipe Contreras
@ 2010-01-28  0:46     ` Nishanth Menon
  2010-01-28 16:58       ` Omar Ramirez Luna
  1 sibling, 1 reply; 7+ messages in thread
From: Nishanth Menon @ 2010-01-28  0:46 UTC (permalink / raw)
  To: Omar Ramirez Luna
  Cc: Felipe Contreras, linux-omap, Jouni Hogander, Hiroshi DOYU

Omar Ramirez Luna had written, on 01/26/2010 04:23 PM, the following:
> Hi,
> 
> On 1/23/2010 4:19 AM, Felipe Contreras wrote:
>> From: Jouni Hogander<jouni.hogander@nokia.com>
>>
>> Signed-off-by: Jouni Hogander<jouni.hogander@nokia.com>
>> Signed-off-by: Hiroshi DOYU<Hiroshi.DOYU@nokia.com>
> 
> This patch is missing to export enable_off_mode otherwise it will fail 
> while linking.
> 
> FTR, I don't like to be exporting symbols of other subsystems, guess the 
> same applies to:
> 
> http://marc.info/?l=linux-omap&m=126450677527042&w=2
looking at the patch itself few questions arise:

> 
>> ---
>>   drivers/dsp/bridge/rmgr/drv_interface.c |    5 -----
>>   drivers/dsp/bridge/wmd/tiomap3430_pwr.c |    9 ++++-----
>>   2 files changed, 4 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/dsp/bridge/rmgr/drv_interface.c b/drivers/dsp/bridge/rmgr/drv_interface.c
>> index a02a32a..b20f77e 100644
>> --- a/drivers/dsp/bridge/rmgr/drv_interface.c
>> +++ b/drivers/dsp/bridge/rmgr/drv_interface.c
>> @@ -78,8 +78,6 @@ s32 dsp_debug;
>>
>>   struct platform_device *omap_dspbridge_dev;
>>
>> -/* This is a test variable used by Bridge to test different sleep states */
>> -s32 dsp_test_sleepstate;
>>   struct bridge_dev {
>>   	struct cdev cdev;
>>   };
>> @@ -129,9 +127,6 @@ module_param(dsp_debug, int, 0);
>>   MODULE_PARM_DESC(dsp_debug, "Wait after loading DSP image. default = false");
>>   #endif
>>
>> -module_param(dsp_test_sleepstate, int, 0);
>> -MODULE_PARM_DESC(dsp_test_sleepstate, "DSP Sleep state = 0");
>> -
>>   module_param(base_img, charp, 0);
>>   MODULE_PARM_DESC(base_img, "DSP base image, default = NULL");
>>
>> diff --git a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
>> index 084f406..c0e0994 100644
>> --- a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
>> +++ b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
>> @@ -54,10 +54,9 @@
>>   #include<mach-omap2/cm-regbits-34xx.h>
>>
>>   #ifdef CONFIG_PM
>> -extern s32 dsp_test_sleepstate;
>> +extern unsigned short enable_off_mode;
>>   #endif
>>   extern struct MAILBOX_CONTEXT mboxsetting;
>> -
>>   /*
>>    *  ======== handle_constraints_set ========
>>    *  	Sets new DSP constraint
>> @@ -196,7 +195,7 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN u32 dwCmd,
>>   	switch (pDevContext->dwBrdState) {
>>   	case BRD_RUNNING:
>>   		status = HW_MBOX_saveSettings(resources.dwMboxBase);
>> -		if (dsp_test_sleepstate == HW_PWR_STATE_OFF) {
>> +		if (enable_off_mode) {
>>   			CHNLSM_InterruptDSP2(pDevContext,
>>   					     MBX_PM_DSPHIBERNATE);
>>   			DBG_Trace(DBG_LEVEL7,
>> @@ -211,7 +210,7 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN u32 dwCmd,
>>   		break;
>>   	case BRD_RETENTION:
>>   		status = HW_MBOX_saveSettings(resources.dwMboxBase);
>> -		if (dsp_test_sleepstate == HW_PWR_STATE_OFF) {
>> +		if (enable_off_mode) {
>>   			CHNLSM_InterruptDSP2(pDevContext,
>>   					     MBX_PM_DSPHIBERNATE);
>>   			targetPwrState = HW_PWR_STATE_OFF;
>> @@ -261,7 +260,7 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN u32 dwCmd,
>>   			 pwrState);
>>
>>   		/* Update the Bridger Driver state */
>> -		if (dsp_test_sleepstate == HW_PWR_STATE_OFF)
>> +		if (enable_off_mode)
>>   			pDevContext->dwBrdState = BRD_HIBERNATION;
>>   		else
>>   			pDevContext->dwBrdState = BRD_RETENTION;
IMHO it changes behavior:
before:
IF dsp_test_sleepstate was set to HW_PWR_STATE_OFF DSP was told to go to 
hibernate every time SleepDSP is called else the mbox event
default behavior is to ask BIOS for retention.

with the patch:
If sysfs entry(meant for MPU) has enabled off mode, THEN DSP will be 
send to off mode every time we get message to SleepDSP. In other words 
MPU and DSP retention/OFF are tied together.

The questions then are:
a) why was this done so?
b) is the intention of test_sleepstate param meant only as a test?
c) was it intended that SleepDSP should put IVA to sleep no matter what 
MPU decisions are?

-- 
Regards,
Nishanth Menon

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] DSPBRIDGE: Use enable_off_mode variable instead of dsp_test_sleepstate
  2010-01-28  0:46     ` Nishanth Menon
@ 2010-01-28 16:58       ` Omar Ramirez Luna
  0 siblings, 0 replies; 7+ messages in thread
From: Omar Ramirez Luna @ 2010-01-28 16:58 UTC (permalink / raw)
  To: Menon, Nishanth
  Cc: Felipe Contreras, linux-omap, Jouni Hogander, Hiroshi DOYU

On 1/27/2010 6:46 PM, Menon, Nishanth wrote:
> Omar Ramirez Luna had written, on 01/26/2010 04:23 PM, the following:
>> Hi,
>>
>> On 1/23/2010 4:19 AM, Felipe Contreras wrote:
>>> From: Jouni Hogander<jouni.hogander@nokia.com>
>>>
>>> Signed-off-by: Jouni Hogander<jouni.hogander@nokia.com>
>>> Signed-off-by: Hiroshi DOYU<Hiroshi.DOYU@nokia.com>
>>
>> This patch is missing to export enable_off_mode otherwise it will fail
>> while linking.
>>
>> FTR, I don't like to be exporting symbols of other subsystems, guess the
>> same applies to:
>>
>> http://marc.info/?l=linux-omap&m=126450677527042&w=2
> looking at the patch itself few questions arise:
>
>>
>>> ---
>>>    drivers/dsp/bridge/rmgr/drv_interface.c |    5 -----
>>>    drivers/dsp/bridge/wmd/tiomap3430_pwr.c |    9 ++++-----
>>>    2 files changed, 4 insertions(+), 10 deletions(-)
>>>
>>> diff --git a/drivers/dsp/bridge/rmgr/drv_interface.c b/drivers/dsp/bridge/rmgr/drv_interface.c
>>> index a02a32a..b20f77e 100644
>>> --- a/drivers/dsp/bridge/rmgr/drv_interface.c
>>> +++ b/drivers/dsp/bridge/rmgr/drv_interface.c
>>> @@ -78,8 +78,6 @@ s32 dsp_debug;
>>>
>>>    struct platform_device *omap_dspbridge_dev;
>>>
>>> -/* This is a test variable used by Bridge to test different sleep states */
>>> -s32 dsp_test_sleepstate;
>>>    struct bridge_dev {
>>>    	struct cdev cdev;
>>>    };
>>> @@ -129,9 +127,6 @@ module_param(dsp_debug, int, 0);
>>>    MODULE_PARM_DESC(dsp_debug, "Wait after loading DSP image. default = false");
>>>    #endif
>>>
>>> -module_param(dsp_test_sleepstate, int, 0);
>>> -MODULE_PARM_DESC(dsp_test_sleepstate, "DSP Sleep state = 0");
>>> -
>>>    module_param(base_img, charp, 0);
>>>    MODULE_PARM_DESC(base_img, "DSP base image, default = NULL");
>>>
>>> diff --git a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
>>> index 084f406..c0e0994 100644
>>> --- a/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
>>> +++ b/drivers/dsp/bridge/wmd/tiomap3430_pwr.c
>>> @@ -54,10 +54,9 @@
>>>    #include<mach-omap2/cm-regbits-34xx.h>
>>>
>>>    #ifdef CONFIG_PM
>>> -extern s32 dsp_test_sleepstate;
>>> +extern unsigned short enable_off_mode;
>>>    #endif
>>>    extern struct MAILBOX_CONTEXT mboxsetting;
>>> -
>>>    /*
>>>     *  ======== handle_constraints_set ========
>>>     *  	Sets new DSP constraint
>>> @@ -196,7 +195,7 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN u32 dwCmd,
>>>    	switch (pDevContext->dwBrdState) {
>>>    	case BRD_RUNNING:
>>>    		status = HW_MBOX_saveSettings(resources.dwMboxBase);
>>> -		if (dsp_test_sleepstate == HW_PWR_STATE_OFF) {
>>> +		if (enable_off_mode) {
>>>    			CHNLSM_InterruptDSP2(pDevContext,
>>>    					     MBX_PM_DSPHIBERNATE);
>>>    			DBG_Trace(DBG_LEVEL7,
>>> @@ -211,7 +210,7 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN u32 dwCmd,
>>>    		break;
>>>    	case BRD_RETENTION:
>>>    		status = HW_MBOX_saveSettings(resources.dwMboxBase);
>>> -		if (dsp_test_sleepstate == HW_PWR_STATE_OFF) {
>>> +		if (enable_off_mode) {
>>>    			CHNLSM_InterruptDSP2(pDevContext,
>>>    					     MBX_PM_DSPHIBERNATE);
>>>    			targetPwrState = HW_PWR_STATE_OFF;
>>> @@ -261,7 +260,7 @@ DSP_STATUS SleepDSP(struct WMD_DEV_CONTEXT *pDevContext, IN u32 dwCmd,
>>>    			 pwrState);
>>>
>>>    		/* Update the Bridger Driver state */
>>> -		if (dsp_test_sleepstate == HW_PWR_STATE_OFF)
>>> +		if (enable_off_mode)
>>>    			pDevContext->dwBrdState = BRD_HIBERNATION;
>>>    		else
>>>    			pDevContext->dwBrdState = BRD_RETENTION;
> IMHO it changes behavior:
> before:
> IF dsp_test_sleepstate was set to HW_PWR_STATE_OFF DSP was told to go to
> hibernate every time SleepDSP is called else the mbox event
> default behavior is to ask BIOS for retention.

dsp_test_sleepstate is initialized always to 0

>
> with the patch:
> If sysfs entry(meant for MPU) has enabled off mode, THEN DSP will be
> send to off mode every time we get message to SleepDSP. In other words
> MPU and DSP retention/OFF are tied together.

(-->) means mbx bridge to dsp
(...) means do not disturb dsp while sleeping

Suspend coming for this scenarios:

if DSP = ON, enable_off_mode = 1 --> OFF (HIB)
if DSP = ON, enable_off_mode = 0 --> RET
if DSP = OFF, enable_off_mode = 1 ...
if DSP = OFF, enable_off_mode = 0 ...

>
> The questions then are:
> a) why was this done so?

always target the next lower state (according to the specified), but DO 
NOT disturb the dsp if it already went to sleep

> b) is the intention of test_sleepstate param meant only as a test?

should be clear enough:
/* This is a test variable used by Bridge to test different sleep states */

> c) was it intended that SleepDSP should put IVA to sleep no matter what
> MPU decisions are?

if the DSP is already OFF and MPU wants to be in RET why MPU can be 
smart enough to tell ok this guy went down, print a message like "this 
might be wrong" but it is acceptable.

the other tendency claims that the dsp should be woken and then told to 
go to next-power-state (if OFF not enabled).

bottom line is that we listen to what mpu wants if the dsp is awake but 
ignore if the dsp has gone to off.

- omar

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-01-28 16:58 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-23 10:19 [PATCH 0/2] dspbridge: maemo lingering patches Felipe Contreras
2010-01-23 10:19 ` [PATCH 1/2] DSPBRIDGE: Use enable_off_mode variable instead of dsp_test_sleepstate Felipe Contreras
2010-01-26 22:23   ` Omar Ramirez Luna
2010-01-27 21:00     ` Felipe Contreras
2010-01-28  0:46     ` Nishanth Menon
2010-01-28 16:58       ` Omar Ramirez Luna
2010-01-23 10:19 ` [PATCH 2/2] DSPBRIDGE: Various compile warning fixes Felipe Contreras

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox