From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ronny.Hegewald@online.de Subject: Re: pvops dom0: no sound after boot; possibly causedby swiotlb Date: Thu, 04 Feb 2010 01:55:40 +0100 Message-ID: <17472149.3960821265244940127.JavaMail.servlet@kundenserver> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: konrad.wilk@oracle.com Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org > I am curious - if you dom0 is 64-bit, does the sound card work? Yes with 64-bit pvops-dom0 the sound works fine without any patches. >> >> Ooooh. I completly failed to notice that your dom0 was 32-bit. >> >> But having that there would make the mask always be below >> 4GB, irregardless if the dom0 is 32 or 64-bit. Which is >> exactly what it does on bare-metal. > That is actually incorrect. Looking at the >dma_alloc_coherent_mask I missed the '!' and thought it would set it >irregardless of what the previous value was. That is not the case. No, your first statement was correct. It would always return the same mask for 32-bit and 64-bit, because of the 32-bitness of the return-variable 'dma_mask'. So the following patch maybe would be more appropriate? --- arch/x86/xen/pci-swiotlb.c-org 2010-02-01 23:04:42.000000000 +0100 +++ arch/x86/xen/pci-swiotlb.c 2010-02-04 02:47:17.000000000 +0100 @@ -602,7 +602,11 @@ xen_swiotlb_alloc_coherent(struct device ret = (void *)vstart; if (hwdev != NULL && hwdev->coherent_dma_mask) +#ifdef CONFIG_X86_32 + mask = dma_alloc_coherent_mask(hwdev, flags); +#else mask = hwdev->coherent_dma_mask; +#endif else mask = DMA_BIT_MASK(32);