25 Oct, 2011

12 commits

  • * 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (63 commits)
    PM / Clocks: Remove redundant NULL checks before kfree()
    PM / Documentation: Update docs about suspend and CPU hotplug
    ACPI / PM: Add Sony VGN-FW21E to nonvs blacklist.
    ARM: mach-shmobile: sh7372 A4R support (v4)
    ARM: mach-shmobile: sh7372 A3SP support (v4)
    PM / Sleep: Mark devices involved in wakeup signaling during suspend
    PM / Hibernate: Improve performance of LZO/plain hibernation, checksum image
    PM / Hibernate: Do not initialize static and extern variables to 0
    PM / Freezer: Make fake_signal_wake_up() wake TASK_KILLABLE tasks too
    PM / Hibernate: Add resumedelay kernel param in addition to resumewait
    MAINTAINERS: Update linux-pm list address
    PM / ACPI: Blacklist Vaio VGN-FW520F machine known to require acpi_sleep=nonvs
    PM / ACPI: Blacklist Sony Vaio known to require acpi_sleep=nonvs
    PM / Hibernate: Add resumewait param to support MMC-like devices as resume file
    PM / Hibernate: Fix typo in a kerneldoc comment
    PM / Hibernate: Freeze kernel threads after preallocating memory
    PM: Update the policy on default wakeup settings
    PM / VT: Cleanup #if defined uglyness and fix compile error
    PM / Suspend: Off by one in pm_suspend()
    PM / Hibernate: Include storage keys in hibernation image on s390
    ...

    Linus Torvalds
     
  • * 'for-next' of git://git.linaro.org/people/triad/linux-pinctrl:
    pinctrl/sirf: fix sirfsoc_get_group_pins prototype
    pinctrl: Don't copy function name when requesting a pin
    pinctrl: Don't copy pin names when registering them
    pinctrl: Remove unsafe __refdata
    pinctrl: get_group_pins() const fixes
    pinctrl: add a driver for the CSR SiRFprimaII pinmux
    pinctrl: add a driver for the U300 pinmux
    drivers: create a pin control subsystem

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1745 commits)
    dp83640: free packet queues on remove
    dp83640: use proper function to free transmit time stamping packets
    ipv6: Do not use routes from locally generated RAs
    |PATCH net-next] tg3: add tx_dropped counter
    be2net: don't create multiple RX/TX rings in multi channel mode
    be2net: don't create multiple TXQs in BE2
    be2net: refactor VF setup/teardown code into be_vf_setup/clear()
    be2net: add vlan/rx-mode/flow-control config to be_setup()
    net_sched: cls_flow: use skb_header_pointer()
    ipv4: avoid useless call of the function check_peer_pmtu
    TCP: remove TCP_DEBUG
    net: Fix driver name for mdio-gpio.c
    ipv4: tcp: fix TOS value in ACK messages sent from TIME_WAIT
    rtnetlink: Add missing manual netlink notification in dev_change_net_namespaces
    ipv4: fix ipsec forward performance regression
    jme: fix irq storm after suspend/resume
    route: fix ICMP redirect validation
    net: hold sock reference while processing tx timestamps
    tcp: md5: add more const attributes
    Add ethtool -g support to virtio_net
    ...

    Fix up conflicts in:
    - drivers/net/Kconfig:
    The split-up generated a trivial conflict with removal of a
    stale reference to Documentation/networking/net-modules.txt.
    Remove it from the new location instead.
    - fs/sysfs/dir.c:
    Fairly nasty conflicts with the sysfs rb-tree usage, conflicting
    with Eric Biederman's changes for tagged directories.

    Linus Torvalds
     
  • * 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (260 commits)
    usb: renesas_usbhs: fixup inconsistent return from usbhs_pkt_push()
    usb/isp1760: Allow to optionally trigger low-level chip reset via GPIOLIB.
    USB: gadget: midi: memory leak in f_midi_bind_config()
    USB: gadget: midi: fix range check in f_midi_out_open()
    QE/FHCI: fixed the CONTROL bug
    usb: renesas_usbhs: tidyup for smatch warnings
    USB: Fix USB Kconfig dependency problem on 85xx/QoirQ platforms
    EHCI: workaround for MosChip controller bug
    usb: gadget: file_storage: fix race on unloading
    USB: ftdi_sio.c: Use ftdi async_icount structure for TIOCMIWAIT, as in other drivers
    USB: ftdi_sio.c:Fill MSR fields of the ftdi async_icount structure
    USB: ftdi_sio.c: Fill LSR fields of the ftdi async_icount structure
    USB: ftdi_sio.c:Fill TX field of the ftdi async_icount structure
    USB: ftdi_sio.c: Fill the RX field of the ftdi async_icount structure
    USB: ftdi_sio.c: Basic icount infrastructure for ftdi_sio
    usb/isp1760: Let OF bindings depend on general CONFIG_OF instead of PPC_OF .
    USB: ftdi_sio: Support TI/Luminary Micro Stellaris BD-ICDI Board
    USB: Fix runtime wakeup on OHCI
    xHCI/USB: Make xHCI driver have a BOS descriptor.
    usb: gadget: add new usb gadget for ACM and mass storage
    ...

    Linus Torvalds
     
  • * 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (38 commits)
    mm: memory hotplug: Check if pages are correctly reserved on a per-section basis
    Revert "memory hotplug: Correct page reservation checking"
    Update email address for stable patch submission
    dynamic_debug: fix undefined reference to `__netdev_printk'
    dynamic_debug: use a single printk() to emit messages
    dynamic_debug: remove num_enabled accounting
    dynamic_debug: consolidate repetitive struct _ddebug descriptor definitions
    uio: Support physical addresses >32 bits on 32-bit systems
    sysfs: add unsigned long cast to prevent compile warning
    drivers: base: print rejected matches with DEBUG_DRIVER
    memory hotplug: Correct page reservation checking
    memory hotplug: Refuse to add unaligned memory regions
    remove the messy code file Documentation/zh_CN/SubmitChecklist
    ARM: mxc: convert device creation to use platform_device_register_full
    new helper to create platform devices with dma mask
    docs/driver-model: Update device class docs
    docs/driver-model: Document device.groups
    kobj_uevent: Ignore if some listeners cannot handle message
    dynamic_debug: make netif_dbg() call __netdev_printk()
    dynamic_debug: make netdev_dbg() call __netdev_printk()
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (59 commits)
    MAINTAINERS: linux-m32r is moderated for non-subscribers
    linux@lists.openrisc.net is moderated for non-subscribers
    Drop default from "DM365 codec select" choice
    parisc: Kconfig: cleanup Kernel page size default
    Kconfig: remove redundant CONFIG_ prefix on two symbols
    cris: remove arch/cris/arch-v32/lib/nand_init.S
    microblaze: add missing CONFIG_ prefixes
    h8300: drop puzzling Kconfig dependencies
    MAINTAINERS: microblaze-uclinux@itee.uq.edu.au is moderated for non-subscribers
    tty: drop superfluous dependency in Kconfig
    ARM: mxc: fix Kconfig typo 'i.MX51'
    Fix file references in Kconfig files
    aic7xxx: fix Kconfig references to READMEs
    Fix file references in drivers/ide/
    thinkpad_acpi: Fix printk typo 'bluestooth'
    bcmring: drop commented out line in Kconfig
    btmrvl_sdio: fix typo 'btmrvl_sdio_sd6888'
    doc: raw1394: Trivial typo fix
    CIFS: Don't free volume_info->UNC until we are entirely done with it.
    treewide: Correct spelling of successfully in comments
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (61 commits)
    HID: hid-magicmouse: Magic Trackpad has 1 button, not 2
    HID: Add device IDs for more SJOY adapters
    HID: primax: remove spurious dependency
    HID: support primax keyboards violating USB HID spec
    HID: usbhid: cancel timer for retry synchronously
    HID: wacom: Set input bits before registration
    HID: consolidate MacbookAir 4,1 mappings
    HID: MacbookAir4,1 and MacbookAir4,2 need entry in hid_mouse_ignore_list[]
    HID: Add support MacbookAir 4,1 keyboard
    HID: hidraw: open count should not increase if error
    HID: hiddev: potential info leak in hiddev_ioctl()
    HID: multitouch: decide if hid-multitouch needs to handle mt devices
    HID: add autodetection of multitouch devices
    HID: "hid-logitech" driver with Logitech Driving Force GT
    HID: hid-logitech-dj: fix off by one
    HID: hidraw: protect hidraw_disconnect() better
    HID: hid-multitouch: add support for the IDEACOM 6650 chip
    HID: Add full support for Logitech Unifying receivers
    HID: hidraw: free list for all error in hidraw_open
    HID: roccat: Kone now reports external profile changes via roccat device
    ...

    Linus Torvalds
     
  • * 'for-linus' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm: (81 commits)
    ARM: 7133/1: SMP: fix per cpu timer setup before the cpu is marked online
    ARM: 7129/1: Add __arm_ioremap_exec for mapping external memory as MT_MEMORY
    ARM: 7136/1: pl330: Fix a race condition
    ARM: smp: fix clipping of number of CPUs
    ARM: 7137/1: Fix error upon adding LL debug
    ARM: Add a few machine types to mach-types
    ARM: 7130/1: dev_archdata: add private iommu extension
    ARM: 7125/1: Add unwinding annotations for 64bit division functions
    ARM: 7120/1: remove bashism in check for multiple zreladdrs
    ARM: 7118/1: rename temp variable in read*_relaxed()
    ARM: 6217/4: mach-realview: expose PB1176 ROM using physmap and map_rom
    ARM: 7098/1: kdump: copy kernel relocation code at the kexec prepare stage
    ARM: 7062/1: cache: detect PIPT I-cache using CTR
    ARM: platform fixups: remove mdesc argument to fixup function
    ARM: 7017/1: Use generic BUG() handler
    ARM: 7102/1: mach-integrator: update defconfig
    ARM: 7087/2: mach-integrator: get timer frequency from clock
    ARM: 7086/2: mach-integrator: modernize clock event registration
    ARM: 7085/2: mach-integrator: clockevent supports oneshot mode
    ARM: 7084/1: mach-integrator: retire some timer macros
    ...

    Linus Torvalds
     
  • Jiri Kosina
     
  • * 'next' of git://selinuxproject.org/~jmorris/linux-security: (95 commits)
    TOMOYO: Fix incomplete read after seek.
    Smack: allow to access /smack/access as normal user
    TOMOYO: Fix unused kernel config option.
    Smack: fix: invalid length set for the result of /smack/access
    Smack: compilation fix
    Smack: fix for /smack/access output, use string instead of byte
    Smack: domain transition protections (v3)
    Smack: Provide information for UDS getsockopt(SO_PEERCRED)
    Smack: Clean up comments
    Smack: Repair processing of fcntl
    Smack: Rule list lookup performance
    Smack: check permissions from user space (v2)
    TOMOYO: Fix quota and garbage collector.
    TOMOYO: Remove redundant tasklist_lock.
    TOMOYO: Fix domain transition failure warning.
    TOMOYO: Remove tomoyo_policy_memory_lock spinlock.
    TOMOYO: Simplify garbage collector.
    TOMOYO: Fix make namespacecheck warnings.
    target: check hex2bin result
    encrypted-keys: check hex2bin result
    ...

    Linus Torvalds
     
  • …'pgt' (early part) and 'smp' into for-linus

    Russell King
     
  • David S. Miller
     

22 Oct, 2011

1 commit

  • Update the documentation about the interaction between the suspend (S3) call
    path and the CPU hotplug infrastructure.
    This patch focusses only on the activities of the freezer, cpu hotplug and
    the notifications involved. It outlines how regular CPU hotplug differs from
    the way it is invoked during suspend and also tries to explain the locking
    involved. In addition to that, it discusses the issue of microcode update
    during CPU hotplug operations.

    Signed-off-by: Srivatsa S. Bhat
    Signed-off-by: Rafael J. Wysocki

    Srivatsa S. Bhat
     

20 Oct, 2011

1 commit


19 Oct, 2011

2 commits

  • The stable@kernel.org email address has been replaced with the
    stable@vger.kernel.org mailing list. Change the stable kernel rules to
    reference the new list instead of the semi-defunct email alias.

    CC:
    CC:
    Signed-off-by: Josh Boyer
    Signed-off-by: Greg Kroah-Hartman

    Josh Boyer
     
  • To support >32-bit physical addresses for UIO_MEM_PHYS type we need to
    extend the width of 'addr' in struct uio_mem. Numerous platforms like
    embedded PPC, ARM, and X86 have support for systems with larger physical
    address than logical.

    Since 'addr' may contain a physical, logical, or virtual address the
    easiest solution is to just change the type to 'phys_addr_t' which
    should always be greater than or equal to the sizeof(void *) such that
    it can properly hold any of the address types.

    For physical address we can support up to a 44-bit physical address on a
    typical 32-bit system as we utilize remap_pfn_range() for the mapping of
    the memory region and pfn's are represnted by shifting the address by
    the page size (typically 4k).

    Signed-off-by: Kai Jiang
    Signed-off-by: Minghuan Lian
    Signed-off-by: Kumar Gala
    Signed-off-by: Hans J. Koch
    Signed-off-by: Greg Kroah-Hartman

    Kai Jiang
     

18 Oct, 2011

1 commit


17 Oct, 2011

8 commits

  • Following the discussion here:
    http://lists.ozlabs.org/pipermail/devicetree-discuss/2011-August/007301.html

    The L2x0 L2 Cache Controllers support a combined interrupt line
    which can be used for several events (e.g. read/write/parity errors on
    tag/data RAM, event counter increment/overflow). Unfortunately the
    OF binding added in c519ecf2 ("ARM: 7009/1: l2x0: Add OF based
    initialization") does not represent the interrupt.

    This patch adds an "interrupts" property to the L2x0 OF binding,
    representing the combined interrupt line.

    Signed-off-by: Mark Rutland
    Acked-by: Rob Herring
    Acked-by: Will Deacon
    Cc: Grant Likely
    Cc: Arnd Bergmann
    Cc: Olof Johansson
    Cc: Barry Song
    Signed-off-by: Russell King

    Mark Rutland
     
  • This adds probing for ARM L2x0 cache controllers via device tree. Support
    includes the L210, L220, and PL310 controllers. The binding allows setting
    up cache RAM latencies and filter addresses (PL310 only).

    Signed-off-by: Rob Herring
    Acked-by: Grant Likely
    Acked-by: Arnd Bergmann
    Acked-by: Olof Johansson
    Acked-by: Barry Song
    Signed-off-by: Russell King

    Rob Herring
     
  • Patch "PM / Hibernate: Add resumewait param to support MMC-like
    devices as resume file" added the resumewait kernel command line
    option. The present patch adds resumedelay so that
    resumewait/delay were analogous to rootwait/delay.

    [rjw: Modified the subject and changelog slightly.]

    Signed-off-by: Barry Song
    Acked-by: Pavel Machek
    Signed-off-by: Rafael J. Wysocki

    Barry Song
     
  • Some devices like MMC are async detected very slow. For example,
    drivers/mmc/host/sdhci.c launches a 200ms delayed work to detect
    MMC partitions then add disk.

    We have wait_for_device_probe() and scsi_complete_async_scans()
    before calling swsusp_check(), but it is not enough to wait for MMC.

    This patch adds resumewait kernel param just like rootwait so
    that we have enough time to wait until MMC is ready. The difference is
    that we wait for resume partition whereas rootwait waits for rootfs
    partition (which may be on a different device).

    This patch will make hibernation support many embedded products
    without SCSI devices, but with devices like MMC.

    [rjw: Modified the changelog slightly.]

    Signed-off-by: Barry Song
    Reviewed-by: Valdis Kletnieks
    Signed-off-by: Rafael J. Wysocki

    Barry Song
     
  • There is a problem with the current ordering of hibernate code which
    leads to deadlocks in some filesystems' memory shrinkers. Namely,
    some filesystems use freezable kernel threads that are inactive when
    the hibernate memory preallocation is carried out. Those same
    filesystems use memory shrinkers that may be triggered by the
    hibernate memory preallocation. If those memory shrinkers wait for
    the frozen kernel threads, the hibernate process deadlocks (this
    happens with XFS, for one example).

    Apparently, it is not technically viable to redesign the filesystems
    in question to avoid the situation described above, so the only
    possible solution of this issue is to defer the freezing of kernel
    threads until the hibernate memory preallocation is done, which is
    implemented by this change.

    Unfortunately, this requires the memory preallocation to be done
    before the "prepare" stage of device freeze, so after this change the
    only way drivers can allocate additional memory for their freeze
    routines in a clean way is to use PM notifiers.

    Reported-by: Christoph
    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • This patch (as1485) documents a change to the kernel's default wakeup
    policy. Devices that forward wakeup requests between buses should be
    enabled for wakeup by default.

    Signed-off-by: Alan Stern
    Signed-off-by: Rafael J. Wysocki

    Alan Stern
     
  • Record S3 failure time about each reason and the latest two failed
    devices' names in S3 progress.
    We can check it through 'suspend_stats' entry in debugfs.

    The motivation of the patch:

    We are enabling power features on Medfield. Comparing with PC/notebook,
    a mobile enters/exits suspend-2-ram (we call it s3 on Medfield) far
    more frequently. If it can't enter suspend-2-ram in time, the power
    might be used up soon.

    We often find sometimes, a device suspend fails. Then, system retries
    s3 over and over again. As display is off, testers and developers
    don't know what happens.

    Some testers and developers complain they don't know if system
    tries suspend-2-ram, and what device fails to suspend. They need
    such info for a quick check. The patch adds suspend_stats under
    debugfs for users to check suspend to RAM statistics quickly.

    If not using this patch, we have other methods to get info about
    what device fails. One is to turn on CONFIG_PM_DEBUG, but users
    would get too much info and testers need recompile the system.

    In addition, dynamic debug is another good tool to dump debug info.
    But it still doesn't match our utilization scenario closely.
    1) user need write a user space parser to process the syslog output;
    2) Our testing scenario is we leave the mobile for at least hours.
    Then, check its status. No serial console available during the
    testing. One is because console would be suspended, and the other
    is serial console connecting with spi or HSU devices would consume
    power. These devices are powered off at suspend-2-ram.

    Signed-off-by: ShuoX Liu
    Signed-off-by: Rafael J. Wysocki

    ShuoX Liu
     
  • * pm-runtime:
    PM / Runtime: Handle .runtime_suspend() failure correctly
    PM / Runtime: Fix kerneldoc comment for rpm_suspend()
    PM / Runtime: Update document about callbacks

    Rafael J. Wysocki
     

13 Oct, 2011

1 commit

  • This creates a subsystem for handling of pin control devices.
    These are devices that control different aspects of package
    pins.

    Currently it handles pinmuxing, i.e. assigning electronic
    functions to groups of pins on primarily PGA and BGA type of
    chip packages which are common in embedded systems.

    The plan is to also handle other I/O pin control aspects
    such as biasing, driving, input properties such as
    schmitt-triggering, load capacitance etc within this
    subsystem, to remove a lot of ARM arch code as well as
    feature-creepy GPIO drivers which are implementing the same
    thing over and over again.

    This is being done to depopulate the arch/arm/* directory
    of such custom drivers and try to abstract the infrastructure
    they all need. See the Documentation/pinctrl.txt file that is
    part of this patch for more details.

    ChangeLog v1->v2:

    - Various minor fixes from Joe's and Stephens review comments
    - Added a pinmux_config() that can invoke custom configuration
    with arbitrary data passed in or out to/from the pinmux driver

    ChangeLog v2->v3:

    - Renamed subsystem folder to "pinctrl" since we will likely
    want to keep other pin control such as biasing in this
    subsystem too, so let us keep to something generic even though
    we're mainly doing pinmux now.
    - As a consequence, register pins as an abstract entity separate
    from the pinmux. The muxing functions will claim pins out of the
    pin pool and make sure they do not collide. Pins can now be
    named by the pinctrl core.
    - Converted the pin lookup from a static array into a radix tree,
    I agreed with Grant Likely to try to avoid any static allocation
    (which is crap for device tree stuff) so I just rewrote this
    to be dynamic, just like irq number descriptors. The
    platform-wide definition of number of pins goes away - this is
    now just the sum total of the pins registered to the subsystem.
    - Make sure mappings with only a function name and no device
    works properly.

    ChangeLog v3->v4:

    - Define a number space per controller instead of globally,
    Stephen and Grant requested the same thing so now maps need to
    define target controller, and the radix tree of pin descriptors
    is a property on each pin controller device.
    - Add a compulsory pinctrl device entry to the pinctrl mapping
    table. This must match the pinctrl device, like "pinctrl.0"
    - Split the file core.c in two: core.c and pinmux.c where the
    latter carry all pinmux stuff, the core is for generic pin
    control, and use local headers to access functionality between
    files. It is now possible to implement a "blank" pin controller
    without pinmux capabilities. This split will make new additions
    like pindrive.c, pinbias.c etc possible for combined drivers
    and chunks of functionality which is a GoodThing(TM).
    - Rewrite the interaction with the GPIO subsystem - the pin
    controller descriptor now handles this by defining an offset
    into the GPIO numberspace for its handled pin range. This is
    used to look up the apropriate pin controller for a GPIO pin.
    Then that specific GPIO range is matched 1-1 for the target
    controller instance.
    - Fixed a number of review comments from Joe Perches.
    - Broke out a header file pinctrl.h for the core pin handling
    stuff that will be reused by other stuff than pinmux.
    - Fixed some erroneous EXPORT() stuff.
    - Remove mispatched U300 Kconfig and Makefile entries
    - Fixed a number of review comments from Stephen Warren, not all
    of them - still WIP. But I think the new mapping that will
    specify which function goes to which pin mux controller address
    50% of your concerns (else beat me up).

    ChangeLog v4->v5:

    - Defined a "position" for each function, so the pin controller now
    tracks a function in a certain position, and the pinmux maps define
    what position you want the function in. (Feedback from Stephen
    Warren and Sascha Hauer).
    - Since we now need to request a combined function+position from
    the machine mapping table that connect mux settings to drivers,
    it was extended with a position field and a name field. The
    name field is now used if you e.g. need to switch between two
    mux map settings at runtime.
    - Switched from a class device to using struct bus_type for this
    subsystem. Verified sysfs functionality: seems to work fine.
    (Feedback from Arnd Bergmann and Greg Kroah-Hartman)
    - Define a per pincontroller list of GPIO ranges from the GPIO
    pin space that can be handled by the pin controller. These can
    be added one by one at runtime. (Feedback from Barry Song)
    - Expanded documentation of regulator_[get|enable|disable|put]
    semantics.
    - Fixed a number of review comments from Barry Song. (Thanks!)

    ChangeLog v5->v6:

    - Create an abstract pin group concept that can sort pins into
    named and enumerated groups no matter what the use of these
    groups may be, one possible usecase is a group of pins being
    muxed in or so. The intention is however to also use these
    groups for other pin control activities.
    - Make it compulsory for pinmux functions to associate with
    at least one group, so the abstract pin group concept is used
    to define the groups of pins affected by a pinmux function.
    The pinmux driver interface has been altered so as to enforce
    a function to list applicable groups per function.
    - Provide an optional .group entry in the pinmux machine map
    so the map can select beteween different available groups
    to be used with a certain function.
    - Consequent changes all over the place so that e.g. debugfs
    present reasonable information about the world.
    - Drop the per-pin mux (*config) function in the pinmux_ops
    struct - I was afraid that this would start to be used for
    things totally unrelated to muxing, we can introduce that to
    the generic struct pinctrl_ops if needed. I want to keep
    muxing orthogonal to other pin control subjects and not mix
    these things up.

    ChangeLog v6->v7:

    - Make it possible to have several map entries matching the
    same device, pin controller and function, but using
    a different group, and alter the semantics so that
    pinmux_get() will pick all matching map entries, and
    store the associated groups in a list. The list will
    then be iterated over at pinmux_enable()/pinmux_disable()
    and corresponding driver functions called for each
    defined group. Notice that you're only allowed to map
    multiple *groups* to the same
    { device, pin controller, function } triplet, attempts
    to map the same device to multiple pin controllers will
    for example fail. This is hopefully the crucial feature
    requested by Stephen Warren.
    - Add a pinmux hogging field to the pinmux mapping entries,
    and enable the pinmux core to hog pinmux map entries.
    This currently only works for pinmuxes without assigned
    devices as it looks now, but with device trees we can
    look up the corresponding struct device * entries when
    we register the pinmux driver, and have it hog each
    pinmux map in turn, for a simple approach to
    non-dynamic pin muxing. This addresses an issue from
    Grant Likely that the machine should take care of as
    much of the pinmux setup as possible, not the devices.
    By supplying a list of hogs, it can now instruct the
    core to take care of any static mappings.
    - Switch pinmux group retrieveal function to grab an
    array of strings representing the groups rather than an
    array of unsigned and rewrite accordingly.
    - Alter debugfs to show the grouplist handled by each
    pinmux. Also add a list of hogs.
    - Dynamically allocate a struct pinmux at pinmux_get() and
    free it at pinmux_put(), then add these to the global
    list of pinmuxes active as we go along.
    - Go over the list of pinmux maps at pinmux_get() time
    and repeatedly apply matches.
    - Retrieve applicable groups per function from the driver
    as a string array rather than a unsigned array, then
    lookup the enumerators.
    - Make the device to pinmux map a singleton - only allow the
    mapping table to be registered once and even tag the
    registration function with __init so it surely won't be
    abused.
    - Create a separate debugfs file to view the pinmux map at
    runtime.
    - Introduce a spin lock to the pin descriptor struct, lock it
    when modifying pin status entries. Reported by Stijn Devriendt.
    - Fix up the documentation after review from Stephen Warren.
    - Let the GPIO ranges give names as const char * instead of some
    fixed-length string.
    - add a function to unregister GPIO ranges to mirror the
    registration function.
    - Privatized the struct pinctrl_device and removed it from the
    API, the drivers do not need to know
    the members of this struct. It is now in the local header
    "core.h".
    - Rename the concept of "anonymous" mux maps to "system" muxes
    and add convenience macros and documentation.

    ChangeLog v7->v8:

    - Delete the leftover pinmux_config() function from the
    header.
    - Fix a race condition found by Stijn Devriendt in pin_request()

    ChangeLog v8->v9:

    - Drop the bus_type and the sysfs attributes and all, we're not on
    the clear about how this should be used for e.g. userspace
    interfaces so let us save this for the future.
    - Use the right name in MAINTAINERS, PIN CONTROL rather than
    PINMUX
    - Don't kfree() the device state holder, let the .remove() callback
    handle this.
    - Fix up numerous kerneldoc headers to have one line for the function
    description and more verbose documentation below the parameters

    ChangeLog v9->v10:
    - pinctrl: EXPORT_SYMBOL needs export.h, folded in a patch
    from Steven Rothwell
    - fix pinctrl_register error handling, folded in a patch from
    Axel Lin
    - Various fixes to documentation text so that it's consistent.
    - Removed pointless comment from drivers/Kconfig
    - Removed dependency on SYSFS since we removed the bus in
    v9.
    - Renamed hopelessly abbreviated pctldev_* functions to the
    more verbose pinctrl_dev_*
    - Drop mutex properly when looking up GPIO ranges
    - Return NULL instead of ERR_PTR() errors on registration of
    pin controllers, using cast pointers is fragile. We can
    live without the detailed error codes for sure.

    Cc: Stijn Devriendt
    Cc: Joe Perches
    Cc: Russell King
    Acked-by: Grant Likely
    Acked-by: Stephen Warren
    Tested-by: Barry Song
    Signed-off-by: Linus Walleij

    Linus Walleij
     

12 Oct, 2011

2 commits


11 Oct, 2011

2 commits

  • This UML breakage:

    linux-2.6.30.1[3800] vsyscall fault (exploit attempt?) ip:ffffffffff600000 cs:33 sp:7fbfb9c498 ax:ffffffffff600000 si:0 di:606790
    linux-2.6.30.1[3856] vsyscall fault (exploit attempt?) ip:ffffffffff600000 cs:33 sp:7fbfb13168 ax:ffffffffff600000 si:0 di:606790

    Is caused by commit 3ae36655 ("x86-64: Rework vsyscall emulation and add
    vsyscall= parameter") - the vsyscall emulation code is not fully cooked
    yet as UML relies on some rather fragile SIGSEGV semantics.

    Linus suggested in https://lkml.org/lkml/2011/8/9/376 to default
    to vsyscall=native for now, this patch implements that.

    Signed-off-by: Adrian Bunk
    Acked-by: Andrew Lutomirski
    Cc: H. Peter Anvin
    Link: http://lkml.kernel.org/r/20111005214047.GE14406@localhost.pp.htv.fi
    Signed-off-by: Ingo Molnar

    Adrian Bunk
     
  • Support for device power domains has been introduced in
    commit 9659cc0678b954f187290c6e8b247a673c5d37e1 (PM: Make
    system-wide PM and runtime PM treat subsystems consistently),
    also power domain callbacks will take precedence over subsystem ones
    from commit 4d27e9dcff00a6425d779b065ec8892e4f391661(PM: Make
    power domain callbacks take precedence over subsystem ones).

    So update part of "Device Runtime PM Callbacks" in
    Documentation/power/runtime_pm.txt.

    Signed-off-by: Ming Lei
    Signed-off-by: Rafael J. Wysocki

    Ming Lei
     

08 Oct, 2011

4 commits

  • * pm-devfreq:
    PM / devfreq: Add basic governors
    PM / devfreq: Add common sysfs interfaces
    PM: Introduce devfreq: generic DVFS framework with device-specific OPPs
    PM / OPP: Add OPP availability change notifier.

    Rafael J. Wysocki
     
  • * pm-qos:
    PM / QoS: Update Documentation for the pm_qos and dev_pm_qos frameworks
    PM / QoS: Add function dev_pm_qos_read_value() (v3)
    PM QoS: Add global notification mechanism for device constraints
    PM QoS: Implement per-device PM QoS constraints
    PM QoS: Generalize and export constraints management code
    PM QoS: Reorganize data structs
    PM QoS: Code reorganization
    PM QoS: Minor clean-ups
    PM QoS: Move and rename the implementation files

    Rafael J. Wysocki
     
  • * pm-runtime:
    PM / Tracing: build rpm-traces.c only if CONFIG_PM_RUNTIME is set
    PM / Runtime: Replace dev_dbg() with trace_rpm_*()
    PM / Runtime: Introduce trace points for tracing rpm_* functions
    PM / Runtime: Don't run callbacks under lock for power.irq_safe set
    USB: Add wakeup info to debugging messages
    PM / Runtime: pm_runtime_idle() can be called in atomic context
    PM / Runtime: Add macro to test for runtime PM events
    PM / Runtime: Add might_sleep() to runtime PM functions

    Rafael J. Wysocki
     
  • Conflicts:
    net/batman-adv/soft-interface.c

    David S. Miller
     

07 Oct, 2011

1 commit


05 Oct, 2011

2 commits


04 Oct, 2011

1 commit


02 Oct, 2011

2 commits

  • Four cpufreq-like governors are provided as examples.

    powersave: use the lowest frequency possible. The user (device) should
    set the polling_ms as 0 because polling is useless for this governor.

    performance: use the highest freqeuncy possible. The user (device)
    should set the polling_ms as 0 because polling is useless for this
    governor.

    userspace: use the user specified frequency stored at
    devfreq.user_set_freq. With sysfs support in the following patch, a user
    may set the value with the sysfs interface.

    simple_ondemand: simplified version of cpufreq's ondemand governor.

    When a user updates OPP entries (enable/disable/add), OPP framework
    automatically notifies devfreq to update operating frequency
    accordingly. Thus, devfreq users (device drivers) do not need to update
    devfreq manually with OPP entry updates or set polling_ms for powersave
    , performance, userspace, or any other "static" governors.

    Note that these are given only as basic examples for governors and any
    devices with devfreq may implement their own governors with the drivers
    and use them.

    Signed-off-by: MyungJoo Ham
    Signed-off-by: Kyungmin Park
    Reviewed-by: Mike Turquette
    Acked-by: Kevin Hilman
    Signed-off-by: Rafael J. Wysocki

    MyungJoo Ham
     
  • Device specific sysfs interface /sys/devices/.../power/devfreq_*
    - governor R: name of governor
    - cur_freq R: current frequency
    - polling_interval R: polling interval in ms given with devfreq profile
    W: update polling interval.
    - central_polling R: 1 if polling is managed by devfreq framework

    Signed-off-by: MyungJoo Ham
    Signed-off-by: Kyungmin Park
    Reviewed-by: Mike Turquette
    Acked-by: Kevin Hilman
    Signed-off-by: Rafael J. Wysocki
    --
    Documentation/ABI/testing/sysfs-class-devfreq | 44 ++++++++++++++++
    drivers/devfreq/devfreq.c | 69 ++++++++++++++++++++++++++
    2 files changed, 113 insertions(+)
    create mode 100644 Documentation/ABI/testing/sysfs-class-devfreq

    MyungJoo Ham