linux/arch/alpha/kernel
Ivan Kokshaysky 10a0ef39fb PCI/alpha: pci sysfs resources
This closes http://bugzilla.kernel.org/show_bug.cgi?id=10893
which is a showstopper for X development on alpha.

The generic HAVE_PCI_MMAP code (drivers/pci-sysfs.c) is not
very useful since we have to deal with three different types
of MMIO address spaces: sparse and dense mappings for old
ev4/ev5 machines and "normal" 1:1 MMIO space (bwx) for ev56 and
later.
Also "write combine" mappings are meaningless on alpha - roughly
speaking, alpha does write combining, IO reordering and other
optimizations by default, unless user splits IO accesses
with memory barriers.

I think the cleanest way to deal with resource files on alpha
is to convert the default no-op pci_create_resource_files() and
pci_remove_resource_files() for !HAVE_PCI_MMAP case into __weak
functions and override them with alpha specific ones.

Another alpha hook is needed for "legacy_" resource files
to handle sparse addressing (pci_adjust_legacy_attr).

With the "standard" resourceN files on ev56/ev6 libpciaccess
works "out of the box". Handling of resourceN_sparse/resourceN_dense
files on older machines obviously requires some userland work.

Sparse/dense stuff has been tested on sx164 (pca56/pyxis, normally
uses bwx IO) with the kernel hacked into "cia compatible" mode.

Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2009-03-19 19:29:36 -07:00
..
.gitignore alpha: .gitignore vmlinux.lds 2009-01-15 16:39:40 -08:00
alpha_ksyms.c Generic semaphore implementation 2008-04-17 10:42:34 -04:00
asm-offsets.c CRED: Separate task security context from task_struct 2008-11-14 10:39:16 +11:00
binfmt_loader.c get rid of special-casing the /sbin/loader on alpha 2009-01-03 11:45:54 -08:00
console.c ALPHA: support graphics on non-zero PCI domains 2007-06-01 08:18:29 -07:00
core_apecs.c
core_cia.c
core_irongate.c Introduce flags for reserve_bootmem() 2008-02-07 08:42:25 -08:00
core_lca.c
core_marvel.c alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
core_mcpcia.c
core_polaris.c
core_t2.c alpha: fix compile failures with gcc-4.3 (bug #10438) 2008-06-20 16:46:10 -07:00
core_titan.c alpha: remove remaining __FUNCTION__ occurrences 2008-04-28 08:58:27 -07:00
core_tsunami.c alpha: remove remaining __FUNCTION__ occurrences 2008-04-28 08:58:27 -07:00
core_wildfire.c
entry.S alpha: use syscall wrappers 2009-01-29 18:04:44 -08:00
err_common.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
err_ev6.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
err_ev7.c alpha: build fixes 2007-12-17 19:28:16 -08:00
err_impl.h
err_marvel.c alpha: build fixes 2007-12-17 19:28:16 -08:00
err_titan.c alpha: build fixes 2007-12-17 19:28:16 -08:00
es1888.c
gct.c
head.S deal with alpha section warnings 2007-07-26 11:11:57 -07:00
init_task.c take init_fs to saner place 2008-12-31 18:07:42 -05:00
io.c
irq_alpha.c
irq_i8259.c
irq_impl.h
irq_pyxis.c
irq_srm.c alpha: nautilus - fix compile failure with gcc-4.3 2009-01-15 16:39:40 -08:00
irq.c cpumask: convert kernel/irq 2009-01-01 10:12:26 +10:30
machvec_impl.h alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
Makefile PCI/alpha: pci sysfs resources 2009-03-19 19:29:36 -07:00
module.c alpha: handle kcalloc failure 2008-04-28 08:58:27 -07:00
ns87312.c
osf_sys.c alpha: use syscall wrappers 2009-01-29 18:04:44 -08:00
pci_impl.h PCI: alpha: use generic INTx swizzle from PCI core 2009-01-07 11:13:13 -08:00
pci_iommu.c alpha: use iommu_num_pages function in IOMMU code 2008-10-16 11:21:33 -07:00
pci-noop.c alpha: compile fixes 2009-01-29 18:04:44 -08:00
pci-sysfs.c PCI/alpha: pci sysfs resources 2009-03-19 19:29:36 -07:00
pci.c PCI: alpha: use generic INTx swizzle from PCI core 2009-01-07 11:13:13 -08:00
process.c cpumask: Use cpu_*_mask accessors code: alpha 2009-02-16 17:32:00 +10:30
proto.h alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
ptrace.c alpha: convert to generic sys_ptrace 2007-10-16 09:43:03 -07:00
setup.c cpumask: alpha: Introduce cpumask_of_{node,pcibus} to replace {node,pcibus}_to_cpumask 2008-12-26 22:23:41 +10:30
signal.c alpha: use syscall wrappers 2009-01-29 18:04:44 -08:00
smc37c93x.c
smc37c669.c
smp.c cpumask: Use cpu_*_mask accessors code: alpha 2009-02-16 17:32:00 +10:30
srm_env.c alpha: remove remaining __FUNCTION__ occurrences 2008-04-28 08:58:27 -07:00
srmcons.c alpha: fix trivial section mismatch warnings 2007-07-16 09:05:37 -07:00
sys_alcor.c alpha: remove remaining __FUNCTION__ occurrences 2008-04-28 08:58:27 -07:00
sys_cabriolet.c
sys_dp264.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_eb64p.c
sys_eiger.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_jensen.c alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
sys_marvel.c alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
sys_miata.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_mikasa.c
sys_nautilus.c alpha: nautilus - fix hang on boot 2009-01-15 16:39:40 -08:00
sys_noritake.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_rawhide.c
sys_ruffian.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_rx164.c
sys_sable.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_sio.c alpha: remove remaining __FUNCTION__ occurrences 2008-04-28 08:58:27 -07:00
sys_sx164.c
sys_takara.c
sys_titan.c cpumask: make irq_set_affinity() take a const struct cpumask 2008-12-13 21:20:26 +10:30
sys_wildfire.c
systbls.S alpha: use syscall wrappers 2009-01-29 18:04:44 -08:00
time.c alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
traps.c false __cpuinit positives on alpha 2008-11-30 10:03:35 -08:00
vmlinux.lds.S Alpha Linux kernel fails with inconsistent kallsyms data 2008-07-04 10:40:09 -07:00