* [PATCH 4/5] DSPBRIDGE: Remove handles from registry
@ 2010-04-17 3:34 Ramos Falcon, Ernesto
2010-04-27 23:58 ` Omar Ramirez Luna
0 siblings, 1 reply; 2+ messages in thread
From: Ramos Falcon, Ernesto @ 2010-04-17 3:34 UTC (permalink / raw)
To: linux-omap@vger.kernel.org
Cc: Ameya Palande, Doyu Hiroshi (Nokia-D/Helsinki),
Contreras Felipe (Nokia-D/Helsinki)
>From 874bc262b47319b311d14ca32a7c1afb9eb388e8 Mon Sep 17 00:00:00 2001
From: Ernesto Ramos <ernesto@ti.com>
Date: Thu, 1 Apr 2010 00:17:24 -0600
Subject: [PATCH 4/5] DSPBRIDGE: Remove handles from registry
Remove handles from registry.
Signed-off-by: Ernesto Ramos <ernesto@ti.com>
---
arch/arm/plat-omap/include/dspbridge/drv.h | 3 +
drivers/dsp/bridge/services/cfg.c | 59 +++++++++++++++++----------
2 files changed, 40 insertions(+), 22 deletions(-)
diff --git a/arch/arm/plat-omap/include/dspbridge/drv.h b/arch/arm/plat-omap/include/dspbridge/drv.h
index 210ca68..f505b21 100644
--- a/arch/arm/plat-omap/include/dspbridge/drv.h
+++ b/arch/arm/plat-omap/include/dspbridge/drv.h
@@ -128,6 +128,9 @@ struct drv_data {
char *base_img;
s32 shm_size;
int tc_wordswapon;
+ void *drv_object;
+ void *dev_object;
+ void *mgr_object;
};
/* Process Context */
diff --git a/drivers/dsp/bridge/services/cfg.c b/drivers/dsp/bridge/services/cfg.c
index 8f9f84c..8e2d614 100644
--- a/drivers/dsp/bridge/services/cfg.c
+++ b/drivers/dsp/bridge/services/cfg.c
@@ -82,6 +82,10 @@ dsp_status cfg_get_dev_object(struct cfg_devnode *dev_node_obj,
{
dsp_status status = DSP_SOK;
u32 dw_buf_size;
+ struct drv_data *drv_datap = dev_get_drvdata(bridge);
+
+ if (!drv_datap)
+ status = DSP_EFAIL;
if (!dev_node_obj)
status = CFG_E_INVALIDHDEVNODE;
@@ -92,14 +96,12 @@ dsp_status cfg_get_dev_object(struct cfg_devnode *dev_node_obj,
dw_buf_size = sizeof(pdwValue);
if (DSP_SUCCEEDED(status)) {
- /* check the device string and then call the reg_set_value */
+ /* check the device string and then store dev object */
if (!
(strcmp
((char *)((struct drv_ext *)dev_node_obj)->sz_string,
"TIOMAP1510")))
- status =
- reg_get_value("DEVICE_DSP", (u8 *) pdwValue,
- &dw_buf_size);
+ *pdwValue = (u32)drv_datap->dev_object;
}
if (DSP_FAILED(status))
pr_err("%s: Failed, status 0x%x\n", __func__, status);
@@ -144,23 +146,31 @@ dsp_status cfg_get_exec_file(struct cfg_devnode *dev_node_obj, u32 ul_buf_size,
dsp_status cfg_get_object(OUT u32 *pdwValue, u32 dw_type)
{
dsp_status status = DSP_EINVALIDARG;
- u32 dw_buf_size;
+ struct drv_data *drv_datap = dev_get_drvdata(bridge);
+
DBC_REQUIRE(pdwValue != NULL);
- dw_buf_size = sizeof(pdwValue);
+ if (!drv_datap)
+ return DSP_EFAIL;
+
switch (dw_type) {
case (REG_DRV_OBJECT):
- status =
- reg_get_value(DRVOBJECT, (u8 *) pdwValue, &dw_buf_size);
- if (DSP_FAILED(status))
+ if (drv_datap->drv_object) {
+ *pdwValue = (u32)drv_datap->drv_object;
+ status = DSP_SOK;
+ } else {
status = CFG_E_RESOURCENOTAVAIL;
+ }
break;
case (REG_MGR_OBJECT):
- status =
- reg_get_value(MGROBJECT, (u8 *) pdwValue, &dw_buf_size);
- if (DSP_FAILED(status))
+ if (drv_datap->mgr_object) {
+ *pdwValue = (u32)drv_datap->mgr_object;
+ status = DSP_SOK;
+ } else {
status = CFG_E_RESOURCENOTAVAIL;
+ }
break;
+
default:
break;
}
@@ -191,18 +201,21 @@ bool cfg_init(void)
dsp_status cfg_set_dev_object(struct cfg_devnode *dev_node_obj, u32 dwValue)
{
dsp_status status = DSP_SOK;
- u32 dw_buff_size;
+ struct drv_data *drv_datap = dev_get_drvdata(bridge);
+
+ if (!drv_datap) {
+ pr_err("%s: Failed, status 0x%x\n", __func__, status);
+ return DSP_EFAIL;
+ }
if (!dev_node_obj)
status = CFG_E_INVALIDHDEVNODE;
- dw_buff_size = sizeof(dwValue);
if (DSP_SUCCEEDED(status)) {
/* Store the WCD device object in the Registry */
if (!(strcmp((char *)dev_node_obj, "TIOMAP1510"))) {
- status = reg_set_value("DEVICE_DSP", (u8 *) &dwValue,
- dw_buff_size);
+ drv_datap->dev_object = (void *) dwValue;
}
}
if (DSP_FAILED(status))
@@ -219,17 +232,19 @@ dsp_status cfg_set_dev_object(struct cfg_devnode *dev_node_obj, u32 dwValue)
dsp_status cfg_set_object(u32 dwValue, u32 dw_type)
{
dsp_status status = DSP_EINVALIDARG;
- u32 dw_buff_size;
+ struct drv_data *drv_datap = dev_get_drvdata(bridge);
+
+ if (!drv_datap)
+ return DSP_EFAIL;
- dw_buff_size = sizeof(dwValue);
switch (dw_type) {
case (REG_DRV_OBJECT):
- status =
- reg_set_value(DRVOBJECT, (u8 *) &dwValue, dw_buff_size);
+ drv_datap->drv_object = (void *)dwValue;
+ status = DSP_SOK;
break;
case (REG_MGR_OBJECT):
- status =
- reg_set_value(MGROBJECT, (u8 *) &dwValue, dw_buff_size);
+ drv_datap->mgr_object = (void *)dwValue;
+ status = DSP_SOK;
break;
default:
break;
--
1.5.4.5
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 4/5] DSPBRIDGE: Remove handles from registry
2010-04-17 3:34 [PATCH 4/5] DSPBRIDGE: Remove handles from registry Ramos Falcon, Ernesto
@ 2010-04-27 23:58 ` Omar Ramirez Luna
0 siblings, 0 replies; 2+ messages in thread
From: Omar Ramirez Luna @ 2010-04-27 23:58 UTC (permalink / raw)
To: Ramos Falcon, Ernesto
Cc: linux-omap@vger.kernel.org, Ameya Palande,
Doyu Hiroshi (Nokia-D/Helsinki),
Contreras Felipe (Nokia-D/Helsinki)
On 4/16/2010 10:34 PM, Ramos Falcon, Ernesto wrote:
> From 874bc262b47319b311d14ca32a7c1afb9eb388e8 Mon Sep 17 00:00:00 2001
> From: Ernesto Ramos<ernesto@ti.com>
> Date: Thu, 1 Apr 2010 00:17:24 -0600
> Subject: [PATCH 4/5] DSPBRIDGE: Remove handles from registry
>
> Remove handles from registry.
>
> Signed-off-by: Ernesto Ramos<ernesto@ti.com>
> ---
Rebased and pushed
- omar
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-04-27 23:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-17 3:34 [PATCH 4/5] DSPBRIDGE: Remove handles from registry Ramos Falcon, Ernesto
2010-04-27 23:58 ` Omar Ramirez Luna
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).