Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SDW] clock stop prepare failed: -61 #2621

Closed
plbossart opened this issue Dec 10, 2020 · 6 comments
Closed

[SDW] clock stop prepare failed: -61 #2621

plbossart opened this issue Dec 10, 2020 · 6 comments
Labels
bug Something isn't working Clock Stop prepare failed SoundWire Clock Stop prepare failed P2 Critical bugs or normal features SDW Applies to SoundWire bus for codec connection TGL Applies to Tiger Lake platform

Comments

@plbossart
Copy link
Member

Intel internal test shows this:

kernel: [ 9610.645108] rt715 sdw:3:25d:715:0: [rt715_sdw_write] 3124 <= 0004
kernel: [ 9610.645238] rt715 sdw:3:25d:715:0: [rt715_sdw_write] 3125 <= 0005
kernel: [ 9610.840387] rt711 sdw:0:25d:711:0: Slave impl defined interrupt
kernel: [ 9610.840391] rt711 sdw:0:25d:711:0: rt711_interrupt_callback control_port_stat=4
kernel: [ 9611.092971] rt711 sdw:0:25d:711:0: [rt711_sdw_read] b921 0000 => 80000000
kernel: [ 9611.093470] rt711 sdw:0:25d:711:0: [rt711_sdw_read] 7520 85a0 9c20 aca0 => 00000af4
kernel: [ 9611.093991] rt711 sdw:0:25d:711:0: [rt711_sdw_read] 7520 85a0 9c20 aca0 => 00000800
kernel: [ 9611.094493] rt711 sdw:0:25d:711:0: [rt711_sdw_read] 7520 85a0 9c20 aca0 => 00000030
kernel: [ 9611.094495] rt711 sdw:0:25d:711:0: in rt711_jack_detect_handler, jack_type=0x3
kernel: [ 9611.094496] rt711 sdw:0:25d:711:0: in rt711_jack_detect_handler, btn_type=0x0
kernel: [ 9611.140187] sof-audio-pci 0000:00:1f.3: ipc rx: 0x90020000: GLB_TRACE_MSG
kernel: [ 9611.140207] sof-audio-pci 0000:00:1f.3: ipc rx done: 0x90020000: GLB_TRACE_MSG
kernel: [ 9611.640140] sof-audio-pci 0000:00:1f.3: ipc rx: 0x90020000: GLB_TRACE_MSG
kernel: [ 9611.640161] sof-audio-pci 0000:00:1f.3: ipc rx done: 0x90020000: GLB_TRACE_MSG
kernel: [ 9613.236847] intel-sdw intel-sdw.2: Msg ignored for Slave 15
kernel: [ 9613.236850] soundwire sdw-master-2: ClockStopNow Broadcast msg ignored -61
kernel: [ 9613.875333] intel-sdw intel-sdw.3: Msg ignored for Slave 1
kernel: [ 9613.875336] rt715 sdw:3:25d:715:0: Clock Stop prepare failed for slave: -61
kernel: [ 9613.875340] rt715 sdw:3:25d:715:0: pre-prepare failed:-61
kernel: [ 9613.875342] intel-sdw intel-sdw.3: prepare clock stop failed -61
kernel: [ 9613.875344] intel-sdw intel-sdw.3: cannot enable clock stop on suspend

dmesg_rt715_clock_stop_error.txt

@jack-cy-yu do you see any control value or writes that would cause the device to reply COMMAND_IGNORED?

@jack-cy-yu
Copy link

Most registers in log are related to widget's properties, the only one I suspect is "3501 <= xxxx" operation, it's a audio power state control, not sure if the COMMAND_IGNORED is caused by this? But I reviewed previous log, the same operation didn't cause the COMMAND_IGNORED response.

@plbossart
Copy link
Member Author

plbossart commented Dec 11, 2020

@jack-cy-yu in theory the power controls should have no impact on the SoundWire interface, and a COMMAND_IGNORED can only be generated if the device is not synchronized or if the register does not exist.
The SoundWire spec says there should be no link between device state and replies to command, i.e. COMMAND_IGNORED can only be used to describe what happened on the bus and register access, not to convey a status on the device state or ability to handle the command. You may want to check with hardware folks if this is the case.

@plbossart plbossart added the SDW Applies to SoundWire bus for codec connection label Dec 11, 2020
@plbossart
Copy link
Member Author

plbossart commented Dec 11, 2020

Same error reported w/ RT1316 in Intel internal test 1118

cmd: TPLG=sof-tgl-rt711-rt1316-rt714.tplg ~/sof-test/test-case/check-suspend-resume-with-audio.sh -l 15 -m playback

kernel: [   61.185366] intel-sdw intel-sdw.0: intel_link_power_up: powering up all links
kernel: [   61.185367] intel-sdw intel-sdw.0: intel_link_power_up: first link up, programming SYNCPRD
kernel: [   61.185721] rt711-sdca sdw:0:25d:711:1: sdw_modify_slave_status: initializing completion for Slave 1
kernel: [   61.186582] intel-sdw intel-sdw.0: Slave status change: 0x2
kernel: [   61.186588] soundwire sdw-master-0: Slave attached, programming device number
kernel: [   61.186760] soundwire sdw-master-0: SDW Slave Addr: 30025d071101
kernel: [   61.186762] soundwire sdw-master-0: SDW Slave class_id 0x01, mfg_id 0x025d, part_id 0x0711, unique_id 0x0, version 0x3
kernel: [   61.186763] soundwire sdw-master-0: Slave already registered, reusing dev_num:1
kernel: [   61.186995] intel-sdw intel-sdw.0: Msg ignored for Slave 0
kernel: [   61.186996] soundwire sdw-master-0: No more devices to enumerate
kernel: [   61.187021] intel-sdw intel-sdw.0: Slave status change: 0x21
kernel: [   61.187024] rt711-sdca sdw:0:25d:711:1: sdw_modify_slave_status: signaling completion for Slave 1
kernel: [   61.187212] rt711-sdca sdw:0:25d:711:1: Configured bus base 1, scale 3, mclk 19200000, curr_freq 4800000
kernel: [   61.188889] intel-sdw intel-sdw.1: intel_resume: pm_runtime status was suspended, forcing active
kernel: [   61.189120] rt1316-sdca sdw:1:25d:1316:1: sdw_modify_slave_status: initializing completion for Slave 1
kernel: [   61.189255] intel-sdw intel-sdw.2: intel_resume: pm_runtime status was suspended, forcing active
kernel: [   61.189484] rt1316-sdca sdw:2:25d:1316:1: sdw_modify_slave_status: initializing completion for Slave 1
kernel: [   61.189618] intel-sdw intel-sdw.3: intel_resume: pm_runtime status was suspended, forcing active
kernel: [   61.189840] rt715-sdca sdw:3:25d:714:1: sdw_modify_slave_status: initializing completion for Slave 1
kernel: [   61.190048] intel-sdw intel-sdw.1: Slave status change: 0x2
kernel: [   61.190051] soundwire sdw-master-1: Slave attached, programming device number
kernel: [   61.190207] soundwire sdw-master-1: SDW Slave Addr: 31025d131601
kernel: [   61.190208] soundwire sdw-master-1: SDW Slave class_id 0x01, mfg_id 0x025d, part_id 0x1316, unique_id 0x1, version 0x3
kernel: [   61.190209] soundwire sdw-master-1: Slave already registered, reusing dev_num:1
kernel: [   61.190317] intel-sdw intel-sdw.2: Slave status change: 0x2
kernel: [   61.190319] soundwire sdw-master-2: Slave attached, programming device number
kernel: [   61.190459] intel-sdw intel-sdw.1: Msg ignored for Slave 0
kernel: [   61.190464] soundwire sdw-master-1: No more devices to enumerate
kernel: [   61.190490] soundwire sdw-master-2: SDW Slave Addr: 30025d131601
kernel: [   61.190491] soundwire sdw-master-2: SDW Slave class_id 0x01, mfg_id 0x025d, part_id 0x1316, unique_id 0x0, version 0x3
kernel: [   61.190496] soundwire sdw-master-2: Slave already registered, reusing dev_num:1
kernel: [   61.190518] intel-sdw intel-sdw.1: Slave status change: 0x21
kernel: [   61.190520] rt1316-sdca sdw:1:25d:1316:1: sdw_modify_slave_status: signaling completion for Slave 1
kernel: [   61.190725] intel-sdw intel-sdw.2: Msg ignored for Slave 0
kernel: [   61.190726] soundwire sdw-master-2: No more devices to enumerate
kernel: [   61.190750] intel-sdw intel-sdw.2: Slave status change: 0x21
kernel: [   61.190752] rt1316-sdca sdw:2:25d:1316:1: sdw_modify_slave_status: signaling completion for Slave 1
kernel: [   61.190755] rt1316-sdca sdw:1:25d:1316:1: Configured bus base 1, scale 3, mclk 19200000, curr_freq 4800000
kernel: [   61.190985] rt1316-sdca sdw:2:25d:1316:1: Configured bus base 1, scale 3, mclk 19200000, curr_freq 4800000
kernel: [   61.191199] intel-sdw intel-sdw.2: Slave status change: 0x40
kernel: [   61.191308] intel-sdw intel-sdw.3: Slave status change: 0x2
kernel: [   61.191310] soundwire sdw-master-3: Slave attached, programming device number
kernel: [   61.191347] OOM killer enabled.
kernel: [   61.191348] Restarting tasks ... 
kernel: [   61.191498] soundwire sdw-master-3: SDW Slave Addr: 30025d071401
kernel: [   61.191500] soundwire sdw-master-3: SDW Slave class_id 0x01, mfg_id 0x025d, part_id 0x0714, unique_id 0x0, version 0x3
kernel: [   61.191501] soundwire sdw-master-3: Slave already registered, reusing dev_num:1
kernel: [   61.191718] intel-sdw intel-sdw.3: Msg ignored for Slave 0
kernel: [   61.191724] soundwire sdw-master-3: No more devices to enumerate
kernel: [   61.191748] intel-sdw intel-sdw.3: Slave status change: 0x21
kernel: [   61.191750] rt715-sdca sdw:3:25d:714:1: sdw_modify_slave_status: signaling completion for Slave 1
kernel: [   61.192877] rt715-sdca sdw:3:25d:714:1: Configured bus base 1, scale 3, mclk 19200000, curr_freq 4800000
kernel: [   61.193287] done.
kernel: [   61.195066] sof-audio-pci 0000:00:1f.3: ipc tx: 0x80010000: GLB_DAI_MSG: CONFIG
kernel: [   61.195197] sof-audio-pci 0000:00:1f.3: ipc tx succeeded: 0x80010000: GLB_DAI_MSG: CONFIG
kernel: [   61.195265] sof-audio-pci 0000:00:1f.3: pcm: prepare stream 0 dir 0
kernel: [   61.195267] sof-audio-pci 0000:00:1f.3: pcm: hw params stream 0 dir 0
kernel: [   61.195270] sof-audio-pci 0000:00:1f.3: generating page table for 00000000f208cdc7 size 0x10000 pages 16
kernel: [   61.195278] sof-audio-pci 0000:00:1f.3: FW Poll Status: reg=0x40000 successful
kernel: [   61.195322] sof-audio-pci 0000:00:1f.3: FW Poll Status: reg=0x40000 successful
kernel: [   61.195326] sof-audio-pci 0000:00:1f.3: period_bytes:0x4000
kernel: [   61.195327] sof-audio-pci 0000:00:1f.3: periods:4
kernel: [   61.195341] sof-audio-pci 0000:00:1f.3: stream_tag 1
kernel: [   61.195348] sof-audio-pci 0000:00:1f.3: ipc tx: 0x60010000: GLB_STREAM_MSG: PCM_PARAMS
kernel: [   61.195738] sof-audio-pci 0000:00:1f.3: ipc tx succeeded: 0x60010000: GLB_STREAM_MSG: PCM_PARAMS
kernel: [   61.195897] sof-audio-pci 0000:00:1f.3: pcm: stream dir 0, posn mailbox offset is 790528
kernel: [   61.196095] sof-audio-pci 0000:00:1f.3: pcm: trigger stream 0 dir 0 cmd 1
kernel: [   61.196614] sof-audio-pci 0000:00:1f.3: FW Poll Status: reg=0x14001e successful
kernel: [   61.196620] sof-audio-pci 0000:00:1f.3: ipc tx: 0x60040000: GLB_STREAM_MSG: TRIG_START
kernel: [   61.197036] sof-audio-pci 0000:00:1f.3: ipc tx succeeded: 0x60040000: GLB_STREAM_MSG: TRIG_START
kernel: [   61.205238] intel-sdw intel-sdw.2: Slave status change: 0x20
kernel: [   61.208533] PM: suspend exit
kernel: [   61.683079] sof-audio-pci 0000:00:1f.3: ipc rx: 0x90020000: GLB_TRACE_MSG
kernel: [   61.683106] sof-audio-pci 0000:00:1f.3: ipc rx done: 0x90020000: GLB_TRACE_MSG
kernel: [   62.183129] sof-audio-pci 0000:00:1f.3: ipc rx: 0x90020000: GLB_TRACE_MSG
kernel: [   62.183153] sof-audio-pci 0000:00:1f.3: ipc rx done: 0x90020000: GLB_TRACE_MSG
kernel: [   64.876111] intel-sdw intel-sdw.2: Msg ignored for Slave 1
kernel: [   64.876120] rt1316-sdca sdw:2:25d:1316:1: Clock Stop prepare failed for slave: -61
kernel: [   64.876130] rt1316-sdca sdw:2:25d:1316:1: pre-prepare failed:-61
kernel: [   64.876135] intel-sdw intel-sdw.2: prepare clock stop failed -61
kernel: [   64.876141] intel-sdw intel-sdw.2: cannot enable clock stop on suspend

The only think I see is that there was an interrupt generated, not sure what for.

@mengdonglin mengdonglin added bug Something isn't working Clock Stop prepare failed SoundWire Clock Stop prepare failed TGL Applies to Tiger Lake platform labels Dec 14, 2020
@mengdonglin mengdonglin added P1 Blocker bugs or important features P2 Critical bugs or normal features and removed P1 Blocker bugs or important features labels Dec 14, 2020
@jack-cy-yu
Copy link

Intel internal test shows this:

kernel: [ 9610.645108] rt715 sdw:3:25d:715:0: [rt715_sdw_write] 3124 <= 0004
kernel: [ 9610.645238] rt715 sdw:3:25d:715:0: [rt715_sdw_write] 3125 <= 0005
kernel: [ 9610.840387] rt711 sdw:0:25d:711:0: Slave impl defined interrupt
kernel: [ 9610.840391] rt711 sdw:0:25d:711:0: rt711_interrupt_callback control_port_stat=4
kernel: [ 9611.092971] rt711 sdw:0:25d:711:0: [rt711_sdw_read] b921 0000 => 80000000
kernel: [ 9611.093470] rt711 sdw:0:25d:711:0: [rt711_sdw_read] 7520 85a0 9c20 aca0 => 00000af4
kernel: [ 9611.093991] rt711 sdw:0:25d:711:0: [rt711_sdw_read] 7520 85a0 9c20 aca0 => 00000800
kernel: [ 9611.094493] rt711 sdw:0:25d:711:0: [rt711_sdw_read] 7520 85a0 9c20 aca0 => 00000030
kernel: [ 9611.094495] rt711 sdw:0:25d:711:0: in rt711_jack_detect_handler, jack_type=0x3
kernel: [ 9611.094496] rt711 sdw:0:25d:711:0: in rt711_jack_detect_handler, btn_type=0x0
kernel: [ 9611.140187] sof-audio-pci 0000:00:1f.3: ipc rx: 0x90020000: GLB_TRACE_MSG
kernel: [ 9611.140207] sof-audio-pci 0000:00:1f.3: ipc rx done: 0x90020000: GLB_TRACE_MSG
kernel: [ 9611.640140] sof-audio-pci 0000:00:1f.3: ipc rx: 0x90020000: GLB_TRACE_MSG
kernel: [ 9611.640161] sof-audio-pci 0000:00:1f.3: ipc rx done: 0x90020000: GLB_TRACE_MSG
kernel: [ 9613.236847] intel-sdw intel-sdw.2: Msg ignored for Slave 15
kernel: [ 9613.236850] soundwire sdw-master-2: ClockStopNow Broadcast msg ignored -61
kernel: [ 9613.875333] intel-sdw intel-sdw.3: Msg ignored for Slave 1
kernel: [ 9613.875336] rt715 sdw:3:25d:715:0: Clock Stop prepare failed for slave: -61
kernel: [ 9613.875340] rt715 sdw:3:25d:715:0: pre-prepare failed:-61
kernel: [ 9613.875342] intel-sdw intel-sdw.3: prepare clock stop failed -61
kernel: [ 9613.875344] intel-sdw intel-sdw.3: cannot enable clock stop on suspend

dmesg_rt715_clock_stop_error.txt

@jack-cy-yu do you see any control value or writes that would cause the device to reply COMMAND_IGNORED?

Are there detail steps to duplicate this issue? I got a test device from Compal, and I can try the same steps to duplicate issue on my side.

@fredoh9
Copy link
Collaborator

fredoh9 commented Feb 16, 2021

daily test 2190 reported same issue on CML_SKU0983_SDW.

[ 9748.585621] kernel: rt1308 sdw:1:25d:1308:0: Clock Stop prepare failed for slave: -61
[ 9748.585641] kernel: rt1308 sdw:1:25d:1308:0: pre-prepare failed:-61
[ 9748.585653] kernel: intel-sdw intel-sdw.1: prepare clock stop failed -61
[ 9748.585665] kernel: intel-sdw intel-sdw.1: cannot enable clock stop on suspend

plbossart added a commit to plbossart/sound that referenced this issue Mar 3, 2021
We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: thesofproject#2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
plbossart added a commit to plbossart/sound that referenced this issue Mar 4, 2021
We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: thesofproject#2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
plbossart added a commit to plbossart/sound that referenced this issue Mar 4, 2021
We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: thesofproject#2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
plbossart added a commit that referenced this issue Mar 8, 2021
We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: #2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
plbossart added a commit to plbossart/sound that referenced this issue Mar 8, 2021
We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: thesofproject#2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
plbossart added a commit that referenced this issue Mar 8, 2021
We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: #2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Bard Liao <bard.liao@intel.com>
plbossart added a commit that referenced this issue Mar 9, 2021
We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: #2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
plbossart added a commit that referenced this issue Mar 15, 2021
We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: #2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Bard Liao <bard.liao@intel.com>
plbossart added a commit that referenced this issue Mar 15, 2021
We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: #2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Bard Liao <bard.liao@intel.com>
plbossart added a commit that referenced this issue Mar 22, 2021
We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: #2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Bard Liao <bard.liao@intel.com>
bardliao pushed a commit to bardliao/linux that referenced this issue Mar 30, 2021
We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: thesofproject#2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20210323013707.21455-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Whissi pushed a commit to Whissi/linux-stable that referenced this issue May 11, 2021
[ Upstream commit 58ef935 ]

We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: thesofproject/linux#2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20210323013707.21455-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Whissi pushed a commit to Whissi/linux-stable that referenced this issue May 12, 2021
[ Upstream commit 58ef935 ]

We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: thesofproject/linux#2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20210323013707.21455-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
xanmod pushed a commit to xanmod/linux that referenced this issue May 13, 2021
[ Upstream commit 58ef935 ]

We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: thesofproject/linux#2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20210323013707.21455-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
@plbossart
Copy link
Member Author

plbossart commented May 14, 2021

closing since we've reworked the clock stop sequence and this wasn't noticed in 3 months.

starnight pushed a commit to endlessm/linux that referenced this issue Jun 2, 2021
BugLink: https://bugs.launchpad.net/bugs/1928857

[ Upstream commit 58ef935 ]

We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

IssueLink: thesofproject/linux#2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20210323013707.21455-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
vinzv pushed a commit to tuxedocomputers/linux that referenced this issue Jul 2, 2021
BugLink: https://bugs.launchpad.net/bugs/1930095

[ Upstream commit 58ef935 ]

We sometimes see COMMAND_IGNORED responses during the clock stop
sequence. It turns out we already have information if devices are
present on a link, so we should only prepare those when they
are attached.

In addition, even when COMMAND_IGNORED are received, we should still
proceed with the clock stop. The device will not be prepared but
that's not a problem.

The only case where the clock stop will fail is if the Cadence IP
reports an error (including a timeout), or if the devices throw a
COMMAND_FAILED response.

BugLink: thesofproject/linux#2621
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20210323013707.21455-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Clock Stop prepare failed SoundWire Clock Stop prepare failed P2 Critical bugs or normal features SDW Applies to SoundWire bus for codec connection TGL Applies to Tiger Lake platform
Projects
None yet
Development

No branches or pull requests

4 participants