linux-mips
[Top] [All Lists]

Re: xorg-server-1.5.2 doesn't work because of missing sysfs pci resource

To: Ralf Baechle <ralf@linux-mips.org>
Subject: Re: xorg-server-1.5.2 doesn't work because of missing sysfs pci resource files
From: Arnaud Patard <apatard@mandriva.com>
Date: Tue, 09 Dec 2008 19:17:13 +0100
Cc: linux-mips@linux-mips.org
In-reply-to: <20081206102030.GA9410@linux-mips.org> (Ralf Baechle's message of "Sat, 6 Dec 2008 10:20:30 +0000")
Organization: Mandriva
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20081205154339.GA14327@adriano.hkcable.com.hk> <20081206102030.GA9410@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/22.1 (gnu/linux)
Ralf Baechle <ralf@linux-mips.org> writes:

Hi,

> Here is a quick'n'dirty solution which I've not tested beyond just
> compiling.  It should work but performance will be bad.  Either way, I'm
> interested in a test report with X.
>
>   Ralf
>
> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
>
> diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h
> index 5510c53..053e463 100644
> --- a/arch/mips/include/asm/pci.h
> +++ b/arch/mips/include/asm/pci.h
> @@ -79,6 +79,11 @@ static inline void pcibios_penalize_isa_irq(int irq, int 
> active)
>       /* We don't do dynamic PCI IRQ allocation */
>  }
>  
> +#define HAVE_PCI_MMAP
> +
> +extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct 
> *vma,
> +     enum pci_mmap_state mmap_state, int write_combine);
> +
>  /*
>   * Dynamic DMA mapping stuff.
>   * MIPS has everything mapped statically.
> diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
> index a377e9d..9233193 100644
> --- a/arch/mips/pci/pci.c
> +++ b/arch/mips/pci/pci.c
> @@ -354,6 +354,22 @@ EXPORT_SYMBOL(PCIBIOS_MIN_IO);
>  EXPORT_SYMBOL(PCIBIOS_MIN_MEM);
>  #endif
>  
> +int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
> +                     enum pci_mmap_state mmap_state, int write_combine)
> +{
> +     unsigned long prot;
> +
> +     /*
> +      * Ignore write-combine; for now only return uncached mappings.
> +      */
> +     prot = pgprot_val(vma->vm_page_prot);
> +     prot = (prot & ~_CACHE_MASK) | _CACHE_UNCACHED;

What about things like _CACHE_UNCACHED_ACCELERATED ? Is there a way to
use this flag ?


Arnaud

<Prev in Thread] Current Thread [Next in Thread>