int mfc_start(struct mfc_dev *dev) { int ret; /* FIXME: when MFC start, load firmware again */ /* dev->fw.state = mfc_load_firmware(dev->fw.info->data, dev->fw.info->size); */ mfc_clock_on(dev); if (mfc_reset() == false) { mfc_clock_off(dev); return MFC_FAIL; } mfc_init_memctrl(); mfc_clear_cmds(); ret = mfc_cmd_fw_start(dev); if (ret < 0) { mfc_clock_off(dev); return ret; } ret = mfc_cmd_sys_init(dev); mfc_clock_off(dev); return ret; }
int mfc_wakeup(struct mfc_dev *dev) { int ret; /* FIXME: add mfc_power_on()? */ //mfc_clock_on(); mfc_clock_on(dev); if (mfc_reset() == false) { //mfc_clock_off(); mfc_clock_off(dev); return MFC_FAIL; } mfc_init_memctrl(); mfc_clear_cmds(); ret = mfc_cmd_sys_wakeup(dev); //mfc_clock_off(); mfc_clock_off(dev); /* FIXME: ret = 0 */ return ret; }