From patchwork Thu Jul 22 18:38:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Anderson X-Patchwork-Id: 1508842 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-secospa-onmicrosoft-com header.b=VfevKkYb; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4GW1TS24Lvz9sT6 for ; Fri, 23 Jul 2021 04:39:56 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8C77982C68; Thu, 22 Jul 2021 20:39:43 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=secospa.onmicrosoft.com header.i=@secospa.onmicrosoft.com header.b="VfevKkYb"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3D4F382C61; Thu, 22 Jul 2021 20:39:32 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20611.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::611]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id D933882C5E for ; Thu, 22 Jul 2021 20:39:21 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=seco.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sean.anderson@seco.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L51bbXXR2a3HlaH9IdQbSoUoxCo2C14pHIL/zq6Pfl1sk+cvniQ2ZWTIsUCpKRQ8S5RMsFHtdF2eU8BuMW94PIblpnK0SkmfTqfd55BY17YTwu4h6xhl74+ws1/kKQ2TiT6IGNyoEZRrpkPlsVsIA/leL8qeCidS41+MB0+h8b8SKfQWF8g4EqEO8vD9Fm69PZSrsHNl6bW5I+UN0LmiaUI1720Z9PShxuG2lNOfvQXrnTCY4TfzXFJoDVPwuy8aQy9D3HMRLKTcDqciQfRjkWxgvfHZA5XoWcbIDKZ5SqP1thpzINmZv9KItfvfYd/z5jCtvBnIyJDytnhjmwN60g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uxnVQJ3gti5+oTpKmjihIyP3mBbMZZrAkVCRlP6UqJE=; b=Dap6eLdyIWgOlYPaVxsM/HnK4PomtVp+pfGQV5W6+HjHfa9UdcsUcr5sq0aGpecOrGHmYKwyH6OGvV4MQnaYNNYTzsoao/rBpG5uwjawLQTwLFckBToxjMr/rqMHgrk2d1zkBK9xcPUIlL0iqMPPlxNHQMGbQFx6kS6OM51vbVUdqLGx5N2ZPo5ir3SWFuNHdW4ECyarR2CaAZ56Y77MtiDFwd1ESxiRGUTuj+5eUSeySkeRfL1Us872Gd+TB7eRULQwZaDhl1s2/4sh6hB7wIrf64sSSojle8chjhYuxlYZHx5U3niS4AdV2HcSbmyh7wbfSYbD12JEVkztxDxE4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=seco.com; dmarc=pass action=none header.from=seco.com; dkim=pass header.d=seco.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=secospa.onmicrosoft.com; s=selector2-secospa-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uxnVQJ3gti5+oTpKmjihIyP3mBbMZZrAkVCRlP6UqJE=; b=VfevKkYbcZL4BHVkC7NlZoRBjEkAlWw1HjZQ3nXZLsQ3dXa2+nTQsgBdpzVnWgWX9S5oMQwFLc0aqteyX3Cz7aJmG0u8oFcGEqOQJnpWtJYw+NEj3gVgZDDfDsr2StUmuikYDBjrJy8P0InwdsBGx5JRUhQVeCHNRUdKIjwUWgQ= Authentication-Results: lists.denx.de; dkim=none (message not signed) header.d=none;lists.denx.de; dmarc=none action=none header.from=seco.com; Received: from DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) by DB7PR03MB4619.eurprd03.prod.outlook.com (2603:10a6:10:14::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.24; Thu, 22 Jul 2021 18:39:20 +0000 Received: from DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::dc6c:815b:2062:d1f1]) by DB7PR03MB4523.eurprd03.prod.outlook.com ([fe80::dc6c:815b:2062:d1f1%7]) with mapi id 15.20.4352.025; Thu, 22 Jul 2021 18:39:20 +0000 From: Sean Anderson To: u-boot@lists.denx.de, Lukasz Majewski Cc: Andre Przywara , Marek Szyprowski , Peng Fan , Bryan O'Donoghue , Marek Vasut , Jun Li , Maxime Ripard , Ye Li , Jagan Teki , Sean Anderson Subject: [PATCH v2 3/3] usb: f_mass_storage: Stop after the host deconfigures us Date: Thu, 22 Jul 2021 14:38:10 -0400 Message-Id: <20210722183811.76441-3-sean.anderson@seco.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210722183811.76441-1-sean.anderson@seco.com> References: <20210722183811.76441-1-sean.anderson@seco.com> X-ClientProxiedBy: MN2PR01CA0047.prod.exchangelabs.com (2603:10b6:208:23f::16) To DB7PR03MB4523.eurprd03.prod.outlook.com (2603:10a6:10:19::27) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from plantagenet.inhand.com (50.195.82.171) by MN2PR01CA0047.prod.exchangelabs.com (2603:10b6:208:23f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.26 via Frontend Transport; Thu, 22 Jul 2021 18:39:19 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 324bfecb-018e-4fb6-1d93-08d94d400500 X-MS-TrafficTypeDiagnostic: DB7PR03MB4619: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3968; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7FNg4v1/Vp1xD5zAgjE0lvbEWfRLZVanqweWHia5omM1aKqcnyfF4+sZNBzSrOCryKG/WlYaJhaplSqU29Tf1JZHIev/mBpOsIfxyiQ3GmTKUIBFy6LrWzKGADybZazLEBOHHd3BmTl96kSjL0M4EjGMdir80LSGthUiKjUuKAeh/SUCCRkCg1wiv5MgR6Eirrr2wLkN2QEmETtqOcvuEDMtta6VgJ2vmnEeQbDy41AFTryej99SpS2Lnqh27uJH6wACQun3Ihdzpwm/Hk0cMakGRKqHKCy4qOj+16mUZp1+slApueweAshhuzCDgAhJIe4Lqd+GYV4GGSlepyuqQFcJb37hR0frjCGLg0g6SuNKD/E2pxN3AOlTh6ITpohYi2UAMgn6+b9SlhGkrFxhVwiMG7QUwPqb3/ZXNaRySvBhzaqRJMVd9yPr57ALBC7IwoydICo5a4baVOq56muyEraxVoS7MrkmlH8RMGH2r9HOq1ouR/g2zIRr4ih7+Ea0atPbBctITmZdOjRnPWIdRMm9KPlNbhQYKtdn1zZleTk5LGyUqZkHlZinK0Vbe8AOHdSw/i62jY52gJpWZcggn28YavQDFAfTdOFdgSMX6wkAMMEI1l7uK6k0dOi1K1GLfS8Uf5YXFJjS823wiMtwn01W5QUXeOGfVqc2hj3Z9uN55jm5bOlLSCv667P+tSxWD8Jz9XAvOnYYN9cOnhMHFQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR03MB4523.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(136003)(346002)(396003)(376002)(39830400003)(366004)(107886003)(2616005)(316002)(6506007)(66476007)(66946007)(86362001)(956004)(66556008)(478600001)(44832011)(83380400001)(186003)(26005)(52116002)(6486002)(38350700002)(8676002)(38100700002)(8936002)(6666004)(4326008)(5660300002)(6512007)(7416002)(54906003)(2906002)(36756003)(1076003)(6916009); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5krZwaDv46dRsg6I6doWLN1wz4kqDaOed7mh30rwnWRwD8vSH8G22b00zZR0GOCszr66jBDuVZAK+b2XQ7TY7O25J0B48d4SD/k48fqpnjoe1P1Wd7JXG9/gvSOrxBWQcwXE+BO5VhCa03VEc78vql7ZwW2OzzWMHjtyxSdpt5Enq3TJDkdcWXUNwLYIhIbsFKFK1WNa1zyMOY6+4H+tHIMRNCn1nxVbBb0Vm6met8cFEHDERI8AYHSFed6PqrOdahwy0PqqpgFn+RYlz9zAJG2WiUOiA1si2DNOrXAFcStKXdJeNp5QZS4sn4ItAA7HBadYn4RWkm+Er6VHHV7t/YthjivsV+9EwMtDc+urKqSAE/fAIbnmo5QZ25cDWa6+LGBldibQeP+JHASoFT5U5uh14/y6hpJVf5uVnU+uhcFaWXk0sUL0QJ0yBoNWMe+W1FRe/MLtfbvGASiJkk1YIw9gD4uW6f5gRSKQ1jMpcbXt1D+Pek1f+OjzB27TD5b2Y4CWVKfPsRC/Gi8ZJ0UApn0RXFPlXIf/L4XEG76AHrfkCJfh0iI/McS1E/xe+Y7mOasfB3BQpLOifNTPiYEswqgUI2YyZQ3lL97FHkcl//QHsBfQY0JbPY5Ivku1+3zlHEKYkk7KyvJykH4Y52z0ZcUA+GMuS2p5SEdbQPaLxPolwZSuE1vaMJwR2uvWqEAV7mCW+u9nCi8n9Yx1uUDxU1rxzNsgTmnFQLQA3WMSp1uOTZeB/OHqSvAhnhp6rYcbWzrlyKc8FzYcMZJpxatq+jvxDhqk3ueLWD7uU0zs4Ohg/ggruFkypLKjOHu6tWFiafVL9LBbNPSRzJDPA2MiTwLuO8R7MWkC5jm8wK1yD4gAG9YMf0duknkpndz5jDUDSDbsA7eaYoeJ1zoUmy8qeOpsWh3VySA+PDBoNzfmfr4pEuHeO9GNkiCKNrCGRZJdWbZOgjdXIDRJB+gpf2DUqxk+ZdJYRm/SXUx7TmaaVqSOdTUX4rEMMJBRx4IWo8G7T2W8g95uJLVNgPrg/8ppMt6yAQqGG69Q9d58SqFl9oSxPLUsSxrILg3lBiLtyUpTFfK+LMxbZW2N2stKBUZC0SEC0Gl4+bjbqUvIUn+ga9Hug7gKo8L6xzQ3hwfuedZq2bj8/yT8YBMblj9EPFZ4O4eclYJ5KuLr4i353MfUu6RnVaR2//HM5yRY1brhVsRQc5uSMcXBcXeVIAb8jGPT/ZQh/EdwJBcFNn+q2hFKox0orqG6Ql4RLi+ozN0lUk+YX0EyRfEMJMbwUJhxQySHXf/44Lfl23roIxhGWcKGapvL4F/Byj+JDn7McLJLRtjw X-OriginatorOrg: seco.com X-MS-Exchange-CrossTenant-Network-Message-Id: 324bfecb-018e-4fb6-1d93-08d94d400500 X-MS-Exchange-CrossTenant-AuthSource: DB7PR03MB4523.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2021 18:39:20.7864 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bebe97c3-6438-442e-ade3-ff17aa50e733 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lNK0DwWWKMvFnsBJdghLVyrEqnx5FFDHKHV2HkArjdUxMkIE1vIPijpGU7YL0MvtOht3NWreZ0LO/P83cBaD9A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR03MB4619 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean At the moment there is no way to signal to U-Boot from the host that we are done reading/writing data. This stops the gadget after the host deconfigures us by selecting config 0. In theory, the host could later select this configuration again, but this rarely happens. On Linux this may be accomplished by running udisksctl power-off -b /dev/sdX Signed-off-by: Sean Anderson --- (no changes since v1) cmd/usb_mass_storage.c | 3 +++ drivers/usb/gadget/f_mass_storage.c | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/cmd/usb_mass_storage.c b/cmd/usb_mass_storage.c index d4e619b842..bac4ad87b9 100644 --- a/cmd/usb_mass_storage.c +++ b/cmd/usb_mass_storage.c @@ -227,6 +227,9 @@ static int do_usb_mass_storage(struct cmd_tbl *cmdtp, int flag, if (rc == -EPIPE) printf("\rCTRL+C - Operation aborted\n"); + if (rc == -ENOLINK) + printf("\rHost closed connection\n"); + rc = CMD_RET_SUCCESS; goto cleanup_register; } diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c index 92e4f22797..0e7a90683b 100644 --- a/drivers/usb/gadget/f_mass_storage.c +++ b/drivers/usb/gadget/f_mass_storage.c @@ -2247,7 +2247,10 @@ static void fsg_disable(struct usb_function *f) { struct fsg_dev *fsg = fsg_from_func(f); fsg->common->new_fsg = NULL; - raise_exception(fsg->common, FSG_STATE_CONFIG_CHANGE); + if (fsg->common->running) + raise_exception(fsg->common, FSG_STATE_EXIT); + else + raise_exception(fsg->common, FSG_STATE_CONFIG_CHANGE); } /*-------------------------------------------------------------------------*/ @@ -2393,6 +2396,8 @@ int fsg_main_thread(void *common_) common->thread_task = NULL; + if (common->state == FSG_STATE_TERMINATED) + return -ENOLINK; return 0; }