On Wed, 2017-11-15 at 08:55 -0600, Pierre-Louis Bossart wrote:
On 11/15/17 3:41 AM, Keyon Jie wrote:
The host ring buffer size may be not page aligned, but the last page was utilized by host component wrongly, which may introduce beating noise.
Here change to correct size for the last element, which will fix the issue.
Signed-off-by: Keyon Jie yang.jie@linux.intel.com
src/ipc/intel-ipc.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/src/ipc/intel-ipc.c b/src/ipc/intel-ipc.c index 56bd8ba..7de533a 100644 --- a/src/ipc/intel-ipc.c +++ b/src/ipc/intel-ipc.c @@ -175,6 +175,12 @@ static int parse_page_descriptors(struct intel_ipc_data *iipc, host = (struct sof_ipc_comp_host *)&cd->comp; }
It's best to comment here what you are testing prior to the if() i.e.
/* is ring size a multiple of HOST_PAGE_SIZE ? */
- if (HOST_PAGE_SIZE * ring->pages < ring->size) {
Btw, what happens if PAGE * pages > ring->size ? We should reject this too.
Liam