From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A7DB0C44506 for ; Sat, 11 Jul 2026 20:54:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+r7fx/UjD8d/5wAgMbjDMd2byLKyxAytzDQ4fu45XN4=; b=LNQoGtp6ol8VrL lD+YRAN0ya7MqF3sHpWAqNvAyx9UfFMbEs5GBDFd94XwPqNlo38NOQ2MoXpxL1fPqayaJcUpOEqAR Kp1UWi9n6htXK2W2K4BvnFHFxYgCzq5yDqYb+hrqMeUb9kazl2O9dw/dbuW1HyrhYs30VoupsAnXS 44/2HSRFBZdriIWRW0mYYTGZrfxLN4IfTTU6Qa4EAEpKZab2sPRoIteCXDXLaE+YNKZPhkv66dzDN Chfq11TtLveUkQaJqMIltCPBO6llwfUJBbJfJv5HFDTnbalaD+p/Hz3I+icEaMq2TPaNP3D/bftgp IpMcmguNy2ACba6b/D1A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wieiv-00000006ski-3mkd; Sat, 11 Jul 2026 20:54:57 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wieiu-00000006ska-2OUm for linux-phy@lists.infradead.org; Sat, 11 Jul 2026 20:54:56 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 412E260052; Sat, 11 Jul 2026 20:54:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48A691F000E9; Sat, 11 Jul 2026 20:54:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783803294; bh=BLc2TeOzuwwz6G4okBR4+1TV+SOCbTR5Sy6nyFfG2rU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=DsMhuGRvS5ELN8y7MfBvXqT+OWG97J2D+MCS7xNI+/LXjjrBXVZiRcZ0nl3Vro0yd a4OasoztmuDD50hgQ4AGq2xQudnNPyg/u7MOfpWrn3tO7SI+PQFsLZRRbYSgK49MLk dfc8EZ2GZU8QJqHe7jFH6ZyFYZqKGZd143zW5uhExr+bBMgFjbh++yoPZgsX1Mo9HC 0PjNSDuaQg9gD4G9P2hh0ZX1mVVR6WbarL5wP8QY8o/O9COPh+KR9olbo0GRq06zWM I2KKCuo6RM+47TiMhj9QX0/xFoX+7/4OmFaUlvFxugvzdpbeb6jh3lN0WbsoSg2vo9 ntLxfeuvlgi5A== From: sashiko-bot@kernel.org Subject: Re: [PATCH v5 4/7] phy: cpcap-usb: add DCP detection and make UART idle mode optional To: "Ivaylo Dimitrov" Cc: vkoul@kernel.org, robh@kernel.org, neil.armstrong@linaro.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org, conor+dt@kernel.org, olteanv@gmail.com In-Reply-To: <20260711204210.197144-5-ivo.g.dimitrov.75@gmail.com> References: <20260711204210.197144-1-ivo.g.dimitrov.75@gmail.com> <20260711204210.197144-5-ivo.g.dimitrov.75@gmail.com> Date: Sat, 11 Jul 2026 20:54:53 +0000 Message-Id: <20260711205454.48A691F000E9@smtp.kernel.org> X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIFRoZSBuZXcgY2hhcmdl ciBkZXRlY3Rpb24gbG9naWMgaW50cm9kdWNlcyBhbiBpbmZpbml0ZSBjb25uZWN0L2Rpc2Nvbm5l Y3QgZmxhcHBpbmcgbG9vcCBmb3IgYWN0aXZlIFVTQiBwZXJpcGhlcmFsIGNvbm5lY3Rpb25zIGFu ZCBhbiBpbmZpbml0ZSBwb2xsaW5nIGxvb3AgZm9yIHByb3ByaWV0YXJ5IGNoYXJnZXJzLgotIFtI aWdoXSBUcmFuc2l0aW9uaW5nIGZyb20gaWRsZSBtb2RlIHRvIFVTQiBtb2RlIGxlYXZlcyB0aGUg UEhZIHRyYW5zY2VpdmVyIGltcHJvcGVybHkgc3VzcGVuZGVkIGJlY2F1c2UgQ1BDQVBfQklUX1VT QlNVU1BFTkQgaXMgbm90IGNsZWFyZWQuCi0tCgotLS0gUGF0Y2ggWzRdOiBbUEFUQ0ggdjUgNC83 XSBwaHk6IGNwY2FwLXVzYjogYWRkIERDUCBkZXRlY3Rpb24gYW5kIG1ha2UgVUFSVCBpZGxlIG1v ZGUgb3B0aW9uYWwgLS0tCmNvbW1pdCBhMTBlZjQ3OWVhYzkxZjc1ZWUxMTc1YWJkYTYwNmZiN2Vh YTNmYjcwCkF1dGhvcjogSXZheWxvIERpbWl0cm92IDxpdm8uZy5kaW1pdHJvdi43NUBnbWFpbC5j b20+CgpwaHk6IGNwY2FwLXVzYjogYWRkIERDUCBkZXRlY3Rpb24gYW5kIG1ha2UgVUFSVCBpZGxl IG1vZGUgb3B0aW9uYWwKCkhhbmRsZSBEQ1Agc2VwYXJhdGVseSBmcm9tIFVTQiBob3N0IGNvbm5l Y3Rpb25zIHVzaW5nIENQQ0FQIGNoYXJnZXIKZGV0ZWN0aW9uIHN0YXR1cy4gTWFrZSB0aGUgZXhp c3RpbmcgaWRsZSBVQVJUIG1vZGUgb3B0aW9uYWwgdmlhIHRoZQoiZW5hYmxlX3VhcnQiIG1vZHVs ZSBwYXJhbWV0ZXIuIEluaXRpYWxpemUgdGhlIFBIWSBpbnRvIHRoZSBiYXNlbGluZQpjb25maWd1 cmF0aW9uIHJlcXVpcmVkIGZvciByZWxpYWJsZSBjaGFyZ2VyIGRldGVjdGlvbiBkdXJpbmcgcHJv YmUuCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9tb3Rvcm9sYS9waHktY3BjYXAtdXNiLmMg Yi9kcml2ZXJzL3BoeS9tb3Rvcm9sYS9waHktY3BjYXAtdXNiLmMKPiBpbmRleCA3NDExNDVjODll NWJiLi4yZDc3MGZmMTllOTM0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGh5L21vdG9yb2xhL3Bo eS1jcGNhcC11c2IuYwo+ICsrKyBiL2RyaXZlcnMvcGh5L21vdG9yb2xhL3BoeS1jcGNhcC11c2Iu YwoKWyAuLi4gXQoKPiBAQCAtMjkyLDM4ICszMDEsNzQgQEAgc3RhdGljIHZvaWQgY3BjYXBfdXNi X2RldGVjdChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCgpbIC4uLiBdCgo+IC0JLyogT3RoZXJ3 aXNlIGFzc3VtZSB3ZSdyZSBjb25uZWN0ZWQgdG8gYSBVU0IgaG9zdCAqLwo+IC0JaWYgKHZidXMp IHsKPiAtCQlkZXZfZGJnKGRkYXRhLT5kZXYsICJjb25uZWN0ZWQgdG8gVVNCIGhvc3RcbiIpOwo+ IC0JCWVycm9yID0gY3BjYXBfdXNiX3NldF91c2JfbW9kZShkZGF0YSk7Cj4gKwkvKiBDaGVjayBp ZiB3ZSdyZSBjb25uZWN0ZWQgdG8gYSBVU0IgaG9zdCBvciBjaGFyZ2VyICovCj4gKwlpZiAodmJ1 cyAmJiBkZGF0YS0+bW9kZSAhPSBDUENBUF9VU0JfSE9TVCkgewo+ICsJCWVudW0gY3BjYXBfbW9k ZSBuZXdfbW9kZTsKPiArCj4gKwkJaWYgKHMuc2UxKQo+ICsJCQluZXdfbW9kZSA9IENQQ0FQX0NI QVJHRVI7Cj4gKwkJZWxzZSBpZiAoIXMuZG0gJiYgIXMuZHApCj4gKwkJCW5ld19tb2RlID0gQ1BD QVBfVVNCOwo+ICsJCWVsc2Ugewo+ICsJCQllcnJvciA9IHJlZ21hcF91cGRhdGVfYml0cyhkZGF0 YS0+cmVnLCBDUENBUF9SRUdfVVNCQzIsCj4gKwkJCQkJCSAgIENQQ0FQX0JJVF9VU0JYQ1ZSRU4g fAo+ICsJCQkJCQkgICBDUENBUF9CSVRfVUFSVE1VWDAgfAo+ICsJCQkJCQkgICBDUENBUF9CSVRf RU1VTU9ERTAsIDApOwo+ICsJCQlpZiAoZXJyb3IpCj4gKwkJCQlnb3RvIG91dF9lcnI7Cj4gKwo+ ICsJCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmRkYXRhLT5kZXRlY3Rfd29yaywKPiArCQkJCQkg ICAgICBtc2Vjc190b19qaWZmaWVzKDEwMCkpOwo+ICsJCQlyZXR1cm47Cj4gKwkJfQoKW1NldmVy aXR5OiBIaWdoXQpEb2VzIHRoaXMgZWxzZSBibG9jayBjcmVhdGUgYSByZWdyZXNzaW9uIHdpdGgg YW4gaW5maW5pdGUgY29ubmVjdC9kaXNjb25uZWN0CmZsYXBwaW5nIGxvb3AgZm9yIGFjdGl2ZSBV U0IgcGVyaXBoZXJhbCBjb25uZWN0aW9ucz8KCldoZW4gdGhlIGRldmljZSBzdWNjZXNzZnVsbHkg ZW50ZXJzIENQQ0FQX1VTQiBtb2RlLCBub3JtYWwgVVNCIHB1bGwtdXBzIG9yCnRyYWZmaWMgd2ls bCBhc3NlcnQgRCsgaGlnaCAocy5kcCA9PSAxKS4gQW55IHN1YnNlcXVlbnQgaW50ZXJydXB0IHRy aWdnZXJzCmRldGVjdF93b3JrKCksIGFuZCBpZiBzLnNlMSBpcyBmYWxzZSwgaXQgZmFsbHMgaW50 byB0aGlzIGVsc2UgYmxvY2suIEl0IHRoZW4KZGlzYWJsZXMgdGhlIHRyYW5zY2VpdmVyIChVU0JY Q1ZSRU4gPSAwKSBhbmQgcmVzY2hlZHVsZXMgaXRzZWxmIGluIDEwMG1zLApyZXBlYXRlZGx5IGRy b3BwaW5nIHN0YW5kYXJkIFBDIGNvbm5lY3Rpb25zIG9yIHByb3ByaWV0YXJ5IGNoYXJnZXJzLgoK WyAuLi4gXQoKPiBAQCAtNDI0LDQzICs0NjksODQgQEAgc3RhdGljIGludCBjcGNhcF91c2JfZ3Bp b19zZXRfbW9kZShzdHJ1Y3QgY3BjYXBfcGh5X2RkYXRhICpkZGF0YSwKClsgLi4uIF0KCj4gK3N0 YXRpYyBpbnQgY3BjYXBfdXNiX3NldF9pZGxlX21vZGUoc3RydWN0IGNwY2FwX3BoeV9kZGF0YSAq ZGRhdGEpCj4gK3sKClsgLi4uIF0KCj4gKwl2YWwgPSBDUENBUF9CSVRfVVNCU1VTUEVORDsKPiAr Cj4gKwlpZiAoZW5hYmxlX3VhcnQpCj4gKwkJdmFsIHw9IChDUENBUF9CSVRfVUFSVE1VWDAgfCBD UENBUF9CSVRfRU1VTU9ERTApOwo+ICsKPiArCWVycm9yID0gcmVnbWFwX3VwZGF0ZV9iaXRzKGRk YXRhLT5yZWcsIENQQ0FQX1JFR19VU0JDMiwgMHhmZmZmLCB2YWwpOwo+ICsJaWYgKGVycm9yKQo+ ICsJCWdvdG8gb3V0X2VycjsKClsgLi4uIF0KCj4gQEAgLTUwMywxMSArNTc4LDIzIEBAIHN0YXRp YyBpbnQgY3BjYXBfdXNiX3NldF91c2JfbW9kZShzdHJ1Y3QgY3BjYXBfcGh5X2RkYXRhICpkZGF0 YSkKPiAgCQlnb3RvIG91dF9lcnI7Cj4gIAo+ICAJZXJyb3IgPSByZWdtYXBfdXBkYXRlX2JpdHMo ZGRhdGEtPnJlZywgQ1BDQVBfUkVHX1VTQkMyLAo+IC0JCQkJICAgQ1BDQVBfQklUX1VTQlhDVlJF TiwKPiArCQkJCSAgIENQQ0FQX0JJVF9VU0JYQ1ZSRU4gfAo+ICsJCQkJICAgQ1BDQVBfQklUX1VB UlRNVVgwIHwKPiArCQkJCSAgIENQQ0FQX0JJVF9FTVVNT0RFMCwKPiAgCQkJCSAgIENQQ0FQX0JJ VF9VU0JYQ1ZSRU4pOwoKW1NldmVyaXR5OiBIaWdoXQpXaGVuIHRyYW5zaXRpb25pbmcgYmFjayB0 byBVU0IgbW9kZSwgZG9lcyB0aGlzIGNhdXNlIGEgcmVncmVzc2lvbiB3aGVyZSB0aGUKUEhZIHRy YW5zY2VpdmVyIGlzIGxlZnQgaW1wcm9wZXJseSBzdXNwZW5kZWQ/CgpJbiBjcGNhcF91c2Jfc2V0 X2lkbGVfbW9kZSgpLCBDUENBUF9SRUdfVVNCQzIgaXMgdXBkYXRlZCB3aXRoIGEgMHhmZmZmIG1h c2sgdG8KZXhwbGljaXRseSBzZXQgQ1BDQVBfQklUX1VTQlNVU1BFTkQuIFdoZW4gcmV0dXJuaW5n IHRvIFVTQiBtb2RlIGhlcmUsIHRoZSBtYXNrCmlzIGxpbWl0ZWQgdG8gQ1BDQVBfQklUX1VTQlhD VlJFTiB8IENQQ0FQX0JJVF9VQVJUTVVYMCB8IENQQ0FQX0JJVF9FTVVNT0RFMC4KU2luY2UgdGhp cyBtYXNrIGRvZXMgbm90IGluY2x1ZGUgQ1BDQVBfQklUX1VTQlNVU1BFTkQsIGl0IGxvb2tzIGxp a2UgaXQgZmFpbHMKdG8gY2xlYXIgdGhlIHN1c3BlbnNpb24gc3RhdGUsIHdoaWNoIGNvdWxkIGNh dXNlIGNvbW11bmljYXRpb24gZmFpbHVyZXMuCgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0 cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYwNzExMjA0MjEwLjE5NzE0NC0xLWl2by5n LmRpbWl0cm92Ljc1QGdtYWlsLmNvbT9wYXJ0PTQKCi0tIApsaW51eC1waHkgbWFpbGluZyBsaXN0 CmxpbnV4LXBoeUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHBzOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXBoeQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2A471307492 for ; Sat, 11 Jul 2026 20:54:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783803296; cv=none; b=b4nKT7AhJWFa0v+xBMri1umM1vZRahCAtObGW3K7INVDcgdSjCGuRZqlejAjZee+ulY/L2EZ41qEmonO4ZGqMBG5Vg/GyZMt5FP5HB/bIhYKG1cUgEPwsTjRZVn6aqr/dtNDsYjZp/qGwcmjKzLu88lT8BdbItRuPREXMY78Boo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783803296; c=relaxed/simple; bh=gf9xNQV+r2taFIZNVTSHGW/t8IBeAG0lNNBowK6/3gw=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=KFJ9GMVXzhnqfsQxDVcB6uew3rpjJALKo/pZbVdnh+kx6iy9tP7qWlhJD8orZdRzJDvSPp059qxLvz2vDkRLnRbSQwvA9e1cuPex80xWz3R24RHjJgbmXBcuSPwmORdsfaYHIDADt+HQVC6X5zUgT3zfVSqMCsTZb8xeD9IpnAg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DsMhuGRv; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DsMhuGRv" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 48A691F000E9; Sat, 11 Jul 2026 20:54:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1783803294; bh=BLc2TeOzuwwz6G4okBR4+1TV+SOCbTR5Sy6nyFfG2rU=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=DsMhuGRvS5ELN8y7MfBvXqT+OWG97J2D+MCS7xNI+/LXjjrBXVZiRcZ0nl3Vro0yd a4OasoztmuDD50hgQ4AGq2xQudnNPyg/u7MOfpWrn3tO7SI+PQFsLZRRbYSgK49MLk dfc8EZ2GZU8QJqHe7jFH6ZyFYZqKGZd143zW5uhExr+bBMgFjbh++yoPZgsX1Mo9HC 0PjNSDuaQg9gD4G9P2hh0ZX1mVVR6WbarL5wP8QY8o/O9COPh+KR9olbo0GRq06zWM I2KKCuo6RM+47TiMhj9QX0/xFoX+7/4OmFaUlvFxugvzdpbeb6jh3lN0WbsoSg2vo9 ntLxfeuvlgi5A== From: sashiko-bot@kernel.org Subject: Re: [PATCH v5 4/7] phy: cpcap-usb: add DCP detection and make UART idle mode optional Reply-To: sashiko-reviews@lists.linux.dev To: "Ivaylo Dimitrov" Cc: vkoul@kernel.org, robh@kernel.org, neil.armstrong@linaro.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org, conor+dt@kernel.org, olteanv@gmail.com In-Reply-To: <20260711204210.197144-5-ivo.g.dimitrov.75@gmail.com> References: <20260711204210.197144-1-ivo.g.dimitrov.75@gmail.com> <20260711204210.197144-5-ivo.g.dimitrov.75@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Sat, 11 Jul 2026 20:54:53 +0000 Message-Id: <20260711205454.48A691F000E9@smtp.kernel.org> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 2 potential issue(= s) to consider: - [High] The new charger detection logic introduces an infinite connect/dis= connect flapping loop for active USB peripheral connections and an infinite= polling loop for proprietary chargers. - [High] Transitioning from idle mode to USB mode leaves the PHY transceive= r improperly suspended because CPCAP_BIT_USBSUSPEND is not cleared. -- --- Patch [4]: [PATCH v5 4/7] phy: cpcap-usb: add DCP detection and make UA= RT idle mode optional --- commit a10ef479eac91f75ee1175abda606fb7eaa3fb70 Author: Ivaylo Dimitrov phy: cpcap-usb: add DCP detection and make UART idle mode optional Handle DCP separately from USB host connections using CPCAP charger detection status. Make the existing idle UART mode optional via the "enable_uart" module parameter. Initialize the PHY into the baseline configuration required for reliable charger detection during probe. > diff --git a/drivers/phy/motorola/phy-cpcap-usb.c b/drivers/phy/motorola/= phy-cpcap-usb.c > index 741145c89e5bb..2d770ff19e934 100644 > --- a/drivers/phy/motorola/phy-cpcap-usb.c > +++ b/drivers/phy/motorola/phy-cpcap-usb.c [ ... ] > @@ -292,38 +301,74 @@ static void cpcap_usb_detect(struct work_struct *wo= rk) [ ... ] > - /* Otherwise assume we're connected to a USB host */ > - if (vbus) { > - dev_dbg(ddata->dev, "connected to USB host\n"); > - error =3D cpcap_usb_set_usb_mode(ddata); > + /* Check if we're connected to a USB host or charger */ > + if (vbus && ddata->mode !=3D CPCAP_USB_HOST) { > + enum cpcap_mode new_mode; > + > + if (s.se1) > + new_mode =3D CPCAP_CHARGER; > + else if (!s.dm && !s.dp) > + new_mode =3D CPCAP_USB; > + else { > + error =3D regmap_update_bits(ddata->reg, CPCAP_REG_USBC2, > + CPCAP_BIT_USBXCVREN | > + CPCAP_BIT_UARTMUX0 | > + CPCAP_BIT_EMUMODE0, 0); > + if (error) > + goto out_err; > + > + schedule_delayed_work(&ddata->detect_work, > + msecs_to_jiffies(100)); > + return; > + } [Severity: High] Does this else block create a regression with an infinite connect/disconnect flapping loop for active USB peripheral connections? When the device successfully enters CPCAP_USB mode, normal USB pull-ups or traffic will assert D+ high (s.dp =3D=3D 1). Any subsequent interrupt trigg= ers detect_work(), and if s.se1 is false, it falls into this else block. It then disables the transceiver (USBXCVREN =3D 0) and reschedules itself in 100ms, repeatedly dropping standard PC connections or proprietary chargers. [ ... ] > @@ -424,43 +469,84 @@ static int cpcap_usb_gpio_set_mode(struct cpcap_phy= _ddata *ddata, [ ... ] > +static int cpcap_usb_set_idle_mode(struct cpcap_phy_ddata *ddata) > +{ [ ... ] > + val =3D CPCAP_BIT_USBSUSPEND; > + > + if (enable_uart) > + val |=3D (CPCAP_BIT_UARTMUX0 | CPCAP_BIT_EMUMODE0); > + > + error =3D regmap_update_bits(ddata->reg, CPCAP_REG_USBC2, 0xffff, val); > + if (error) > + goto out_err; [ ... ] > @@ -503,11 +578,23 @@ static int cpcap_usb_set_usb_mode(struct cpcap_phy_= ddata *ddata) > goto out_err; > =20 > error =3D regmap_update_bits(ddata->reg, CPCAP_REG_USBC2, > - CPCAP_BIT_USBXCVREN, > + CPCAP_BIT_USBXCVREN | > + CPCAP_BIT_UARTMUX0 | > + CPCAP_BIT_EMUMODE0, > CPCAP_BIT_USBXCVREN); [Severity: High] When transitioning back to USB mode, does this cause a regression where the PHY transceiver is left improperly suspended? In cpcap_usb_set_idle_mode(), CPCAP_REG_USBC2 is updated with a 0xffff mask= to explicitly set CPCAP_BIT_USBSUSPEND. When returning to USB mode here, the m= ask is limited to CPCAP_BIT_USBXCVREN | CPCAP_BIT_UARTMUX0 | CPCAP_BIT_EMUMODE0. Since this mask does not include CPCAP_BIT_USBSUSPEND, it looks like it fai= ls to clear the suspension state, which could cause communication failures. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260711204210.1971= 44-1-ivo.g.dimitrov.75@gmail.com?part=3D4