static void __stm_enable(struct stm_drvdata *drvdata)
{
	__stm_hwevent_enable(drvdata);
	__stm_port_enable(drvdata);

	STM_UNLOCK(drvdata);

	stm_writel(drvdata, 0xFFF, STMSYNCR);
	/*                                                  */
	stm_writel(drvdata, 0x100003, STMTCSR);

	STM_LOCK(drvdata);
}
static void __stm_enable(struct stm_drvdata *drvdata)
{
	__stm_port_enable(drvdata);

	STM_UNLOCK(drvdata);

	stm_writel(drvdata, 0xFFF, STMSYNCR);
	/* SYNCEN is read-only and HWTEN is not implemented */
	stm_writel(drvdata, 0x100003, STMTCSR);
	__stm_hwevent_enable(drvdata);

	STM_LOCK(drvdata);
}
static int stm_hwevent_enable(struct stm_drvdata *drvdata)
{
	int ret = 0;

	spin_lock(&drvdata->spinlock);
	if (drvdata->enable)
		__stm_hwevent_enable(drvdata);
	else
		ret = -EINVAL;
	spin_unlock(&drvdata->spinlock);

	return ret;
}
static void __stm_enable(struct stm_drvdata *drvdata)
{
	__stm_hwevent_enable(drvdata);
	__stm_port_enable(drvdata);

	STM_UNLOCK(drvdata);

	stm_writel(drvdata, 0xFFF, STMSYNCR);
	/* SYNCEN is read-only and HWTEN is not implemented */
	stm_writel(drvdata, 0x100003,STMTCSR);

#ifdef	STM_DEBUG
	dev_dbg("STMSYNCR = 0x%02x\n", stm_readl(drvdata, STMSYNCR));
	dev_dbg("STMTCSR = 0x%02x\n", stm_readl(drvdata, STMTCSR));
#endif

	STM_LOCK(drvdata);
}