On Tuesday, May 07, 2013, Santosh Y wrote: > > /** > > + * ufshcd_dme_power_xxx - UIC command for DME_POWERON, DME_POWEROFF > > + * @hba: per adapter instance > > + * @on: indicate wherter power_on or power_off > > + * > > + * Returns 0 on success, non-zero value on failure > > + */ > > +int ufshcd_dme_power_xxx(struct ufs_hba *hba, u8 on) > > +{ > > + struct uic_command uic_cmd = {0}; > > + static const char *const action[] = { > > + "dme-power-off", > > + "dme-power-on" > > + }; > > + const char *power = action[!!on]; > > + int ret; > > + > > + uic_cmd.command = on ? > > + UIC_CMD_DME_POWERON : UIC_CMD_DME_POWEROFF; > > + > > + ret = ufshcd_send_uic_cmd(hba, &uic_cmd); > > + if (ret) > > + dev_err(hba->dev, "%s: error code %d\n", power, ret); > > + > > + return ret; > > +} > > +EXPORT_SYMBOL_GPL(ufshcd_dme_power_xxx); > > + > > +/** > > + * ufshcd_dme_hibern8_xxx - UIC command for DME_HIBERNATE_ENTER, > > + * DME_HIBERNATE_EXIT > > + * @hba: per adapter instance > > + * @enter: indicate wherter hibernation enter or exit > > + * > > + * Returns 0 on success, non-zero value on failure > > + */ > > +int ufshcd_dme_hibern8_xxx(struct ufs_hba *hba, u8 enter) > > +{ > > + struct uic_command uic_cmd = {0}; > > + static const char *const action[] = { > > + "dme-hibernate-exit", > > + "dme-hibernate-enter" > > + }; > > + const char *hibern8 = action[!!enter]; > > + u8 status; > > + int ret; > > + > > + uic_cmd.command = enter ? > > + UIC_CMD_DME_HIBER_ENTER : UIC_CMD_DME_HIBER_EXIT; > > + > > + mutex_lock(&hba->uic_cmd_mutex); > > + init_completion(&hba->hibern8_done); > > + ret = __ufshcd_send_uic_cmd(hba, &uic_cmd); > > + if (ret) { > > + dev_err(hba->dev, "%s: error code %d\n", hibern8, ret); > > + goto out; > > + } > > + > > + if (wait_for_completion_timeout(&hba->hibern8_done, > > + msecs_to_jiffies(UIC_CMD_TIMEOUT))) { > > + status = ufshcd_get_upmcrs(hba); > > + if (status != PWR_LOCAL) { > > + dev_err(hba->dev, "%s: failed, host upmcrs:%x\n", > > + hibern8, status); > > + ret = status; > > + } > > + } else { > > + dev_err(hba->dev, "%s: timeout\n", hibern8); > > + ret = -ETIMEDOUT; > > + } > > +out: > > + mutex_unlock(&hba->uic_cmd_mutex); > > + return ret; > > +} > > +EXPORT_SYMBOL_GPL(ufshcd_dme_hibern8_xxx); > > + > > > power/hibernate functions can also be renamed as > ufshcd_dme_power/hibernate_config(struct ufs_hba *hba, bool > enable/enter) or similar instead of xxx. Ok, I'll change the names including dme_get/set. If you have further views, please let me know. Thanks, Seungwon Jeon > > > -- > ~Santosh > -- > To unsubscribe from this list: send the line "unsubscribe linux-scsi" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html