From patchwork Sun Jul 4 13:34:36 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felipe Contreras X-Patchwork-Id: 110138 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.4/8.14.3) with ESMTP id o64DZ9Df004478 for ; Sun, 4 Jul 2010 13:35:09 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757820Ab0GDNfI (ORCPT ); Sun, 4 Jul 2010 09:35:08 -0400 Received: from mail-bw0-f46.google.com ([209.85.214.46]:37379 "EHLO mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757777Ab0GDNfF (ORCPT ); Sun, 4 Jul 2010 09:35:05 -0400 Received: by bwz1 with SMTP id 1so2295386bwz.19 for ; Sun, 04 Jul 2010 06:35:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer:in-reply-to:references; bh=NXlKHy9obMtCNozqWIWGSKmmcM1iqqqfDHNPouUZvyM=; b=v7ppW5XP+mUoQmUAnoROlBadpI5HURuib8ip1sSlsDWDySmccLe+haLONYlUtcfPmp J8CfSInXxSu9Tjh2nNxV3eYs8qaJg7ksCrUqZsli4dysdl5X3P7bRZg5uOpj1t6RqO+R 3F7khmz7JRg+W0R9mfuQhVjPHfIzCXWGw/Gmo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; b=ZrbCcjjCMNJCjR3hvJv/CmMukVVzEom3ype2zM1yxONu/3kWU5QgWJfn8cT02S3FMr dCq4eHBIlHBbp8imW/SZUxcrJ+nM3v5EZqREa0cCx2sL+c8ae+HYNwJb/Ufx+Q8Jx1Kx qZLw50WAnF0FwaU+H1x58/O0Fq406rzVaesuQ= Received: by 10.204.112.5 with SMTP id u5mr1325852bkp.113.1278250501653; Sun, 04 Jul 2010 06:35:01 -0700 (PDT) Received: from localhost (a91-153-253-80.elisa-laajakaista.fi [91.153.253.80]) by mx.google.com with ESMTPS id s34sm12862095bkk.1.2010.07.04.06.35.00 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 04 Jul 2010 06:35:01 -0700 (PDT) From: Felipe Contreras To: linux-omap Cc: Ohad Ben-Cohen , Omar Ramirez Luna , Greg KH , Felipe Contreras Subject: [PATCH 10/13] staging: ti dspbridge: access deh directly Date: Sun, 4 Jul 2010 16:34:36 +0300 Message-Id: <1278250479-16982-11-git-send-email-felipe.contreras@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1278250479-16982-1-git-send-email-felipe.contreras@gmail.com> References: <1278250479-16982-1-git-send-email-felipe.contreras@gmail.com> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Sun, 04 Jul 2010 13:35:10 +0000 (UTC) diff --git a/drivers/staging/tidspbridge/core/tiomap3430.c b/drivers/staging/tidspbridge/core/tiomap3430.c index ef4abb4..60fca91 100644 --- a/drivers/staging/tidspbridge/core/tiomap3430.c +++ b/drivers/staging/tidspbridge/core/tiomap3430.c @@ -194,11 +194,6 @@ static struct bridge_drv_interface drv_interface_fxns = { bridge_chnl_get_mgr_info, bridge_chnl_idle, bridge_chnl_register_notify, - /* The following DEH functions are provided by tihelen_ue_deh.c */ - bridge_deh_create, - bridge_deh_destroy, - bridge_deh_notify, - bridge_deh_register_notify, /* The following IO functions are provided by chnl_io.lib: */ bridge_io_create, bridge_io_destroy, diff --git a/drivers/staging/tidspbridge/include/dspbridge/dspdefs.h b/drivers/staging/tidspbridge/include/dspbridge/dspdefs.h index 49842a2..536816b 100644 --- a/drivers/staging/tidspbridge/include/dspbridge/dspdefs.h +++ b/drivers/staging/tidspbridge/include/dspbridge/dspdefs.h @@ -724,57 +724,6 @@ typedef int(*fxn_dev_ctrl) (struct bridge_dev_context *hDevContext, typedef int(*fxn_dev_destroy) (struct bridge_dev_context *hDevContext); /* - * ======== bridge_deh_create ======== - * Purpose: - * Create an object that manages DSP exceptions from the GPP. - * Parameters: - * phDehMgr: Location to store DEH manager on output. - * hdev_obj: Handle to DEV object. - * Returns: - * 0: Success. - * -ENOMEM: Memory allocation failure. - * -EPERM: Creation failed. - * Requires: - * hdev_obj != NULL; - * phDehMgr != NULL; - * Ensures: - */ -typedef int(*fxn_deh_create) (OUT struct deh_mgr - **phDehMgr, struct dev_object *hdev_obj); - -/* - * ======== bridge_deh_destroy ======== - * Purpose: - * Destroy the DEH object. - * Parameters: - * hdeh_mgr: Handle to DEH manager object. - * Returns: - * 0: Success. - * -EPERM: Destroy failed. - * Requires: - * hdeh_mgr != NULL; - * Ensures: - */ -typedef int(*fxn_deh_destroy) (struct deh_mgr *hdeh_mgr); - -/* - * ======== bridge_deh_register_notify ======== - * Purpose: - * Register for DEH event notification. - * Parameters: - * hdeh_mgr: Handle to DEH manager object. - * Returns: - * 0: Success. - * -EPERM: Destroy failed. - * Requires: - * hdeh_mgr != NULL; - * Ensures: - */ -typedef int(*fxn_deh_registernotify) - (struct deh_mgr *hdeh_mgr, - u32 event_mask, u32 notify_type, struct dsp_notification *hnotification); - -/* * ======== bridge_io_create ======== * Purpose: * Create an object that manages I/O between CHNL and msg_ctrl. @@ -1059,11 +1008,6 @@ struct bridge_drv_interface { fxn_chnl_idle pfn_chnl_idle; /* Idle the channel */ /* Register for notif. */ fxn_chnl_registernotify pfn_chnl_register_notify; - fxn_deh_create pfn_deh_create; /* Create DEH manager */ - fxn_deh_destroy pfn_deh_destroy; /* Destroy DEH manager */ - fxn_deh_notify pfn_deh_notify; /* Notify of DSP error */ - /* register for deh notif. */ - fxn_deh_registernotify pfn_deh_register_notify; fxn_io_create pfn_io_create; /* Create IO manager */ fxn_io_destroy pfn_io_destroy; /* Destroy IO manager */ fxn_io_onloaded pfn_io_on_loaded; /* Notify of program loaded */ diff --git a/drivers/staging/tidspbridge/pmgr/dev.c b/drivers/staging/tidspbridge/pmgr/dev.c index 353b81a..2c31f31 100644 --- a/drivers/staging/tidspbridge/pmgr/dev.c +++ b/drivers/staging/tidspbridge/pmgr/dev.c @@ -48,6 +48,7 @@ #include #include #include +#include /* ----------------------------------- This */ #include @@ -237,8 +238,7 @@ int dev_create_device(OUT struct dev_object **phDevObject, /* Only create DEH manager if we have an IO manager */ if (DSP_SUCCEEDED(status)) { /* Instantiate the DEH module */ - status = (*dev_obj->bridge_interface.pfn_deh_create) - (&dev_obj->hdeh_mgr, dev_obj); + status = bridge_deh_create(&dev_obj->hdeh_mgr, dev_obj); } /* Create DMM mgr . */ status = dmm_create(&dev_obj->dmm_mgr, @@ -373,8 +373,7 @@ int dev_destroy_device(struct dev_object *hdev_obj) if (dev_obj->hdeh_mgr) { /* Uninitialize DEH module. */ - (*dev_obj->bridge_interface.pfn_deh_destroy) - (dev_obj->hdeh_mgr); + bridge_deh_destroy(dev_obj->hdeh_mgr); dev_obj->hdeh_mgr = NULL; } if (dev_obj->hcmm_mgr) { @@ -1115,10 +1114,6 @@ static void store_interface_fxns(struct bridge_drv_interface *drv_fxns, STORE_FXN(fxn_chnl_getmgrinfo, pfn_chnl_get_mgr_info); STORE_FXN(fxn_chnl_idle, pfn_chnl_idle); STORE_FXN(fxn_chnl_registernotify, pfn_chnl_register_notify); - STORE_FXN(fxn_deh_create, pfn_deh_create); - STORE_FXN(fxn_deh_destroy, pfn_deh_destroy); - STORE_FXN(fxn_deh_notify, pfn_deh_notify); - STORE_FXN(fxn_deh_registernotify, pfn_deh_register_notify); STORE_FXN(fxn_io_create, pfn_io_create); STORE_FXN(fxn_io_destroy, pfn_io_destroy); STORE_FXN(fxn_io_onloaded, pfn_io_on_loaded); @@ -1155,10 +1150,6 @@ static void store_interface_fxns(struct bridge_drv_interface *drv_fxns, DBC_ENSURE(intf_fxns->pfn_chnl_get_mgr_info != NULL); DBC_ENSURE(intf_fxns->pfn_chnl_idle != NULL); DBC_ENSURE(intf_fxns->pfn_chnl_register_notify != NULL); - DBC_ENSURE(intf_fxns->pfn_deh_create != NULL); - DBC_ENSURE(intf_fxns->pfn_deh_destroy != NULL); - DBC_ENSURE(intf_fxns->pfn_deh_notify != NULL); - DBC_ENSURE(intf_fxns->pfn_deh_register_notify != NULL); DBC_ENSURE(intf_fxns->pfn_io_create != NULL); DBC_ENSURE(intf_fxns->pfn_io_destroy != NULL); DBC_ENSURE(intf_fxns->pfn_io_on_loaded != NULL); diff --git a/drivers/staging/tidspbridge/rmgr/node.c b/drivers/staging/tidspbridge/rmgr/node.c index 3d2cf96..b5c99dc 100644 --- a/drivers/staging/tidspbridge/rmgr/node.c +++ b/drivers/staging/tidspbridge/rmgr/node.c @@ -68,6 +68,8 @@ #include #include <_tiomap.h> +#include + #define HOSTPREFIX "/host" #define PIPEPREFIX "/dbpipe" @@ -2472,8 +2474,7 @@ int node_terminate(struct node_object *hnode, OUT int *pstatus) if (!hdeh_mgr) goto func_cont; - (*intf_fxns->pfn_deh_notify)(hdeh_mgr, DSP_SYSERROR, - DSP_EXCEPTIONABORT); + bridge_deh_notify(hdeh_mgr, DSP_SYSERROR, DSP_EXCEPTIONABORT); } } func_cont: diff --git a/drivers/staging/tidspbridge/rmgr/proc.c b/drivers/staging/tidspbridge/rmgr/proc.c index c31f8b8..084f7b9 100644 --- a/drivers/staging/tidspbridge/rmgr/proc.c +++ b/drivers/staging/tidspbridge/rmgr/proc.c @@ -1458,22 +1458,20 @@ int proc_register_notify(void *hprocessor, u32 event_mask, status = dev_get_deh_mgr(p_proc_object->hdev_obj, &hdeh_mgr); - DBC_ASSERT(p_proc_object-> - intf_fxns->pfn_deh_register_notify); status = - (*p_proc_object-> - intf_fxns->pfn_deh_register_notify) - (hdeh_mgr, event_mask, notify_type, - hnotification); + bridge_deh_register_notify(hdeh_mgr, + event_mask, + notify_type, + hnotification); } } else { status = dev_get_deh_mgr(p_proc_object->hdev_obj, &hdeh_mgr); - DBC_ASSERT(p_proc_object-> - intf_fxns->pfn_deh_register_notify); status = - (*p_proc_object->intf_fxns->pfn_deh_register_notify) - (hdeh_mgr, event_mask, notify_type, hnotification); + bridge_deh_register_notify(hdeh_mgr, + event_mask, + notify_type, + hnotification); } }