From patchwork Wed Oct 29 07:50:53 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Takashi Iwai X-Patchwork-Id: 5184941 X-Patchwork-Delegate: tiwai@suse.de Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 672FC9F349 for ; Wed, 29 Oct 2014 07:51:13 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 921D32021F for ; Wed, 29 Oct 2014 07:51:12 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id BDAEF201FB for ; Wed, 29 Oct 2014 07:51:09 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id 6791C26049B; Wed, 29 Oct 2014 08:51:08 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 Received: from alsa0.perex.cz (localhost [IPv6:::1]) by alsa0.perex.cz (Postfix) with ESMTP id 68532260309; Wed, 29 Oct 2014 08:51:03 +0100 (CET) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id AFF672602AD; Wed, 29 Oct 2014 08:51:01 +0100 (CET) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id B2DC92602AD for ; Wed, 29 Oct 2014 08:50:53 +0100 (CET) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 861F8ADB5; Wed, 29 Oct 2014 07:50:53 +0000 (UTC) Date: Wed, 29 Oct 2014 08:50:53 +0100 Message-ID: From: Takashi Iwai To: Geoffrey McRae In-Reply-To: <20141029072124.2cc32661@sarah.home.spacevs.com> References: <1407328755-1021-1-git-send-email-tiwai@suse.de> <20141029072124.2cc32661@sarah.home.spacevs.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/24.3 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Cc: alsa-devel@alsa-project.org Subject: Re: [alsa-devel] [PATCH 1/2] ALSA: hda - Fix probing and stuttering on CMI8888 HD-audio controller X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" 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 X-Virus-Scanned: ClamAV using ClamSMTP At Wed, 29 Oct 2014 07:21:24 +1100, Geoffrey McRae wrote: > > I can confirm that disable of MSI is required as even Windows 7 > 64bit does not enable this for Intel HDA. Out of curiosity I altered > the driver to use MSI-X with the same results, interrupts are never > received even though the PCI caps state that MSI is supported. > > Playback is very poor and stutters if I do not allow snoop by > commenting out "case AZX_DRIVER_CMEDIA:" in azx_check_snoop_available. OK, so we have some conflicting results. Possibly we need non-cached pages only for CORB/RIRB but leave the stream buffers? Could you check the patch below? thanks, Takashi diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index cfcca4c30d4d..118029d7c6de 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -366,14 +366,15 @@ static void __mark_pages_wc(struct azx *chip, struct snd_dma_buffer *dmab, bool { int pages; - if (azx_snoop(chip)) + if (azx_snoop(chip) && chip->driver_type != AZX_DRIVER_CMEDIA) return; if (!dmab || !dmab->area || !dmab->bytes) return; - #ifdef CONFIG_SND_DMA_SGBUF if (dmab->dev.type == SNDRV_DMA_TYPE_DEV_SG) { struct snd_sg_buf *sgbuf = dmab->private_data; + if (chip->driver_type == AZX_DRIVER_CMEDIA) + return; if (on) set_pages_array_wc(sgbuf->page_table, sgbuf->pages); else @@ -1376,7 +1377,6 @@ static void azx_check_snoop_available(struct azx *chip) snoop = false; break; case AZX_DRIVER_CTHDA: - case AZX_DRIVER_CMEDIA: snoop = false; break; }