From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web12.3004.1644550367553907500 for ; Thu, 10 Feb 2022 19:32:48 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=ODnBPH9B; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: hao.a.wu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1644550367; x=1676086367; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=WwUkz2LWprs9eBpjFHDg/846rxkcb/jwrXag4FiOPaY=; b=ODnBPH9BfNUtcz+1b2qlRYOWSR6Y4c7NNPtDWLNDTDA3Zx5VsK43+5ni A0dvWjiDQdin8QaM471t3a+1ITrlMLFPYwTW+2wcp3zfPdaxDabCyw7gm QTHpOl31n2xWDaNN2f7KAUfScXH21CSbFRKEhrPNfnWR6dyr0UYkc9OfQ RryakWgLh7b1aQgdzlcsCig+iTDfwO5XXKj9rucZA1bhMTvobqc9Vq2vX iNQ3hIqrYh4GseYvRhXQhEovAoia0GdOic0RL7h8rAByX/qUs+B63pGSj ky3K+ifo3rX4XDSs/fBPJZeubjrWooatI2D7pbvgsYuOUqa21c1SF5asR A==; X-IronPort-AV: E=McAfee;i="6200,9189,10254"; a="310387183" X-IronPort-AV: E=Sophos;i="5.88,359,1635231600"; d="scan'208";a="310387183" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2022 19:32:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,359,1635231600"; d="scan'208";a="541921939" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga008.jf.intel.com with ESMTP; 10 Feb 2022 19:32:47 -0800 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Thu, 10 Feb 2022 19:32:46 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Thu, 10 Feb 2022 19:32:46 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.170) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Thu, 10 Feb 2022 19:32:46 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dpBVBsJ+PY4G030dVrJjSdF6N80J8uO7HIew8MLobMXlu1dEcdVxeGE/6na9uwNqE28SIHlIToVhxABZ8dIofPSoLDid3bBZEPTGuRUrYE76MsVgr1emFZcAz9id/1FU9QfbkiyA28IFo0bIn4SuKWbylbtCn7yv5mwAzA7mXPWBJItm+5c0gFnDkOQzYY3cPCdMyBYWCsDNc/ERARoM8f3/3CEGBs6cfkVquX5R+RPpXbGmUeE10FOmicGJ+yXmoJoZzQr6mKPYPwTWT1Vy9Fm1SRZVPcrZt8N0SmgyRo55WKi2NPpeCFPI7osPHyR2dUDnj0iCd1XStc/7vuAIJA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nSijuPZekorcHetV0Z4senAtOztK0IkL2NuyeugJ7go=; b=FpylhBPDthIma5qnclcuimNKiooDMPyBIh+0Q325wAQqRYUCcxDTpTGEk3mqXlMrEO8dWw/lbIW5XXVbn2YkMMlNfQThvcHJikDsfOz+CYVH5dM+V1dr5PBgT056N7cCYlSoNWWAmhyShGvmVtOvfhAxA6getIB/83GBwbohlutwhyZJG5BEEbQhZe5v29JhD/UZu9uddYW5krA0CstDOxg5h+oon8LKpiX8pm2NgNtUHsdSGI3WAV05M124j9nu+WIkaE2a3ne17s/rkUKE1BTei1wYuvEdruE1R95XzeeUW1kAdWQ/ncxnb1B6t3Jzy4NQYS5/+Q2mCPuGhDyVFw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from DM6PR11MB4025.namprd11.prod.outlook.com (2603:10b6:5:197::31) by SN6PR11MB2942.namprd11.prod.outlook.com (2603:10b6:805:cb::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4975.12; Fri, 11 Feb 2022 03:32:44 +0000 Received: from DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::707a:603c:30eb:bcdd]) by DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::707a:603c:30eb:bcdd%3]) with mapi id 15.20.4951.019; Fri, 11 Feb 2022 03:32:44 +0000 From: "Wu, Hao A" To: "Rhodes, Sean" , Matt DeVillier , Patrick Rudolph , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Gao, Liming" , "Ni, Ray" Subject: Re: [PATCH 13/18] MdeModulePkg/Usb/Keyboard.c: don't request protocol before setting Thread-Topic: [PATCH 13/18] MdeModulePkg/Usb/Keyboard.c: don't request protocol before setting Thread-Index: AQHYHsT7V49JCe8y9Uqi15enICqQlqyNre4w Date: Fri, 11 Feb 2022 03:32:44 +0000 Message-ID: References: <5527aab4cdea820aa58de36fd8d58ef88f24da82.1644527848.git.sean@starlabs.systems> In-Reply-To: <5527aab4cdea820aa58de36fd8d58ef88f24da82.1644527848.git.sean@starlabs.systems> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 82516911-f584-4930-aaaf-08d9ed0f2ace x-ms-traffictypediagnostic: SN6PR11MB2942:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: yWi9Um9fyzul0WuNeUJO0On+QBJxbtOjLNlBueb0KuOgjVBS1ldGnW2iUNzAkUORBjqej0TNfl/qL2BmyP+rkTpvzy5iCgxgnSJp/IWUGc0FFPejCaDY6NGZQ2vHqGc4iIKqO6h83cfoPOejyMbXIU9fdvNufS0BWGq3nFclvZelZfbaQsP1WiUx4NaM/2ER0J/A3/feR5XSkMOgnbIMcdSmtn0vDCBULanBmer7VLlL/U8FZmIqAcW4G7aSLy/vB+SpukixzJ+FWXRhMRP21+Xoil3QXaFQyynurTQT6Bwze8WlvevqH1LMxEj4kaPWC0JWkiAbM2A6lkMmOa/QW6nd6lFlr2EA0zDL9uw8/PvODtWoDLShmDU8C5xZzxPcIKPPsudeTEQmNWay2xbHadrhDx2nRfxaPxLNp57jsR2sePavK+yhTOi7C9Gl7sfXDeJlzXVu3dDSHhGsBvsrec8eOSk8QrM4lJjFeNlDxgzVaNoWyHKkjCadWlRV/jyVV7rupB6fYTqmT0Aj8w8PBxBm8fPCl5CwF9ovn6f75626dMKduYESYOL2lPt7ZoWNaCDrro7P6Jf5EL8ObAEshXDGUjOXU3xYSP87D8MaW0nhsR5K4qlB19rLuGUxkQpRGyszYvNbo3POWR2Y80CVVYX2UX6xwEtKT0/2TWtl6P7XdnaM5Wbg+BebU8j4ffAOCTOFaS28Iq9zlCH7/oO2EA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4025.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(26005)(110136005)(54906003)(64756008)(66556008)(316002)(8936002)(66446008)(76116006)(86362001)(66946007)(66476007)(4326008)(8676002)(186003)(107886003)(53546011)(6506007)(7696005)(52536014)(9686003)(122000001)(38100700002)(38070700005)(82960400001)(2906002)(71200400001)(508600001)(33656002)(83380400001)(55016003)(5660300002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?oB2vWVMY1f2956gk54QKZy0mG5UXEj6JGJhDu2nTSD5TIcGLZpo48uBnlP76?= =?us-ascii?Q?O85Ai50O8iJuogkPECVTIqTT0tTaveWaTVFBCBpfLL4d+Me5Tc7QVjlNBwdA?= =?us-ascii?Q?8xyGKHkFXKOSUSTo2t7e4iDxo3Up9m1RfWj5KzxzSe4Ae7oE3tF7Tlu8PJOW?= =?us-ascii?Q?OfmFYxx3i5//H9NLNLtLD8C2S20+ghfuHm/NiXKvlLs9RfbayYXcSwCHrBtt?= =?us-ascii?Q?8QykUta0kMi1zbT2uYDQkreeSPpKNWtiqfuTlLwsG5bKFesstLz2JB6k569P?= =?us-ascii?Q?VlhN6pfMS4LgSGNYnUagN+tgcXPtRGPMzPFqe8Du7zbKUIIQtVBB74fr/BmH?= =?us-ascii?Q?qwgMHn21sj9rvn6OjL/qx4Q35kNuyqtceF6dmlysymdP9uQNuOq0SylDwhRj?= =?us-ascii?Q?j5RhGNaW5XJ+M8uP8mSbbIhwLdxq6JSuVNElhdXnmWOTCCm0DwUlPNNQ1sdx?= =?us-ascii?Q?hpH9oKUZJtC49NsEv2IkBF8RnCj4Ok3IYAV7QUgFzjUqCiNrCiBw6yZrbydx?= =?us-ascii?Q?SLEraZpTgplYrgMIjcKXeihYCsCYfQ7BzqUi9ebeYSo23U33cgEUmhGEnwlD?= =?us-ascii?Q?YJFfm9Kc2/MjV8OFsqSLp6svYVIC6UTHspISvir7c8/HEBhwtQllnwnNY3A/?= =?us-ascii?Q?U5kyJsxoTy1cbg+9xVTZenmA3/bwkeU2cdhgejaONOpPLnIA2/fbHti3jlY5?= =?us-ascii?Q?cO6LePkg3xOr4H7D1XXSrHBD/8X5YQ/WzhDU7DwC0rdRuThmBR6l9GmmY9W1?= =?us-ascii?Q?FI0pCUEhRgpcpyMyX/JBs/bZq+2kFJ1Y4tiTPLV3lakJTgyFMyH42lfis4yY?= =?us-ascii?Q?+vlBhs4fNZJ3YEncTiFKBz/PHItb7xb5xN8RRDJB+gvpPHOQIPxWx+IPzWOL?= =?us-ascii?Q?Lk7wDlw4k5ni6/lFOxHacH30kussBz8W1gVXkXNOEcMz4sWPGezncpWtKTeQ?= =?us-ascii?Q?3D7PWcVSGw/ZlWcP3rilH6Nq9MyVai+25kQBgJyq9VqNO/cxQklQbuQxlZGL?= =?us-ascii?Q?AnQcm5nxS5jNoQU49Pu89hlGQTVSISJjx8MserRLbUIQsNe/yCAOyoYx318F?= =?us-ascii?Q?sg2GgLhfqRZt4IWKXj2+81jf66nBPlZVuqNhl+Xqx7LfAgqsp5Fuj7W4WlNw?= =?us-ascii?Q?/HNttYo3tBRJbVZbZDQf0OtkTw/2F1DUJwLQfuWh2BbQXWpIO83m2iBk+SVB?= =?us-ascii?Q?s9tw6kg+Lhi2xBWwqhKUIAK5mKZvJT9YZuvrJvDJ+wWPhST4iWWG9c1nHLDc?= =?us-ascii?Q?ElI/BUsQ9ZHcTc0mfPqJuvpPDr9aWZ3CcT7ro80aN4kc+oEhzxe8TDUzh01b?= =?us-ascii?Q?hcgHKSjLB0v1Bzse1nVu9+iSgn9AedH+uUwEJ0PYiChQFwtnoNMFcElyAhG/?= =?us-ascii?Q?SK+/SdCf8C3zLGe9nDa6cDP00O47KH16DXD7d4NKE69Ui8IoKnQSxP3C/BJS?= =?us-ascii?Q?b2UAp8q8Vh4OfbsfnrC+YdEMMqGrTKh9tZhvS6LuxBxlySnYCVllRjbMfHVZ?= =?us-ascii?Q?GFjDEYdceTORRVN4wiLqLjB5huWwCI5g6xnskfWtVqqcnnk0Ze1OOXFGOoBW?= =?us-ascii?Q?6LLK5UrLX/9KkwH/cctpDtk7MessPy/Xe+KOWLjBkxeAtQuymK6scIbqe0xB?= =?us-ascii?Q?/L1Rkgw5d4TkNbVTx/nhg2c=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4025.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82516911-f584-4930-aaaf-08d9ed0f2ace X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Feb 2022 03:32:44.7334 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: VqoyXEy14EmgnzbDLOiRXXHtX0ynSzNEulcIHpzLPZuy/EIdtHDihPMlGlatOGNrei8s/Q4Us97svj5sPMvMQA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2942 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hello, Inline comments below: > -----Original Message----- > From: Sean Rhodes > Sent: Friday, February 11, 2022 5:27 AM > To: devel@edk2.groups.io > Cc: Wu, Hao A ; Matt DeVillier > ; Patrick Rudolph > > Subject: [PATCH 13/18] MdeModulePkg/Usb/Keyboard.c: don't request > protocol before setting >=20 > From: Matt DeVillier >=20 > No need to check the interface protocol then conditionally setting, > just set it to BOOT_PROTOCOL and check for error. >=20 > This is what Linux does for HID devices as some don't follow the USB spec= . > One example is the Aspeed BMC HID keyboard device, which adds a massive > boot delay without this patch as it doesn't respond to 'GetProtocolReques= t'. >=20 > Signed-off-by: Matt DeVillier > Signed-off-by: Patrick Rudolph > --- > MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c | 22 > +++++++++++++++++----- > 1 file changed, 17 insertions(+), 5 deletions(-) >=20 > diff --git a/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c > b/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c > index 5a94a4dda7..56d249f937 100644 > --- a/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c > +++ b/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.c > @@ -863,12 +863,24 @@ InitUSBKeyboard ( > // Set boot protocol for the USB Keyboard. >=20 > // This driver only supports boot protocol. >=20 > // >=20 > - if (Protocol !=3D BOOT_PROTOCOL) { >=20 > - UsbSetProtocolRequest ( >=20 > - UsbKeyboardDevice->UsbIo, >=20 > - UsbKeyboardDevice->InterfaceDescriptor.InterfaceNumber, >=20 > - BOOT_PROTOCOL >=20 > + Status =3D UsbSetProtocolRequest ( >=20 > + UsbKeyboardDevice->UsbIo, >=20 > + UsbKeyboardDevice->InterfaceDescriptor.InterfaceNumber, >=20 > + BOOT_PROTOCOL >=20 > + ); >=20 > + if (EFI_ERROR (Status)) { >=20 > + // >=20 > + // If protocol could not be set here, it means >=20 > + // the keyboard interface has some errors and could >=20 > + // not be initialized >=20 > + // >=20 > + REPORT_STATUS_CODE_WITH_DEVICE_PATH ( >=20 > + EFI_ERROR_CODE | EFI_ERROR_MINOR, >=20 > + (EFI_PERIPHERAL_KEYBOARD | EFI_P_EC_INTERFACE_ERROR), >=20 > + UsbKeyboardDevice->DevicePath >=20 > ); >=20 > + >=20 > + return EFI_DEVICE_ERROR; >=20 > } Sorry for a question, I do not understand why the proposed change will elim= inate the boot delay. For device that does not respond to GetProtocolRequest(), the origin flow i= s like: a.1 Timeout occurs for GetProtocolRequest() a.2 Conditionally execute UsbSetProtocolRequest() The proposed new flow is like: b.1 Timeout occurs for GetProtocolRequest() b.2 Always execute UsbSetProtocolRequest() Could you help to elaborate on the change? Thanks in advance. Best Regards, Hao Wu >=20 >=20 >=20 > UsbKeyboardDevice->CtrlOn =3D FALSE; >=20 > -- > 2.32.0