From 93af824099569936ceeca75da59d9e7217e83dc7 Mon Sep 17 00:00:00 2001 From: Jeff Garzik Date: Tue, 12 Jun 2007 22:27:52 -0400 Subject: [PATCH] --- yaml --- r: 57692 b: refs/heads/master c: bca1a5518cab2d58c766863c61ee4ef5f1cc4caa h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/Documentation/SubmittingPatches | 26 +- trunk/Documentation/atomic_ops.txt | 2 +- trunk/Documentation/driver-model/platform.txt | 40 + .../feature-removal-schedule.txt | 1 + trunk/Documentation/filesystems/tmpfs.txt | 10 +- trunk/Documentation/firmware_class/README | 2 +- .../firmware_class/firmware_sample_driver.c | 2 +- .../firmware_sample_firmware_class.c | 4 +- trunk/Documentation/networking/00-INDEX | 2 + trunk/Documentation/networking/cxacru.txt | 84 ++ .../powerpc/booting-without-of.txt | 59 +- trunk/MAINTAINERS | 19 +- trunk/arch/arm/boot/compressed/head.S | 5 +- trunk/arch/arm/mach-at91/clock.c | 5 - trunk/arch/arm/mach-at91/pm.c | 11 +- trunk/arch/arm/oprofile/op_model_mpcore.c | 2 + trunk/arch/i386/math-emu/fpu_entry.c | 2 +- trunk/arch/i386/mm/fault.c | 5 + trunk/arch/m68knommu/platform/5307/timers.c | 10 +- trunk/arch/mips/Kconfig | 6 +- trunk/arch/mips/emma2rh/markeins/setup.c | 24 - trunk/arch/mips/kernel/linux32.c | 10 + trunk/arch/mips/kernel/r4k_switch.S | 2 +- trunk/arch/mips/kernel/scall64-n32.S | 2 +- trunk/arch/mips/kernel/scall64-o32.S | 2 +- trunk/arch/mips/kernel/traps.c | 12 +- .../arch/mips/mips-boards/atlas/atlas_setup.c | 2 + trunk/arch/mips/mips-boards/generic/display.c | 24 + trunk/arch/mips/mips-boards/generic/time.c | 31 +- .../arch/mips/mips-boards/malta/malta_setup.c | 6 + trunk/arch/mips/mips-boards/sead/sead_setup.c | 2 + trunk/arch/mips/mm/dma-default.c | 5 +- trunk/arch/mips/qemu/q-irq.c | 2 - trunk/arch/mips/sni/pcimt.c | 18 +- trunk/arch/mips/sni/setup.c | 33 +- trunk/arch/powerpc/boot/crt0.S | 1 + trunk/arch/powerpc/kernel/of_platform.c | 2 +- .../arch/powerpc/platforms/cell/cbe_cpufreq.c | 33 +- .../powerpc/platforms/cell/spufs/context.c | 4 +- .../arch/powerpc/platforms/cell/spufs/file.c | 57 +- .../arch/powerpc/platforms/cell/spufs/inode.c | 62 +- .../arch/powerpc/platforms/cell/spufs/sched.c | 161 ++-- .../arch/powerpc/platforms/cell/spufs/spufs.h | 2 +- trunk/arch/powerpc/platforms/celleb/Makefile | 2 +- trunk/arch/powerpc/platforms/pasemi/iommu.c | 8 - trunk/arch/ppc/syslib/qspan_pci.c | 4 +- trunk/arch/sh/boards/se/73180/setup.c | 4 +- trunk/arch/sh/boards/superh/microdev/irq.c | 1 + trunk/arch/sh/cchips/voyagergx/irq.c | 13 +- trunk/arch/sh/kernel/cpu/sh3/entry.S | 2 + trunk/arch/sh/kernel/cpu/sh4/clock-sh4-202.c | 2 +- trunk/arch/sh/mm/ioremap.c | 1 + trunk/arch/sh64/kernel/pci_sh5.c | 8 +- trunk/arch/sparc64/Kconfig | 9 + trunk/arch/sparc64/kernel/Makefile | 4 +- trunk/arch/sparc64/kernel/entry.S | 62 +- trunk/arch/sparc64/kernel/mdesc.c | 53 ++ trunk/arch/sparc64/kernel/of_device.c | 19 +- trunk/arch/sparc64/kernel/pci.c | 97 ++- trunk/arch/sparc64/kernel/pci_sabre.c | 17 +- trunk/arch/sparc64/kernel/prom.c | 59 +- trunk/arch/sparc64/kernel/sbus.c | 54 +- trunk/arch/sparc64/kernel/setup.c | 19 - trunk/arch/sparc64/kernel/smp.c | 21 +- trunk/arch/sparc64/kernel/sparc64_ksyms.c | 2 +- trunk/arch/sparc64/kernel/sysfs.c | 297 +++++++ trunk/arch/um/Kconfig | 1 + trunk/arch/um/drivers/line.c | 1 + trunk/arch/um/drivers/stderr_console.c | 1 + trunk/arch/um/drivers/ubd_kern.c | 1 + trunk/arch/um/kernel/exitcode.c | 39 +- trunk/arch/x86_64/kernel/traps.c | 3 +- trunk/arch/x86_64/mm/fault.c | 6 + trunk/arch/x86_64/mm/init.c | 2 + trunk/arch/xtensa/kernel/asm-offsets.c | 1 + trunk/arch/xtensa/kernel/entry.S | 36 +- trunk/arch/xtensa/kernel/head.S | 19 +- trunk/arch/xtensa/kernel/pci.c | 2 +- trunk/arch/xtensa/kernel/setup.c | 1 + trunk/arch/xtensa/kernel/signal.c | 795 +++++++----------- trunk/arch/xtensa/kernel/vmlinux.lds.S | 78 +- trunk/arch/xtensa/kernel/xtensa_ksyms.c | 11 - trunk/arch/xtensa/lib/strncpy_user.S | 33 +- trunk/arch/xtensa/lib/strnlen_user.S | 33 +- trunk/arch/xtensa/mm/init.c | 2 +- trunk/arch/xtensa/platform-iss/network.c | 2 +- trunk/drivers/ata/Kconfig | 1 - trunk/drivers/ata/sata_promise.c | 9 +- trunk/drivers/base/class.c | 59 +- trunk/drivers/base/core.c | 10 +- trunk/drivers/base/dd.c | 13 - trunk/drivers/base/firmware_class.c | 4 +- trunk/drivers/block/loop.c | 100 ++- trunk/drivers/cdrom/mcdx.c | 2 +- trunk/drivers/char/stallion.c | 81 +- trunk/drivers/infiniband/hw/amso1100/c2.c | 2 +- .../drivers/input/keyboard/pxa27x_keyboard.c | 6 +- trunk/drivers/isdn/hardware/eicon/divasfunc.c | 2 +- trunk/drivers/net/bnx2.c | 61 +- trunk/drivers/net/bnx2.h | 1 + trunk/drivers/net/e100.c | 72 +- trunk/drivers/net/ehea/ehea.h | 2 +- trunk/drivers/net/ehea/ehea_main.c | 12 +- trunk/drivers/net/ibmveth.c | 80 +- trunk/drivers/net/myri10ge/myri10ge.c | 29 +- trunk/drivers/net/netxen/netxen_nic.h | 48 +- trunk/drivers/net/netxen/netxen_nic_ethtool.c | 8 +- trunk/drivers/net/netxen/netxen_nic_hw.c | 12 +- trunk/drivers/net/netxen/netxen_nic_init.c | 44 +- trunk/drivers/net/netxen/netxen_nic_isr.c | 24 + trunk/drivers/net/netxen/netxen_nic_main.c | 7 + trunk/drivers/net/netxen/netxen_nic_niu.c | 8 +- trunk/drivers/net/phy/marvell.c | 62 +- trunk/drivers/net/usb/Kconfig | 4 +- trunk/drivers/net/via-velocity.c | 2 +- trunk/drivers/serial/amba-pl010.c | 4 +- trunk/drivers/tc/zs.c | 2 +- trunk/drivers/usb/atm/cxacru.c | 52 +- trunk/drivers/usb/class/usblp.c | 5 +- trunk/drivers/usb/core/Kconfig | 22 +- trunk/drivers/usb/core/config.c | 42 +- trunk/drivers/usb/gadget/epautoconf.c | 2 +- trunk/drivers/usb/gadget/inode.c | 8 +- trunk/drivers/usb/gadget/net2280.c | 6 +- trunk/drivers/usb/gadget/omap_udc.c | 6 +- trunk/drivers/usb/gadget/rndis.c | 35 +- trunk/drivers/usb/host/ohci-hub.c | 2 + trunk/drivers/usb/storage/unusual_devs.h | 21 +- trunk/drivers/video/console/Makefile | 2 +- trunk/drivers/video/ffb.c | 4 +- trunk/drivers/video/sunxvr2500.c | 17 +- trunk/drivers/video/sunxvr500.c | 6 +- trunk/fs/binfmt_flat.c | 2 +- trunk/fs/ocfs2/aops.c | 20 +- trunk/fs/ocfs2/cluster/masklog.c | 3 +- trunk/fs/ramfs/file-nommu.c | 5 + trunk/include/asm-arm/arch-at91/at91_shdwc.h | 4 +- trunk/include/asm-arm/arch-at91/at91_wdt.h | 2 +- trunk/include/asm-arm/arch-pxa/gpio.h | 3 +- trunk/include/asm-frv/system.h | 1 + trunk/include/asm-mips/asmmacro.h | 15 - trunk/include/asm-mips/mips-boards/prom.h | 1 + trunk/include/asm-mips/unistd.h | 1 - trunk/include/asm-sh/se73180.h | 11 +- trunk/include/asm-sparc64/cpudata.h | 2 +- trunk/include/asm-sparc64/dma-mapping.h | 83 ++ trunk/include/asm-sparc64/hypervisor.h | 5 + trunk/include/asm-sparc64/smp.h | 2 + trunk/include/asm-sparc64/topology.h | 13 +- trunk/include/asm-xtensa/bitops.h | 69 +- trunk/include/asm-xtensa/byteorder.h | 3 +- trunk/include/asm-xtensa/coprocessor.h | 8 +- trunk/include/asm-xtensa/div64.h | 15 +- trunk/include/asm-xtensa/elf.h | 3 +- trunk/include/asm-xtensa/fcntl.h | 100 +-- trunk/include/asm-xtensa/mmu_context.h | 1 + trunk/include/asm-xtensa/page.h | 2 +- trunk/include/asm-xtensa/param.h | 4 +- trunk/include/asm-xtensa/ptrace.h | 8 +- trunk/include/asm-xtensa/shmparam.h | 2 - trunk/include/asm-xtensa/sigcontext.h | 24 +- trunk/include/asm-xtensa/thread_info.h | 2 + trunk/include/asm-xtensa/unistd.h | 4 +- trunk/include/linux/console_struct.h | 5 + trunk/include/linux/inetdevice.h | 103 ++- trunk/include/linux/kernel.h | 12 +- .../include/linux/netfilter_ipv4/ip_tables.h | 20 + trunk/include/linux/rfkill.h | 2 +- trunk/include/linux/sched.h | 1 + trunk/include/linux/slub_def.h | 25 +- trunk/include/net/cipso_ipv4.h | 20 +- trunk/include/net/fib_rules.h | 2 +- trunk/include/net/genetlink.h | 2 +- trunk/include/net/ip.h | 1 + trunk/include/net/ip_fib.h | 2 +- trunk/include/net/netlabel.h | 14 +- trunk/include/net/netlink.h | 12 +- trunk/include/net/udp.h | 9 +- trunk/include/net/udplite.h | 2 +- trunk/include/net/xfrm.h | 6 +- trunk/kernel/exit.c | 24 +- trunk/kernel/futex.c | 269 +++--- trunk/kernel/rtmutex.c | 24 +- trunk/kernel/signal.c | 16 +- trunk/lib/hexdump.c | 149 +++- trunk/lib/kobject.c | 10 +- trunk/mm/shmem.c | 2 + trunk/mm/slab.c | 2 +- trunk/mm/slub.c | 26 +- trunk/mm/sparse.c | 42 +- trunk/net/core/dev.c | 8 +- trunk/net/core/dst.c | 17 +- trunk/net/core/neighbour.c | 4 +- trunk/net/core/rtnetlink.c | 8 +- trunk/net/decnet/dn_dev.c | 2 +- trunk/net/decnet/dn_rules.c | 2 +- trunk/net/ipv4/arp.c | 11 +- trunk/net/ipv4/cipso_ipv4.c | 64 +- trunk/net/ipv4/devinet.c | 415 ++++----- trunk/net/ipv4/fib_frontend.c | 2 +- trunk/net/ipv4/fib_rules.c | 2 +- trunk/net/ipv4/igmp.c | 18 +- trunk/net/ipv4/ip_output.c | 4 +- trunk/net/ipv4/ipmr.c | 23 +- trunk/net/ipv4/netfilter/ip_tables.c | 81 +- .../netfilter/nf_conntrack_l3proto_ipv4.c | 13 +- trunk/net/ipv4/proc.c | 2 +- trunk/net/ipv4/route.c | 14 +- trunk/net/ipv4/sysctl_net_ipv4.c | 6 +- trunk/net/ipv4/tcp_ipv4.c | 2 + trunk/net/ipv4/tcp_probe.c | 6 +- trunk/net/ipv4/tcp_timer.c | 4 +- trunk/net/ipv4/udp.c | 241 ++---- trunk/net/ipv4/udp_impl.h | 6 +- trunk/net/ipv4/udplite.c | 7 +- trunk/net/ipv6/addrconf.c | 2 +- trunk/net/ipv6/fib6_rules.c | 2 +- .../netfilter/nf_conntrack_l3proto_ipv6.c | 9 +- trunk/net/ipv6/route.c | 2 +- trunk/net/ipv6/udp.c | 21 +- trunk/net/ipv6/udp_impl.h | 2 - trunk/net/ipv6/udplite.c | 2 +- trunk/net/key/af_key.c | 10 +- trunk/net/netfilter/nf_conntrack_amanda.c | 12 +- trunk/net/netfilter/nf_conntrack_core.c | 26 +- trunk/net/netfilter/nf_conntrack_expect.c | 4 + trunk/net/netfilter/nf_conntrack_helper.c | 2 +- trunk/net/netfilter/nf_conntrack_netlink.c | 34 +- trunk/net/netfilter/nf_conntrack_proto_gre.c | 2 - trunk/net/netlabel/netlabel_cipso_v4.c | 2 +- trunk/net/netlabel/netlabel_kapi.c | 43 +- trunk/net/netlabel/netlabel_mgmt.c | 2 +- trunk/net/netlabel/netlabel_unlabeled.c | 2 +- trunk/net/netlink/attr.c | 8 +- trunk/net/netlink/genetlink.c | 2 +- trunk/net/sched/sch_atm.c | 1 + trunk/net/sched/sch_cbq.c | 8 +- trunk/net/unix/af_unix.c | 13 +- trunk/net/xfrm/xfrm_policy.c | 63 +- trunk/net/xfrm/xfrm_state.c | 46 +- trunk/net/xfrm/xfrm_user.c | 9 +- trunk/scripts/checkpatch.pl | 501 ++++++++--- trunk/security/selinux/netlabel.c | 36 +- 244 files changed, 3999 insertions(+), 2671 deletions(-) create mode 100644 trunk/Documentation/networking/cxacru.txt create mode 100644 trunk/arch/sparc64/kernel/sysfs.c mode change 100644 => 100755 trunk/scripts/checkpatch.pl diff --git a/[refs] b/[refs] index cd57d4e48e09..f0aa9d19950c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 82fde74b94f11eee1e9c30e43fb162f80a5e63c0 +refs/heads/master: bca1a5518cab2d58c766863c61ee4ef5f1cc4caa diff --git a/trunk/Documentation/SubmittingPatches b/trunk/Documentation/SubmittingPatches index d91125ab6f49..0958e97d4bf4 100644 --- a/trunk/Documentation/SubmittingPatches +++ b/trunk/Documentation/SubmittingPatches @@ -340,8 +340,32 @@ now, but you can do this to mark internal company procedures or just point out some special detail about the sign-off. +13) When to use Acked-by: -13) The canonical patch format +The Signed-off-by: tag indicates that the signer was involved in the +development of the patch, or that he/she was in the patch's delivery path. + +If a person was not directly involved in the preparation or handling of a +patch but wishes to signify and record their approval of it then they can +arrange to have an Acked-by: line added to the patch's changelog. + +Acked-by: is often used by the maintainer of the affected code when that +maintainer neither contributed to nor forwarded the patch. + +Acked-by: is not as formal as Signed-off-by:. It is a record that the acker +has at least reviewed the patch and has indicated acceptance. Hence patch +mergers will sometimes manually convert an acker's "yep, looks good to me" +into an Acked-by:. + +Acked-by: does not necessarily indicate acknowledgement of the entire patch. +For example, if a patch affects multiple subsystems and has an Acked-by: from +one subsystem maintainer then this usually indicates acknowledgement of just +the part which affects that maintainer's code. Judgement should be used here. + When in doubt people should refer to the original discussion in the mailing +list archives. + + +14) The canonical patch format The canonical patch subject line is: diff --git a/trunk/Documentation/atomic_ops.txt b/trunk/Documentation/atomic_ops.txt index 2a63d5662a93..05851e9982ed 100644 --- a/trunk/Documentation/atomic_ops.txt +++ b/trunk/Documentation/atomic_ops.txt @@ -149,7 +149,7 @@ defined which accomplish this: void smp_mb__before_atomic_dec(void); void smp_mb__after_atomic_dec(void); void smp_mb__before_atomic_inc(void); - void smp_mb__after_atomic_dec(void); + void smp_mb__after_atomic_inc(void); For example, smp_mb__before_atomic_dec() can be used like so: diff --git a/trunk/Documentation/driver-model/platform.txt b/trunk/Documentation/driver-model/platform.txt index 19c4a6e13676..2a97320ee17f 100644 --- a/trunk/Documentation/driver-model/platform.txt +++ b/trunk/Documentation/driver-model/platform.txt @@ -96,6 +96,46 @@ System setup also associates those clocks with the device, so that that calls to clk_get(&pdev->dev, clock_name) return them as needed. +Legacy Drivers: Device Probing +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Some drivers are not fully converted to the driver model, because they take +on a non-driver role: the driver registers its platform device, rather than +leaving that for system infrastructure. Such drivers can't be hotplugged +or coldplugged, since those mechanisms require device creation to be in a +different system component than the driver. + +The only "good" reason for this is to handle older system designs which, like +original IBM PCs, rely on error-prone "probe-the-hardware" models for hardware +configuration. Newer systems have largely abandoned that model, in favor of +bus-level support for dynamic configuration (PCI, USB), or device tables +provided by the boot firmware (e.g. PNPACPI on x86). There are too many +conflicting options about what might be where, and even educated guesses by +an operating system will be wrong often enough to make trouble. + +This style of driver is discouraged. If you're updating such a driver, +please try to move the device enumeration to a more appropriate location, +outside the driver. This will usually be cleanup, since such drivers +tend to already have "normal" modes, such as ones using device nodes that +were created by PNP or by platform device setup. + +None the less, there are some APIs to support such legacy drivers. Avoid +using these calls except with such hotplug-deficient drivers. + + struct platform_device *platform_device_alloc( + char *name, unsigned id); + +You can use platform_device_alloc() to dynamically allocate a device, which +you will then initialize with resources and platform_device_register(). +A better solution is usually: + + struct platform_device *platform_device_register_simple( + char *name, unsigned id, + struct resource *res, unsigned nres); + +You can use platform_device_register_simple() as a one-step call to allocate +and register a device. + + Device Naming and Driver Binding ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The platform_device.dev.bus_id is the canonical name for the devices. diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index 49ae1ea9e868..7d3f205b0ba5 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -104,6 +104,7 @@ Who: Dominik Brodowski What: remove EXPORT_SYMBOL(kernel_thread) When: August 2006 Files: arch/*/kernel/*_ksyms.c +Funcs: kernel_thread Why: kernel_thread is a low-level implementation detail. Drivers should use the API instead which shields them from implementation details and provides a higherlevel interface that diff --git a/trunk/Documentation/filesystems/tmpfs.txt b/trunk/Documentation/filesystems/tmpfs.txt index 6dd050878a20..145e44086358 100644 --- a/trunk/Documentation/filesystems/tmpfs.txt +++ b/trunk/Documentation/filesystems/tmpfs.txt @@ -94,10 +94,10 @@ largest node numbers in the range. For example, mpol=bind:0-3,5,7,9-15 Note that trying to mount a tmpfs with an mpol option will fail if the running kernel does not support NUMA; and will fail if its nodelist -specifies a node >= MAX_NUMNODES. If your system relies on that tmpfs -being mounted, but from time to time runs a kernel built without NUMA -capability (perhaps a safe recovery kernel), or configured to support -fewer nodes, then it is advisable to omit the mpol option from automatic +specifies a node which is not online. If your system relies on that +tmpfs being mounted, but from time to time runs a kernel built without +NUMA capability (perhaps a safe recovery kernel), or with fewer nodes +online, then it is advisable to omit the mpol option from automatic mount options. It can be added later, when the tmpfs is already mounted on MountPoint, by 'mount -o remount,mpol=Policy:NodeList MountPoint'. @@ -121,4 +121,4 @@ RAM/SWAP in 10240 inodes and it is only accessible by root. Author: Christoph Rohland , 1.12.01 Updated: - Hugh Dickins , 19 February 2006 + Hugh Dickins , 4 June 2007 diff --git a/trunk/Documentation/firmware_class/README b/trunk/Documentation/firmware_class/README index e9cc8bb26f7d..c3480aa66ba8 100644 --- a/trunk/Documentation/firmware_class/README +++ b/trunk/Documentation/firmware_class/README @@ -1,7 +1,7 @@ request_firmware() hotplug interface: ------------------------------------ - Copyright (C) 2003 Manuel Estrada Sainz + Copyright (C) 2003 Manuel Estrada Sainz Why: --- diff --git a/trunk/Documentation/firmware_class/firmware_sample_driver.c b/trunk/Documentation/firmware_class/firmware_sample_driver.c index 87feccdb5c9f..6865cbe075ec 100644 --- a/trunk/Documentation/firmware_class/firmware_sample_driver.c +++ b/trunk/Documentation/firmware_class/firmware_sample_driver.c @@ -1,7 +1,7 @@ /* * firmware_sample_driver.c - * - * Copyright (c) 2003 Manuel Estrada Sainz + * Copyright (c) 2003 Manuel Estrada Sainz * * Sample code on how to use request_firmware() from drivers. * diff --git a/trunk/Documentation/firmware_class/firmware_sample_firmware_class.c b/trunk/Documentation/firmware_class/firmware_sample_firmware_class.c index 9e1b0e4051cd..4994f1f28f8c 100644 --- a/trunk/Documentation/firmware_class/firmware_sample_firmware_class.c +++ b/trunk/Documentation/firmware_class/firmware_sample_firmware_class.c @@ -1,7 +1,7 @@ /* * firmware_sample_firmware_class.c - * - * Copyright (c) 2003 Manuel Estrada Sainz + * Copyright (c) 2003 Manuel Estrada Sainz * * NOTE: This is just a probe of concept, if you think that your driver would * be well served by this mechanism please contact me first. @@ -19,7 +19,7 @@ #include -MODULE_AUTHOR("Manuel Estrada Sainz "); +MODULE_AUTHOR("Manuel Estrada Sainz"); MODULE_DESCRIPTION("Hackish sample for using firmware class directly"); MODULE_LICENSE("GPL"); diff --git a/trunk/Documentation/networking/00-INDEX b/trunk/Documentation/networking/00-INDEX index e06b6e3c1db5..153d84d281e6 100644 --- a/trunk/Documentation/networking/00-INDEX +++ b/trunk/Documentation/networking/00-INDEX @@ -32,6 +32,8 @@ cops.txt - info on the COPS LocalTalk Linux driver cs89x0.txt - the Crystal LAN (CS8900/20-based) Ethernet ISA adapter driver +cxacru.txt + - Conexant AccessRunner USB ADSL Modem de4x5.txt - the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver decnet.txt diff --git a/trunk/Documentation/networking/cxacru.txt b/trunk/Documentation/networking/cxacru.txt new file mode 100644 index 000000000000..b074681a963e --- /dev/null +++ b/trunk/Documentation/networking/cxacru.txt @@ -0,0 +1,84 @@ +Firmware is required for this device: http://accessrunner.sourceforge.net/ + +While it is capable of managing/maintaining the ADSL connection without the +module loaded, the device will sometimes stop responding after unloading the +driver and it is necessary to unplug/remove power to the device to fix this. + +Detected devices will appear as ATM devices named "cxacru". In /sys/class/atm/ +these are directories named cxacruN where N is the device number. A symlink +named device points to the USB interface device's directory which contains +several sysfs attribute files for retrieving device statistics: + +* adsl_controller_version + +* adsl_headend +* adsl_headend_environment + Information about the remote headend. + +* downstream_attenuation (dB) +* downstream_bits_per_frame +* downstream_rate (kbps) +* downstream_snr_margin (dB) + Downstream stats. + +* upstream_attenuation (dB) +* upstream_bits_per_frame +* upstream_rate (kbps) +* upstream_snr_margin (dB) +* transmitter_power (dBm/Hz) + Upstream stats. + +* downstream_crc_errors +* downstream_fec_errors +* downstream_hec_errors +* upstream_crc_errors +* upstream_fec_errors +* upstream_hec_errors + Error counts. + +* line_startable + Indicates that ADSL support on the device + is/can be enabled, see adsl_start. + +* line_status + "initialising" + "down" + "attempting to activate" + "training" + "channel analysis" + "exchange" + "waiting" + "up" + + Changes between "down" and "attempting to activate" + if there is no signal. + +* link_status + "not connected" + "connected" + "lost" + +* mac_address + +* modulation + "ANSI T1.413" + "ITU-T G.992.1 (G.DMT)" + "ITU-T G.992.2 (G.LITE)" + +* startup_attempts + Count of total attempts to initialise ADSL. + +To enable/disable ADSL, the following can be written to the adsl_state file: + "start" + "stop + "restart" (stops, waits 1.5s, then starts) + "poll" (used to resume status polling if it was disabled due to failure) + +Changes in adsl/line state are reported via kernel log messages: + [4942145.150704] ATM dev 0: ADSL state: running + [4942243.663766] ATM dev 0: ADSL line: down + [4942249.665075] ATM dev 0: ADSL line: attempting to activate + [4942253.654954] ATM dev 0: ADSL line: training + [4942255.666387] ATM dev 0: ADSL line: channel analysis + [4942259.656262] ATM dev 0: ADSL line: exchange + [2635357.696901] ATM dev 0: ADSL line: up (8128 kb/s down | 832 kb/s up) diff --git a/trunk/Documentation/powerpc/booting-without-of.txt b/trunk/Documentation/powerpc/booting-without-of.txt index b49ce169a63a..d42d98107d49 100644 --- a/trunk/Documentation/powerpc/booting-without-of.txt +++ b/trunk/Documentation/powerpc/booting-without-of.txt @@ -1,7 +1,6 @@ Booting the Linux/ppc kernel without Open Firmware -------------------------------------------------- - (c) 2005 Benjamin Herrenschmidt , IBM Corp. (c) 2005 Becky Bruce , @@ -9,6 +8,62 @@ (c) 2006 MontaVista Software, Inc. Flash chip node definition +Table of Contents +================= + + I - Introduction + 1) Entry point for arch/powerpc + 2) Board support + + II - The DT block format + 1) Header + 2) Device tree generalities + 3) Device tree "structure" block + 4) Device tree "strings" block + + III - Required content of the device tree + 1) Note about cells and address representation + 2) Note about "compatible" properties + 3) Note about "name" properties + 4) Note about node and property names and character set + 5) Required nodes and properties + a) The root node + b) The /cpus node + c) The /cpus/* nodes + d) the /memory node(s) + e) The /chosen node + f) the /soc node + + IV - "dtc", the device tree compiler + + V - Recommendations for a bootloader + + VI - System-on-a-chip devices and nodes + 1) Defining child nodes of an SOC + 2) Representing devices without a current OF specification + a) MDIO IO device + c) PHY nodes + b) Gianfar-compatible ethernet nodes + d) Interrupt controllers + e) I2C + f) Freescale SOC USB controllers + g) Freescale SOC SEC Security Engines + h) Board Control and Status (BCSR) + i) Freescale QUICC Engine module (QE) + g) Flash chip nodes + + VII - Specifying interrupt information for devices + 1) interrupts property + 2) interrupt-parent property + 3) OpenPIC Interrupt Controllers + 4) ISA Interrupt Controllers + + Appendix A - Sample SOC node for MPC8540 + + +Revision Information +==================== + May 18, 2005: Rev 0.1 - Initial draft, no chapter III yet. May 19, 2005: Rev 0.2 - Add chapter III and bits & pieces here or @@ -1687,7 +1742,7 @@ platforms are moved over to use the flattened-device-tree model. }; }; - g) Flash chip nodes + j) Flash chip nodes Flash chips (Memory Technology Devices) are often used for solid state file systems on embedded devices. diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index f3b5a391e074..4c715a7e059a 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -782,11 +782,6 @@ M: rathamahata@php4.ru L: linux-kernel@vger.kernel.org S: Maintained -BERKSHIRE PRODUCTS PC WATCHDOG DRIVER -P: Kenji Hollis -W: http://ftp.bitgate.com/pcwd/ -S: Maintained - BFS FILE SYSTEM P: Tigran A. Aivazian M: tigran@aivazian.fsnet.co.uk @@ -3025,7 +3020,7 @@ S: Maintained REISERFS FILE SYSTEM P: Hans Reiser M: reiserfs-dev@namesys.com -L: reiserfs-list@namesys.com +L: reiserfs-devel@vger.kernel.org W: http://www.namesys.com S: Supported @@ -3904,10 +3899,6 @@ S: Maintained UCLINUX FOR NEC V850 P: Miles Bader -M: uclinux-v850@lsi.nec.co.jp -W: http://www.ic.nec.co.jp/micro/uclinux/eng/ -W: http://www.ee.nec.de/uclinux/ -S: Supported UCLINUX FOR RENESAS H8/300 P: Yoshinori Sato @@ -3916,10 +3907,10 @@ W: http://uclinux-h8.sourceforge.jp/ S: Supported UFS FILESYSTEM -P: Evgeniy Dushistov -M: dushistov@mail.ru -L: linux-kernel@vger.kernel.org -S: Maintained +P: Evgeniy Dushistov +M: dushistov@mail.ru +L: linux-kernel@vger.kernel.org +S: Maintained USB DIAMOND RIO500 DRIVER P: Cesar Miquel diff --git a/trunk/arch/arm/boot/compressed/head.S b/trunk/arch/arm/boot/compressed/head.S index 2568d311be21..23348e9561b9 100644 --- a/trunk/arch/arm/boot/compressed/head.S +++ b/trunk/arch/arm/boot/compressed/head.S @@ -247,7 +247,7 @@ not_relocated: mov r0, #0 mov r3, r7 bl decompress_kernel - add r0, r0, #127 + add r0, r0, #127 + 128 @ alignment + stack bic r0, r0, #127 @ align the kernel length /* * r0 = decompressed kernel length @@ -269,6 +269,7 @@ not_relocated: mov r0, #0 stmia r1!, {r9 - r14} cmp r2, r3 blo 1b + add sp, r1, #128 @ relocate the stack bl cache_clean_flush add pc, r5, r0 @ call relocation code @@ -476,6 +477,7 @@ __common_mmu_cache_on: */ .align 5 reloc_start: add r9, r5, r0 + sub r9, r9, #128 @ do not copy the stack debug_reloc_start mov r1, r4 1: @@ -486,6 +488,7 @@ reloc_start: add r9, r5, r0 cmp r5, r9 blo 1b + add sp, r1, #128 @ relocate the stack debug_reloc_end call_kernel: bl cache_clean_flush diff --git a/trunk/arch/arm/mach-at91/clock.c b/trunk/arch/arm/mach-at91/clock.c index 06c9a0507d0d..848efb2a4ebf 100644 --- a/trunk/arch/arm/mach-at91/clock.c +++ b/trunk/arch/arm/mach-at91/clock.c @@ -364,19 +364,14 @@ static int at91_clk_show(struct seq_file *s, void *unused) { u32 scsr, pcsr, sr; struct clk *clk; - unsigned i; seq_printf(s, "SCSR = %8x\n", scsr = at91_sys_read(AT91_PMC_SCSR)); seq_printf(s, "PCSR = %8x\n", pcsr = at91_sys_read(AT91_PMC_PCSR)); - seq_printf(s, "MOR = %8x\n", at91_sys_read(AT91_CKGR_MOR)); seq_printf(s, "MCFR = %8x\n", at91_sys_read(AT91_CKGR_MCFR)); seq_printf(s, "PLLA = %8x\n", at91_sys_read(AT91_CKGR_PLLAR)); seq_printf(s, "PLLB = %8x\n", at91_sys_read(AT91_CKGR_PLLBR)); - seq_printf(s, "MCKR = %8x\n", at91_sys_read(AT91_PMC_MCKR)); - for (i = 0; i < 4; i++) - seq_printf(s, "PCK%d = %8x\n", i, at91_sys_read(AT91_PMC_PCKR(i))); seq_printf(s, "SR = %8x\n", sr = at91_sys_read(AT91_PMC_SR)); seq_printf(s, "\n"); diff --git a/trunk/arch/arm/mach-at91/pm.c b/trunk/arch/arm/mach-at91/pm.c index ff8db29e989e..47ff676aca5f 100644 --- a/trunk/arch/arm/mach-at91/pm.c +++ b/trunk/arch/arm/mach-at91/pm.c @@ -76,12 +76,11 @@ static int at91_pm_verify_clocks(void) pr_debug("AT91: PM - Suspend-to-RAM with USB still active\n"); return 0; } - } else if (cpu_is_at91sam9260()) { -#warning "Check SAM9260 USB clocks" - } else if (cpu_is_at91sam9261()) { -#warning "Check SAM9261 USB clocks" - } else if (cpu_is_at91sam9263()) { -#warning "Check SAM9263 USB clocks" + } else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() || cpu_is_at91sam9263()) { + if ((scsr & (AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP)) != 0) { + pr_debug("AT91: PM - Suspend-to-RAM with USB still active\n"); + return 0; + } } #ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS diff --git a/trunk/arch/arm/oprofile/op_model_mpcore.c b/trunk/arch/arm/oprofile/op_model_mpcore.c index 7791da791f5f..75bae067922d 100644 --- a/trunk/arch/arm/oprofile/op_model_mpcore.c +++ b/trunk/arch/arm/oprofile/op_model_mpcore.c @@ -200,8 +200,10 @@ static int em_call_function(int (*fn)(void)) data.fn = fn; data.ret = 0; + preempt_disable(); smp_call_function(em_func, &data, 1, 1); em_func(&data); + preempt_enable(); return data.ret; } diff --git a/trunk/arch/i386/math-emu/fpu_entry.c b/trunk/arch/i386/math-emu/fpu_entry.c index ddf8fa3bbd01..1853524c8b57 100644 --- a/trunk/arch/i386/math-emu/fpu_entry.c +++ b/trunk/arch/i386/math-emu/fpu_entry.c @@ -754,7 +754,7 @@ int save_i387_soft(void *s387, struct _fpstate __user * buf) return -1; if ( offset ) if (__copy_to_user(d+other, (u_char *)&S387->st_space, offset)) - return -1 + return -1; RE_ENTRANT_CHECK_ON; return 1; diff --git a/trunk/arch/i386/mm/fault.c b/trunk/arch/i386/mm/fault.c index 29d7d61543a1..1ecb3e43b523 100644 --- a/trunk/arch/i386/mm/fault.c +++ b/trunk/arch/i386/mm/fault.c @@ -458,6 +458,11 @@ fastcall void __kprobes do_page_fault(struct pt_regs *regs, bad_area_nosemaphore: /* User mode accesses just cause a SIGSEGV */ if (error_code & 4) { + /* + * It's possible to have interrupts off here. + */ + local_irq_enable(); + /* * Valid to do another page fault here because this one came * from user space. diff --git a/trunk/arch/m68knommu/platform/5307/timers.c b/trunk/arch/m68knommu/platform/5307/timers.c index 92e58070b016..fb66eadd5896 100644 --- a/trunk/arch/m68knommu/platform/5307/timers.c +++ b/trunk/arch/m68knommu/platform/5307/timers.c @@ -62,10 +62,13 @@ void coldfire_tick(void) /***************************************************************************/ +static int ticks_per_intr; + void coldfire_timer_init(irq_handler_t handler) { __raw_writew(MCFTIMER_TMR_DISABLE, TA(MCFTIMER_TMR)); - __raw_writetrr(((MCF_BUSCLK / 16) / HZ), TA(MCFTIMER_TRR)); + ticks_per_intr = (MCF_BUSCLK / 16) / HZ; + __raw_writetrr(ticks_per_intr - 1, TA(MCFTIMER_TRR)); __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR)); @@ -81,11 +84,10 @@ void coldfire_timer_init(irq_handler_t handler) unsigned long coldfire_timer_offset(void) { - unsigned long trr, tcn, offset; + unsigned long tcn, offset; tcn = __raw_readw(TA(MCFTIMER_TCN)); - trr = __raw_readtrr(TA(MCFTIMER_TRR)); - offset = (tcn * (1000000 / HZ)) / trr; + offset = ((tcn + 1) * (1000000 / HZ)) / ticks_per_intr; /* Check if we just wrapped the counters and maybe missed a tick */ if ((offset < (1000000 / HZ / 2)) && mcf_timerirqpending(1)) diff --git a/trunk/arch/mips/Kconfig b/trunk/arch/mips/Kconfig index 0f09412e1b7f..9528ee90640a 100644 --- a/trunk/arch/mips/Kconfig +++ b/trunk/arch/mips/Kconfig @@ -747,9 +747,9 @@ config EARLY_PRINTK to print messages very early in the bootup process. This is useful for kernel debugging when your machine crashes very - early before the console code is initialized. For normal operation - it is not recommended because it looks on some machines ugly and - oesn't cooperate with an X server. You should normally N here, + early before the console code is initialized. For normal operation, + it is not recommended because it looks ugly on some machines and + doesn't cooperate with an X server. You should normally say N here, unless you want to debug such a crash. config SYS_HAS_EARLY_PRINTK diff --git a/trunk/arch/mips/emma2rh/markeins/setup.c b/trunk/arch/mips/emma2rh/markeins/setup.c index b29a44739230..2f060e1ed36c 100644 --- a/trunk/arch/mips/emma2rh/markeins/setup.c +++ b/trunk/arch/mips/emma2rh/markeins/setup.c @@ -115,30 +115,6 @@ extern void markeins_irq_setup(void); static void inline __init markeins_sio_setup(void) { -#ifdef CONFIG_KGDB_8250 - struct uart_port emma_port; - - memset(&emma_port, 0, sizeof(emma_port)); - - emma_port.flags = - UPF_BOOT_AUTOCONF | UPF_SKIP_TEST; - emma_port.iotype = UPIO_MEM; - emma_port.regshift = 4; /* I/O addresses are every 8 bytes */ - emma_port.uartclk = 18544000; /* Clock rate of the chip */ - - emma_port.line = 0; - emma_port.mapbase = KSEG1ADDR(EMMA2RH_PFUR0_BASE + 3); - emma_port.membase = (u8*)emma_port.mapbase; - early_serial_setup(&emma_port); - - emma_port.line = 1; - emma_port.mapbase = KSEG1ADDR(EMMA2RH_PFUR1_BASE + 3); - emma_port.membase = (u8*)emma_port.mapbase; - early_serial_setup(&emma_port); - - emma_port.irq = EMMA2RH_IRQ_PFUR1; - kgdb8250_add_port(1, &emma_port); -#endif } void __init plat_mem_setup(void) diff --git a/trunk/arch/mips/kernel/linux32.c b/trunk/arch/mips/kernel/linux32.c index 37849edd0645..06e04da211d5 100644 --- a/trunk/arch/mips/kernel/linux32.c +++ b/trunk/arch/mips/kernel/linux32.c @@ -556,6 +556,16 @@ asmlinkage long sys32_sync_file_range(int fd, int __pad, flags); } +asmlinkage long sys32_fadvise64_64(int fd, int __pad, + unsigned long a2, unsigned long a3, + unsigned long a4, unsigned long a5, + int flags) +{ + return sys_fadvise64_64(fd, + merge_64(a2, a3), merge_64(a4, a5), + flags); +} + save_static_function(sys32_clone); __attribute_used__ noinline static int _sys32_clone(nabi_no_regargs struct pt_regs regs) diff --git a/trunk/arch/mips/kernel/r4k_switch.S b/trunk/arch/mips/kernel/r4k_switch.S index cc566cf12246..06729596812f 100644 --- a/trunk/arch/mips/kernel/r4k_switch.S +++ b/trunk/arch/mips/kernel/r4k_switch.S @@ -174,7 +174,7 @@ LEAF(_init_fpu) or t0, t1 mtc0 t0, CP0_STATUS #endif /* CONFIG_MIPS_MT_SMTC */ - fpu_enable_hazard + enable_fpu_hazard li t1, FPU_DEFAULT ctc1 t1, fcr31 diff --git a/trunk/arch/mips/kernel/scall64-n32.S b/trunk/arch/mips/kernel/scall64-n32.S index 6eac28337423..1631035ffc24 100644 --- a/trunk/arch/mips/kernel/scall64-n32.S +++ b/trunk/arch/mips/kernel/scall64-n32.S @@ -299,7 +299,7 @@ EXPORT(sysn32_call_table) PTR sys_ni_syscall /* res. for afs_syscall */ PTR sys_ni_syscall /* res. for security */ PTR sys_gettid - PTR sys32_readahead + PTR sys_readahead PTR sys_setxattr /* 6180 */ PTR sys_lsetxattr PTR sys_fsetxattr diff --git a/trunk/arch/mips/kernel/scall64-o32.S b/trunk/arch/mips/kernel/scall64-o32.S index 7e74b412a782..2aa99426ac1c 100644 --- a/trunk/arch/mips/kernel/scall64-o32.S +++ b/trunk/arch/mips/kernel/scall64-o32.S @@ -459,7 +459,7 @@ sys_call_table: PTR sys_remap_file_pages PTR sys_set_tid_address PTR sys_restart_syscall - PTR sys_fadvise64_64 + PTR sys32_fadvise64_64 PTR compat_sys_statfs64 /* 4255 */ PTR compat_sys_fstatfs64 PTR compat_sys_timer_create diff --git a/trunk/arch/mips/kernel/traps.c b/trunk/arch/mips/kernel/traps.c index 200de027f354..3f58b6ac1358 100644 --- a/trunk/arch/mips/kernel/traps.c +++ b/trunk/arch/mips/kernel/traps.c @@ -927,12 +927,6 @@ asmlinkage void do_reserved(struct pt_regs *regs) (regs->cp0_cause & 0x7f) >> 2); } -static asmlinkage void do_default_vi(void) -{ - show_regs(get_irq_regs()); - panic("Caught unexpected vectored interrupt."); -} - /* * Some MIPS CPUs can enable/disable for cache parity detection, but do * it different ways. @@ -1128,6 +1122,12 @@ void mips_srs_free(int set) clear_bit(set, &sr->sr_allocated); } +static asmlinkage void do_default_vi(void) +{ + show_regs(get_irq_regs()); + panic("Caught unexpected vectored interrupt."); +} + static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs) { unsigned long handler; diff --git a/trunk/arch/mips/mips-boards/atlas/atlas_setup.c b/trunk/arch/mips/mips-boards/atlas/atlas_setup.c index 0c6b0ce15028..1cc6ebbedfdd 100644 --- a/trunk/arch/mips/mips-boards/atlas/atlas_setup.c +++ b/trunk/arch/mips/mips-boards/atlas/atlas_setup.c @@ -48,6 +48,8 @@ const char *get_system_type(void) return "MIPS Atlas"; } +const char display_string[] = " LINUX ON ATLAS "; + void __init plat_mem_setup(void) { mips_pcibios_init(); diff --git a/trunk/arch/mips/mips-boards/generic/display.c b/trunk/arch/mips/mips-boards/generic/display.c index 548dbe5ce7c8..5d600054090a 100644 --- a/trunk/arch/mips/mips-boards/generic/display.c +++ b/trunk/arch/mips/mips-boards/generic/display.c @@ -19,9 +19,14 @@ */ #include +#include #include #include +extern const char display_string[]; +static unsigned int display_count; +static unsigned int max_display_count; + void mips_display_message(const char *str) { static unsigned int __iomem *display = NULL; @@ -37,3 +42,22 @@ void mips_display_message(const char *str) writel(' ', display + i); } } + +static void scroll_display_message(unsigned long data); +static DEFINE_TIMER(mips_scroll_timer, scroll_display_message, HZ, 0); + +static void scroll_display_message(unsigned long data) +{ + mips_display_message(&display_string[display_count++]); + if (display_count == max_display_count) + display_count = 0; + + mod_timer(&mips_scroll_timer, jiffies + HZ); +} + +void mips_scroll_message(void) +{ + del_timer_sync(&mips_scroll_timer); + max_display_count = strlen(display_string) + 1 - 8; + mod_timer(&mips_scroll_timer, jiffies + 1); +} diff --git a/trunk/arch/mips/mips-boards/generic/time.c b/trunk/arch/mips/mips-boards/generic/time.c index df2a2bd3aa5d..37735bfc3afd 100644 --- a/trunk/arch/mips/mips-boards/generic/time.c +++ b/trunk/arch/mips/mips-boards/generic/time.c @@ -53,37 +53,11 @@ unsigned long cpu_khz; -#if defined(CONFIG_MIPS_ATLAS) -static char display_string[] = " LINUX ON ATLAS "; -#endif -#if defined(CONFIG_MIPS_MALTA) -#if defined(CONFIG_MIPS_MT_SMTC) -static char display_string[] = " SMTC LINUX ON MALTA "; -#else -static char display_string[] = " LINUX ON MALTA "; -#endif /* CONFIG_MIPS_MT_SMTC */ -#endif -#if defined(CONFIG_MIPS_SEAD) -static char display_string[] = " LINUX ON SEAD "; -#endif -static unsigned int display_count; -#define MAX_DISPLAY_COUNT (sizeof(display_string) - 8) - #define CPUCTR_IMASKBIT (0x100 << MIPSCPU_INT_CPUCTR) -static unsigned int timer_tick_count; static int mips_cpu_timer_irq; extern void smtc_timer_broadcast(int); -static inline void scroll_display_message(void) -{ - if ((timer_tick_count++ % HZ) == 0) { - mips_display_message(&display_string[display_count++]); - if (display_count == MAX_DISPLAY_COUNT) - display_count = 0; - } -} - static void mips_timer_dispatch(void) { do_IRQ(mips_cpu_timer_irq); @@ -143,7 +117,6 @@ irqreturn_t mips_timer_interrupt(int irq, void *dev_id) if (cpu_data[cpu].vpe_id == 0) { timer_interrupt(irq, NULL); smtc_timer_broadcast(cpu_data[cpu].vpe_id); - scroll_display_message(); } else { write_c0_compare(read_c0_count() + (mips_hpt_frequency/HZ)); @@ -167,8 +140,6 @@ irqreturn_t mips_timer_interrupt(int irq, void *dev_id) /* we keep interrupt disabled all the time */ if (!r2 || (read_c0_cause() & (1 << 30))) timer_interrupt(irq, NULL); - - scroll_display_message(); } else { /* Everyone else needs to reset the timer int here as ll_local_timer_interrupt doesn't */ @@ -262,6 +233,8 @@ void __init mips_time_init(void) (est_freq%1000000)*100/1000000); cpu_khz = est_freq / 1000; + + mips_scroll_message(); } void __init plat_timer_setup(struct irqaction *irq) diff --git a/trunk/arch/mips/mips-boards/malta/malta_setup.c b/trunk/arch/mips/mips-boards/malta/malta_setup.c index 7873932532a1..c14b7bf89950 100644 --- a/trunk/arch/mips/mips-boards/malta/malta_setup.c +++ b/trunk/arch/mips/mips-boards/malta/malta_setup.c @@ -56,6 +56,12 @@ const char *get_system_type(void) return "MIPS Malta"; } +#if defined(CONFIG_MIPS_MT_SMTC) +const char display_string[] = " SMTC LINUX ON MALTA "; +#else +const char display_string[] = " LINUX ON MALTA "; +#endif /* CONFIG_MIPS_MT_SMTC */ + #ifdef CONFIG_BLK_DEV_FD void __init fd_activate(void) { diff --git a/trunk/arch/mips/mips-boards/sead/sead_setup.c b/trunk/arch/mips/mips-boards/sead/sead_setup.c index a189dec7c7bc..811aba100605 100644 --- a/trunk/arch/mips/mips-boards/sead/sead_setup.c +++ b/trunk/arch/mips/mips-boards/sead/sead_setup.c @@ -43,6 +43,8 @@ const char *get_system_type(void) return "MIPS SEAD"; } +const char display_string[] = " LINUX ON SEAD "; + void __init plat_mem_setup(void) { ioport_resource.end = 0x7fffffff; diff --git a/trunk/arch/mips/mm/dma-default.c b/trunk/arch/mips/mm/dma-default.c index f0eb29917d9a..76903c727647 100644 --- a/trunk/arch/mips/mm/dma-default.c +++ b/trunk/arch/mips/mm/dma-default.c @@ -168,8 +168,9 @@ int dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, addr = (unsigned long) page_address(sg->page); if (!plat_device_is_coherent(dev) && addr) __dma_sync(addr + sg->offset, sg->length, direction); - sg->dma_address = plat_map_dma_mem_page(dev, sg->page) + - sg->offset; + sg->dma_address = plat_map_dma_mem(dev, + (void *)(addr + sg->offset), + sg->length); } return nents; diff --git a/trunk/arch/mips/qemu/q-irq.c b/trunk/arch/mips/qemu/q-irq.c index f5ea2fe10f14..89891e984b3b 100644 --- a/trunk/arch/mips/qemu/q-irq.c +++ b/trunk/arch/mips/qemu/q-irq.c @@ -7,8 +7,6 @@ #include #include -extern asmlinkage void qemu_handle_int(void); - asmlinkage void plat_irq_dispatch(void) { unsigned int pending = read_c0_status() & read_c0_cause(); diff --git a/trunk/arch/mips/sni/pcimt.c b/trunk/arch/mips/sni/pcimt.c index 9ee208daa8b1..97b234361b4d 100644 --- a/trunk/arch/mips/sni/pcimt.c +++ b/trunk/arch/mips/sni/pcimt.c @@ -6,7 +6,7 @@ * for more details. * * Copyright (C) 1996, 97, 98, 2000, 03, 04, 06 Ralf Baechle (ralf@linux-mips.org) - * Copyright (C) 2006 Thomas Bogendoerfer (tsbogend@alpha.franken.de) + * Copyright (C) 2006,2007 Thomas Bogendoerfer (tsbogend@alpha.franken.de) */ #include @@ -131,6 +131,19 @@ static struct resource pcimt_io_resources[] = { } }; +static struct resource pcimt_mem_resources[] = { + { + /* + * this region should only be 4 bytes long, + * but it's 16MB on all RM300C I've checked + */ + .start = 0x1a000000, + .end = 0x1affffff, + .name = "PCI INT ACK", + .flags = IORESOURCE_BUSY + } +}; + static struct resource sni_mem_resource = { .start = 0x18000000UL, .end = 0x1fbfffffUL, @@ -145,6 +158,9 @@ static void __init sni_pcimt_resource_init(void) /* request I/O space for devices used on all i[345]86 PCs */ for (i = 0; i < ARRAY_SIZE(pcimt_io_resources); i++) request_resource(&sni_io_resource, pcimt_io_resources + i); + /* request MEM space for devices used on all i[345]86 PCs */ + for (i = 0; i < ARRAY_SIZE(pcimt_mem_resources); i++) + request_resource(&sni_mem_resource, pcimt_mem_resources + i); } extern struct pci_ops sni_pcimt_ops; diff --git a/trunk/arch/mips/sni/setup.c b/trunk/arch/mips/sni/setup.c index 68d7cf609b4f..4fedfbda0c79 100644 --- a/trunk/arch/mips/sni/setup.c +++ b/trunk/arch/mips/sni/setup.c @@ -6,7 +6,7 @@ * for more details. * * Copyright (C) 1996, 97, 98, 2000, 03, 04, 06 Ralf Baechle (ralf@linux-mips.org) - * Copyright (C) 2006 Thomas Bogendoerfer (tsbogend@alpha.franken.de) + * Copyright (C) 2006,2007 Thomas Bogendoerfer (tsbogend@alpha.franken.de) */ #include #include @@ -92,3 +92,34 @@ void __init plat_mem_setup(void) sni_display_setup(); } + +#if CONFIG_PCI + +#include +#include