28 Nov, 2011

6 commits

  • Count of selector voltage is required for regulator_set_voltage
    to work via set_voltage_sel. VDD1/2 currently have it as zero,
    so regulator_set_voltage won't work for VDD1/2.
    Update count (n_voltages) for VDD1/2.

    Output Voltage = (step value * 12.5 mV + 562.5 mV) * gain

    With above expr, number of voltages that can be selected is
    step value count * gain count

    constant for gain count will be called VDD1_2_NUM_VOLT_COARSE

    existing constant for step value count is VDD1_2_NUM_VOLTS,
    use VDD1_2_NUM_VOLT_FINE instead to make clear that step value
    is not the only component in deciding selectable voltage count

    Signed-off-by: Afzal Mohammed

    Afzal Mohammed
     
  • Create an array of fixed size for the platform to pass regulator
    initalization data through.

    Passing an array of pointers to init data also allows more flexible
    definition of init data as well as prevents reading past the end of the
    array should the platform define an incorrectly sized array.

    Signed-off-by: Kyle Manna

    Kyle Manna
     
  • Move the regulator defintions to the header so that platform board file
    can use them to configure specific regulators.

    Signed-off-by: Kyle Manna

    Kyle Manna
     
  • The tps65910.h file depends on linux/gpio.h. Move the include from the
    source file to the tps65910.h header file.

    Signed-off-by: Kyle Manna

    Kyle Manna
     
  • Add I2C slave addresses to the header file so that platform definitions
    can use them.

    Signed-off-by: Kyle Manna

    Kyle Manna
     
  • This patch adds support for lis33ldlh digital accelerometer to the
    lis3lv02d driver family. Adds ID field for detecting the lis33ldlh
    module, based on this ID field lis3lv02d driver will export the
    lis33ldlh module functionality.

    Also exports g_range parameter to user space for run-time value
    change. User must give 2/4/8 value depends on requirement.

    Signed-off-by: Anil Kumar Ch

    Anil Kumar Ch
     

21 Nov, 2011

1 commit


18 Nov, 2011

1 commit


16 Nov, 2011

1 commit

  • Bosch D_CAN controller is a full-CAN implementation which is compliant
    to CAN protocol version 2.0 part A and B. Bosch D_CAN user manual can be
    obtained from:

    http://www.semiconductors.bosch.de/media/en/pdf/ipmodules_1/can/d_can_users_manual_111.pdf

    This patch adds the support for this controller.
    The following are the design choices made while writing the controller
    driver:
    1. Interface Register set IF1 has be used for transmit and IF2 is used for
    receive message objects.
    2. Out of the total Message objects available, half of it are kept aside for RX
    purposes and the rest for TX purposes.
    3. NAPI implementation is such that both the TX and RX paths functions
    in polling mode.

    This patch adds the dcan driver support to am335x chip.

    Signed-off-by: Anil Kumar Ch

    Anil Kumar Ch
     

15 Nov, 2011

2 commits


27 Oct, 2011

10 commits

  • The initial definition of __kfree_rcu() checked a static inline function
    argument to see if it was a compile-time constant. Apparently not all
    compilers are willing to put up with this at all optimization levels.
    Add a nasty comment and remove the warning, relying on the fact that
    __kfree_rcu() is called only from kfree_rcu(), which always passes in
    a compile-time constant.

    Signed-off-by: Paul E. McKenney
    Signed-off-by: Hebbar, Gururaja

    Paul E. McKenney
     
  • Modified the nop driver to support multi nop transceiver.
    Changes:
    - Global xceiv to xceiv[2]
    - nop transceiver regiser/deregiser based on musb->id
    - Changes to other glue layers

    Signed-off-by: Ravi B
    Signed-off-by: Ajay Kumar Gupta
    Signed-off-by: Vaibhav Hiremath

    Ravi B
     
  • Current musb host driver does the giveback of completed urb first and
    then start the next request. This is significantly affecting the streaming
    from an USB camera wherein we observe huge delay between the two IN tokens
    from musb host. This is due to the fact that UVC driver is doing decoding
    and further processing in giveback context.

    The patch tries to defer the giveback part to a workqueue and continues
    with the start of new request in completion path.

    Signed-off-by: Ajay Kumar Gupta
    Signed-off-by: Sriramakrishnan A G
    Signed-off-by: Vaibhav Hiremath

    Ajay Kumar Gupta
     
  • OMAP35x han an errata restricting active endpoints to use either
    first 8K or next 8K of FIFO space while this issue has been
    fixed in OMAP3630.

    This issue requires the OMAP35x platform to use fifo_mode=5 but
    OMAP3630 and AM35x can use fifo_mode=4 which utilises entire 16K
    of FIFO.

    Signed-off-by: Ajay Kumar Gupta
    Signed-off-by: Sriramakrishnan A G
    Signed-off-by: Vaibhav Hiremath

    Ravi B
     
  • Adding member variables for USB internal LDOs in twl4030_platform_data
    and registering them in twl-core.c if the variables are populated
    from board-evm file.

    Signed-off-by: Ajay Kumar Gupta
    Signed-off-by: Sriramakrishnan A G
    Signed-off-by: Vaibhav Hiremath

    Ajay Kumar Gupta
     
  • This patch adds all the necessary changes to
    add touchscreen driver present inside am335x.
    The controller is a 4/5/8 wire resistive panel that is
    directly fed to the ADC.

    Signed-off-by: Patil, Rachna

    Patil, Rachna
     
  • This patch adds APIs to register and unregister wait for vsync
    callback.

    Signed-off-by: Manjunathappa, Prakash
    Signed-off-by: Vaibhav Hiremath

    Manjunathappa, Prakash
     
  • During LCDC initialization, there is the potential for a FIFO
    underflow condition to occur. A FIFO underflow condition
    occurs when the input FIFO is completely empty and the LCDC
    raster controller logic that drives data to the output pins
    attempts to fetch data from the FIFO. When a FIFO underflow
    condition occurs, incorrect data will be driven out on the
    LCDC data pins.

    Software should poll the FUF bit field in the LCD_STAT register
    to check if an error condition has occurred or service the
    interrupt if FUF_EN is enabled when FUF occurs. If the FUF bit
    field has been set to 1, this will indicate an underflow
    condition has occurred and then the software should execute a
    reset of the LCDC via the LPSC.

    This problem may occur if the LCDC FIFO threshold size
    (LCDDMA_CTRL[TH_FIFO_READY]) is left at its default value after
    reset. Increasing the FIFO threshold size will reduce or
    eliminate underflows. Setting the threshold size to 256 double
    words or larger is recommended.

    Signed-off-by: Rajashekhara, Sudhakar

    Rajashekhara, Sudhakar
     
  • Adding pinmux, platform resource information. Also add
    AM335X panel inforamtion.

    Signed-off-by: Manjunathappa, Prakash

    Manjunathappa, Prakash
     
  • This patch added to add support for CPSW driver. CPSW driver along with
    CPSW ALE driver are added and also added support in Makefile and Kconfig
    files.

    Signed-off-by: Chandan Nath

    Chandan Nath
     

25 Oct, 2011

1 commit


20 Oct, 2011

1 commit


18 Oct, 2011

2 commits


13 Oct, 2011

1 commit

  • ip_vs_mutext is used by both netns shutdown code and startup
    and both implicit uses sk_lock-AF_INET mutex.

    cleanup CPU-1 startup CPU-2
    ip_vs_dst_event() ip_vs_genl_set_cmd()
    sk_lock-AF_INET __ip_vs_mutex
    sk_lock-AF_INET
    __ip_vs_mutex
    * DEAD LOCK *

    A new mutex placed in ip_vs netns struct called sync_mutex is added.

    Comments from Julian and Simon added.
    This patch has been running for more than 3 month now and it seems to work.

    Ver. 3
    IP_VS_SO_GET_DAEMON in do_ip_vs_get_ctl protected by sync_mutex
    instead of __ip_vs_mutex as sugested by Julian.

    Signed-off-by: Hans Schillstrom
    Acked-by: Julian Anastasov
    Signed-off-by: Simon Horman
    Signed-off-by: Pablo Neira Ayuso

    Hans Schillstrom
     

06 Oct, 2011

1 commit


05 Oct, 2011

3 commits

  • * git://github.com/davem330/net:
    pch_gbe: Fixed the issue on which a network freezes
    pch_gbe: Fixed the issue on which PC was frozen when link was downed.
    make PACKET_STATISTICS getsockopt report consistently between ring and non-ring
    net: xen-netback: correctly restart Tx after a VM restore/migrate
    bonding: properly stop queuing work when requested
    can bcm: fix incomplete tx_setup fix
    RDSRDMA: Fix cleanup of rds_iw_mr_pool
    net: Documentation: Fix type of variables
    ibmveth: Fix oops on request_irq failure
    ipv6: nullify ipv6_ac_list and ipv6_fl_list when creating new socket
    cxgb4: Fix EEH on IBM P7IOC
    can bcm: fix tx_setup off-by-one errors
    MAINTAINERS: tehuti: Alexander Indenbaum's address bounces
    dp83640: reduce driver noise
    ptp: fix L2 event message recognition

    Linus Torvalds
     
  • Add the ability to disable PCI-E MPS turning and using the BIOS
    configured MPS defaults. Due to the number of issues recently
    discovered on some x86 chipsets, make this the default behavior.

    Also, add the option for peer to peer DMA MPS configuration. Peer to
    peer DMA is outside the scope of this patch, but MPS configuration could
    prevent it from working by having the MPS on one root port different
    than the MPS on another. To work around this, simply make the system
    wide MPS the smallest possible value (128B).

    Signed-off-by: Jon Mason
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Linus Torvalds

    Jon Mason
     
  • Add of_property_read_string_index and of_property_count_strings
    to retrieve one string inside a property that will contains
    severals strings.

    Signed-off-by: Benoit Cousson
    Acked-by: Grant Likely
    Signed-off-by: Kevin Hilman

    Benoit Cousson
     

01 Oct, 2011

1 commit

  • …for-linus' of git://tesla.tglx.de/git/linux-2.6-tip

    * 'irq-urgent-for-linus' of git://tesla.tglx.de/git/linux-2.6-tip:
    irq: Fix check for already initialized irq_domain in irq_domain_add
    irq: Add declaration of irq_domain_simple_ops to irqdomain.h

    * 'x86-urgent-for-linus' of git://tesla.tglx.de/git/linux-2.6-tip:
    x86/rtc: Don't recursively acquire rtc_lock

    * 'sched-urgent-for-linus' of git://tesla.tglx.de/git/linux-2.6-tip:
    posix-cpu-timers: Cure SMP wobbles
    sched: Fix up wchan borkage
    sched/rt: Migrate equal priority tasks to available CPUs

    Linus Torvalds
     

30 Sep, 2011

1 commit

  • David reported:

    Attached below is a watered-down version of rt/tst-cpuclock2.c from
    GLIBC. Just build it with "gcc -o test test.c -lpthread -lrt" or
    similar.

    Run it several times, and you will see cases where the main thread
    will measure a process clock difference before and after the nanosleep
    which is smaller than the cpu-burner thread's individual thread clock
    difference. This doesn't make any sense since the cpu-burner thread
    is part of the top-level process's thread group.

    I've reproduced this on both x86-64 and sparc64 (using both 32-bit and
    64-bit binaries).

    For example:

    [davem@boricha build-x86_64-linux]$ ./test
    process: before(0.001221967) after(0.498624371) diff(497402404)
    thread: before(0.000081692) after(0.498316431) diff(498234739)
    self: before(0.001223521) after(0.001240219) diff(16698)
    [davem@boricha build-x86_64-linux]$

    The diff of 'process' should always be >= the diff of 'thread'.

    I make sure to wrap the 'thread' clock measurements the most tightly
    around the nanosleep() call, and that the 'process' clock measurements
    are the outer-most ones.

    ---
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include

    static pthread_barrier_t barrier;

    static void *chew_cpu(void *arg)
    {
    pthread_barrier_wait(&barrier);
    while (1)
    __asm__ __volatile__("" : : : "memory");
    return NULL;
    }

    int main(void)
    {
    clockid_t process_clock, my_thread_clock, th_clock;
    struct timespec process_before, process_after;
    struct timespec me_before, me_after;
    struct timespec th_before, th_after;
    struct timespec sleeptime;
    unsigned long diff;
    pthread_t th;
    int err;

    err = clock_getcpuclockid(0, &process_clock);
    if (err)
    return 1;

    err = pthread_getcpuclockid(pthread_self(), &my_thread_clock);
    if (err)
    return 1;

    pthread_barrier_init(&barrier, NULL, 2);
    err = pthread_create(&th, NULL, chew_cpu, NULL);
    if (err)
    return 1;

    err = pthread_getcpuclockid(th, &th_clock);
    if (err)
    return 1;

    pthread_barrier_wait(&barrier);

    err = clock_gettime(process_clock, &process_before);
    if (err)
    return 1;

    err = clock_gettime(my_thread_clock, &me_before);
    if (err)
    return 1;

    err = clock_gettime(th_clock, &th_before);
    if (err)
    return 1;

    sleeptime.tv_sec = 0;
    sleeptime.tv_nsec = 500000000;
    nanosleep(&sleeptime, NULL);

    err = clock_gettime(th_clock, &th_after);
    if (err)
    return 1;

    err = clock_gettime(my_thread_clock, &me_after);
    if (err)
    return 1;

    err = clock_gettime(process_clock, &process_after);
    if (err)
    return 1;

    diff = process_after.tv_nsec - process_before.tv_nsec;
    printf("process: before(%lu.%.9lu) after(%lu.%.9lu) diff(%lu)\n",
    process_before.tv_sec, process_before.tv_nsec,
    process_after.tv_sec, process_after.tv_nsec, diff);
    diff = th_after.tv_nsec - th_before.tv_nsec;
    printf("thread: before(%lu.%.9lu) after(%lu.%.9lu) diff(%lu)\n",
    th_before.tv_sec, th_before.tv_nsec,
    th_after.tv_sec, th_after.tv_nsec, diff);
    diff = me_after.tv_nsec - me_before.tv_nsec;
    printf("self: before(%lu.%.9lu) after(%lu.%.9lu) diff(%lu)\n",
    me_before.tv_sec, me_before.tv_nsec,
    me_after.tv_sec, me_after.tv_nsec, diff);

    return 0;
    }

    This is due to us using p->se.sum_exec_runtime in
    thread_group_cputime() where we iterate the thread group and sum all
    data. This does not take time since the last schedule operation (tick
    or otherwise) into account. We can cure this by using
    task_sched_runtime() at the cost of having to take locks.

    This also means we can (and must) do away with
    thread_group_sched_runtime() since the modified thread_group_cputime()
    is now more accurate and would deadlock when called from
    thread_group_sched_runtime().

    Aside of that it makes the function safe on 32 bit systems. The old
    code added t->se.sum_exec_runtime unprotected. sum_exec_runtime is a
    64bit value and could be changed on another cpu at the same time.

    Reported-by: David Miller
    Signed-off-by: Peter Zijlstra
    Cc: stable@kernel.org
    Link: http://lkml.kernel.org/r/1314874459.7945.22.camel@twins
    Tested-by: David Miller
    Signed-off-by: Thomas Gleixner

    Peter Zijlstra
     

29 Sep, 2011

1 commit

  • The IEEE 1588 standard defines two kinds of messages, event and general
    messages. Event messages require time stamping, and general do not. When
    using UDP transport, two separate ports are used for the two message
    types.

    The BPF designed to recognize event messages incorrectly classifies L2
    general messages as event messages. This commit fixes the issue by
    extending the filter to check the message type field for L2 PTP packets.
    Event messages are be distinguished from general messages by testing
    the "general" bit.

    Signed-off-by: Richard Cochran
    Cc:
    Signed-off-by: David S. Miller

    Richard Cochran
     

28 Sep, 2011

1 commit


27 Sep, 2011

2 commits

  • That flag no longer makes sense, since we don't look up automount points
    as eagerly any more. Additionally, it turns out that the NO_AUTOMOUNT
    handling was buggy to begin with: it would avoid automounting even for
    cases where we really *needed* to do the automount handling, and could
    return ENOENT for autofs entries that hadn't been instantiated yet.

    With our new non-eager automount semantics, one discussion has been
    about adding a AT_AUTOMOUNT flag to vfs_fstatat (and thus the
    newfstatat() and fstatat64() system calls), but it's probably not worth
    it: you can always force at least directory automounting by simply
    adding the final '/' to the filename, which works for *all* of the stat
    family system calls, old and new.

    So AT_NO_AUTOMOUNT (and thus LOOKUP_NO_AUTOMOUNT) really were just a
    result of our bad default behavior.

    Acked-by: Ian Kent
    Acked-by: Trond Myklebust
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Since we've now turned around and made LOOKUP_FOLLOW *not* force an
    automount, we want to add the ability to force an automount event on
    lookup even if we don't happen to have one of the other flags that force
    it implicitly (LOOKUP_OPEN, LOOKUP_DIRECTORY, LOOKUP_PARENT..)

    Most cases will never want to use this, since you'd normally want to
    delay automounting as long as possible, which usually implies
    LOOKUP_OPEN (when we open a file or directory, we really cannot avoid
    the automount any more).

    But Trond argued sufficiently forcefully that at a minimum bind mounting
    a file and quotactl will want to force the automount lookup. Some other
    cases (like nfs_follow_remote_path()) could use it too, although
    LOOKUP_DIRECTORY would work there as well.

    This commit just adds the flag and logic, no users yet, though. It also
    doesn't actually touch the LOOKUP_NO_AUTOMOUNT flag that is related, and
    was made irrelevant by the same change that made us not follow on
    LOOKUP_FOLLOW.

    Cc: Trond Myklebust
    Cc: Ian Kent
    Cc: Jeff Layton
    Cc: Miklos Szeredi
    Cc: David Howells
    Cc: Al Viro
    Cc: Greg KH
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

26 Sep, 2011

1 commit

  • If optional discard support in dm-crypt is enabled, discards requests
    bypass the crypt queue and blocks of the underlying device are discarded.
    For the read path, discarded blocks are handled the same as normal
    ciphertext blocks, thus decrypted.

    So if the underlying device announces discarded regions return zeroes,
    dm-crypt must disable this flag because after decryption there is just
    random noise instead of zeroes.

    Signed-off-by: Milan Broz
    Signed-off-by: Alasdair G Kergon

    Milan Broz
     

23 Sep, 2011

1 commit


22 Sep, 2011

1 commit

  • * 'for-linus' of git://git.kernel.dk/linux-block:
    floppy: use del_timer_sync() in init cleanup
    blk-cgroup: be able to remove the record of unplugged device
    block: Don't check QUEUE_FLAG_SAME_COMP in __blk_complete_request
    mm: Add comment explaining task state setting in bdi_forker_thread()
    mm: Cleanup clearing of BDI_pending bit in bdi_forker_thread()
    block: simplify force plug flush code a little bit
    block: change force plug flush call order
    block: Fix queue_flag update when rq_affinity goes from 2 to 1
    block: separate priority boosting from REQ_META
    block: remove READ_META and WRITE_META
    xen-blkback: fixed indentation and comments
    xen-blkback: Don't disconnect backend until state switched to XenbusStateClosed.

    Linus Torvalds
     

20 Sep, 2011

1 commit

  • 598841ca9919d008b520114d8a4378c4ce4e40a1 ([S390] use gmap address
    spaces for kvm guest images) changed kvm on s390 to use a separate
    address space for kvm guests. We can now put KVM guests anywhere
    in the user address mode with a size up to 8PB - as long as the
    memory is 1MB-aligned. This change was done without KVM extension
    capability bit.
    The change was added after 3.0, but we still have a chance to add
    a feature bit before 3.1 (keeping the releases in a sane state).
    We use number 71 to avoid collisions with other pending kvm patches
    as requested by Alexander Graf.

    Signed-off-by: Christian Borntraeger
    Acked-by: Avi Kivity
    Cc: Alexander Graf
    Signed-off-by: Heiko Carstens

    Christian Borntraeger