staging: tidspbridge: use scm functions to set boot address and mode
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>
This commit is contained in:
parent
49720e0120
commit
4cb55ca1db
|
@ -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);
|
||||
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue