All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Daney <ddaney@caviumnetworks.com>
To: wuzhangjin@gmail.com, Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org, Yan hua <yanh@lemote.com>,
	Philippe Vachon <philippe@cowpig.ca>,
	Zhang Le <r0bertz@gentoo.org>, Zhang Fuxin <zhangfx@lemote.com>,
	Arnaud Patard <apatard@mandriva.com>,
	loongson-dev@googlegroups.com, gnewsense-dev@nongnu.org,
	Nicholas Mc Guire <hofrat@hofr.at>,
	Liu Junliang <liujl@lemote.com>, Erwan Lerale <erwan@thiscow.com>
Subject: Re: [loongson-PATCH-v1 23/27] Alsa memory maps fixup on mips systems
Date: Wed, 20 May 2009 15:18:12 -0700	[thread overview]
Message-ID: <4A1481A4.9060708@caviumnetworks.com> (raw)
In-Reply-To: <323881882e108383c0360bd6a1138801d9d47679.1242855716.git.wuzhangjin@gmail.com>

wuzhangjin@gmail.com wrote:
[...]
> @@ -3099,7 +3099,11 @@ static int snd_pcm_mmap_data_fault(struct vm_area_struct *area,
>  			return VM_FAULT_SIGBUS;
>  	} else {
>  		vaddr = runtime->dma_area + offset;
> +#if defined(__mips__) && defined(CONFIG_DMA_NONCOHERENT)
> +		page = virt_to_page(CAC_ADDR(vaddr));
> +#else
>  		page = virt_to_page(vaddr);
> +#endif

That is a bit ugly.  It would be better to either  wrap the fix up in 
mips specific code so there don't have to be #ifdef __mips__ through out 
the generic driver code, or fix the driver in some other way if it is 
making x86 specific assumptions that don't hold in the general case.

The same applies for the remaining #ifdef __mips__ in the patch.




>  	}
>  	get_page(page);
>  	vmf->page = page;
> @@ -3214,6 +3218,11 @@ static int snd_pcm_mmap(struct file *file, struct vm_area_struct *area)
>  	if (PCM_RUNTIME_CHECK(substream))
>  		return -ENXIO;
>  
> +#if defined(__mips__) && defined(CONFIG_DMA_NONCOHERENT)
> +	/* all mmap using uncached mode */
> +	area->vm_page_prot = pgprot_noncached(area->vm_page_prot);
> +	area->vm_flags |= (VM_RESERVED | VM_IO);
> +#endif
>  	offset = area->vm_pgoff << PAGE_SHIFT;
>  	switch (offset) {
>  	case SNDRV_PCM_MMAP_OFFSET_STATUS:
> diff --git a/sound/core/sgbuf.c b/sound/core/sgbuf.c
> index 4e7ec2b..c0fcf0d 100644
> --- a/sound/core/sgbuf.c
> +++ b/sound/core/sgbuf.c
> @@ -114,7 +114,11 @@ void *snd_malloc_sgbuf_pages(struct device *device,
>  			if (!i)
>  				table->addr |= chunk; /* mark head */
>  			table++;
> +#if defined(__mips__) && defined(CONFIG_DMA_NONCOHERENT)
> +			*pgtable++ = virt_to_page(CAC_ADDR(tmpb.area));
> +#else
>  			*pgtable++ = virt_to_page(tmpb.area);
> +#endif
>  			tmpb.area += PAGE_SIZE;
>  			tmpb.addr += PAGE_SIZE;
>  		}
> @@ -125,7 +129,12 @@ void *snd_malloc_sgbuf_pages(struct device *device,
>  	}
>  
>  	sgbuf->size = size;
> +#if defined(__mips__) && defined(CONFIG_DMA_NONCOHERENT)
> +	dmab->area = vmap(sgbuf->page_table, sgbuf->pages, \
> +			VM_MAP | VM_IO, pgprot_noncached(PAGE_KERNEL));
> +#else
>  	dmab->area = vmap(sgbuf->page_table, sgbuf->pages, VM_MAP, PAGE_KERNEL);
> +#endif
>  	if (! dmab->area)
>  		goto _failed;
>  	if (res_size)
> diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig
> index 82b9bdd..4ccfae0 100644
> --- a/sound/pci/Kconfig
> +++ b/sound/pci/Kconfig
> @@ -259,7 +259,6 @@ config SND_CS5530
>  
>  config SND_CS5535AUDIO
>  	tristate "CS5535/CS5536 Audio"
> -	depends on X86 && !X86_64
>  	select SND_PCM
>  	select SND_AC97_CODEC
>  	help

  reply	other threads:[~2009-05-20 22:18 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-20 21:48 [loongson-PATCH-v1 00/27] linux patches of loongson-based machines wuzhangjin
2009-05-20 21:49 ` [loongson-PATCH-v1 01/27] fix-warning: incompatible argument type of pci_fixup_irqs wuzhangjin
2009-05-20 22:11   ` David Daney
2009-05-20 23:20     ` Wu Zhangjin
2009-05-21  8:13     ` Ralf Baechle
2009-05-20 21:49 ` [loongson-PATCH-v1 02/27] fix-warning: incompatible argument type of virt_to_phys wuzhangjin
2009-05-21  8:06   ` Ralf Baechle
2009-05-20 21:50 ` [loongson-PATCH-v1 03/27] fix-error: incompatiable argument type of clear_user wuzhangjin
2009-05-21  7:51   ` Ralf Baechle
2009-05-20 21:50 ` [loongson-PATCH-v1 04/27] change the naming methods wuzhangjin
2009-05-20 21:50 ` [loongson-PATCH-v1 05/27] remove reference to bonito64.h wuzhangjin
2009-05-20 21:51 ` [loongson-PATCH-v1 06/27] divide the files to the smallest logic unit wuzhangjin
2009-05-20 21:51 ` [loongson-PATCH-v1 07/27] replace tons of magic numbers by understandable symbols wuzhangjin
2009-05-20 21:52 ` [loongson-PATCH-v1 08/27] clean up the early printk support for fuloong(2e) wuzhangjin
2009-05-20 21:52 ` [loongson-PATCH-v1 09/27] enable Real Time Clock Support " wuzhangjin
2009-05-20 21:54 ` [loongson-PATCH-v1 10/27] add loongson-specific cpu-feature-overrides.h wuzhangjin
2009-05-20 21:54 ` [loongson-PATCH-v1 11/27] split the loongson-specific part out wuzhangjin
2009-05-20 22:05 ` [loongson-PATCH-v1 12/27] add basic loongson-2f support wuzhangjin
2009-05-20 22:06 ` [loongson-PATCH-v1 13/27] add basic fuloong(2f) support wuzhangjin
2009-05-20 22:06 ` [loongson-PATCH-v1 14/27] enable serial port support of loongson-based machines wuzhangjin
2009-05-20 22:07 ` [loongson-PATCH-v1 15/27] add basic yeeloong(2f) laptop support wuzhangjin
2009-05-20 22:08 ` [loongson-PATCH-v1 16/27] Add Siliconmotion 712 framebuffer driver wuzhangjin
2009-05-29 13:29   ` Simon Braunschmidt
2009-05-29 19:51     ` Wu Zhangjin
2009-06-01  7:41     ` Wu Zhangjin
2009-06-01  7:41       ` Wu Zhangjin
2009-05-20 22:08 ` [loongson-PATCH-v1 17/27] define Loongson2F arch specific phys prot access wuzhangjin
2009-05-20 22:09 ` [loongson-PATCH-v1 18/27] Loongson2 specific OProfile driver wuzhangjin
2009-05-20 22:10 ` [loongson-PATCH-v1 19/27] flush posted write to irq wuzhangjin
2009-05-20 22:10 ` [loongson-PATCH-v1 20/27] CS5536 MFGPT as system clock source support wuzhangjin
2009-05-20 22:10 ` [loongson-PATCH-v1 21/27] Loongson2F cpufreq support wuzhangjin
2009-05-20 22:11 ` [loongson-PATCH-v1 22/27] Hibernation Support in mips system wuzhangjin
2009-05-21 12:43   ` Ralf Baechle
2009-05-24 13:13     ` Wu Zhangjin
2009-05-22 13:01   ` Atsushi Nemoto
2009-05-23  8:06     ` yanh
2009-05-23 12:30       ` Atsushi Nemoto
2009-05-26  1:43         ` yanh
2009-05-26  2:27           ` Hongbing Hu
2009-05-26 14:48             ` Atsushi Nemoto
2009-05-20 22:11 ` [loongson-PATCH-v1 23/27] Alsa memory maps fixup on mips systems wuzhangjin
2009-05-20 22:18   ` David Daney [this message]
2009-05-20 23:36     ` Wu Zhangjin
2009-05-20 22:12 ` [loongson-PATCH-v1 24/27] fixup for FUJITSU disk wuzhangjin
2009-05-22 18:32   ` Bartlomiej Zolnierkiewicz
2009-05-23  7:11     ` yanh
2009-05-23 11:47       ` Bartlomiej Zolnierkiewicz
2009-05-25  5:45         ` yanh
2009-05-25  5:45           ` yanh
2009-05-25  7:35           ` 胡洪兵
2009-05-25 14:56             ` Bartlomiej Zolnierkiewicz
2009-05-25 14:56               ` Bartlomiej Zolnierkiewicz
2009-05-25 19:05               ` Sergei Shtylyov
2009-05-25 19:05                 ` Sergei Shtylyov
2009-05-25 19:10                 ` Martin K. Petersen
2009-05-25 19:17                   ` Sergei Shtylyov
2009-05-26  1:21                   ` yanh
2009-05-26  1:21                     ` yanh
2009-05-26  7:56                     ` Alan Cox
2009-05-26 14:39                       ` yanh
2009-05-26 14:39                         ` yanh
2009-05-20 22:13 ` [loongson-PATCH-v1 25/27] Flush RAS and BTB for CPU predictively execution wuzhangjin
2009-05-20 22:13 ` [loongson-PATCH-v1 26/27] add default kernel config file for loongson-based machines wuzhangjin
2009-05-20 22:14 ` [loongson-PATCH-v1 27/27] add gcc 4.4 support for MIPS and loongson wuzhangjin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A1481A4.9060708@caviumnetworks.com \
    --to=ddaney@caviumnetworks.com \
    --cc=apatard@mandriva.com \
    --cc=erwan@thiscow.com \
    --cc=gnewsense-dev@nongnu.org \
    --cc=hofrat@hofr.at \
    --cc=linux-mips@linux-mips.org \
    --cc=liujl@lemote.com \
    --cc=loongson-dev@googlegroups.com \
    --cc=philippe@cowpig.ca \
    --cc=r0bertz@gentoo.org \
    --cc=ralf@linux-mips.org \
    --cc=wuzhangjin@gmail.com \
    --cc=yanh@lemote.com \
    --cc=zhangfx@lemote.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.