Skip to content

Commit

Permalink
staging: tidspbridge: use scm functions to set boot address and mode
Browse files Browse the repository at this point in the history
Instead of ioremapping SCM registers, use the correspondent layer
to write into them.

This allows us to get rid of a layer violation, since the registers
are no longer touched by driver code.

Signed-off-by: Omar Ramirez Luna <omar.ramirez@copitl.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Omar Ramirez Luna authored and Greg Kroah-Hartman committed Jan 18, 2013
1 parent 49720e0 commit 4cb55ca
Showing 1 changed file with 7 additions and 27 deletions.
34 changes: 7 additions & 27 deletions drivers/staging/tidspbridge/core/tiomap3430.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,9 @@
#define PAGES_II_LVL_TABLE 512
#define PHYS_TO_PAGE(phys) pfn_to_page((phys) >> PAGE_SHIFT)

/*
* This is a totally ugly layer violation, but needed until
* omap_ctrl_set_dsp_boot*() are provided.
*/
#define OMAP3_IVA2_BOOTMOD_IDLE 1
#define OMAP2_CONTROL_GENERAL 0x270
#define OMAP343X_CONTROL_IVA2_BOOTADDR (OMAP2_CONTROL_GENERAL + 0x0190)
#define OMAP343X_CONTROL_IVA2_BOOTMOD (OMAP2_CONTROL_GENERAL + 0x0194)
/* IVA Boot modes */
#define DIRECT 0
#define IDLE 1

/* Forward Declarations: */
static int bridge_brd_monitor(struct bridge_dev_context *dev_ctxt);
Expand Down Expand Up @@ -423,29 +418,14 @@ static int bridge_brd_start(struct bridge_dev_context *dev_ctxt,

/* Assert RST1 i.e only the RST only for DSP megacell */
if (!status) {
/*
* XXX: OMAP343X_CTRL_BASE ioremapping MUST be removed once ctrl
* function is made available.
*/
void __iomem *ctrl = ioremap(0x48002000, SZ_4K);
if (!ctrl) {
iounmap(sync_addr);
return -ENOMEM;
}

(*pdata->dsp_prm_rmw_bits)(OMAP3430_RST1_IVA2_MASK,
OMAP3430_RST1_IVA2_MASK, OMAP3430_IVA2_MOD,
OMAP2_RM_RSTCTRL);
/* Mask address with 1K for compatibility */
__raw_writel(dsp_addr & OMAP3_IVA2_BOOTADDR_MASK,
ctrl + OMAP343X_CONTROL_IVA2_BOOTADDR);
/*
* Set bootmode to self loop if dsp_debug flag is true
*/
__raw_writel((dsp_debug) ? OMAP3_IVA2_BOOTMOD_IDLE : 0,
ctrl + OMAP343X_CONTROL_IVA2_BOOTMOD);

iounmap(ctrl);
/* Mask address with 1K for compatibility */
pdata->set_bootaddr(dsp_addr &
OMAP3_IVA2_BOOTADDR_MASK);
pdata->set_bootmode(dsp_debug ? IDLE : DIRECT);
}
}
if (!status) {
Expand Down

0 comments on commit 4cb55ca

Please sign in to comment.