提交 c002e39a 编写于 作者: M Michal Simek

scsi: Change scsi_scan() to be able to return value

With DM_SCSI this function will return more than one return value to
cover errors.
Suggested-by: NSimon Glass <sjg@chromium.org>
Signed-off-by: NMichal Simek <michal.simek@xilinx.com>
Reviewed-by: NTom Rini <trini@konsulko.com>
Reviewed-by: NSimon Glass <sjg@chromium.org>
上级 545a2847
......@@ -27,6 +27,8 @@ int do_scsiboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
*/
int do_scsi(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
int ret;
switch (argc) {
case 0:
case 1:
......@@ -35,8 +37,10 @@ int do_scsi(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
if (strncmp(argv[1], "res", 3) == 0) {
printf("\nReset SCSI\n");
scsi_bus_reset();
scsi_scan(1);
return 0;
ret = scsi_scan(1);
if (ret)
return CMD_RET_FAILURE;
return ret;
}
if (strncmp(argv[1], "inf", 3) == 0) {
blk_list_devices(IF_TYPE_SCSI);
......@@ -51,8 +55,10 @@ int do_scsi(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
return 0;
}
if (strncmp(argv[1], "scan", 4) == 0) {
scsi_scan(1);
return 0;
ret = scsi_scan(1);
if (ret)
return CMD_RET_FAILURE;
return ret;
}
if (strncmp(argv[1], "part", 4) == 0) {
if (blk_list_part(IF_TYPE_SCSI))
......
......@@ -524,7 +524,7 @@ removable:
* (re)-scan the scsi bus and reports scsi device info
* to the user if mode = 1
*/
void scsi_scan(int mode)
int scsi_scan(int mode)
{
unsigned char i, lun;
int ret;
......@@ -558,6 +558,7 @@ void scsi_scan(int mode)
#ifndef CONFIG_SPL_BUILD
setenv_ulong("scsidevs", scsi_max_devs);
#endif
return 0;
}
#ifdef CONFIG_BLK
......
......@@ -173,7 +173,7 @@ void scsi_low_level_init(int busdevfunc);
* functions residing inside cmd_scsi.c
*/
void scsi_init(void);
void scsi_scan(int mode);
int scsi_scan(int mode);
#define SCSI_IDENTIFY 0xC0 /* not used */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册