/**
 *	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;
}