02 Nov, 2011

20 commits

  • This patch, based on virtio PCI driver, adds support for memory
    mapped (platform) virtio device. This should allow environments
    like qemu to use virtio-based block & network devices even on
    platforms without PCI support.

    One can define and register a platform device which resources
    will describe memory mapped control registers and "mailbox"
    interrupt. Such device can be also instantiated using the Device
    Tree node with compatible property equal "virtio,mmio".

    Cc: Anthony Liguori
    Cc: Michael S.Tsirkin
    Signed-off-by: Pawel Moll
    Signed-off-by: Rusty Russell

    Pawel Moll
     
  • For the MSI but non-per_vq_vector case, the config/change vq
    also gets added to the list of vqs that need to process the
    MSI interrupt. This is not needed as config has it's own
    handler (vp_config_changed). In any case, vring_interrupt()
    finds nothing needs to be done on this vq.

    I tested this patch by testing the "Fallback:" and "Finally
    fall back" cases in vp_find_vqs(). Please review.

    Signed-off-by: Krishna Kumar
    Acked-by: Michael S. Tsirkin
    Signed-off-by: Rusty Russell

    Krishna Kumar
     
  • On s390 I have seen some random

    "Warning: unable to open an initial console"

    boot failure. Turns out that tty_open fails, because the
    hvc_alloc was not yet done. In former times this could not happen,
    since the probe function automatically called hvc_alloc. With newer
    versions (multiport) some hostguest interaction is required
    before hvc_alloc is called. This might be too late, especially if
    an initramfs is involved. Lets use a completion if we have
    multiport and an early console.

    [Amit:
    * Use NULL instead of 0 for pointer comparison
    * Rename 'port_added' to 'early_console_added'
    * Re-format, re-word commit message
    * Rebase patch on top of current queue]

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Amit Shah
    Acked-by: Chrstian Borntraeger
    Signed-off-by: Rusty Russell

    Christian Borntraeger
     
  • This commit adds port-specific stats for the number of bytes received,
    sent and discarded. They're exposed via the debugfs interface. This
    data can be used to check for data loss bugs (or disprove such claims).
    It can also be used for accounting, if there's such a need.

    The stats remain valid throughout the lifetime of the port. Unplugging
    a port will reset the stats. The numbers are not reset across port
    opens/closes.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • discard_port_data() used virtqueue_get_buf() directly instead of using
    get_inbuf(). Fix this, so that we get accounting for all received
    bytes. This also simplifies the code a lot.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • 'ret' is a misnomer in discard_port_data() since we don't return the
    value. Rename it to 'err'.
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • Instead of pulling in a buffer from the vq each time it's called,
    get_inbuf() now checks if the current active buffer, in port->inbuf is
    valid. If it is, just returns a pointer to it. This ends up
    simplifying a lot of code calling get_inbuf() since the check for
    port->inbuf being valid was done by all the callers.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • get_inbuf() returns void *. There's no reason to return void pointers
    instead of the correct struct port_buffer *.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • Get ready to support suspend/resume by using the freezable calls so that
    blocking read/write syscalls are handled properly across suspend/resume.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • We don't allow port name changes dynamically for a port. So any
    requests by the host to change the name are ignored.

    Before this patch, if the hypervisor sent a port name while we had one
    set already, we would leak memory equivalent to the size of the old
    name.

    This scenario wasn't expected so far, but with the suspend-resume
    support, we'll send the VIRTIO_CONSOLE_PORT_READY message after restore,
    which can get us into this situation.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • Convert spaces to tabs and fix indentation for an if statement split
    into multiple lines.

    Signed-off-by: Amit Shah
    Signed-off-by: Rusty Russell

    Amit Shah
     
  • This patch modifies virtio-net to use virtio_config_val() instead
    of a 'if(virtio_has_feature()) vdev->config->get()' construct to retrieve
    optional values from the config space.

    Cc: Amit Shah
    Cc: "Michael S. Tsirkin"
    Cc: Rusty Russell
    Cc: virtualization@lists.linux-foundation.org
    Signed-off-by: Sasha Levin
    Signed-off-by: Rusty Russell

    Sasha Levin
     
  • This patch modifies virtio-console to use virtio_config_val() instead
    of a 'if(virtio_has_feature()) vdev->config->get()' construct to retrieve
    optional values from the config space.

    Cc: Amit Shah
    Cc: "Michael S. Tsirkin"
    Cc: Rusty Russell
    Cc: virtualization@lists.linux-foundation.org
    Signed-off-by: Sasha Levin
    Signed-off-by: Rusty Russell

    Sasha Levin
     
  • * 'for-linus/i2c-3.2' of git://git.fluff.org/bjdooks/linux: (47 commits)
    i2c-s3c2410: Add device tree support
    i2c-s3c2410: Keep a copy of platform data and use it
    i2c-nomadik: cosmetic coding style corrections
    i2c-au1550: dev_pm_ops conversion
    i2c-au1550: increase timeout waiting for master done
    i2c-au1550: remove unused ack_timeout
    i2c-au1550: remove usage of volatile keyword
    i2c-tegra: __iomem annotation fix
    i2c-eg20t: Add initialize processing in case i2c-error occurs
    i2c-eg20t: Fix flag setting issue
    i2c-eg20t: add stop sequence in case wait-event timeout occurs
    i2c-eg20t: Separate error processing
    i2c-eg20t: Fix 10bit access issue
    i2c-eg20t: Modify returned value s32 to long
    i2c-eg20t: Fix bus-idle waiting issue
    i2c-designware: Fix PCI core warning on suspend/resume
    i2c-designware: Add runtime power management support
    i2c-designware: Add support for Designware core behind PCI devices.
    i2c-designware: Push all register reads/writes into the core code.
    i2c-designware: Support multiple cores using same ISR
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://opensource.wolfsonmicro.com/regulator: (22 commits)
    regulator: Constify constraints name
    regulator: Fix possible nullpointer dereference in regulator_enable()
    regulator: gpio-regulator add dependency on GENERIC_GPIO
    regulator: Add module.h include to gpio-regulator
    regulator: Add driver for gpio-controlled regulators
    regulator: remove duplicate REG_CTRL2 defines in tps65023
    regulator: Clarify documentation for regulator-regulator supplies
    regulator: Fix some bitrot in the machine driver documentation
    regulator: tps65023: Added support for the similiar TPS65020 chip
    regulator: tps65023: Setting correct core regulator for tps65021
    regulator: tps65023: Set missing bit for update core-voltage
    regulator: tps65023: Fixes i2c configuration issues
    regulator: Add debugfs file showing the supply map table
    regulator: tps6586x: add SMx slew rate setting
    regulator: tps65023: Fixes i2c configuration issues
    regulator: tps6507x: Remove num_voltages array
    regulator: max8952: removed unused mutex.
    regulator: fix regulator/consumer.h kernel-doc warning
    regulator: Ensure enough enable time for max8649
    regulator: 88pm8607: Fix off-by-one value range checking in the case of no id is matched
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
    firewire: ohci: fix isochronous DMA synchronization
    firewire: ohci: work around selfID junk due to wrong gap count
    firewire: net: Use posted writes
    firewire: use clamp and min3 macros
    firewire: ohci: optimize TSB41BA3D detection
    firewire: ohci: TSB41BA3D support tweaks
    firewire: ohci: Add support for TSB41BA3D phy
    firewire: ohci: Move code from the bus reset tasklet into a workqueue
    firewire: sbp2: fold two functions into one
    firewire: sbp2: move some code to more sensible places
    firewire: sbp2: remove obsolete reference counting

    Linus Torvalds
     
  • * 'pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    pstore: make pstore write function return normal success/fail value
    pstore: change mutex locking to spin_locks
    pstore: defer inserting OOPS entries into pstore

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (62 commits)
    mlx4_core: Deprecate log_num_vlan module param
    IB/mlx4: Don't set VLAN in IBoE WQEs' control segment
    IB/mlx4: Enable 4K mtu for IBoE
    RDMA/cxgb4: Mark QP in error before disabling the queue in firmware
    RDMA/cxgb4: Serialize calls to CQ's comp_handler
    RDMA/cxgb3: Serialize calls to CQ's comp_handler
    IB/qib: Fix issue with link states and QSFP cables
    IB/mlx4: Configure extended active speeds
    mlx4_core: Add extended port capabilities support
    IB/qib: Hold links until tuning data is available
    IB/qib: Clean up checkpatch issue
    IB/qib: Remove s_lock around header validation
    IB/qib: Precompute timeout jiffies to optimize latency
    IB/qib: Use RCU for qpn lookup
    IB/qib: Eliminate divide/mod in converting idx to egr buf pointer
    IB/qib: Decode path MTU optimization
    IB/qib: Optimize RC/UC code by IB operation
    IPoIB: Use the right function to do DMA unmap pages
    RDMA/cxgb4: Use correct QID in insert_recv_cqe()
    RDMA/cxgb4: Make sure flush CQ entries are collected on connection close
    ...

    Linus Torvalds
     
  • …sc', 'mlx4', 'misc', 'nes', 'qib' and 'xrc' into for-next

    Roland Dreier
     
  • * git://github.com/herbertx/crypto: (48 commits)
    crypto: user - Depend on NET instead of selecting it
    crypto: user - Add dependency on NET
    crypto: talitos - handle descriptor not found in error path
    crypto: user - Initialise match in crypto_alg_match
    crypto: testmgr - add twofish tests
    crypto: testmgr - add blowfish test-vectors
    crypto: Make hifn_795x build depend on !ARCH_DMA_ADDR_T_64BIT
    crypto: twofish-x86_64-3way - fix ctr blocksize to 1
    crypto: blowfish-x86_64 - fix ctr blocksize to 1
    crypto: whirlpool - count rounds from 0
    crypto: Add userspace report for compress type algorithms
    crypto: Add userspace report for cipher type algorithms
    crypto: Add userspace report for rng type algorithms
    crypto: Add userspace report for pcompress type algorithms
    crypto: Add userspace report for nivaead type algorithms
    crypto: Add userspace report for aead type algorithms
    crypto: Add userspace report for givcipher type algorithms
    crypto: Add userspace report for ablkcipher type algorithms
    crypto: Add userspace report for blkcipher type algorithms
    crypto: Add userspace report for ahash type algorithms
    ...

    Linus Torvalds
     

01 Nov, 2011

20 commits

  • …ra-iomem' into for-linus/i2c-3.2

    Ben Dooks
     
  • Conflicts:
    drivers/i2c/busses/i2c-designware-core.c

    Fixed up merge conflic

    Ben Dooks
     
  • … 'for-32/i2c/designware-v5' and 'for-32/i2c/au1550' into for-linus/i2c-3.2

    Ben Dooks
     
  • Quoth Andrew:

    - Most of MM. Still waiting for the poweroc guys to get off their
    butts and review some threaded hugepages patches.

    - alpha

    - vfs bits

    - drivers/misc

    - a few core kerenl tweaks

    - printk() features

    - MAINTAINERS updates

    - backlight merge

    - leds merge

    - various lib/ updates

    - checkpatch updates

    * akpm: (127 commits)
    epoll: fix spurious lockdep warnings
    checkpatch: add a --strict check for utf-8 in commit logs
    kernel.h/checkpatch: mark strict_strto and simple_strto as obsolete
    llist-return-whether-list-is-empty-before-adding-in-llist_add-fix
    wireless: at76c50x: follow rename pack_hex_byte to hex_byte_pack
    fat: follow rename pack_hex_byte() to hex_byte_pack()
    security: follow rename pack_hex_byte() to hex_byte_pack()
    kgdb: follow rename pack_hex_byte() to hex_byte_pack()
    lib: rename pack_hex_byte() to hex_byte_pack()
    lib/string.c: fix strim() semantics for strings that have only blanks
    lib/idr.c: fix comment for ida_get_new_above()
    lib/percpu_counter.c: enclose hotplug only variables in hotplug ifdef
    lib/bitmap.c: quiet sparse noise about address space
    lib/spinlock_debug.c: print owner on spinlock lockup
    lib/kstrtox: common code between kstrto*() and simple_strto*() functions
    drivers/leds/leds-lp5521.c: check if reset is successful
    leds: turn the blink_timer off before starting to blink
    leds: save the delay values after a successful call to blink_set()
    drivers/leds/leds-gpio.c: use gpio_get_value_cansleep() when initializing
    drivers/leds/leds-lm3530.c: add __devexit_p where needed
    ...

    Linus Torvalds
     
  • There is no functional change.

    Signed-off-by: Andy Shevchenko
    Acked-by: John W. Linville
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Shevchenko
     
  • Make sure that the reset is successful by issuing a dummy read to R
    channel current register and check its default value. On some platforms,
    without this dummy read, any further access to {R/G/B}_EXEC will not have
    any impact.

    [akpm@linux-foundation.org: fix up code comment]
    Signed-off-by: srinidhi kasagar
    Tested-by: Naga Radhesh
    Acked-by: Linus Walleij
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Srinidhi KASAGAR
     
  • Depending on the implementation of the hardware blinking function in
    blink_set(), the led can support hardware blinking for some values of
    delay_on and delay_off and fall-back to software blinking for some other
    values.

    Turning off the blink_timer unconditionally before starting to blink
    make sure that a sequence like:

    OFF
    hardware blinking
    software blinking
    hardware blinking

    does not leave the software blinking timer active.

    Signed-off-by: Antonio Ospite
    Reviewed-by: Johannes Berg
    Cc: Richard Purdie
    Cc:
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Antonio Ospite
     
  • When calling the hardware blinking function implemented by blink_set(),
    the delay_on and delay_off values are not preserved across calls.

    Fix that and make the "timer" trigger work as expected when hardware
    blinking is available.

    BEFORE the fix:
    $ cd /sys/class/leds/someled
    $ echo timer > trigger
    $ cat delay_on delay_off
    0
    0
    $ echo 100 > delay_on
    $ cat delay_on delay_off
    0
    0
    $ echo 100 > delay_off
    $ cat delay_on delay_off
    0
    0

    AFTER the fix:
    $ cd /sys/class/leds/someled
    $ echo timer > trigger
    $ cat delay_on delay_off
    0
    0
    $ echo 100 > delay_on
    $ cat delay_on delay_off
    100
    0
    $ echo 100 > delay_off
    $ cat delay_on delay_off
    100
    100

    Signed-off-by: Antonio Ospite
    Reviewed-by: Johannes Berg
    Cc: Richard Purdie
    Cc:
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Antonio Ospite
     
  • I get the following warning:

    ------------[ cut here ]------------
    WARNING: at drivers/gpio/gpiolib.c:1559 __gpio_get_value+0x90/0x98()
    Modules linked in:
    Call Trace:
    [] dump_stack+0x8/0x34
    [] warn_slowpath_common+0x78/0xa0
    [] __gpio_get_value+0x90/0x98
    [] create_gpio_led+0xdc/0x194
    [] gpio_led_probe+0x290/0x36c
    [] driver_probe_device+0x78/0x1b0
    [] __driver_attach+0xc0/0xc8
    [] bus_for_each_dev+0x64/0xb0
    [] bus_add_driver+0x1c8/0x2a8
    [] driver_register+0x90/0x180
    [] do_one_initcall+0x38/0x160

    ---[ end trace ee38723fbefcd65c ]---

    My GPIOs are on an I2C port expander, so we must use the *_cansleep()
    variant of the GPIO functions. This is was not being done in
    create_gpio_led().

    We can change gpio_get_value() to gpio_get_value_cansleep() because it is
    only called from the platform_driver probe function, which is a context
    where we can sleep.

    Only tested on my gpio_cansleep() system, but it seems safe for all
    systems.

    Signed-off-by: David Daney
    Cc: Richard Purdie
    Acked-by: Trent Piepho
    Cc: Grant Likely
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Daney
     
  • According to the comments in include/linux/init.h:

    "Pointers to __devexit functions must use __devexit_p(function_name), the
    wrapper will insert either the function_name or NULL, depending on the config
    options."

    We have __devexit annotation for lm3530_remove(), so add __devexit_p to
    the `struct i2c_driver'.

    Signed-off-by: Axel Lin
    Cc: Shreshtha Kumar SAHU
    Cc: Richard Purdie
    Acked-by: Linus Walleij
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Axel Lin
     
  • If lp5521_read fails, engine_state variable is not initialized.
    If lp5521_read fails, we should return error.
    This patch fixes below warning.

    CC drivers/leds/leds-lp5521.o
    drivers/leds/leds-lp5521.c: In function 'lp5521_set_engine_mode':
    drivers/leds/leds-lp5521.c:168: warning: 'engine_state' may be used uninitialized in this function

    [akpm@linux-foundation.org: remove unneeded "ret |="]
    Signed-off-by: Axel Lin
    Cc: Samu Onkalo
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Axel Lin
     
  • Use the platform_data include directory for the TPU LED driver, as
    suggested by Paul Mundt.

    Signed-off-by: Magnus Damm
    Cc: Paul Mundt
    Cc: Richard Purdie
    Cc: Grant Likely
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Magnus Damm
     
  • Use a workqueue in the Renesas TPU LED driver to allow the Runtime PM code
    to sleep.

    Signed-off-by: Magnus Damm
    Cc: Paul Mundt
    Cc: Richard Purdie
    Cc: Grant Likely
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Magnus Damm
     
  • A few new i2c-drivers came into the kernel which clear the
    clientdata-pointer on exit or error. This is obsolete meanwhile, the core
    will do it.

    Signed-off-by: Wolfram Sang
    Cc: Richard Purdie
    Acked-by: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wolfram Sang
     
  • The memory for struct led_trigger should be kfreed in the
    led_trigger_register() error path. Also this function should return NULL
    on error.

    Signed-off-by: Masakazu Mokuno
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masakazu Mokuno
     
  • Add V2 of the LED driver for a single timer channel for the TPU hardware
    block commonly found in Renesas SoCs.

    The driver has been written with optimal Power Management in mind, so to
    save power the LED is driven as a regular GPIO pin in case of maximum
    brightness and power off which allows the TPU hardware to be idle and
    which in turn allows the clocks to be stopped and the power domain to be
    turned off transparently.

    Any other brightness level requires use of the TPU hardware in PWM mode.
    TPU hardware device clocks and power are managed through Runtime PM.
    System suspend and resume is known to be working - during suspend the LED
    is set to off by the generic LED code.

    The TPU hardware timer is equipeed with a 16-bit counter together with an
    up-to-divide-by-64 prescaler which makes the hardware suitable for
    brightness control. Hardware blink is unsupported.

    The LED PWM waveform has been verified with a Fluke 123 Scope meter on a
    sh7372 Mackerel board. Tested with experimental sh7372 A3SP power domain
    patches. Platform device bind/unbind tested ok.

    V2 has been tested on the DS2 LED of the sh73a0-based AG5EVM.

    [axel.lin@gmail.com: include linux/module.h]
    Signed-off-by: Magnus Damm
    Cc: Paul Mundt
    Cc: Richard Purdie
    Cc: Grant Likely
    Signed-off-by: Axel Lin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Magnus Damm
     
  • The rename of corgibl_limit_intensity is missed in commit d00ba726
    ("backlight: Rename the corgi backlight driver to generic"). Let's fix it
    now.

    Signed-off-by: Axel Lin
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Axel Lin
     
  • Using gpio_request_one can make the error handling simpler.

    Signed-off-by: Fabio Estevam
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabio Estevam
     
  • The regulator support in the l4f00242t03 is very non-idiomatic. Rather
    than requesting the regulators based on the device name and the supply
    names used by the device the driver requires boards to pass system
    specific supply names around through platform data. The driver also
    conditionally requests the regulators based on this platform data, adding
    unneeded conditional code to the driver.

    Fix this by removing the platform data and converting to the standard
    idiom, also updating all in tree users of the driver. As no datasheet
    appears to be available for the LCD I'm guessing the names for the
    supplies based on the existing users and I've no ability to do anything
    more than compile test.

    The use of regulator_set_voltage() in the driver is also problematic,
    since fixed voltages are required the expectation would be that the
    voltages would be fixed in the constraints set by the machines rather than
    manually configured by the driver, but is less problematic.

    Signed-off-by: Mark Brown
    Tested-by: Fabio Estevam
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Brown
     
  • A few new i2c-drivers came into the kernel which clear the
    clientdata-pointer on exit or error. This is obsolete meanwhile, the core
    will do it.

    Signed-off-by: Wolfram Sang
    Cc: Richard Purdie
    Cc: Paul Mundt
    Acked-by: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wolfram Sang