/** * Close File. * * The client shall close and re-open the file for re-loading the DSPS * firmware. * The file system will close the file if the user space app has crashed. * * If the DSPS is running, then we must reset DSPS CPU & HW before * setting the clocks off. * The DSPS reset should be done as part of the pil_put(). * The DSPS reset should be used for error recovery if the DSPS firmware * has crashed and re-loading the firmware is required. */ static int dsps_release(struct inode *inode, struct file *file) { pr_debug("%s.\n", __func__); drv->ref_count--; if (drv->ref_count == 0) { dsps_suspend(); dsps_unload(); dsps_power_off_handler(); } return 0; }
/** * Shutdown function * called by the restart notifier * */ static int dsps_shutdown(const struct subsys_data *subsys) { pr_debug("%s\n", __func__); dsps_unload(); return 0; }