All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: linux-omap <linux-omap@vger.kernel.org>
Cc: Omar Ramirez Luna <omar.ramirez@ti.com>,
	Fernando Guzman Lugo <fernando.lugo@ti.com>,
	Felipe Contreras <felipe.contreras@gmail.com>
Subject: [PATCH 02/14] dspbridge: deh: trivial cleanups
Date: Sun, 16 May 2010 18:45:53 +0300	[thread overview]
Message-ID: <1274024765-21076-3-git-send-email-felipe.contreras@gmail.com> (raw)
In-Reply-To: <1274024765-21076-1-git-send-email-felipe.contreras@gmail.com>

No functional changes.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 drivers/dsp/bridge/core/ue_deh.c |  112 ++++++++++++++------------------------
 1 files changed, 41 insertions(+), 71 deletions(-)

diff --git a/drivers/dsp/bridge/core/ue_deh.c b/drivers/dsp/bridge/core/ue_deh.c
index 48c11e9..605cec7 100644
--- a/drivers/dsp/bridge/core/ue_deh.c
+++ b/drivers/dsp/bridge/core/ue_deh.c
@@ -60,11 +60,6 @@
 /* Max time to check for GP Timer IRQ */
 #define GPTIMER_IRQ_WAIT_MAX_CNT       1000
 
-static struct hw_mmu_map_attrs_t map_attrs = { HW_LITTLE_ENDIAN,
-	HW_ELEM_SIZE16BIT,
-	HW_MMU_CPUES
-};
-
 static void *dummy_va_addr;
 
 static struct omap_dm_timer *timer;
@@ -72,7 +67,7 @@ static struct omap_dm_timer *timer;
 dsp_status bridge_deh_create(struct deh_mgr **ret_deh_mgr,
 		struct dev_object *hdev_obj)
 {
-	dsp_status status = DSP_SOK;
+	dsp_status status;
 	struct deh_mgr *deh_mgr;
 	struct bridge_dev_context *hbridge_context = NULL;
 
@@ -81,23 +76,20 @@ dsp_status bridge_deh_create(struct deh_mgr **ret_deh_mgr,
 	 *  the base image. */
 	/* Get WMD context info. */
 	dev_get_bridge_context(hdev_obj, &hbridge_context);
-	DBC_ASSERT(hbridge_context);
-	dummy_va_addr = NULL;
 	/* Allocate IO manager object: */
 	deh_mgr = kzalloc(sizeof(struct deh_mgr), GFP_KERNEL);
 	if (!deh_mgr) {
 		status = -ENOMEM;
-		goto leave;
+		goto err;
 	}
 
 	/* Create an NTFY object to manage notifications */
 	deh_mgr->ntfy_obj = kmalloc(sizeof(struct ntfy_object), GFP_KERNEL);
-	if (deh_mgr->ntfy_obj) {
-		ntfy_init(deh_mgr->ntfy_obj);
-	} else {
+	if (!deh_mgr->ntfy_obj) {
 		status = -ENOMEM;
 		goto err;
 	}
+	ntfy_init(deh_mgr->ntfy_obj);
 
 	/* Create a MMUfault DPC */
 	tasklet_init(&deh_mgr->dpc_tasklet, mmu_fault_dpc, (u32) deh_mgr);
@@ -110,32 +102,25 @@ dsp_status bridge_deh_create(struct deh_mgr **ret_deh_mgr,
 	deh_mgr->err_info.dw_val3 = 0L;
 
 	/* Install ISR function for DSP MMU fault */
-	if ((request_irq(INT_DSP_MMU_IRQ, mmu_fault_isr, 0,
-					"DspBridge\tiommu fault",
-					(void *)deh_mgr)) == 0)
-		status = DSP_SOK;
-	else
-		status = -EPERM;
+	status = request_irq(INT_DSP_MMU_IRQ, mmu_fault_isr, 0,
+			"DspBridge\tiommu fault", deh_mgr);
+	if (status < 0)
+		goto err;
 
-err:
-	if (DSP_FAILED(status)) {
-		/* If create failed, cleanup */
-		bridge_deh_destroy(deh_mgr);
-		deh_mgr = NULL;
-	} else {
-		timer = omap_dm_timer_request_specific(
-					GPTIMER_FOR_DSP_MMU_FAULT);
-		if (timer) {
-			omap_dm_timer_disable(timer);
-		} else {
-			pr_err("%s: GPTimer not available\n", __func__);
-			return -ENODEV;
-		}
+	timer = omap_dm_timer_request_specific(GPTIMER_FOR_DSP_MMU_FAULT);
+	if (!timer) {
+		pr_err("%s: GPTimer not available\n", __func__);
+		status = -ENODEV;
+		goto err;
 	}
+	omap_dm_timer_disable(timer);
 
-leave:
 	*ret_deh_mgr = deh_mgr;
+	return 0;
 
+err:
+	bridge_deh_destroy(deh_mgr);
+	*ret_deh_mgr = NULL;
 	return status;
 }
 
@@ -164,36 +149,31 @@ dsp_status bridge_deh_destroy(struct deh_mgr *deh_mgr)
 	omap_dm_timer_free(timer);
 	timer = NULL;
 
-	return DSP_SOK;
+	return 0;
 }
 
 dsp_status bridge_deh_register_notify(struct deh_mgr *deh_mgr, u32 event_mask,
 		u32 notify_type,
 		struct dsp_notification *hnotification)
 {
-	dsp_status status = DSP_SOK;
-
 	if (!deh_mgr)
 		return -EFAULT;
 
 	if (event_mask)
-		status = ntfy_register(deh_mgr->ntfy_obj, hnotification,
-					event_mask, notify_type);
+		return ntfy_register(deh_mgr->ntfy_obj, hnotification,
+				event_mask, notify_type);
 	else
-		status = ntfy_unregister(deh_mgr->ntfy_obj, hnotification);
-
-	return status;
+		return ntfy_unregister(deh_mgr->ntfy_obj, hnotification);
 }
 
 static void wait_for_timer(void)
 {
-	u32 cnt = 0;
+	int c;
 
 	omap_dm_timer_enable(timer);
 
 	/* Enable overflow interrupt */
-	omap_dm_timer_set_int_enable(timer,
-			GPTIMER_IRQ_OVERFLOW);
+	omap_dm_timer_set_int_enable(timer, GPTIMER_IRQ_OVERFLOW);
 	/*
 	 * Set counter value to overflow counter after
 	 * one tick and start timer.
@@ -204,15 +184,11 @@ static void wait_for_timer(void)
 	udelay(80);
 
 	/* Check interrupt status and wait for interrupt */
-	cnt = 0;
-	while (!(omap_dm_timer_read_status(timer) &
-				GPTIMER_IRQ_OVERFLOW)) {
-		if (cnt++ >= GPTIMER_IRQ_WAIT_MAX_CNT) {
-			pr_err("%s: GPTimer interrupt failed\n",
-					__func__);
-			break;
-		}
-	}
+	for (c = 0; c < GPTIMER_IRQ_WAIT_MAX_CNT; c++)
+		if ((omap_dm_timer_read_status(timer) & GPTIMER_IRQ_OVERFLOW))
+			return;
+
+	pr_err("%s: GPTimer interrupt failed\n", __func__);
 
 	omap_dm_timer_disable(timer);
 }
@@ -220,16 +196,19 @@ static void wait_for_timer(void)
 void bridge_deh_notify(struct deh_mgr *deh_mgr, u32 ulEventMask, u32 dwErrInfo)
 {
 	struct bridge_dev_context *dev_context;
-	dsp_status status = DSP_SOK;
 	u32 hw_mmu_max_tlb_count = 31;
 	struct cfg_hostres *resources;
-	hw_status hw_status_obj;
+	struct hw_mmu_map_attrs_t map_attrs = {
+		.endianism = HW_LITTLE_ENDIAN,
+		.element_size = HW_ELEM_SIZE16BIT,
+		.mixed_size = HW_MMU_CPUES,
+	};
 
 	if (!deh_mgr)
 		return;
 
 	dev_info(bridge, "%s: device exception\n", __func__);
-	dev_context = (struct bridge_dev_context *)deh_mgr->hbridge_context;
+	dev_context = deh_mgr->hbridge_context;
 	resources = dev_context->resources;
 
 	switch (ulEventMask) {
@@ -256,8 +235,6 @@ void bridge_deh_notify(struct deh_mgr *deh_mgr, u32 ulEventMask, u32 dwErrInfo)
 			(unsigned int) deh_mgr->err_info.dw_val2,
 			(unsigned int) fault_addr);
 		dummy_va_addr = (void*)__get_free_page(GFP_ATOMIC);
-		dev_context = (struct bridge_dev_context *)
-			deh_mgr->hbridge_context;
 
 		print_dsp_trace_buffer(dev_context);
 		dump_dl_modules(dev_context);
@@ -272,20 +249,16 @@ void bridge_deh_notify(struct deh_mgr *deh_mgr, u32 ulEventMask, u32 dwErrInfo)
 			dev_context->num_tlb_entries =
 				dev_context->fixed_tlb_entries;
 		}
-		if (DSP_SUCCEEDED(status)) {
-			hw_status_obj =
-				hw_mmu_tlb_add(resources->dw_dmmu_base,
-						virt_to_phys(dummy_va_addr), fault_addr,
-						HW_PAGE_SIZE4KB, 1,
-						&map_attrs, HW_SET, HW_SET);
-		}
+		hw_mmu_tlb_add(resources->dw_dmmu_base,
+				virt_to_phys(dummy_va_addr), fault_addr,
+				HW_PAGE_SIZE4KB, 1,
+				&map_attrs, HW_SET, HW_SET);
 
 		wait_for_timer();
-
 		/* Clear MMU interrupt */
 		hw_mmu_event_ack(resources->dw_dmmu_base,
 				HW_MMU_TRANSLATION_FAULT);
-		dump_dsp_stack(deh_mgr->hbridge_context);
+		dump_dsp_stack(dev_context);
 		break;
 #ifdef CONFIG_BRIDGE_NTFY_PWRERR
 	case DSP_PWRERROR:
@@ -334,9 +307,6 @@ void bridge_deh_notify(struct deh_mgr *deh_mgr, u32 ulEventMask, u32 dwErrInfo)
 dsp_status bridge_deh_get_info(struct deh_mgr *deh_mgr,
 		struct dsp_errorinfo *pErrInfo)
 {
-	DBC_REQUIRE(deh_mgr);
-	DBC_REQUIRE(pErrInfo);
-
 	if (!deh_mgr)
 		return -EFAULT;
 
@@ -346,7 +316,7 @@ dsp_status bridge_deh_get_info(struct deh_mgr *deh_mgr,
 	pErrInfo->dw_val2 = deh_mgr->err_info.dw_val2;
 	pErrInfo->dw_val3 = deh_mgr->err_info.dw_val3;
 
-	return DSP_SOK;
+	return 0;
 }
 
 void bridge_deh_release_dummy_mem(void)
-- 
1.7.1


  parent reply	other threads:[~2010-05-16 15:46 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-16 15:45 [PATCH 00/14] dspbridge: rewrite deh Felipe Contreras
2010-05-16 15:45 ` [PATCH 01/14] dspbridge: deh: refactor into wait_for_timer() Felipe Contreras
2010-05-17 19:08   ` Guzman Lugo, Fernando
2010-05-16 15:45 ` Felipe Contreras [this message]
2010-05-16 22:02   ` [PATCH 02/14] dspbridge: deh: trivial cleanups Guzman Lugo, Fernando
2010-05-16 22:13     ` Felipe Contreras
2010-05-17  2:31       ` Guzman Lugo, Fernando
2010-05-17 19:09   ` Guzman Lugo, Fernando
2010-05-17 19:39     ` Jansson, Cris
2010-05-17 21:13       ` Felipe Contreras
2010-05-17 21:52         ` Jansson, Cris
2010-05-17 22:10           ` Liu, Stanley
2010-05-16 15:45 ` [PATCH 03/14] dspbridge: mmufault: " Felipe Contreras
2010-05-16 15:45 ` [PATCH 04/14] dspbridge: deh: free dummy page immediately Felipe Contreras
2010-05-17 19:09   ` Guzman Lugo, Fernando
2010-05-16 15:45 ` [PATCH 05/14] dspbridge: remove unused code Felipe Contreras
2010-05-16 15:45 ` [PATCH 06/14] dspbridge: mmu: add hw_mmu_tlb_flush_all() Felipe Contreras
2010-05-17 19:10   ` Guzman Lugo, Fernando
2010-05-16 15:45 ` [PATCH 07/14] dspbridge: deh: ensure only tlb #0 is enabled Felipe Contreras
2010-05-17 19:10   ` Guzman Lugo, Fernando
2010-05-16 15:45 ` [PATCH 08/14] dspbridge: deh: refactor in mmu_fault_print_stack() Felipe Contreras
2010-05-17 19:11   ` Guzman Lugo, Fernando
2010-05-16 15:46 ` [PATCH 09/14] dspbridge: deh: remove get_info Felipe Contreras
2010-05-16 15:46 ` [PATCH 10/14] dspbridge: deh: remove err_info Felipe Contreras
2010-05-16 15:46 ` [PATCH 11/14] dspbridge: access deh directly Felipe Contreras
2010-05-17 19:11   ` Guzman Lugo, Fernando
2010-05-16 15:46 ` [PATCH 12/14] dspbridge: move mmufault to deh Felipe Contreras
2010-05-17 19:11   ` Guzman Lugo, Fernando
2010-05-16 15:46 ` [PATCH 13/14] dspbridge: deh: tidying up Felipe Contreras
2010-05-16 15:46 ` [PATCH 14/14] dspbridge: deh: update copyright notice Felipe Contreras
2010-05-17 19:08 ` [PATCH 00/14] dspbridge: rewrite deh Guzman Lugo, Fernando

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1274024765-21076-3-git-send-email-felipe.contreras@gmail.com \
    --to=felipe.contreras@gmail.com \
    --cc=fernando.lugo@ti.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=omar.ramirez@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.