From patchwork Mon Jun 5 19:15:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 771449 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3whQFc1KVpz9s03 for ; Tue, 6 Jun 2017 05:42:28 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="LQaiTYqV"; dkim-atps=neutral Received: by lists.denx.de (Postfix, from userid 105) id AC3B2C21C80; Mon, 5 Jun 2017 19:33:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 0224AC21CCF; Mon, 5 Jun 2017 19:16:20 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 1E9B8C21C49; Mon, 5 Jun 2017 19:16:08 +0000 (UTC) Received: from mail-ot0-f176.google.com (mail-ot0-f176.google.com [74.125.82.176]) by lists.denx.de (Postfix) with ESMTPS id AC8A4C21CBF for ; Mon, 5 Jun 2017 19:15:57 +0000 (UTC) Received: by mail-ot0-f176.google.com with SMTP id k4so2072806otd.0 for ; Mon, 05 Jun 2017 12:15:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=gnN8roKRmplQgUJOa+iQrM54ZNkzwX1EIYhP/YIoqlM=; b=LQaiTYqVSJ8y5Qchmf4ZRnoXR+HEVQ1KTHtfr6fnNQKVtLrIXu4BZbn/8Tk87KUeKP 32OQCTAjYEYwmMFdhDH3lvIe1SHamaANmvqUntG0Hv0hewnKG9Zy3veYvn2HVRy+7HuW QjpTxQGJ7XyqtwOSiibXaKsdeGHfsq5EGsgUc6EBd/EYIV23StCvdxmKEokZd4XAwpYJ 2zzbEm5zn5SqK+Ql8tY0QSjMWVUIgMmf9gV4cNN2sHHKLZU8nN+sxcN3eHz6HqXv9+Ur i+sKqrADl3Lb1r4yvKYzKb+w74gkD/ch6iHRl4362n9AO2pF5p+XRsBbK0bKuIY4h2lG OpXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=gnN8roKRmplQgUJOa+iQrM54ZNkzwX1EIYhP/YIoqlM=; b=e4crxee2iUS/V/IvXkdxXTsVUd9UrdS2hF7WwQUwAIaugo/YzjxRwMXsAclsAFQFUL RaKf9EiR9Q+SASm85urY1eDm1X0aC9/bWd1TDxYENb2MCPAIuR2OG2ERjEM3XvPtMEFU UlN8wiyAaLgU762/M1Hoqhlka163pbKIiUFoLw7OHkghPAw5zGJk+YfyRWJMrqMvKsfR 81Omf89tTwUWZAsDI0W68tfmYyLtarxAW7EUZlBObw0SyVmWeuBNM6kSasGJwko0q53t 9A3lgfd+UDE+RRzNKpNEqubh8R5Ig8cOxB0WPvNvNBW1LhcIIWvVN8NwayzrCq7iC1/t oqqA== X-Gm-Message-State: AKS2vOxBF7YrIp12GDjvsDcTHAJL6HCw9H0duKMjqFqbmFIvAd0rbvrm IYZrFDCbFDaMoy+0 X-Received: by 10.157.56.148 with SMTP id p20mr11510182otc.48.1496690156453; Mon, 05 Jun 2017 12:15:56 -0700 (PDT) Received: from kaki.bld.corp.google.com ([2620:0:10f2:12:54c4:cc07:7581:2e7e]) by smtp.gmail.com with ESMTPSA id p3sm5788507ota.51.2017.06.05.12.15.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Jun 2017 12:15:54 -0700 (PDT) Received: by kaki.bld.corp.google.com (Postfix, from userid 121222) id 8F0D040140; Mon, 5 Jun 2017 13:15:53 -0600 (MDT) From: Simon Glass To: U-Boot Mailing List Date: Mon, 5 Jun 2017 13:15:13 -0600 Message-Id: <20170605191517.12376-27-sjg@chromium.org> X-Mailer: git-send-email 2.13.0.506.g27d5fe0cd-goog In-Reply-To: <20170605191517.12376-1-sjg@chromium.org> References: <20170605191517.12376-1-sjg@chromium.org> Cc: Rob Herring Subject: [U-Boot] [PATCH 26/29] dm: scsi: Split out the bus scanning code X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Split out the code that scans a single SCSI bus into a separate function. This will allow it to be used from driver model. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- drivers/scsi/scsi.c | 35 +++++++++++++++++++++++------------ include/scsi.h | 8 ++++++++ 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index 80c5ce699e..2b87548bd3 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -601,9 +601,30 @@ static int do_scsi_scan_one(struct udevice *dev, int id, int lun, bool verbose) return 0; } +int scsi_scan_dev(struct udevice *dev, bool verbose) +{ + struct scsi_platdata *uc_plat; /* scsi controller platdata */ + int ret; + int i; + int lun; + + /* probe SCSI controller driver */ + ret = device_probe(dev); + if (ret) + return ret; + + /* Get controller platdata */ + uc_plat = dev_get_uclass_platdata(dev); + + for (i = 0; i < uc_plat->max_id; i++) + for (lun = 0; lun < uc_plat->max_lun; lun++) + do_scsi_scan_one(dev, i, lun, verbose); + + return 0; +} + int scsi_scan(bool verbose) { - unsigned char i, lun; struct uclass *uc; struct udevice *dev; /* SCSI controller */ int ret; @@ -618,19 +639,9 @@ int scsi_scan(bool verbose) return ret; uclass_foreach_dev(dev, uc) { - struct scsi_platdata *plat; /* scsi controller platdata */ - - /* probe SCSI controller driver */ - ret = device_probe(dev); + ret = scsi_scan_dev(dev, verbose); if (ret) return ret; - - /* Get controller platdata */ - plat = dev_get_uclass_platdata(dev); - - for (i = 0; i < plat->max_id; i++) - for (lun = 0; lun < plat->max_lun; lun++) - do_scsi_scan_one(dev, i, lun, verbose); } return 0; diff --git a/include/scsi.h b/include/scsi.h index 9cdd13c795..7173912de4 100644 --- a/include/scsi.h +++ b/include/scsi.h @@ -219,6 +219,14 @@ int scsi_bus_reset(struct udevice *dev); */ int scsi_scan(bool verbose); +/** + * scsi_scan_dev() - scan a SCSI bus and create devices + * + * @dev: SCSI bus + * @verbose: true to show information about each device found + */ +int scsi_scan_dev(struct udevice *dev, bool verbose); + #ifndef CONFIG_DM_SCSI void scsi_low_level_init(int busdevfunc); void scsi_init(void);