RE: [PATCH 12/14] dspbridge: move mmufault to deh

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



+Cris
+Stanley
Loop in DSP guys in case they would have something to add.

> -----Original Message-----
> From: Felipe Contreras [mailto:felipe.contreras@xxxxxxxxx]
> Sent: Sunday, May 16, 2010 10:46 AM
> To: linux-omap
> Cc: Ramirez Luna, Omar; Guzman Lugo, Fernando; Felipe Contreras
> Subject: [PATCH 12/14] dspbridge: move mmufault to deh
> 
> Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx>
> ---
>  drivers/dsp/bridge/Makefile         |    2 +-
>  drivers/dsp/bridge/core/mmu_fault.c |  100 ------------------------------
> -----
>  drivers/dsp/bridge/core/mmu_fault.h |   34 ------------
>  drivers/dsp/bridge/core/ue_deh.c    |   50 +++++++++++++++++-
>  4 files changed, 50 insertions(+), 136 deletions(-)
>  delete mode 100644 drivers/dsp/bridge/core/mmu_fault.c
>  delete mode 100644 drivers/dsp/bridge/core/mmu_fault.h
> 
> diff --git a/drivers/dsp/bridge/Makefile b/drivers/dsp/bridge/Makefile
> index 4c2f923..39624d4 100644
> --- a/drivers/dsp/bridge/Makefile
> +++ b/drivers/dsp/bridge/Makefile
> @@ -5,7 +5,7 @@ libservices = services/sync.o services/cfg.o \
>  		services/ntfy.o services/services.o
>  libcore = core/chnl_sm.o core/msg_sm.o core/io_sm.o core/tiomap3430.o \
>  		core/tiomap3430_pwr.o core/tiomap_io.o \
> -		core/mmu_fault.o core/ue_deh.o core/wdt.o core/dsp-clock.o
> +		core/ue_deh.o core/wdt.o core/dsp-clock.o
>  libpmgr = pmgr/chnl.o pmgr/io.o pmgr/msg.o pmgr/cod.o pmgr/dev.o
> pmgr/dspapi.o \
>  		pmgr/dmm.o pmgr/cmm.o pmgr/dbll.o
>  librmgr = rmgr/dbdcd.o rmgr/disp.o rmgr/drv.o rmgr/mgr.o rmgr/node.o \
> diff --git a/drivers/dsp/bridge/core/mmu_fault.c
> b/drivers/dsp/bridge/core/mmu_fault.c
> deleted file mode 100644
> index 49034cf..0000000
> --- a/drivers/dsp/bridge/core/mmu_fault.c
> +++ /dev/null
> @@ -1,100 +0,0 @@
> -/*
> - * mmu_fault.c
> - *
> - * DSP-BIOS Bridge driver support functions for TI OMAP processors.
> - *
> - * Implements DSP MMU fault handling functions.
> - *
> - * Copyright (C) 2005-2006 Texas Instruments, Inc.
> - *
> - * This package is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License version 2 as
> - * published by the Free Software Foundation.
> - *
> - * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
> - */
> -
> -/*  ----------------------------------- DSP/BIOS Bridge */
> -#include <dspbridge/std.h>
> -#include <dspbridge/dbdefs.h>
> -#include <dspbridge/errbase.h>
> -
> -/*  ----------------------------------- Trace & Debug */
> -#include <dspbridge/host_os.h>
> -#include <dspbridge/dbc.h>
> -
> -/*  ----------------------------------- OS Adaptation Layer */
> -#include <dspbridge/drv.h>
> -
> -/*  ----------------------------------- Link Driver */
> -#include <dspbridge/dspdeh.h>
> -
> -/* ------------------------------------ Hardware Abstraction Layer */
> -#include <hw_defs.h>
> -#include <hw_mmu.h>
> -
> -/*  ----------------------------------- This */
> -#include "_deh.h"
> -#include <dspbridge/cfg.h>
> -#include "_tiomap_mmu.h"
> -#include "_tiomap.h"
> -#include "mmu_fault.h"
> -
> -/*
> - *  ======== mmu_fault_dpc ========
> - *      Deferred procedure call to handle DSP MMU fault.
> - */
> -void mmu_fault_dpc(IN unsigned long pRefData)
> -{
> -	struct deh_mgr *hdeh_mgr = (struct deh_mgr *)pRefData;
> -
> -	if (!hdeh_mgr)
> -		return;
> -
> -	bridge_deh_notify(hdeh_mgr, DSP_MMUFAULT, 0L);
> -}
> -
> -/*
> - *  ======== mmu_fault_isr ========
> - *      ISR to be triggered by a DSP MMU fault interrupt.
> - */
> -irqreturn_t mmu_fault_isr(int irq, IN void *pRefData)
> -{
> -	struct deh_mgr *deh_mgr_obj = pRefData;
> -	struct cfg_hostres *resources;
> -	u32 dmmu_event_mask;
> -
> -	if (!deh_mgr_obj)
> -		return IRQ_HANDLED;
> -
> -	resources = deh_mgr_obj->hbridge_context->resources;
> -	if (!resources) {
> -		dev_dbg(bridge, "%s: Failed to get Host Resources\n",
> -				__func__);
> -		return IRQ_HANDLED;
> -	}
> -
> -	hw_mmu_event_status(resources->dw_dmmu_base, &dmmu_event_mask);
> -	if (dmmu_event_mask == HW_MMU_TRANSLATION_FAULT) {
> -		hw_mmu_fault_addr_read(resources->dw_dmmu_base, &deh_mgr_obj-
> >fault_addr);
> -		dev_info(bridge, "%s: status=0x%x, fault_addr=0x%x\n",
> __func__,
> -				dmmu_event_mask, deh_mgr_obj->fault_addr);
> -		/*
> -		 * Schedule a DPC directly. In the future, it may be
> -		 * necessary to check if DSP MMU fault is intended for
> -		 * Bridge.
> -		 */
> -		tasklet_schedule(&deh_mgr_obj->dpc_tasklet);
> -
> -		/* Disable the MMU events, else once we clear it will
> -		 * start to raise INTs again */
> -		hw_mmu_event_disable(resources->dw_dmmu_base,
> -				HW_MMU_TRANSLATION_FAULT);
> -	} else {
> -		hw_mmu_event_disable(resources->dw_dmmu_base,
> -				HW_MMU_ALL_INTERRUPTS);
> -	}
> -	return IRQ_HANDLED;
> -}
> diff --git a/drivers/dsp/bridge/core/mmu_fault.h
> b/drivers/dsp/bridge/core/mmu_fault.h
> deleted file mode 100644
> index 537e6e7..0000000
> --- a/drivers/dsp/bridge/core/mmu_fault.h
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -/*
> - * mmu_fault.h
> - *
> - * DSP-BIOS Bridge driver support functions for TI OMAP processors.
> - *
> - * Defines DSP MMU fault handling functions.
> - *
> - * Copyright (C) 2005-2006 Texas Instruments, Inc.
> - *
> - * This package is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License version 2 as
> - * published by the Free Software Foundation.
> - *
> - * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
> - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
> - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
> - */
> -
> -#ifndef MMU_FAULT_
> -#define MMU_FAULT_
> -
> -/*
> - *  ======== mmu_fault_dpc ========
> - *      Deferred procedure call to handle DSP MMU fault.
> - */
> -void mmu_fault_dpc(IN unsigned long pRefData);
> -
> -/*
> - *  ======== mmu_fault_isr ========
> - *      ISR to be triggered by a DSP MMU fault interrupt.
> - */
> -irqreturn_t mmu_fault_isr(int irq, IN void *pRefData);
> -
> -#endif /* MMU_FAULT_ */
> diff --git a/drivers/dsp/bridge/core/ue_deh.c
> b/drivers/dsp/bridge/core/ue_deh.c
> index 6035757..d44c895 100644
> --- a/drivers/dsp/bridge/core/ue_deh.c
> +++ b/drivers/dsp/bridge/core/ue_deh.c
> @@ -46,7 +46,6 @@
>  #include <hw_mmu.h>
> 
>  /*  ----------------------------------- This */
> -#include "mmu_fault.h"
>  #include "_tiomap.h"
>  #include "_deh.h"
>  #include "_tiomap_mmu.h"
> @@ -62,6 +61,55 @@
> 
>  static struct omap_dm_timer *timer;
> 
> +static void mmu_fault_dpc(unsigned long data)
> +{
> +	struct deh_mgr *hdeh_mgr = (void *)data;
> +
> +	if (!hdeh_mgr)
> +		return;
> +
> +	bridge_deh_notify(hdeh_mgr, DSP_MMUFAULT, 0);
> +}
> +
> +static irqreturn_t mmu_fault_isr(int irq, void *data)
> +{
> +	struct deh_mgr *deh_mgr_obj = data;
> +	struct cfg_hostres *resources;
> +	u32 dmmu_event_mask;
> +
> +	if (!deh_mgr_obj)
> +		return IRQ_HANDLED;
> +
> +	resources = deh_mgr_obj->hbridge_context->resources;
> +	if (!resources) {
> +		dev_dbg(bridge, "%s: Failed to get Host Resources\n",
> +				__func__);
> +		return IRQ_HANDLED;
> +	}
> +
> +	hw_mmu_event_status(resources->dw_dmmu_base, &dmmu_event_mask);
> +	if (dmmu_event_mask == HW_MMU_TRANSLATION_FAULT) {
> +		hw_mmu_fault_addr_read(resources->dw_dmmu_base, &deh_mgr_obj-
> >fault_addr);
> +		dev_info(bridge, "%s: status=0x%x, fault_addr=0x%x\n",
> __func__,
> +				dmmu_event_mask, deh_mgr_obj->fault_addr);
> +		/*
> +		 * Schedule a DPC directly. In the future, it may be
> +		 * necessary to check if DSP MMU fault is intended for
> +		 * Bridge.
> +		 */
> +		tasklet_schedule(&deh_mgr_obj->dpc_tasklet);
> +
> +		/* Disable the MMU events, else once we clear it will
> +		 * start to raise INTs again */
> +		hw_mmu_event_disable(resources->dw_dmmu_base,
> +				HW_MMU_TRANSLATION_FAULT);
> +	} else {
> +		hw_mmu_event_disable(resources->dw_dmmu_base,
> +				HW_MMU_ALL_INTERRUPTS);
> +	}
> +	return IRQ_HANDLED;
> +}
> +
>  dsp_status bridge_deh_create(struct deh_mgr **ret_deh_mgr,
>  		struct dev_object *hdev_obj)
>  {
> --
> 1.7.1

--
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

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux