/** * set_extended_standby_manager - set the extended_standby_manager; * manager@: the manager config. * * return value: if the setting is correct, return true. * else return false; * notes: the function will check the struct member: pextended_standby and event. * if the setting is not proper, return false. */ bool set_extended_standby_manager(scene_extended_standby_t *local_standby) { unsigned long irqflags; EXSTANDBY_DBG("enter %s\n", __func__); if (local_standby && 0 == local_standby->soc_pwr_dep.soc_pwr_dm_state.state) { return true; } if (!local_standby) { spin_lock_irqsave(&data_lock, irqflags); copy_extended_standby_data(NULL); extended_standby_manager.pextended_standby = NULL; spin_unlock_irqrestore(&data_lock, irqflags); return true; } else { spin_lock_irqsave(&data_lock, irqflags); copy_extended_standby_data(local_standby); extended_standby_manager.pextended_standby = &temp_standby_data; spin_unlock_irqrestore(&data_lock, irqflags); } if (NULL != extended_standby_manager.pextended_standby) EXSTANDBY_DBG("leave %s : id 0x%lx\n", __func__, extended_standby_manager.pextended_standby->id); return true; }
/** * set_extended_standby_manager - set the extended_standby_manager; * manager@: the manager config. * * return value: if the setting is correct, return true. * else return false; * notes: the function will check the struct member: pextended_standby and event. * if the setting is not proper, return false. */ bool set_extended_standby_manager(unsigned long flags) { unsigned long irqflags; EXSTANDBY_DBG("enter %s\n", __func__); if (USB_STANDBY_FLAGS & flags) { spin_lock_irqsave(&data_lock, irqflags); copy_extended_standby_data(&usb_standby); extended_standby_manager.pextended_standby = &temp_standby_data; spin_unlock_irqrestore(&data_lock, irqflags); } if (TALKING_STANDBY_FLAGS & flags) { spin_lock_irqsave(&data_lock, irqflags); copy_extended_standby_data(&talk_standby); extended_standby_manager.pextended_standby = &temp_standby_data; spin_unlock_irqrestore(&data_lock, irqflags); } if (MP3_STANDBY_FLAGE & flags) { } if (0 == flags) { spin_lock_irqsave(&data_lock, irqflags); temp_standby_data.id = 0; extended_standby_manager.pextended_standby = NULL; spin_unlock_irqrestore(&data_lock, irqflags); return true; } if (NULL != extended_standby_manager.pextended_standby) EXSTANDBY_DBG("leave %s : id 0x%lx\n", __func__, extended_standby_manager.pextended_standby->id); return true; }