/* Subsystem handlers */
static int riva_shutdown(const struct subsys_data *subsys)
{
	pil_force_shutdown("wcnss");
	flush_delayed_work(&cancel_vote_work);
	wcnss_flush_delayed_boot_votes();

	return 0;
}
/* Subsystem handlers */
static int riva_shutdown(const struct subsys_desc *subsys)
{
	pil_force_shutdown("wcnss");
	flush_delayed_work(&cancel_vote_work);
	wcnss_flush_delayed_boot_votes();
	disable_irq_nosync(RIVA_APSS_WDOG_BITE_RESET_RDY_IRQ);

	return 0;
}
static int wcnss_shutdown(const struct subsys_desc *subsys)
{
	struct pronto_data *drv = subsys_to_drv(subsys);

	pil_shutdown(&drv->desc);
	flush_delayed_work(&drv->cancel_vote_work);
	wcnss_flush_delayed_boot_votes();

	return 0;
}
/* Subsystem handlers */
static int riva_shutdown(const struct subsys_desc *subsys)
{
	pr_info(MODULE_NAME "%s + \n", __FUNCTION__);
	pil_force_shutdown("wcnss");
	pr_info(MODULE_NAME "%s  pil_force_shutdown done \n", __FUNCTION__);
	flush_delayed_work(&cancel_vote_work);
	wcnss_flush_delayed_boot_votes();
	disable_irq_nosync(RIVA_APSS_WDOG_BITE_RESET_RDY_IRQ);
	pr_info(MODULE_NAME "%s - \n", __FUNCTION__);
	return 0;
}
static int riva_shutdown(const struct subsys_desc *desc)
{
	struct riva_data *drv;

	drv = container_of(desc, struct riva_data, subsys_desc);
	pil_shutdown(&drv->pil_desc);
	flush_delayed_work(&drv->cancel_work);
	wcnss_flush_delayed_boot_votes();
	disable_irq_nosync(drv->irq);

	return 0;
}
/* Subsystem handlers */
static int riva_shutdown(const struct subsys_data *subsys)
{
    pr_info(MODULE_NAME ": riva_shutdown.\n");

    //ASUS_BSP+++ "for /data/log/ASUSEvtlog"
    ASUSEvtlog("[wcnss]: riva_shutdown.\n");
    //ASUS_BSP--- "for /data/log/ASUSEvtlog"

	pil_force_shutdown("wcnss");
	flush_delayed_work(&cancel_vote_work);
	wcnss_flush_delayed_boot_votes();
	disable_irq_nosync(RIVA_APSS_WDOG_BITE_RESET_RDY_IRQ);

	return 0;
}