Esempio n. 1
0
static void omap2_mbox_restore_ctx(struct omap_mbox *mbox)
{
	int i, j;

	omap2_mbox_startup(mbox);

	/* Restore irqs per user */
	for (j = 0, i = 0; j < nr_mbox_users; i++, j++) {
		if (cpu_is_omap44xx())
			mbox_write_reg(mbox_ctx[i], OMAP4_MAILBOX_IRQENABLE(j));
		else
			mbox_write_reg(mbox_ctx[i], MAILBOX_IRQENABLE(j));

		dev_dbg(mbox->dev, "%s: [%02x] %08x\n", __func__,
				i, mbox_ctx[i]);
	}
}
Esempio n. 2
0
static void omap2_mbox_save_ctx(struct omap_mbox *mbox)
{
	int i, j;

	/* Save irqs per user */
	for (j = 0, i = 0; j < nr_mbox_users; i++, j++) {
		if (cpu_is_omap44xx())
			mbox_ctx[i] = mbox_read_reg(OMAP4_MAILBOX_IRQENABLE(j));
		else
			mbox_ctx[i] = mbox_read_reg(MAILBOX_IRQENABLE(j));

		dev_dbg(mbox->dev, "%s: [%02x] %08x\n", __func__,
			i, mbox_ctx[i]);
	}

//	omap2_mbox_shutdown(mbox);
}
 * MAILBOX 4: ARM -> wrigley c55,
 * MAILBOX 5: ARM <- wrigley c55,
 */

/* FIXME: the following structs should be filled automatically by the user id */
/* DSP */
static struct omap_mbox2_priv omap2_mbox_dsp_priv = {
	.tx_fifo = {
		.msg		= MAILBOX_MESSAGE(0),
		.fifo_stat	= MAILBOX_FIFOSTATUS(0),
	},
	.rx_fifo = {
		.msg		= MAILBOX_MESSAGE(1),
		.msg_stat	= MAILBOX_MSGSTATUS(1),
	},
	.irqenable	= MAILBOX_IRQENABLE(0),
	.irqstatus	= MAILBOX_IRQSTATUS(0),
	.notfull_bit	= MAILBOX_IRQ_NOTFULL(0),
	.newmsg_bit	= MAILBOX_IRQ_NEWMSG(1),
	.irqdisable	= MAILBOX_IRQENABLE(0),
};



/* OMAP4 specific data structure. Use the cpu_is_omap4xxx()
to use this*/
static struct omap_mbox2_priv omap2_mbox_1_priv = {
	.tx_fifo = {
		.msg		= MAILBOX_MESSAGE(0),
		.fifo_stat	= MAILBOX_FIFOSTATUS(0),
	},
Esempio n. 4
0
 * MAILBOX 3: ARM <- IVA.
 */

/* FIXME: the following structs should be filled automatically by the user id */

/* DSP */
static struct omap_mbox2_priv omap2_mbox_dsp_priv = {
	.tx_fifo = {
		.msg		= MAILBOX_MESSAGE(0),
		.fifo_stat	= MAILBOX_FIFOSTATUS(0),
	},
	.rx_fifo = {
		.msg		= MAILBOX_MESSAGE(1),
		.msg_stat	= MAILBOX_MSGSTATUS(1),
	},
	.irqenable	= MAILBOX_IRQENABLE(0),
	.irqstatus	= MAILBOX_IRQSTATUS(0),
	.notfull_bit	= MAILBOX_IRQ_NOTFULL(0),
	.newmsg_bit	= MAILBOX_IRQ_NEWMSG(1),
};

struct omap_mbox mbox_dsp_info = {
	.name	= "dsp",
	.ops	= &omap2_mbox_ops,
	.priv	= &omap2_mbox_dsp_priv,
};
EXPORT_SYMBOL(mbox_dsp_info);

#if defined(CONFIG_ARCH_OMAP2420) /* IVA */
static struct omap_mbox2_priv omap2_mbox_iva_priv = {
	.tx_fifo = {