All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/2] ufs: support various values per device
       [not found] <CGME20200702021936epcas2p47d80e5454fda632c7ebf31fcfa48a0a2@epcas2p4.samsung.com>
@ 2020-07-02  2:11 ` Kiwoong Kim
       [not found]   ` <CGME20200702021938epcas2p249e149341d6227a2c10ab25a8695f579@epcas2p2.samsung.com>
       [not found]   ` <CGME20200702021938epcas2p35eadff66139b6a42d438fa3ee868a29a@epcas2p3.samsung.com>
  0 siblings, 2 replies; 7+ messages in thread
From: Kiwoong Kim @ 2020-07-02  2:11 UTC (permalink / raw)
  To: linux-scsi, alim.akhtar, avri.altman, jejb, martin.petersen,
	beanhuo, asutoshd, cang, bvanassche
  Cc: Kiwoong Kim

Respective UFS devices have their own characteristics and
many of them could be a form of numbers, such as timeout
and a number of retires. This introduces the way to set
those things per specific device vendor or specific device.

Kiwoong Kim (2):
  ufs: support various values per device
  ufs: change the way to complete fDeviceInit

 drivers/scsi/ufs/ufs_quirks.h | 13 ++++++++
 drivers/scsi/ufs/ufshcd.c     | 75 ++++++++++++++++++++++++++++++++++++-------
 drivers/scsi/ufs/ufshcd.h     |  1 +
 3 files changed, 77 insertions(+), 12 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v1 1/2] ufs: support various values per device
       [not found]   ` <CGME20200702021938epcas2p249e149341d6227a2c10ab25a8695f579@epcas2p2.samsung.com>
@ 2020-07-02  2:11     ` Kiwoong Kim
  2020-07-02  5:52         ` kernel test robot
  2020-07-02  9:14         ` kernel test robot
  0 siblings, 2 replies; 7+ messages in thread
From: Kiwoong Kim @ 2020-07-02  2:11 UTC (permalink / raw)
  To: linux-scsi, alim.akhtar, avri.altman, jejb, martin.petersen,
	beanhuo, asutoshd, cang, bvanassche
  Cc: Kiwoong Kim

Signed-off-by: Kiwoong Kim <kwmad.kim@samsung.com>

Respective UFS devices have their own characteristics and
many of them could be a form of numbers, such as timeout
and a number of retires. This introduces the way to set
those things per specific device vendor or specific device.

I wrote this like the style of ufs_fixups stuffs.
---
 drivers/scsi/ufs/ufs_quirks.h | 13 +++++++++++++
 drivers/scsi/ufs/ufshcd.c     | 39 +++++++++++++++++++++++++++++++++++++++
 drivers/scsi/ufs/ufshcd.h     |  1 +
 3 files changed, 53 insertions(+)

diff --git a/drivers/scsi/ufs/ufs_quirks.h b/drivers/scsi/ufs/ufs_quirks.h
index 2a00414..f074093 100644
--- a/drivers/scsi/ufs/ufs_quirks.h
+++ b/drivers/scsi/ufs/ufs_quirks.h
@@ -29,6 +29,19 @@ struct ufs_dev_fix {
 	unsigned int quirk;
 };
 
+enum dev_val_type {
+	DEV_VAL_FDEVICEINIT	= 0x0,
+	DEV_VAL_NUM,
+};
+
+struct ufs_dev_value {
+	u16 wmanufacturerid;
+	u8 *model;
+	u32 key;
+	u32 val;
+	bool enable;
+};
+
 #define END_FIX { }
 
 /* add specific device quirk */
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 52abe82..7b6f13a 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -207,6 +207,21 @@ static struct ufs_dev_fix ufs_fixups[] = {
 	END_FIX
 };
 
+static const struct ufs_dev_value ufs_dev_values[] = {
+	{0, 0, 0, 0, false},
+};
+
+static inline bool
+ufs_get_dev_specific_value(struct ufs_hba *hba,
+			   enum dev_val_type type, u32 *val)
+{
+	if (!ufs_dev_values[type].enable)
+		return false;
+
+	*val = hba->dev_value[type];
+	return true;
+}
+
 static irqreturn_t ufshcd_tmc_handler(struct ufs_hba *hba);
 static void ufshcd_async_scan(void *data, async_cookie_t cookie);
 static int ufshcd_reset_and_restore(struct ufs_hba *hba);
@@ -6923,11 +6938,35 @@ void ufshcd_fixup_dev_quirks(struct ufs_hba *hba, struct ufs_dev_fix *fixups)
 }
 EXPORT_SYMBOL_GPL(ufshcd_fixup_dev_quirks);
 
+void ufshcd_set_dev_values(struct ufs_hba *hba, struct ufs_dev_value *value)
+{
+	struct ufs_dev_value *f;
+	struct ufs_dev_info *dev_info = &hba->dev_info;
+
+	if (!value)
+		return;
+
+	for (f = value; f->val; f++) {
+		if ((f->wmanufacturerid == dev_info->wmanufacturerid ||
+					f->wmanufacturerid == UFS_ANY_VENDOR) &&
+				((dev_info->model &&
+				  STR_PRFX_EQUAL(f->model, dev_info->model)) ||
+				 !strcmp(f->model, UFS_ANY_MODEL))) {
+			f->enable = true;
+			hba->dev_value[f->key] = f->val;
+		}
+	}
+}
+EXPORT_SYMBOL_GPL(ufshcd_set_dev_values);
+
 static void ufs_fixup_device_setup(struct ufs_hba *hba)
 {
 	/* fix by general quirk table */
 	ufshcd_fixup_dev_quirks(hba, ufs_fixups);
 
+	/* set device specific values */
+	ufshcd_set_dev_values(hba, ufs_dev_values);
+
 	/* allow vendors to fix quirks */
 	ufshcd_vops_fixup_dev_quirks(hba);
 }
diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
index c774012..f221ca7 100644
--- a/drivers/scsi/ufs/ufshcd.h
+++ b/drivers/scsi/ufs/ufshcd.h
@@ -670,6 +670,7 @@ struct ufs_hba {
 
 	/* Device deviations from standard UFS device spec. */
 	unsigned int dev_quirks;
+	u32 dev_value[DEV_VAL_NUM];
 
 	struct blk_mq_tag_set tmf_tag_set;
 	struct request_queue *tmf_queue;
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v1 2/2] ufs: change the way to complete fDeviceInit
       [not found]   ` <CGME20200702021938epcas2p35eadff66139b6a42d438fa3ee868a29a@epcas2p3.samsung.com>
@ 2020-07-02  2:11     ` Kiwoong Kim
  0 siblings, 0 replies; 7+ messages in thread
From: Kiwoong Kim @ 2020-07-02  2:11 UTC (permalink / raw)
  To: linux-scsi, alim.akhtar, avri.altman, jejb, martin.petersen,
	beanhuo, asutoshd, cang, bvanassche
  Cc: Kiwoong Kim

Currently, UFS driver checks if fDeviceInit
is cleared at several times, not period. This patch
is to wait its completion with the period, not retrying.
Many device vendors usually provides the specification on
it with just period, not a combination of a number of retrying
and period. So it could be proper to regard to the information
coming from device vendors.

I first added one device specific value regarding the information.

Signed-off-by: Kiwoong Kim <kwmad.kim@samsung.com>
---
 drivers/scsi/ufs/ufshcd.c | 36 ++++++++++++++++++++++++------------
 1 file changed, 24 insertions(+), 12 deletions(-)

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 7b6f13a..717afed 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -208,6 +208,7 @@ static struct ufs_dev_fix ufs_fixups[] = {
 };
 
 static const struct ufs_dev_value ufs_dev_values[] = {
+	{UFS_VENDOR_TOSHIBA, UFS_ANY_MODEL, DEV_VAL_FDEVICEINIT, 2000, false},
 	{0, 0, 0, 0, false},
 };
 
@@ -4162,9 +4163,12 @@ EXPORT_SYMBOL_GPL(ufshcd_config_pwr_mode);
  */
 static int ufshcd_complete_dev_init(struct ufs_hba *hba)
 {
-	int i;
+	u32 dev_init_compl_in_ms = 1000;
+	unsigned long timeout;
 	int err;
 	bool flag_res = true;
+	bool is_dev_val;
+	u32 val;
 
 	err = ufshcd_query_flag_retry(hba, UPIU_QUERY_OPCODE_SET_FLAG,
 		QUERY_FLAG_IDN_FDEVICEINIT, 0, NULL);
@@ -4175,20 +4179,28 @@ static int ufshcd_complete_dev_init(struct ufs_hba *hba)
 		goto out;
 	}
 
-	/* poll for max. 1000 iterations for fDeviceInit flag to clear */
-	for (i = 0; i < 1000 && !err && flag_res; i++)
-		err = ufshcd_query_flag_retry(hba, UPIU_QUERY_OPCODE_READ_FLAG,
-			QUERY_FLAG_IDN_FDEVICEINIT, 0, &flag_res);
+	/* Poll fDeviceInit flag to be cleared */
+	is_dev_val = ufs_get_dev_specific_value(hba, DEV_VAL_FDEVICEINIT, &val);
+	dev_init_compl_in_ms = (is_dev_val) ? val : 500;
+	timeout = jiffies + msecs_to_jiffies(dev_init_compl_in_ms);
+	do {
+		err = ufshcd_query_flag(hba, UPIU_QUERY_OPCODE_READ_FLAG,
+					QUERY_FLAG_IDN_FDEVICEINIT, 0, &flag_res);
+		if (!flag_res)
+			break;
+		usleep_range(5, 10);
+	} while (time_before(jiffies, timeout));
 
-	if (err)
+	if (err) {
 		dev_err(hba->dev,
-			"%s reading fDeviceInit flag failed with error %d\n",
-			__func__, err);
-	else if (flag_res)
+				"%s reading fDeviceInit flag failed with error %d\n",
+				__func__, err);
+	} else if (flag_res) {
 		dev_err(hba->dev,
-			"%s fDeviceInit was not cleared by the device\n",
-			__func__);
-
+				"%s fDeviceInit was not cleared by the device\n",
+				__func__);
+		err = -EBUSY;
+	}
 out:
 	return err;
 }
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 1/2] ufs: support various values per device
  2020-07-02  2:11     ` [PATCH v1 1/2] " Kiwoong Kim
@ 2020-07-02  5:52         ` kernel test robot
  2020-07-02  9:14         ` kernel test robot
  1 sibling, 0 replies; 7+ messages in thread
From: kernel test robot @ 2020-07-02  5:52 UTC (permalink / raw)
  To: Kiwoong Kim, linux-scsi, alim.akhtar, avri.altman, jejb,
	martin.petersen, beanhuo, asutoshd, cang, bvanassche
  Cc: kbuild-all, Kiwoong Kim

[-- Attachment #1: Type: text/plain, Size: 2538 bytes --]

Hi Kiwoong,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on scsi/for-next]
[also build test WARNING on mkp-scsi/for-next v5.8-rc3 next-20200701]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use  as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Kiwoong-Kim/ufs-support-various-values-per-device/20200702-102146
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
config: mips-allyesconfig (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/scsi/ufs/ufshcd.c:6951:6: warning: no previous prototype for 'ufshcd_set_dev_values' [-Wmissing-prototypes]
    6951 | void ufshcd_set_dev_values(struct ufs_hba *hba, struct ufs_dev_value *value)
         |      ^~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/ufs/ufshcd.c: In function 'ufs_fixup_device_setup':
>> drivers/scsi/ufs/ufshcd.c:6978:29: warning: passing argument 2 of 'ufshcd_set_dev_values' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
    6978 |  ufshcd_set_dev_values(hba, ufs_dev_values);
         |                             ^~~~~~~~~~~~~~
   drivers/scsi/ufs/ufshcd.c:6951:71: note: expected 'struct ufs_dev_value *' but argument is of type 'const struct ufs_dev_value *'
    6951 | void ufshcd_set_dev_values(struct ufs_hba *hba, struct ufs_dev_value *value)
         |                                                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~

vim +6978 drivers/scsi/ufs/ufshcd.c

  6971	
  6972	static void ufs_fixup_device_setup(struct ufs_hba *hba)
  6973	{
  6974		/* fix by general quirk table */
  6975		ufshcd_fixup_dev_quirks(hba, ufs_fixups);
  6976	
  6977		/* set device specific values */
> 6978		ufshcd_set_dev_values(hba, ufs_dev_values);
  6979	
  6980		/* allow vendors to fix quirks */
  6981		ufshcd_vops_fixup_dev_quirks(hba);
  6982	}
  6983	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 67090 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 1/2] ufs: support various values per device
@ 2020-07-02  5:52         ` kernel test robot
  0 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2020-07-02  5:52 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 2595 bytes --]

Hi Kiwoong,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on scsi/for-next]
[also build test WARNING on mkp-scsi/for-next v5.8-rc3 next-20200701]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use  as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Kiwoong-Kim/ufs-support-various-values-per-device/20200702-102146
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
config: mips-allyesconfig (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/scsi/ufs/ufshcd.c:6951:6: warning: no previous prototype for 'ufshcd_set_dev_values' [-Wmissing-prototypes]
    6951 | void ufshcd_set_dev_values(struct ufs_hba *hba, struct ufs_dev_value *value)
         |      ^~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/ufs/ufshcd.c: In function 'ufs_fixup_device_setup':
>> drivers/scsi/ufs/ufshcd.c:6978:29: warning: passing argument 2 of 'ufshcd_set_dev_values' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
    6978 |  ufshcd_set_dev_values(hba, ufs_dev_values);
         |                             ^~~~~~~~~~~~~~
   drivers/scsi/ufs/ufshcd.c:6951:71: note: expected 'struct ufs_dev_value *' but argument is of type 'const struct ufs_dev_value *'
    6951 | void ufshcd_set_dev_values(struct ufs_hba *hba, struct ufs_dev_value *value)
         |                                                 ~~~~~~~~~~~~~~~~~~~~~~^~~~~

vim +6978 drivers/scsi/ufs/ufshcd.c

  6971	
  6972	static void ufs_fixup_device_setup(struct ufs_hba *hba)
  6973	{
  6974		/* fix by general quirk table */
  6975		ufshcd_fixup_dev_quirks(hba, ufs_fixups);
  6976	
  6977		/* set device specific values */
> 6978		ufshcd_set_dev_values(hba, ufs_dev_values);
  6979	
  6980		/* allow vendors to fix quirks */
  6981		ufshcd_vops_fixup_dev_quirks(hba);
  6982	}
  6983	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 67090 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 1/2] ufs: support various values per device
  2020-07-02  2:11     ` [PATCH v1 1/2] " Kiwoong Kim
@ 2020-07-02  9:14         ` kernel test robot
  2020-07-02  9:14         ` kernel test robot
  1 sibling, 0 replies; 7+ messages in thread
From: kernel test robot @ 2020-07-02  9:14 UTC (permalink / raw)
  To: Kiwoong Kim, linux-scsi, alim.akhtar, avri.altman, jejb,
	martin.petersen, beanhuo, asutoshd, cang, bvanassche
  Cc: kbuild-all, Kiwoong Kim

[-- Attachment #1: Type: text/plain, Size: 1957 bytes --]

Hi Kiwoong,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on scsi/for-next]
[also build test WARNING on mkp-scsi/for-next v5.8-rc3 next-20200702]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use  as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Kiwoong-Kim/ufs-support-various-values-per-device/20200702-102146
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
config: sparc64-randconfig-s032-20200701 (attached as .config)
compiler: sparc64-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.2-3-gfa153962-dirty
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=sparc64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

>> drivers/scsi/ufs/ufshcd.c:211:13: sparse: sparse: Using plain integer as NULL pointer
>> drivers/scsi/ufs/ufshcd.c:6978:36: sparse: sparse: incorrect type in argument 2 (different modifiers) @@     expected struct ufs_dev_value *value @@     got struct ufs_dev_value const * @@
>> drivers/scsi/ufs/ufshcd.c:6978:36: sparse:     expected struct ufs_dev_value *value
>> drivers/scsi/ufs/ufshcd.c:6978:36: sparse:     got struct ufs_dev_value const *

vim +211 drivers/scsi/ufs/ufshcd.c

   209	
   210	static const struct ufs_dev_value ufs_dev_values[] = {
 > 211		{0, 0, 0, 0, false},
   212	};
   213	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 32836 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 1/2] ufs: support various values per device
@ 2020-07-02  9:14         ` kernel test robot
  0 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2020-07-02  9:14 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 2003 bytes --]

Hi Kiwoong,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on scsi/for-next]
[also build test WARNING on mkp-scsi/for-next v5.8-rc3 next-20200702]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use  as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Kiwoong-Kim/ufs-support-various-values-per-device/20200702-102146
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
config: sparc64-randconfig-s032-20200701 (attached as .config)
compiler: sparc64-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.2-3-gfa153962-dirty
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=sparc64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

>> drivers/scsi/ufs/ufshcd.c:211:13: sparse: sparse: Using plain integer as NULL pointer
>> drivers/scsi/ufs/ufshcd.c:6978:36: sparse: sparse: incorrect type in argument 2 (different modifiers) @@     expected struct ufs_dev_value *value @@     got struct ufs_dev_value const * @@
>> drivers/scsi/ufs/ufshcd.c:6978:36: sparse:     expected struct ufs_dev_value *value
>> drivers/scsi/ufs/ufshcd.c:6978:36: sparse:     got struct ufs_dev_value const *

vim +211 drivers/scsi/ufs/ufshcd.c

   209	
   210	static const struct ufs_dev_value ufs_dev_values[] = {
 > 211		{0, 0, 0, 0, false},
   212	};
   213	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32836 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-07-02  9:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20200702021936epcas2p47d80e5454fda632c7ebf31fcfa48a0a2@epcas2p4.samsung.com>
2020-07-02  2:11 ` [PATCH v1 0/2] ufs: support various values per device Kiwoong Kim
     [not found]   ` <CGME20200702021938epcas2p249e149341d6227a2c10ab25a8695f579@epcas2p2.samsung.com>
2020-07-02  2:11     ` [PATCH v1 1/2] " Kiwoong Kim
2020-07-02  5:52       ` kernel test robot
2020-07-02  5:52         ` kernel test robot
2020-07-02  9:14       ` kernel test robot
2020-07-02  9:14         ` kernel test robot
     [not found]   ` <CGME20200702021938epcas2p35eadff66139b6a42d438fa3ee868a29a@epcas2p3.samsung.com>
2020-07-02  2:11     ` [PATCH v1 2/2] ufs: change the way to complete fDeviceInit Kiwoong Kim

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.