From: Ralf Baechle <ralf@linux-mips.org>
To: linux-mips@linux-mips.org
Subject: Re: xorg-server-1.5.2 doesn't work because of missing sysfs pci resource files
Date: Sat, 6 Dec 2008 10:20:30 +0000 [thread overview]
Message-ID: <20081206102030.GA9410@linux-mips.org> (raw)
In-Reply-To: <20081205154339.GA14327@adriano.hkcable.com.hk>
On Fri, Dec 05, 2008 at 11:43:42PM +0800, Zhang Le wrote:
> I have tried xorg-server-1.5.2 on loongson 2f recently.
> But I found it doesn't work.
> It's mainly because of this change:
> http://www.x.org/wiki/PciReworkProposal
>
> In short:
> "Rather than duplicating the efforts of kernel developers, X.org needs to use the
> interfaces provided by the kernel as much as possible."
>
> I have read some code of libpciaccess, the new library utilizing kernel function
> to access pci bus. It will try to mmap this file:
> /sys/bus/pci/devices/0000:0x:xx.x/resource0
> (replace x with any digit appropriate)
> Note there is a 0 at the end of the file name. This file's permission is 600.
>
> However, I found on my loongson system, there is only
> /sys/bus/pci/devices/0000:0x:xx.x/resource
> Note there is no 0 at the end.
>
> Then I tried to read kernel code. I found it seems that for mips linux to have
> this file, HAVE_PCI_MMAP must be defined. However, it is currently not defined.
>
> Since I am not familiar with PCI, yet.
> So could someone please shed some light on this?
> Why HAVE_PCI_MMAP is not defined?
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;
+ vma->vm_page_prot = __pgprot(prot);
+
+ return remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
+ vma->vm_end - vma->vm_start, vma->vm_page_prot);
+}
+
char * (*pcibios_plat_setup)(char *str) __devinitdata;
char *__devinit pcibios_setup(char *str)
next prev parent reply other threads:[~2008-12-06 10:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-05 15:43 xorg-server-1.5.2 doesn't work because of missing sysfs pci resource files Zhang Le
2008-12-05 17:59 ` Arnaud Patard
2008-12-05 18:08 ` Ralf Baechle
2008-12-06 10:20 ` Ralf Baechle [this message]
2008-12-06 16:47 ` Zhang Le
2008-12-09 17:22 ` Zhang Le
2008-12-09 17:39 ` Zhang Le
2008-12-09 17:57 ` Ralf Baechle
2008-12-09 18:17 ` Arnaud Patard
2008-12-09 18:36 ` Ralf Baechle
2008-12-09 19:01 ` Arnaud Patard
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=20081206102030.GA9410@linux-mips.org \
--to=ralf@linux-mips.org \
--cc=linux-mips@linux-mips.org \
/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.