This series of patches is to simplify UFS driver initialization flow and add a new parameter max_lu_supported used to specify how many LUs supported by the UFS device. This series of patches being tested on my two platforms, Qualcomm SOC based and Hisilicon SOC based platforms. v1-v2: 1. Split ufshcd_probe_hba() based on its called flow 2. Delete two unnecessary functions 3. Add a fixup patch v2-v3: 1. Combine patches 7/9 and 8/9 of v2 to patch 7/8 of v3 2. Change patches 1/8 and 5/8 subject 3. Change the name of two functions in patch 7/8 Bean Huo (8): scsi: ufs: Fix ufshcd_probe_hba() reture value in case ufshcd_scsi_add_wlus() fails scsi: ufs: Delete struct ufs_dev_desc scsi: ufs: Split ufshcd_probe_hba() based on its called flow scsi: ufs: move ufshcd_get_max_pwr_mode() to ufs_init_params() scsi: ufs: Inline two functions into their callers scsi: ufs: Delete is_init_prefetch from struct ufs_hba scsi: ufs: Add max_lu_supported in struct ufs_dev_info scsi: ufs: Use UFS device indicated maximum LU number drivers/scsi/ufs/ufs-mediatek.c | 7 +- drivers/scsi/ufs/ufs-qcom.c | 6 +- drivers/scsi/ufs/ufs-sysfs.c | 2 +- drivers/scsi/ufs/ufs.h | 25 ++- drivers/scsi/ufs/ufs_quirks.h | 9 +- drivers/scsi/ufs/ufshcd.c | 276 +++++++++++++++++++------------- drivers/scsi/ufs/ufshcd.h | 9 +- 7 files changed, 196 insertions(+), 138 deletions(-) -- 2.17.1