From: Hongliang Yang <hongliang.yang@cixtech.com>
To: linux-usb@vger.kernel.org
Cc: Hongliang Yang <hongliang.yang@cixtech.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Peter Chen <peter.chen@kernel.org>,
Pawel Laszczak <pawell@cadence.com>,
Roger Quadros <rogerq@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Gary Yang <Gary.Yang@cixtech.com>,
Fugang Duan <fugang.duan@cixtech.com>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
cix-kernel-upstream <cix-kernel-upstream@cixtech.com>
Subject: Re: [PATCH v8 2/2] usb: cdns3: Add CIX Sky1 glue driver
Date: Fri, 13 Nov 2026 11:31:22 +0800 [thread overview]
Message-ID: <20261113033122.1438152-1-hongliang.yang@cixtech.com> (raw)
In-Reply-To: <sashiko-outbox-210229@kernel.org>
All five are real. Fixes go into v9; the binding patch is unaffected.
> [Low] missing MFD_SYSCON dependency for USB_CDNSP_SKY1
Confirmed. ARCH_CIX does not select MFD_SYSCON, and without it
syscon_regmap_lookup_by_phandle_args() returns -ENOTSUPP, so probe fails
with a minimal configuration. v9 adds "select MFD_SYSCON".
> [Medium] clock refcount underflow after resume failure
Confirmed, and it is not limited to a failed resume: shutting the system
down or removing the driver after system suspend, without an intervening
resume, reaches cdnsp_sky1_clk_disable_all() and disables the sof and axi
clocks a second time.
v9 records which clocks are on in a bitmap and routes every user through
one idempotent pair, cdnsp_sky1_clk_enable(data, mask) and
cdnsp_sky1_clk_disable(data, mask). A clock that is already on is skipped,
and the enable error path disables only the clocks that call enabled.
CIX_USB_CLK_OFF_NUM goes away; the suspend window is a mask instead.
> [Low] PS_PME_En not cleared in cdns_sky1_platform_suspend()
Confirmed, the read-modify-write keeps whatever PS_PME_En was left in the
register. v9 clears PS_PME_En together with PS_MASK before setting the new
power state.
You are also right that the core drops the return value. That means
-ETIMEDOUT does not prevent the half-suspended state, so v9 restores PS_D0
when the D3 entry times out, as the vendor driver does, and keeps the error
return for when the core propagates it.
> [Medium] cdns_sky1_pdata leak in cdnsp_sky1_probe()
Confirmed. of_platform_bus_create() returns 0 when the child device is not
created, so the if (ret) branch after of_platform_populate() never runs.
v9 checks the children twice. Before the populate it requires exactly one
enabled cdns,usb3 child node, so the auxdata platform data can never be
handed to more than one device, which would be a double free in
platform_device_release(). After the populate it looks for the created child
and, when there is none, frees the platform data and fails probe.
> [Medium] unconditional clock gating in cdnsp_sky1_system_suspend()
Confirmed, the function contradicts the comment above it. v9 gates the
clocks only when both conditions hold:
- the child device, which owns the shared wakeup interrupt, does not have
wakeup enabled;
- AXI_CLOCK_VALID reads 0, that is the controller has stopped using AXI.
The second test answers the device/idle role and the D3 entry timeout cases
without depending on the role, and it is the same status bit that
cdns_sky1_platform_suspend() polls on a successful D3 entry.
Best regards,
Hongliang Yang
prev parent reply other threads:[~2026-11-13 16:04 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-12 2:21 [PATCH v8 0/2] Add CIX Sky1 USBSSP controller support Hongliang Yang
2026-11-12 2:21 ` [PATCH v8 1/2] dt-bindings: usb: Add CIX Sky1 USBSSP controller Hongliang Yang
2026-11-12 2:21 ` [PATCH v8 2/2] usb: cdns3: Add CIX Sky1 glue driver Hongliang Yang
[not found] ` <sashiko-outbox-210229@kernel.org>
2026-11-13 3:31 ` Hongliang Yang [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261113033122.1438152-1-hongliang.yang@cixtech.com \
--to=hongliang.yang@cixtech.com \
--cc=Gary.Yang@cixtech.com \
--cc=cix-kernel-upstream@cixtech.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=fugang.duan@cixtech.com \
--cc=gregkh@linuxfoundation.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=pawell@cadence.com \
--cc=peter.chen@kernel.org \
--cc=robh@kernel.org \
--cc=rogerq@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®