From patchwork Thu Sep 21 05:09:51 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suneel Garapati X-Patchwork-Id: 816655 X-Patchwork-Delegate: marek.vasut@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="AlyUbUJM"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xyPnK3GCTz9s7f for ; Thu, 21 Sep 2017 15:10:13 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 454B9C21E85; Thu, 21 Sep 2017 05:10:01 +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=FREEMAIL_FROM, 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 890B0C21DA9; Thu, 21 Sep 2017 05:09:59 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 6095FC21DA9; Thu, 21 Sep 2017 05:09:57 +0000 (UTC) Received: from mail-pg0-f65.google.com (mail-pg0-f65.google.com [74.125.83.65]) by lists.denx.de (Postfix) with ESMTPS id A7B24C21D90 for ; Thu, 21 Sep 2017 05:09:56 +0000 (UTC) Received: by mail-pg0-f65.google.com with SMTP id i130so2850079pgc.0 for ; Wed, 20 Sep 2017 22:09:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=1j9JQ7iA3c37sUny1dDorCQWDNd9RWpf7qnfyL+B3Rw=; b=AlyUbUJM1dVz1bEEbVTwfclRdY8N7uFNfHs9a85piiz0PvEaCttu6Ddzvo45ngzNBF otmQPJxGrRmIaHtMMmy1ER3kvBLbYR/lcTyEe/+FQ7LDLu+sBEXR4KS+5tqslj9Lsn6c Waq3wjYk/FQHrAfDrTVvG95T0Oj/g7529dDH69R/JHgeB2cRGeqBbQy0o28kBjWbhULa ZoCxVmo+jjhQwueP1T8WdVtCO+wYH9lcBvQ2aDxdMS1XFYxxBAzev5Is+UpH2DDMtD65 T07oJLwHQNQahZU/Y08TrcMm7mQk5Xh/2dC2SgGuxUmieyWvwV6I8BgXrx68BRWbny/r dt3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=1j9JQ7iA3c37sUny1dDorCQWDNd9RWpf7qnfyL+B3Rw=; b=GDVsGGwED+oQMltaT+p09ScsffS39uc9el/qWV5lx/JGivwwqa3H/T8qqqHvpGue4L e2PnJQRJeJJ63pgVJKIPrmbSWk4e3UeECxm+6bq87V8Txl4qA42RI3SlO2CHrMOsoUUz zpTpiLFOFo69g4CqWo6capaXToOF7Ee5cbADfdPecFs1k+9cG0vkd1BjO+xWtqh3R5L8 3CLoQY9Vuc6hFtlSButHqwjTSENM8rwaWciXReCY4JLEOaEVh5/0uJcG0zuDTve7IOoj bXEhxkes9j5QdYKuDYA4AMcnCQVR2Ez/RU6o60N1rNBP9qKk7EkSc1umTr+eQAQYdtB/ s8NQ== X-Gm-Message-State: AHPjjUjD92dQknIi8+KLqG/EP5hLZ46J6DKNJ+e9+OrMjFyEtDeWyy3b ct6LV5UhjgtKrsTYLyjvSHI= X-Google-Smtp-Source: AOwi7QAnmXggCpv9EQGvriOjkF+bhCW2E9TxtIM1UkMGN5HxwtvNnYEnWN9DXRLrm5KIYEoB7Mfr/Q== X-Received: by 10.99.180.7 with SMTP id s7mr4391902pgf.171.1505970595010; Wed, 20 Sep 2017 22:09:55 -0700 (PDT) Received: from suneel.hsd1.ca.comcast.net ([2601:646:8e00:e521:4455:49dd:f6fa:f394]) by smtp.gmail.com with ESMTPSA id e27sm869247pfk.41.2017.09.20.22.09.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 20 Sep 2017 22:09:54 -0700 (PDT) From: Suneel Garapati To: Stefan Roese Date: Wed, 20 Sep 2017 22:09:51 -0700 Message-Id: <1505970591-24542-1-git-send-email-suneelglinux@gmail.com> X-Mailer: git-send-email 2.7.4 Cc: u-boot@lists.denx.de, Michal Simek Subject: [U-Boot] [PATCH v5] cmd: usb: add blk, emulation devices to ignore list as needed 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" add blk child devices to ignore list while displaying usb tree graph, also preamble should not be set for blk child devices. add usb_emul to ignore list in usb_show_info. otherwise usb tree and info commands may cause crash treating blk as usb device. Signed-off-by: Suneel Garapati Reviewed-by: Bin Meng Tested-by: Bin Meng Reviewed-by: Simon Glass --- Changes v5: - add usb_emul to ignore list in usb_show_info - modify description Changes v4: - do not set preamble if child is block device for mass storage Changes v3: - remove 'check on parent uclass' in description Changes v2: - remove check on parent uclass Changes v1: - add separate check on blk uclass - modify description - add separate check on parent uclass as usb cmd/usb.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/cmd/usb.c b/cmd/usb.c index d95bcf5..907debe 100644 --- a/cmd/usb.c +++ b/cmd/usb.c @@ -349,6 +349,16 @@ static void usb_show_tree_graph(struct usb_device *dev, char *pre) printf(" %s", pre); #ifdef CONFIG_DM_USB has_child = device_has_active_children(dev->dev); + if (device_get_uclass_id(dev->dev) == UCLASS_MASS_STORAGE) { + struct udevice *child; + + for (device_find_first_child(dev->dev, &child); + child; + device_find_next_child(&child)) { + if (device_get_uclass_id(child) == UCLASS_BLK) + has_child = 0; + } + } #else /* check if the device has connected children */ int i; @@ -414,8 +424,12 @@ static void usb_show_tree_graph(struct usb_device *dev, char *pre) udev = dev_get_parent_priv(child); - /* Ignore emulators, we only want real devices */ - if (device_get_uclass_id(child) != UCLASS_USB_EMUL) { + /* + * Ignore emulators and block child devices, we only want + * real devices + */ + if ((device_get_uclass_id(child) != UCLASS_USB_EMUL) && + (device_get_uclass_id(child) != UCLASS_BLK)) { usb_show_tree_graph(udev, pre); pre[index] = 0; } @@ -605,7 +619,9 @@ static void usb_show_info(struct usb_device *udev) for (device_find_first_child(udev->dev, &child); child; device_find_next_child(&child)) { - if (device_active(child)) { + if (device_active(child) && + (device_get_uclass_id(child) != UCLASS_USB_EMUL) && + (device_get_uclass_id(child) != UCLASS_BLK)) { udev = dev_get_parent_priv(child); usb_show_info(udev); }