19 Apr, 2008

11 commits

  • implemented in CPLD chips on several HTC devices.

    The original driver was written by Kevin O'Connor, I have adapted it to
    use gpiolib and made the bus/register widths configurable.

    Signed-off-by: Philipp Zabel
    Signed-off-by: Russell King

    Philipp Zabel
     
  • PXA GPIO definitions were split from pxa-regs.h into pxa2xx-gpio.h.

    Signed-off-by: Philipp Zabel
    Signed-off-by: Russell King

    Philipp Zabel
     
  • This patch implements support for Gumstix-F flash, udc and mci. Fixes since the last time are:
    - Steve Sakoman as maintainer
    - cleanup for udc and mci setup

    Signed-off-by: Jaya Kumar
    Signed-off-by: Russell King

    Jaya Kumar
     
  • Keypad registers are now fully defined within pxa27x-keypad.c, no
    need to keep those definitions in pxa-regs.h

    Signed-off-by: eric miao
    Signed-off-by: Russell King

    eric miao
     
  • also update the clk definitions in pxa27x and pxa3xx.

    Signed-off-by: eric miao
    Signed-off-by: Russell King

    eric miao
     
  • Changes include:

    1. rename MFP_LPM_WAKEUP_ENABLE into MFP_LPM_CAN_WAKEUP to indicate
    the board capability of this pin to wakeup the system

    2. add gpio_set_wake() and keypad_set_wake() to allow dynamically
    enable/disable wakeup from GPIOs and keypad GPIO

    * these functions are currently kept in mfp-pxa2xx.c due to their
    dependency to the MFP configuration

    3. pxa2xx_mfp_config() only gives early warning if MFP_LPM_CAN_WAKEUP
    is set on incorrect pins

    So that the GPIO's wakeup capability is now decided by the following:

    a) processor's capability: (only those GPIOs which have dedicated
    bits within PWER/PRER/PFER can wakeup the system), this is
    initialized by pxa{25x,27x}_init_mfp()

    b) board design decides:
    - whether the pin is designed to wakeup the system (some of
    the GPIOs are configured as other functions, which is not
    intended to be a wakeup source), by OR'ing the pin config
    with MFP_LPM_CAN_WAKEUP

    - which edge the pin is designed to wakeup the system, this
    may depends on external peripherals/connections, which is
    totally board specific; this is indicated by MFP_LPM_EDGE_*

    c) the corresponding device's (most likely the gpio_keys.c) wakeup
    attribute:

    Signed-off-by: eric miao
    Signed-off-by: Russell King

    eric miao
     
  • Pin configuration on pxa{25x,27x} has now separated from generic GPIO
    into dedicated mfp-pxa2xx.c by this patch. The name "mfp" is borrowed
    from pxa3xx and is used here to alert the difference between the two
    concepts: pin configuration and generic GPIOs. A GPIO can be called
    a "GPIO" _only_ when the corresponding pin is configured so.

    A pin configuration on pxa{25x,27x} is composed of:

    - alternate function selection (or pin mux as commonly called)
    - low power state or sleep state
    - wakeup enabling from low power mode

    The following MFP_xxx bit definitions in mfp.h are re-used:

    - MFP_PIN(x)
    - MFP_AFx
    - MFP_LPM_DRIVE_{LOW, HIGH}
    - MFP_LPM_EDGE_*

    Selecting alternate function on pxa{25x, 27x} involves configuration
    of GPIO direction register GPDRx, so a new bit and MFP_DIR_{IN, OUT}
    are introduced. And pin configurations are defined by the following
    two macros:

    - MFP_CFG_IN : for input alternate functions
    - MFP_CFG_OUT : for output alternate functions

    Every configuration should provide a low power state if it configured
    as output using MFP_CFG_OUT(). As a general guideline, the low power
    state should be decided to minimize the overall power dissipation. As
    an example, it is better to drive the pin as high level in low power
    mode if the GPIO is configured as an active low chip select.

    Pins configured as GPIO are defined by MFP_CFG_IN(). This is to avoid
    side effects when it is firstly configured as output. The actual
    direction of the GPIO is configured by gpio_direction_{input, output}

    Wakeup enabling on pxa{25x, 27x} is actually GPIO based wakeup, thus
    the device based enable_irq_wake() mechanism is not applicable here.

    E.g. invoking enable_irq_wake() with a GPIO IRQ as in the following
    code to enable OTG wakeup is by no means portable and intuitive, and
    it is valid _only_ when GPIO35 is configured as USB_P2_1:

    enable_irq_wake( gpio_to_irq(35) );

    To make things worse, not every GPIO is able to wakeup the system.
    Only a small number of them can, on either rising or falling edge,
    or when level is high (for keypad GPIOs).

    Thus, another new bit is introduced to indicate that the GPIO will
    wakeup the system:

    - MFP_LPM_WAKEUP_ENABLE

    The following macros can be used in platform code, and be OR'ed to
    the GPIO configuration to enable its wakeup:

    - WAKEUP_ON_EDGE_{RISE, FALL, BOTH}
    - WAKEUP_ON_LEVEL_HIGH

    The WAKEUP_ON_LEVEL_HIGH is used for keypad GPIOs _only_, there is
    no edge settings for those GPIOs.

    These WAKEUP_ON_* flags OR'ed on wrong GPIOs will be ignored in case
    that platform code author is careless enough.

    The tradeoff here is that the wakeup source is fully determined by
    the platform configuration, instead of enable_irq_wake().

    Signed-off-by: eric miao
    Signed-off-by: Russell King

    eric miao
     
  • two reasons:
    1. GPIO namings and their mode definitions are conceptually not part
    of the PXA register definitions

    2. this is actually a temporary move in the transition of PXA2xx to
    use MFP-alike APIs (as what PXA3xx is now doing), so that legacy
    code will still work and new code can be added in step by step

    Signed-off-by: eric miao
    Signed-off-by: Russell King

    eric miao
     
  • This makes the code better organized and simplified a bit. The change
    will lose a bit of performance when performing IRQ ack/mask/unmask,but
    that's not too much after checking the result binary.

    This patch also removes the ugly #ifdef CONFIG_PXA27x .. #endif by
    carefully not to access those pxa{27x,3xx} specific registers, this
    is done by keeping an internal IRQ number variable. The pxa-regs.h
    is also modified so registers for IRQ > PXA_IRQ(31) are made public
    even if CONFIG_PXA{27x,3xx} isn't defined (for pxa25x's sake)

    The incorrect assumption in the original code that internal irq starts
    from 0 is also corrected by comparing with PXA_IRQ(0).

    "struct sys_device" for the IRQ are reduced into one single device on
    pxa{27x,3xx}.

    Signed-off-by: eric miao
    Signed-off-by: Russell King

    eric miao
     
  • Enhanced GPIO alternate functions descriptions,
    taken from Intel PXA270 Developers Manual.

    Signed-off-by: Robert Jarzmik
    Signed-off-by: Russell King

    Robert Jarzmik
     
  • Expose control of the PXA3xx 13MHz CLK_POUT pin via the clock API

    Signed-off-by: Mark Brown
    Signed-off-by: Russell King

    Mark Brown
     

25 Mar, 2008

8 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
    USB: Fix cut-and-paste error in rtl8150.c
    USB: ehci: stop vt6212 bus hogging
    USB: sierra: add another device id
    USB: sierra: dma fixes
    USB: add support for Motorola ROKR Z6 cellphone in mass storage mode
    USB: isd200: fix memory leak in isd200_get_inquiry_data
    USB: pl2303: another product ID
    USB: new quirk flag to avoid Set-Interface
    USB: fix gadgetfs class request delegation

    Linus Torvalds
     
  • Revert as it is reported to cause problems for people.

    commit 4348a2dc49f9baecd34a9b0904245488c6189398
    Author: Shaohua Li
    Date: Wed Oct 24 10:45:08 2007 +0800

    pcie: utilize pcie transaction pending bit

    PCIE has a mechanism to wait for Non-Posted request to complete. I think
    pci_disable_device is a good place to do this.

    Signed-off-by: Shaohua Li
    Signed-off-by: Greg Kroah-Hartman

    Due to the regression reported at
    http://bugzilla.kernel.org/show_bug.cgi?id=10065

    Cc: Shaohua Li
    Cc: Soeren Sonnenburg
    Cc: "Rafael J. Wysocki"
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Andrew Morton
     
  • Motorola ROKR Z6 cellphone has bugs in its USB, so it is impossible to use
    it as mass storage. Patch describes new "unusual" USB device for it with
    FIX_INQUIRY and FIX_CAPACITY flags and new BULK_IGNORE_TAG flag.
    Last flag relaxes check for equality of bcs->Tag and us->tag in
    usb_stor_Bulk_transport routine.

    Signed-off-by: Constantin Baranov
    Signed-off-by: Matthew Dharm
    Signed-off-by: Daniel Drake
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Constantin Baranov
     
  • This patch (as1057) fixes a problem with the X-Rite/Gretag-Macbeth
    Eye-One Pro display colorimeter; the device crashes when it receives a
    Set-Interface request. A new quirk (USB_QUIRK_NO_SET_INTF) is
    introduced and a quirks entry is created for this device.

    Signed-off-by: Alan Stern
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • Implement ata_qc_raw_nbytes() which determines the raw user-requested
    size of a PC command.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
    [SPARC64]: exec PT_DTRACE
    [SPARC64]: Use shorter list_splice_init() for brevity.
    [SPARC64]: Remove most limitations to kernel image size.

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    sch_htb: fix "too many events" situation
    connector: convert to single-threaded workqueue
    [ATM]: When proc_create() fails, do some error handling work and return -ENOMEM.
    [SUNGEM]: Fix NAPI assertion failure.
    BNX2X: prevent ethtool from setting port type
    [9P] net/9p/trans_fd.c: remove unused variable
    [IPV6] net/ipv6/ndisc.c: remove unused variable
    [IPV4] fib_trie: fix warning from rcu_assign_poinger
    [TCP]: Let skbs grow over a page on fast peers
    [DLCI]: Fix tiny race between module unload and sock_ioctl.
    [SCTP]: Fix build warnings with IPV6 disabled.
    [IPV4]: Fix null dereference in ip_defrag

    Linus Torvalds
     
  • It appears that 64-bit PCI resources cannot possibly ever have worked on
    x86-32 even when the RESOURCES_64BIT config option was set, because any
    driver that tried to [pci_]ioremap() the resource would have been unable
    to do so because the high 32 bits would have been silently dropped on
    the floor by the ioremap() routines that only used "unsigned long".

    Change them to use "resource_size_t" instead, which properly encodes the
    whole 64-bit resource data if RESOURCES_64BIT is enabled.

    Acked-by: H. Peter Anvin
    Acked-by: Stefan Richter
    Cc: Ivan Kokshaysky
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

23 Mar, 2008

3 commits


22 Mar, 2008

8 commits

  • Currently kernel images are limited to 8MB in size, and this causes
    problems especially when enabling features that take up a lot of
    kernel image space such as lockdep.

    The code now will align the kernel image size up to 4MB and map that
    many locked TLB entries. So, the only practical limitation is the
    number of available locked TLB entries which is 16 on Cheetah and 64
    on pre-Cheetah sparc64 cpus. Niagara cpus don't actually have hw
    locked TLB entry support. Rather, the hypervisor transparently
    provides support for "locked" TLB entries since it runs with physical
    addressing and does the initial TLB miss processing.

    Fully utilizing this change requires some help from SILO, a patch for
    which will be submitted to the maintainer. Essentially, SILO will
    only currently map up to 8MB for the kernel image and that needs to be
    increased.

    Note that neither this patch nor the SILO bits will help with network
    booting. The openfirmware code will only map up to a certain amount
    of kernel image during a network boot and there isn't much we can to
    about that other than to implemented a layered network booting
    facility. Solaris has this, and calls it "wanboot" and we may
    implement something similar at some point.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Introduced by 270637abff0cdf848b910b9f96ad342e1da61c66
    ("[SCTP]: Fix a race between module load and protosw access")

    Reported by Gabriel C:

    In file included from net/sctp/sm_statetable.c:50:
    include/net/sctp/sctp.h: In function 'sctp_v6_pf_init':
    include/net/sctp/sctp.h:392: warning: 'return' with a value, in function returning void
    In file included from net/sctp/sm_statefuns.c:62:
    include/net/sctp/sctp.h: In function 'sctp_v6_pf_init':
    include/net/sctp/sctp.h:392: warning: 'return' with a value, in function returning void
    ...

    Signed-off-by: David S. Miller

    David S. Miller
     
  • …linux-2.6-sched-devel

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched-devel:
    sched: add arch_update_cpu_topology hook.
    sched: add exported arch_reinit_sched_domains() to header file.
    sched: remove double unlikely from schedule()
    sched: cleanup old and rarely used 'debug' features.

    Linus Torvalds
     
  • Fix wrong function name and references to non-x86 architectures.

    Signed-off-by: Matti Linnanvuori mattilinnanvuori@yahoo.com
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Matti Linnanvuori
     
  • fix the bug reported here:

    http://bugzilla.kernel.org/show_bug.cgi?id=10232

    use update_memory_range() instead of add_memory_range() directly
    to avoid closing the gap.

    ( the new code only affects and runs on systems where the MTRR
    workaround triggers. )

    Signed-off-by: Yinghai Lu
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Yinghai Lu
     
  • a system with 256 GB of RAM, when NUMA is disabled crashes the
    following way:

    Your BIOS doesn't leave a aperture memory hole
    Please enable the IOMMU option in the BIOS setup
    This costs you 64 MB of RAM
    Cannot allocate aperture memory hole (ffff8101c0000000,65536K)
    Kernel panic - not syncing: Not enough memory for aperture
    Pid: 0, comm: swapper Not tainted 2.6.25-rc4-x86-latest.git #33

    Call Trace:
    [] panic+0xb2/0x190
    [] ? release_console_sem+0x7c/0x250
    [] ? __alloc_bootmem_nopanic+0x48/0x90
    [] ? free_bootmem+0x29/0x50
    [] gart_iommu_hole_init+0x5e7/0x680
    [] ? alloc_large_system_hash+0x16b/0x310
    [] ? _etext+0x0/0x1
    [] pci_iommu_alloc+0x1c/0x40
    [] mem_init+0x45/0x1a0
    [] start_kernel+0x295/0x380
    [] _sinittext+0x1c2/0x230

    the root cause is : memmap PMD is too big,
    [ffffe200e0600000-ffffe200e07fffff] PMD ->ffff81383c000000 on node 0
    almost near 4G..., and vmemmap_alloc_block will use up the ram under 4G.

    solution will be:
    1. make memmap allocation get memory above 4G...
    2. reserve some dma32 range early before we try to set up memmap for all.
    and release that before pci_iommu_alloc, so gart or swiotlb could get some
    range under 4g limit for sure.

    the patch is using method 2.
    because method1 may need more code to handle SPARSEMEM and SPASEMEM_VMEMMAP

    will get
    Your BIOS doesn't leave a aperture memory hole
    Please enable the IOMMU option in the BIOS setup
    This costs you 64 MB of RAM
    Mapping aperture over 65536 KB of RAM @ 4000000
    Memory: 264245736k/268959744k available (8484k kernel code, 4187464k reserved, 4004k data, 724k init)

    Signed-off-by: Yinghai Lu
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Yinghai Lu
     
  • Clean up: eliminate some compiler noise on x86 when building with strict
    warnings enabled, introduced by commit 345b904c.

    In file included from include2/asm/thread_info_64.h:12,
    from include2/asm/thread_info.h:4,
    from
    /home/cel/src/linux/nfs-2.6/include/linux/thread_info.h:35,
    from
    /home/cel/src/linux/nfs-2.6/include/linux/preempt.h:9,
    from
    /home/cel/src/linux/nfs-2.6/include/linux/spinlock.h:49,
    from /home/cel/src/linux/nfs-2.6/include/linux/mmzone.h:7,
    from /home/cel/src/linux/nfs-2.6/include/linux/gfp.h:4,
    from /home/cel/src/linux/nfs-2.6/include/linux/slab.h:14,
    from /home/cel/src/linux/nfs-2.6/fs/nfsd/nfs4acl.c:40:
    include2/asm/page.h:55: warning: `inline' is not at beginning of
    declaration
    include2/asm/page.h:61: warning: `inline' is not at beginning of
    declaration

    Signed-off-by: Chuck Lever
    Cc: Jeremy Fitzhardinge
    Signed-off-by: Andrew Morton
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Chuck Lever
     
  • mm/slub.c: In function 'slab_alloc':
    mm/slub.c:1637: warning: assignment makes pointer from integer without a cast
    mm/slub.c:1637: warning: assignment makes pointer from integer without a cast
    mm/slub.c: In function 'slab_free':
    mm/slub.c:1796: warning: assignment makes pointer from integer without a cast
    mm/slub.c:1796: warning: assignment makes pointer from integer without a cast

    A cast is needed in the 386 and 486 code because the type is a pointer. In
    every other integer case the original cmpxchg code (and the cmpxchg_local
    which has been copied from it) worked fine, but since we touch a pointer,
    the type needs to be casted in the cmpxchg_local and cmpxchg macros.

    The more recent code (586+) does not have this problem (the cast is already
    there).

    Signed-off-by: Mathieu Desnoyers
    Signed-off-by: Thomas Gleixner
    Reviewed-by: Christoph Lameter
    Cc: Vegard Nossum
    Cc: Pekka Enberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Mathieu Desnoyers
     

21 Mar, 2008

8 commits

  • Will be called each time the scheduling domains are rebuild.
    Needed for architectures that don't have a static cpu topology.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Ingo Molnar

    Heiko Carstens
     
  • Needed so it can be called from outside of sched.c.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Ingo Molnar

    Heiko Carstens
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
    [SPARC64]: Fix atomic backoff limit.

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (46 commits)
    [NET] ifb: set separate lockdep classes for queue locks
    [IPV6] KCONFIG: Fix description about IPV6_TUNNEL.
    [TCP]: Fix shrinking windows with window scaling
    netpoll: zap_completion_queue: adjust skb->users counter
    bridge: use time_before() in br_fdb_cleanup()
    [TG3]: Fix build warning on sparc32.
    MAINTAINERS: bluez-devel is subscribers-only
    audit: netlink socket can be auto-bound to pid other than current->pid (v2)
    [NET]: Fix permissions of /proc/net
    [SCTP]: Fix a race between module load and protosw access
    [NETFILTER]: ipt_recent: sanity check hit count
    [NETFILTER]: nf_conntrack_h323: logical-bitwise & confusion in process_setup()
    [RT2X00] drivers/net/wireless/rt2x00/rt2x00dev.c: remove dead code, fix warning
    [IPV4]: esp_output() misannotations
    [8021Q]: vlan_dev misannotations
    xfrm: ->eth_proto is __be16
    [IPV4]: ipv4_is_lbcast() misannotations
    [SUNRPC]: net/* NULL noise
    [SCTP]: fix misannotated __sctp_rcv_asconf_lookup()
    [PKT_SCHED]: annotate cls_u32
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6.25:
    sh: Use relative paths for mach/cpu symlinks.
    SH: Use newer, non-deprecated __SPIN_LOCK_UNLOCKED macro.
    sh: Fix more user header breakage from sh64 integration.
    sh: Fix uImage build error.
    sh: Fix up the timer IRQ definition for SH7203.
    sh: Fix up the address error exception handler for SH-2.
    serial: sh-sci: Fix fifo stall on SH7760/SH7780/SH7785 SCIF.

    Linus Torvalds
     
  • There is a race is SCTP between the loading of the module
    and the access by the socket layer to the protocol functions.
    In particular, a list of addresss that SCTP maintains is
    not initialized prior to the registration with the protosw.
    Thus it is possible for a user application to gain access
    to SCTP functions before everything has been initialized.
    The problem shows up as odd crashes during connection
    initializtion when we try to access the SCTP address list.

    The solution is to refactor how we do registration and
    initialize the lists prior to registering with the protosw.
    Care must be taken since the address list initialization
    depends on some other pieces of SCTP initialization. Also
    the clean-up in case of failure now also needs to be refactored.

    Signed-off-by: Vlad Yasevich
    Acked-by: Sridhar Samudrala
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    [ARM] 4872/1: Replaces buggy macro in S3C2410 irq include
    [ARM] 4870/1: fix signal return code when enable CONFIG_OABI_COMPAT
    [ARM] 4869/1: ARM: OMAP: Fix compile for mcbsp
    [ARM] 4865/1: Register the F75375 device in the GLAN Tank platform code
    [ARM] 4864/1: Enable write buffer coalescing on IOP
    [ARM] 4863/1: AT91: CAP9 USART definitions for early debug
    [ARM] 4861/1: AT91: Update maintainer email address (again)
    ARM: OMAP1: Fix typo in OMAP1 MPU clock source initialization
    ARM: OMAP: Fix DMA CLINK mask, clear spurious interrupt
    ARM: OMAP: Fix chain_a_transfer return value
    ARM: OMAP: Fix missing makefile options
    ARM: OMAP: Fix GPIO IRQ unmask
    ARM: OMAP: Fix clockevent support for hrtimers

    Linus Torvalds
     
  • The original justification for cap_task_kill() was as follows:

    check_kill_permission() does appropriate uid equivalence checks.
    However with file capabilities it becomes possible for an
    unprivileged user to execute a file with file capabilities
    resulting in a more privileged task with the same uid.

    However now that cap_task_kill() always returns 0 (permission
    granted) when p->uid==current->uid, the whole hook is worthless,
    and only likely to create more subtle problems in the corner cases
    where it might still be called but return -EPERM. Those cases
    are basically when uids are different but euid/suid is equivalent
    as per the check in check_kill_permission().

    One example of a still-broken application is 'at' for non-root users.

    This patch removes cap_task_kill().

    Signed-off-by: Serge Hallyn
    Acked-by: Andrew G. Morgan
    Earlier-version-tested-by: Luiz Fernando N. Capitulino
    Acked-by: Casey Schaufler
    Signed-off-by: Linus Torvalds

    Serge Hallyn
     

20 Mar, 2008

2 commits