From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: =?utf-8?b?562U5aSNOiAgQSBidWcgYWJvdXQgY2FjaGUgaW5j?= =?utf-8?q?onsistency_report?= Date: Thu, 02 Aug 2018 13:52:36 +0200 Message-ID: References: <12ceb41dedc54433bc7331f4378af9ba@zhaoxin.com> <52fa69af57704bb2984baa113d15b1f2@zhaoxin.com> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id B20BA2677BC for ; Thu, 2 Aug 2018 13:52:36 +0200 (CEST) In-Reply-To: <52fa69af57704bb2984baa113d15b1f2@zhaoxin.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: "Hans Hu(SH-RD)" Cc: "'alsa-devel@alsa-project.org'" List-Id: alsa-devel@alsa-project.org On Thu, 02 Aug 2018 12:56:30 +0200, Hans Hu(SH-RD) wrote: > > 1. noise relate test: > When I annotate the return after set_pages_array_wc, then set_memory_wc works, noise disappear > static void __mark_pages_wc(struct azx *chip, struct snd_dma_buffer *dmab, bool on) > { > ... > set_pages_array_wb(sgbuf->page_table, sgbuf->pages); > //return; > } > #endif set_memory_uc() performs __pa() for the given address, and in this case, it's vmapped address. Something bogus in your test, I'm afraid. And moreover, all Intel chipsets do work with snooping well, AFAIK. > } > > 2. change *_SG relate test: > Just followed your proposal > -snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG, > +snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, OK, you need one more oneliner: diff --git a/sound/pci/hda/hda_controller.c b/sound/pci/hda/hda_controller.c index a12e594d4e3b..2eaed4956e7f 100644 --- a/sound/pci/hda/hda_controller.c +++ b/sound/pci/hda/hda_controller.c @@ -707,7 +707,7 @@ static const struct snd_pcm_ops azx_pcm_ops = { .pointer = azx_pcm_pointer, .get_time_info = azx_get_time_info, .mmap = azx_pcm_mmap, - .page = snd_pcm_sgbuf_ops_page, + // .page = snd_pcm_sgbuf_ops_page, }; static void azx_pcm_free(struct snd_pcm *pcm) And, again, please avoid top-posting. Takashi