Linux Sound subsystem development
 help / color / mirror / Atom feed
From: Guan-Yu Lin <guanyulin@google.com>
To: Thinh.Nguyen@synopsys.com, gregkh@linuxfoundation.org,
	 mathias.nyman@intel.com, stern@rowland.harvard.edu,
	elder@kernel.org,  oneukum@suse.com, yajun.deng@linux.dev,
	dianders@chromium.org,  kekrby@gmail.com, perex@perex.cz,
	tiwai@suse.com, tj@kernel.org,  stanley_chang@realtek.com,
	andreyknvl@gmail.com,  christophe.jaillet@wanadoo.fr,
	quic_jjohnson@quicinc.com,  ricardo@marliere.net,
	grundler@chromium.org, niko.mauno@vaisala.com
Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	 linux-sound@vger.kernel.org, badhri@google.com,
	albertccwang@google.com,  quic_wcheng@quicinc.com,
	pumahsu@google.com,  Guan-Yu Lin <guanyulin@google.com>
Subject: [PATCH v4 0/5] Support system sleep with offloaded usb transfers
Date: Wed,  9 Oct 2024 05:42:54 +0000	[thread overview]
Message-ID: <20241009054429.3970438-1-guanyulin@google.com> (raw)

Wesley Cheng and Mathias Nyman's USB offload design enables a co-processor
to handle some USB transfers, potentially allowing the main system to
sleep and save power. However, Linux's power management system halts the
USB host controller when the main system isn't managing any USB transfers.
To address this, the proposal modifies the system to recognize offloaded
USB transfers and manage power accordingly.

This involves two key steps:
1. Transfer Status Tracking: Propose xhci_sideband_get and
xhci_sideband_put to track USB transfers on the co-processor, ensuring the
system is aware of any ongoing activity.
2. Power Management Adjustment:  Modifications to the USB driver stack
(dwc3 controller driver, xhci host controller driver, and USB device
drivers) allow the system to sleep without disrupting co-processor managed
USB transfers. This involves adding conditional checks to bypass some
power management operations.

patches depends on series "Introduce QC USB SND audio offloading support" 
https://lore.kernel.org/lkml/20240925010000.2231406-11-quic_wcheng@quicinc.com/T/

changelog
----------
Changes in v4:
- Isolate the feature into USB driver stack.
- Integrate with series "Introduce QC USB SND audio offloading support"

Changes in v3:
- Integrate the feature with the pm core framework.

Changes in v2:
- Cosmetics changes on coding style.

[v3] PM / core: conditionally skip system pm in device/driver model
[v2] usb: host: enable suspend-to-RAM control in userspace
[v1] [RFC] usb: host: Allow userspace to control usb suspend flows
---

Guan-Yu Lin (5):
  usb: dwc3: separate dev_pm_ops for each pm_event
  usb: xhci-plat: separate dev_pm_ops for each pm_event
  usb: add apis for sideband uasge tracking
  xhci: sideband: add api to trace sideband usage
  usb: host: enable sideband transfer during system sleep

 drivers/usb/core/driver.c         | 64 ++++++++++++++++++++++
 drivers/usb/core/hcd.c            |  1 +
 drivers/usb/core/usb.c            |  1 +
 drivers/usb/dwc3/core.c           | 90 ++++++++++++++++++++++++++++++-
 drivers/usb/dwc3/core.h           |  8 +++
 drivers/usb/host/xhci-plat.c      | 38 +++++++++++--
 drivers/usb/host/xhci-plat.h      |  7 +++
 drivers/usb/host/xhci-sideband.c  | 74 +++++++++++++++++++++++++
 include/linux/usb.h               | 13 +++++
 include/linux/usb/hcd.h           |  4 ++
 include/linux/usb/xhci-sideband.h |  5 ++
 sound/usb/qcom/qc_audio_offload.c |  3 ++
 12 files changed, 303 insertions(+), 5 deletions(-)

-- 
2.47.0.rc0.187.ge670bccf7e-goog


             reply	other threads:[~2024-10-09  5:45 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-09  5:42 Guan-Yu Lin [this message]
2024-10-09  5:42 ` [PATCH v4 1/5] usb: dwc3: separate dev_pm_ops for each pm_event Guan-Yu Lin
2024-10-09 12:45   ` Greg KH
2024-10-10  4:12     ` Guan-Yu Lin
2024-10-09  5:42 ` [PATCH v4 2/5] usb: xhci-plat: " Guan-Yu Lin
2024-10-09  5:42 ` [PATCH v4 3/5] usb: add apis for sideband uasge tracking Guan-Yu Lin
2024-10-09  7:33   ` Amadeusz Sławiński
2024-10-09 11:36     ` Guan-Yu Lin
2024-10-09 12:44   ` Greg KH
2024-10-10  5:30     ` Guan-Yu Lin
2024-10-10  6:33       ` Greg KH
2024-10-10 16:14         ` Guan-Yu Lin
2024-10-11  4:30           ` Greg KH
2024-10-11  7:33             ` Guan-Yu Lin
2024-10-09  5:42 ` [PATCH v4 4/5] xhci: sideband: add api to trace sideband usage Guan-Yu Lin
2024-10-09 12:47   ` Greg KH
2024-10-10  4:16     ` Guan-Yu Lin
2024-10-09  5:42 ` [PATCH v4 5/5] usb: host: enable sideband transfer during system sleep Guan-Yu Lin
2024-10-09 12:47   ` Greg KH
2024-10-11  7:34     ` Guan-Yu Lin

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=20241009054429.3970438-1-guanyulin@google.com \
    --to=guanyulin@google.com \
    --cc=Thinh.Nguyen@synopsys.com \
    --cc=albertccwang@google.com \
    --cc=andreyknvl@gmail.com \
    --cc=badhri@google.com \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=dianders@chromium.org \
    --cc=elder@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=grundler@chromium.org \
    --cc=kekrby@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=niko.mauno@vaisala.com \
    --cc=oneukum@suse.com \
    --cc=perex@perex.cz \
    --cc=pumahsu@google.com \
    --cc=quic_jjohnson@quicinc.com \
    --cc=quic_wcheng@quicinc.com \
    --cc=ricardo@marliere.net \
    --cc=stanley_chang@realtek.com \
    --cc=stern@rowland.harvard.edu \
    --cc=tiwai@suse.com \
    --cc=tj@kernel.org \
    --cc=yajun.deng@linux.dev \
    /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