Skip to content
This repository has been archived by the owner on Jan 17, 2019. It is now read-only.

topology: set wider pipeline pcm samplerate range #69

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion topology/sof/pipe-low-latency-playback.m4
Original file line number Diff line number Diff line change
Expand Up @@ -115,5 +115,5 @@ indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Low Latency Playback PCM_I


# PCM capabilities supported by FW
PCM_CAPABILITIES(Low Latency Playback PCM_ID, `S32_LE,S24_LE,S16_LE', 48000, 48000, 2, 2, 2, 16, 192, 16384, 65536, 65536)
PCM_CAPABILITIES(Low Latency Playback PCM_ID, `S32_LE,S24_LE,S16_LE', 8000, 192000, 2, 2, 2, 16, 192, 16384, 65536, 65536)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Has this been tested ? The range was locked at 48kHz for some pipelines that had no SRC where the SSP port was fixed at 48kHz. Non 48kHz rates require SRC when the SSP is running at a different rate. I think @singalsu has some examples.

Copy link
Collaborator

@singalsu singalsu Sep 14, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Topology pipe-src-playback.m4 has this range though I haven't recently tested > 48 kHz playback. There would be also need for this same change for capture from DMIC for other than 48 kHz rate. With DMIC I've successfully recorded at 8/16/32/48/64/96 kHz. 24 kHz should work too but's there some ALSA issue.

Copy link
Member

@lgirdwood lgirdwood Sep 14, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@singalsu can you create kernel issues for DMIC 24kHz.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was little bit unsure what Pierre wanted in his issue. The pipelines work with this patch, but if you play with different sample rate than DAI without plughw, playback will be funny->slower/faster. OTH I can add this only to the media pipeline, which will then have src just for doing nothing (if you play at DAI rate).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@juimonen if the playback is wrong speed it should be rejected by the FW. I think @plbossart was meaning it's difficult to represent 44.1kHz with a 1ms scheduling tick as 44100 / 1000 is 44.1 i.e. not an integer. The FW copier needs to copy an integer number of samples. i.e. 44.1kHz would work if it was scheduled every 441ms as 100 samples would be copied per schedule.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that was Pierre's issues 59. I guess this is related to that, that you have to change the pcm range to be able to use 192kHz. But again, I'm not sure :)
Anyway, If it's ok, I will change the range only for media playback which has the SRC.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@juimonen you could alos put a check in that rate is divisible by scheduling period.


2 changes: 1 addition & 1 deletion topology/sof/pipe-passthrough-playback.m4
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Passthrough Playback PCM_I
# PCM Configuration
#

PCM_CAPABILITIES(Passthrough Playback PCM_ID, COMP_FORMAT_NAME(PIPELINE_FORMAT), 48000, 48000, 2, 4, 2, 16, 192, 16384, 65536, 65536)
PCM_CAPABILITIES(Passthrough Playback PCM_ID, COMP_FORMAT_NAME(PIPELINE_FORMAT), 8000, 192000, 2, 4, 2, 16, 192, 16384, 65536, 65536)
2 changes: 1 addition & 1 deletion topology/sof/pipe-volume-playback.m4
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,5 @@ indir(`define', concat(`PIPELINE_PCM_', PIPELINE_ID), Passthrough Playback PCM_I
# PCM Configuration

#
PCM_CAPABILITIES(Passthrough Playback PCM_ID, `S32_LE,S24_LE,S16_LE', 48000, 48000, 2, 8, 2, 16, 192, 16384, 65536, 65536)
PCM_CAPABILITIES(Passthrough Playback PCM_ID, `S32_LE,S24_LE,S16_LE', 8000, 192000, 2, 8, 2, 16, 192, 16384, 65536, 65536)