Ameya, > -----Original Message----- > From: Ameya Palande [mailto:ameya.palande@xxxxxxxxx] > Sent: Monday, March 16, 2009 7:41 PM > To: Gupta, Ramesh > Cc: linux-omap@xxxxxxxxxxxxxxx; Menon, Nishanth; Kanigeri, Hari > Subject: Re: [PATCH] DSPBRIDGE Fix for auto image load updated > > ext Gupta, Ramesh wrote: > > From 757beb63e8e66c168231dd990440816fc5789d6c Mon Sep 17 > 00:00:00 2001 > > From: Ramesh Gupta <grgupta@xxxxxx> > > Date: Thu, 12 Mar 2009 09:32:31 -0500 > > Subject: [PATCH] DSPBRIDGE Fix for auto image load updated > Resending > > as the previous patch was not applyng cleanly. > > This is updated patch to fix the auto image loading while > bridgedriver initialization. > > > > Signed-off-by: Ramesh Gupta G <grgupta@xxxxxx> > > --- > > drivers/dsp/bridge/rmgr/drv_interface.c | 32 > +++++++++++++++--------------- > > 1 files changed, 16 insertions(+), 16 deletions(-) > > > > diff --git a/drivers/dsp/bridge/rmgr/drv_interface.c > > b/drivers/dsp/bridge/rmgr/drv_interface.c > > index 3ad7a43..80edc4d 100755 > > --- a/drivers/dsp/bridge/rmgr/drv_interface.c > > +++ b/drivers/dsp/bridge/rmgr/drv_interface.c > > @@ -400,7 +400,7 @@ static int __init bridge_init(void) > > REG_SetValue(NULL, NULL, AUTOSTART, REG_DWORD, > (u8 *)&temp, > > sizeof(temp)); > > REG_SetValue(NULL, NULL, DEFEXEC, REG_SZ, (u8 > *)base_img, > > - strlen(base_img) + 1); > > + strlen(base_img) + 1); > > } else { > > temp = false; > > REG_SetValue(NULL, NULL, AUTOSTART, REG_DWORD, > (u8 *)&temp, @@ > > -408,7 +408,7 @@ static int __init bridge_init(void) > > REG_SetValue(NULL, NULL, DEFEXEC, REG_SZ, (u8 > *) "\0", (u32)2); > > } > > REG_SetValue(NULL, NULL, NUMPROCS, REG_SZ, (u8 *) num_procs, > > - strlen(num_procs) + 1); > > + strlen(num_procs) + 1); > > > > if (shm_size >= 0x10000) { /* 64 KB */ > > initStatus = REG_SetValue(NULL, NULL, SHMSIZE, > REG_DWORD, @@ > > -450,18 +450,9 @@ static int __init bridge_init(void) > > sizeof(tc_wordswapon)); > > } > > if (DSP_SUCCEEDED(initStatus)) { > > - driverContext = DSP_Init(&initStatus); > > - if (DSP_FAILED(initStatus)) { > > - status = -1; > > - GT_0trace(driverTrace, GT_7CLASS, > > - "DSP/BIOS Bridge > initialization Failed\n"); > > - } else { > > - GT_0trace(driverTrace, GT_5CLASS, > > - "DSP/BIOS Bridge driver > loaded\n"); > > - } > > #ifdef CONFIG_BRIDGE_DVFS > > - for (i = 0; i < 5; i++) > > - pdata->mpu_speed[i] = > vdd1_rate_table_bridge[i].rate; > > + for (i = 0; i < 6; i++) > > + pdata->mpu_speed[i] = > vdd1_rate_table_bridge[i].rate; > > > > clk_handle = clk_get(NULL, "iva2_ck"); > > if (!clk_handle) { > > @@ -479,6 +470,15 @@ static int __init bridge_init(void) > > "clk_notifier_register FAIL for iva2_ck \n"); > > } > > #endif > > + driverContext = DSP_Init(&initStatus); > > + if (DSP_FAILED(initStatus)) { > > + status = -1; > > + GT_0trace(driverTrace, GT_7CLASS, > > + "DSP/BIOS Bridge > initialization Failed\n"); > > + } else { > > + GT_0trace(driverTrace, GT_5CLASS, > > + "DSP/BIOS Bridge driver > loaded\n"); > > + } > > } > > > > DBC_Assert(status == 0); > > @@ -655,11 +655,11 @@ func_cont: > > (struct DRV_OBJECT > *)hDrvObject, &pPctxt); > > > > if (pPctxt != NULL) { > > - /* Return PID instead of process handle */ > > - hProcess = current->pid; > > + /* Return PID instead of process handle */ > > + hProcess = current->pid; > > > > DRV_ProcUpdatestate(pPctxt, PROC_RES_ALLOCATED); > > - DRV_ProcSetPID(pPctxt, hProcess); > > + DRV_ProcSetPID(pPctxt, hProcess); > > } > > #endif > > > > Hi Ramesh, > > I am not clear about the issue which this patch fixes. > As I understand that: > > 1. You have increased the count for > pdata->mpu_speed[i] = vdd1_rate_table_bridge[i].rate; > > 2. Moved driverContext = DSP_Init(&initStatus) after > clk_notifier_register stuff. These 2 changes fix the issue. > > 3. Coding Style cleanups. This is to fix only the checkpatch warnings. > > I am not able to understand what this patch is fixing and how? > Some explanation about this will be helpful. Clock registration is called after DSP_Init mistakenly , the image autoloading loads PROC_Load Inturn that calls for OPP boosting while loading the image , this fails as the clock registration is not called. There was a typo in filling the platform data (5 instead of 6) because of that, the OPP5 frequency value is not updated, that causes WARN_ON() In the SRF. Please let me know if you need any more information on these changes. Thanks Ramesh Gupta G-- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html