static int disable_epod(u16 epod_id, bool ramret) { int ret; if (ramret) { if (!epod_on[epod_id]) { ret = prcmu_set_epod(epod_id, EPOD_STATE_OFF); if (ret < 0) return ret; } epod_ramret[epod_id] = false; } else { if (epod_ramret[epod_id]) { ret = prcmu_set_epod(epod_id, EPOD_STATE_RAMRET); if (ret < 0) return ret; } else { ret = prcmu_set_epod(epod_id, EPOD_STATE_OFF); if (ret < 0) return ret; } epod_on[epod_id] = false; } return 0; }
static int enable_epod(u16 epod_id, bool ramret) { int idx = epod_id_to_index(epod_id); int ret; if (ramret) { if (!epod_on[idx]) { ret = prcmu_set_epod(epod_id, EPOD_STATE_RAMRET); if (ret < 0) return ret; } epod_ramret[idx] = true; } else { ret = prcmu_set_epod(epod_id, EPOD_STATE_ON); if (ret < 0) return ret; epod_on[idx] = true; } return 0; }