20 Jul, 2012

2 commits


17 Jul, 2012

4 commits

  • Set the supply_name in the regulator descriptor unconditionally
    and make this parameter as required parameter in the device
    node for successfully registration of the regulator.

    Signed-off-by: Laxman Dewangan
    Signed-off-by: Mark Brown

    Laxman Dewangan
     
  • The logic of calculating selector in palmas_map_voltage_smps() does not match
    the logic to list voltage in palmas_list_voltage_smps().

    We use below equation to calculate voltage when selector > 0:
    voltage = (0.49V + (selector * 0.01V)) * RANGE
    RANGE is either x1 or x2

    So we need to take into account with the multiplier set in VSEL register when
    calculating selector in palmas_map_voltage_smps()

    Signed-off-by: Axel Lin
    Acked-by: Graeme Gregory
    Signed-off-by: Mark Brown

    Axel Lin
     
  • Pass regulator id rahter than the index to lp872x_find_regulator_init_data(),
    then the code can be simpler.
    We can also get max_regulators by lp->num_regulators.

    Signed-off-by: Axel Lin
    Acked-by: Milo(Woogyom) Kim
    Tested-by: Milo(Woogyom) Kim
    Signed-off-by: Mark Brown

    Axel Lin
     
  • According to the datasheet, the voltage for twl6030ldo_ops is not linear for
    all cases. Linear mapping is only for the selection code from
    00000001 to 00011000.

    Table 9. LDO Output Voltage Selection Code
    CODE VOUT(V) COD VOUT(V) CODE VOUT(V) CODE VOUT(V)
    00000000 0 00001000 1.7 00010000 2.5 00011000 3.3
    00000001 1.0 00001001 1.8 00010001 2.6 00011001 Reserved
    00000010 1.1 00001010 1.9 00010010 2.7 00011010 Reserved
    00000011 1.2 00001011 2.0 00010011 2.8 00011011 Reserved
    00000100 1.3 00001100 2.1 00010100 2.9 00011100 Reserved
    00000101 1.4 00001101 2.2 00010101 3.0 00011101 Reserved
    00000110 1.5 00001110 2.3 00010110 3.1 00011110 Reserved
    00000111 1.6 00001111 2.4 00010111 3.2 00011111 2.75

    This patch implements the list_voltage callback based on above table.

    Signed-off-by: Axel Lin
    Tested-by: Rajendra Nayak
    Signed-off-by: Mark Brown

    Axel Lin
     

16 Jul, 2012

6 commits

  • Signed-off-by: Axel Lin
    Signed-off-by: Mark Brown

    Axel Lin
     
  • In twl6030ldo_set_voltage, current code use below formula to calculate vsel:
    vsel = (min_uV/1000 - 1000)/100 + 1;
    This is worng because when min_uV is 1000000 uV, vsel is 1.
    It should be 0 in this case.
    Fix it by change the equation to: (This equation is common for linear mapping)
    vsel = DIV_ROUND_UP(min_uV - rdev->desc->min_uV, rdev->desc->uV_step);

    In twl6030ldo_get_voltage, current code use below formula to calculate voltage:
    mV = 1000mv + 100mv * (vsel - 1)
    This is worng because when vsel is 0, mV is 900mV. Note the min_uV is 1000mV.
    Fix it by change the equation to: (This equation is common for linear mapping)
    return rdev->desc->min_uV + vsel * rdev->desc->uV_step;

    Signed-off-by: Axel Lin
    Signed-off-by: Mark Brown

    Axel Lin
     
  • Convert to devm_gpio_request to save a few error handling code.

    This patch properly handle the gpio_request failure, we should return error
    when gpio_request fails rather than just show warning.

    I think one of the reason we got -EBUSY is because current code does not free
    gpios in s5m8767_pmic_remove(). So it got -EBUSY when reload the module.

    Yest another reason is in current code if gpio_request() returns error,
    the rest of the code still calls gpio_direction_output to config buck_gpios
    and buck_ds gpios. This looks wrong to me.

    Signed-off-by: Axel Lin
    Signed-off-by: Mark Brown

    Axel Lin
     
  • Convert to devm_gpio_request to save a few error handling code.

    This patch properly handle the gpio_request failure with -EBUSY, we should
    return error rather than ommit the gpio_request failure with -EBUSY.

    I think one of the reason we got -EBUSY is because current code does not free
    gpios in max8997_pmic_remove(). So it got -EBUSY when reload the module.

    Yest another reason is in current code if gpio_request() returns -EBUSY,
    the rest of the code still calls gpio_direction_output to config buck125_gpios
    and set gpio value in max8997_set_gpio(). This looks wrong to me.

    Signed-off-by: Axel Lin
    Signed-off-by: Mark Brown

    Axel Lin
     
  • Use devm_ version of gpio APIs gpio_request_one() for
    requesting gpios.
    This avoid extra code for freeing gpios.

    Signed-off-by: Laxman Dewangan
    Signed-off-by: Mark Brown

    Laxman Dewangan
     
  • Linux 3.5-rc7

    Mark Brown
     

15 Jul, 2012

8 commits

  • Linus Torvalds
     
  • The idr_pre_get() function never returns a value < 0. It returns 0 (no
    memory) or 1 (OK).

    Reported-by: Silva Paulo
    [ Rewrote Silva's patch, but attributing it to Silva anyway - Linus ]
    Signed-off-by: Linus Torvalds

    Silva Paulo
     
  • Pull sound fixes from Takashi Iwai:
    "Containing the regression fixes for USB-audio due to the transition to
    the new streaming logic, mostly found on Logitech webcams."

    * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: snd-usb: move calls to usb_set_interface
    ALSA: usb-audio: Fix the first PCM interface assignment

    Linus Torvalds
     
  • Pull ACPI patch from Len Brown.

    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
    ACPICA: Fix possible fault in return package object repair code

    Linus Torvalds
     
  • vsyscall_seccomp introduced a dependency on __secure_computing. On
    configurations with CONFIG_SECCOMP disabled, compilation will fail.

    Reported-by: feng xiangjun
    Signed-off-by: Will Drewry
    Signed-off-by: Linus Torvalds

    Will Drewry
     
  • Pull cpufreq fix from Rafael Wysocki:
    "This fixes a regression preventing the ACPI cpufreq driver from
    loading on some systems where it worked previously without any
    problems."

    * tag 'cpufreq-for-3.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpufreq / ACPI: Fix not loading acpi-cpufreq driver regression

    Linus Torvalds
     
  • Pull ARM Samsung SoC fixes from Arnd Bergmann.

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: S3C24XX: Correct CAMIF interrupt definitions
    ARM: S3C24XX: Correct AC97 clock control bit for S3C2440
    ARM: SAMSUNG: fix race in s3c_adc_start for ADC
    ARM: SAMSUNG: Update default rate for xusbxti clock
    ARM: EXYNOS: register devices in 'need_restore' state for pm_domains
    ARM: EXYNOS: read initial state of power domain from hw registers

    Linus Torvalds
     
  • …t-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

    Pull RCU, perf, and scheduler fixes from Ingo Molnar.

    The RCU fix is a revert for an optimization that could cause deadlocks.

    One of the scheduler commits (164c33c6adee "sched: Fix fork() error path
    to not crash") is correct but not complete (some architectures like Tile
    are not covered yet) - the resulting additional fixes are still WIP and
    Ingo did not want to delay these pending fixes. See this thread on
    lkml:

    [PATCH] fork: fix error handling in dup_task()

    The perf fixes are just trivial oneliners.

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    Revert "rcu: Move PREEMPT_RCU preemption to switch_to() invocation"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf kvm: Fix segfault with report and mixed guestmount use
    perf kvm: Fix regression with guest machine creation
    perf script: Fix format regression due to libtraceevent merge
    ring-buffer: Fix accounting of entries when removing pages
    ring-buffer: Fix crash due to uninitialized new_pages list head

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    MAINTAINERS/sched: Update scheduler file pattern
    sched/nohz: Rewrite and fix load-avg computation -- again
    sched: Fix fork() error path to not crash

    Linus Torvalds
     

14 Jul, 2012

14 commits

  • Fixes a problem that can occur when a lone package object is
    wrapped with an outer package object in order to conform to
    the ACPI specification. Can affect these predefined names:
    _ALR,_MLS,_PSS,_TRT,_TSS,_PRT,_HPX,_DLM,_CSD,_PSD,_TSD

    https://bugzilla.kernel.org/show_bug.cgi?id=44171

    This problem was introduced in 3.4-rc1 by commit
    6a99b1c94d053b3420eaa4a4bc8b2883dd90a2f9
    (ACPICA: Object repair code: Support to add Package wrappers)

    Reported-by: Vlastimil Babka
    Signed-off-by: Bob Moore
    Signed-off-by: Lin Ming
    Cc: # 3.4
    Signed-off-by: Len Brown

    Bob Moore
     
  • …/git/kgene/linux-samsung into fixes

    From Kukjin Kim <kgene.kim@samsung.com>:

    * 'v3.5-samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
    ARM: S3C24XX: Correct CAMIF interrupt definitions
    ARM: S3C24XX: Correct AC97 clock control bit for S3C2440
    ARM: SAMSUNG: fix race in s3c_adc_start for ADC
    ARM: SAMSUNG: Update default rate for xusbxti clock
    ARM: EXYNOS: register devices in 'need_restore' state for pm_domains
    ARM: EXYNOS: read initial state of power domain from hw registers

    Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    Arnd Bergmann
     
  • Pull use-after-free RAID1 bugfix from NeilBrown.

    * tag 'md-3.5-fixes' of git://neil.brown.name/md:
    md/raid1: fix use-after-free bug in RAID1 data-check code.

    Linus Torvalds
     
  • Pull the leap second fixes from Thomas Gleixner:
    "It's a rather large series, but well discussed, refined and reviewed.
    It got a massive testing by John, Prarit and tip.

    In theory we could split it into two parts. The first two patches

    f55a6faa3843: hrtimer: Provide clock_was_set_delayed()
    4873fa070ae8: timekeeping: Fix leapsecond triggered load spike issue

    are merely preventing the stuff loops forever issues, which people
    have observed.

    But there is no point in delaying the other 4 commits which achieve
    full correctness into 3.6 as they are tagged for stable anyway. And I
    rather prefer to have the full fixes merged in bulk than a "prevent
    the observable wreckage and deal with the hidden fallout later"
    approach."

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    hrtimer: Update hrtimer base offsets each hrtimer_interrupt
    timekeeping: Provide hrtimer update function
    hrtimers: Move lock held region in hrtimer_interrupt()
    timekeeping: Maintain ktime_t based offsets for hrtimers
    timekeeping: Fix leapsecond triggered load spike issue
    hrtimer: Provide clock_was_set_delayed()

    Linus Torvalds
     
  • If a seccomp filter program is installed, older static binaries and
    distributions with older libc implementations (glibc 2.13 and earlier)
    that rely on vsyscall use will be terminated regardless of the filter
    program policy when executing time, gettimeofday, or getcpu. This is
    only the case when vsyscall emulation is in use (vsyscall=emulate is the
    default).

    This patch emulates system call entry inside a vsyscall=emulate by
    populating regs->ax and regs->orig_ax with the system call number prior
    to calling into seccomp such that all seccomp-dependencies function
    normally. Additionally, system call return behavior is emulated in line
    with other vsyscall entrypoints for the trace/trap cases.

    [ v2: fixed ip and sp on SECCOMP_RET_TRAP/TRACE (thanks to luto@mit.edu) ]
    Reported-and-tested-by: Owen Kibel
    Signed-off-by: Will Drewry
    Signed-off-by: Linus Torvalds

    Will Drewry
     
  • Please pull one hwmon subsystem fix from Jean Delvare.

    * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    hwmon: (it87) Preserve configuration register bits on init

    Linus Torvalds
     
  • Pull NFS client bugfixes from Trond Myklebust:
    - Fix an NFSv4 mount regression
    - Fix O_DIRECT list manipulation snafus

    * tag 'nfs-for-3.5-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    NFSv4: Fix an NFSv4 mount regression
    NFS: Fix list manipulation snafus in fs/nfs/direct.c

    Linus Torvalds
     
  • This can be trivially triggered from userspace by passing in something unexpected.

    kernel BUG at fs/locks.c:1468!
    invalid opcode: 0000 [#1] SMP
    RIP: 0010:generic_setlease+0xc2/0x100
    Call Trace:
    __vfs_setlease+0x35/0x40
    fcntl_setlease+0x76/0x150
    sys_fcntl+0x1c6/0x810
    system_call_fastpath+0x1a/0x1f

    Signed-off-by: Dave Jones
    Cc: stable@kernel.org # 3.2+
    Signed-off-by: Linus Torvalds

    Dave Jones
     
  • Pull input layer fixes from Dmitry Torokhov:
    "The changes are limited to adding new VID/PID combinations to drivers
    to enable support for new versions of hardware, most notably hardware
    found in new MacBook Pro Retina boxes."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: xpad - add Andamiro Pump It Up pad
    Input: xpad - add signature for Razer Onza Tournament Edition
    Input: xpad - handle all variations of Mad Catz Beat Pad
    Input: bcm5974 - Add support for 2012 MacBook Pro Retina
    HID: add support for 2012 MacBook Pro Retina

    Linus Torvalds
     
  • Pull media fixes from Mauro Carvalho Chehab:
    - Some regression fixes at the audio part for devices with
    cx23885/cx25840
    - A DMA corruption fix at cx231xx
    - two fixes at the winbond IR driver
    - Several fixes for the EXYNOS media driver (s5p)
    - two fixes at the OMAP3 preview driver
    - one fix at the dvb core failure path
    - an include missing (slab.h) at smiapp-core causing compilation
    breakage
    - em28xx was not loading the IR driver driver anymore.

    * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (31 commits)
    [media] Revert "[media] V4L: JPEG class documentation corrections"
    [media] s5p-fimc: Add missing FIMC-LITE file operations locking
    [media] omap3isp: preview: Fix contrast and brightness handling
    [media] omap3isp: preview: Fix output size computation depending on input format
    [media] winbond-cir: Initialise timeout, driver_type and allowed_protos
    [media] winbond-cir: Fix txandrx module info
    [media] cx23885: Silence unknown command warnings
    [media] cx23885: add support for HVR-1255 analog (cx23888 variant)
    [media] cx23885: make analog support work for HVR_1250 (cx23885 variant)
    [media] cx25840: fix vsrc/hsrc usage on cx23888 designs
    [media] cx25840: fix regression in HVR-1800 analog audio
    [media] cx25840: fix regression in analog support hue/saturation controls
    [media] cx25840: fix regression in HVR-1800 analog support
    [media] s5p-mfc: Fixed setup of custom controls in decoder and encoder
    [media] cx231xx: don't DMA to random addresses
    [media] em28xx: fix em28xx-rc load
    [media] dvb-core: Release semaphore on error path dvb_register_device()
    [media] s5p-fimc: Stop media entity pipeline if fimc_pipeline_validate fails
    [media] s5p-fimc: Fix compiler warning in fimc-lite.c
    [media] s5p-fimc: media_entity_pipeline_start() may fail
    ...

    Linus Torvalds
     
  • Pull MMC fixes from Chris Ball:
    - Revert a patch that made failing to select power class fatal;
    it turns out that it fails non-fatally on Tegra boards.
    Regression against 3.5-rc1.
    - Add the IRQF_ONESHOT flag to the cd-gpio driver, which turned
    into a regression in 3.5-rc1 when IRQF_ONESHOT became required
    for threaded IRQs with no handler.

    * tag 'mmc-fixes-for-3.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
    mmc: cd-gpio: pass IRQF_ONESHOT to request_threaded_irq()
    mmc: core: Revert "skip card initialization if power class selection fails"

    Linus Torvalds
     
  • Pull late MTD fixes from David Woodhouse:
    - fix 'sparse warning fix' regression which totally breaks MXC NAND
    - fix GPMI NAND regression when used with UBI
    - update/correct sysfs documentation for new 'bitflip_threshold' field
    - fix nandsim build failure

    * tag 'for-linus-20120712' of git://git.infradead.org/linux-mtd:
    mtd: nandsim: don't open code a do_div helper
    mtd: ABI documentation: clarification of bitflip_threshold
    mtd: gpmi-nand: fix read page when reading to vmalloced area
    mtd: mxc_nand: use 32bit copy functions

    Linus Torvalds
     
  • Pull MFD Fixes from Samuel Ortiz:
    - Three Palmas fixes, One of them being a build error fix.
    - Two mc13xx fixes. One for fixing an SPI regmap configuration and
    another one for working around an i.Mx hardware bug.
    - One omap-usb regression fix.
    - One twl6040 build breakage fix.
    - One file deletion (ab5500-core.h) that was overlooked during the last
    merge window.

    * tag 'mfd-for-linus-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
    mfd: Add missing hunk to change palmas irq to clear on read
    mfd: Fix palmas regulator pdata missing
    mfd: USB: Fix the omap-usb EHCI ULPI PHY reset fix issues.
    mfd: Update twl6040 Kconfig to avoid build breakage
    mfd: Delete ab5500-core.h
    mfd: mc13xxx workaround SPI hardware bug on i.Mx
    mfd: Fix mc13xxx SPI regmap
    mfd: Add terminating entry for i2c_device_id palmas table

    Linus Torvalds
     
  • Pull SuperH fixes from Paul Mundt.

    * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh:
    SH: Convert out[bwl] macros to inline functions
    sh: Fix up se7721 GPIOLIB=y build warnings.

    Linus Torvalds
     

13 Jul, 2012

6 commits

  • Pull a couple of KVM fixes from Avi Kivity:
    "One is an adjustment for an irq layer change that affected device
    assignment, the other a one-liner ppc fix."

    * git://git.kernel.org/pub/scm/virt/kvm/kvm:
    powerpc/kvm: Fix "PR" KVM implementation of H_CEDE
    KVM: Fix device assignment threaded irq handler

    Linus Torvalds
     
  • Commit 080399aaaf35 ("block: don't mark buffers beyond end of disk as
    mapped") exposed a bug in __getblk_slow that causes mount to hang as it
    loops infinitely waiting for a buffer that lies beyond the end of the
    disk to become uptodate.

    The problem was initially reported by Torsten Hilbrich here:

    https://lkml.org/lkml/2012/6/18/54

    and also reported independently here:

    http://www.sysresccd.org/forums/viewtopic.php?f=13&t=4511

    and then Richard W.M. Jones and Marcos Mello noted a few separate
    bugzillas also associated with the same issue. This patch has been
    confirmed to fix:

    https://bugzilla.redhat.com/show_bug.cgi?id=835019

    The main problem is here, in __getblk_slow:

    for (;;) {
    struct buffer_head * bh;
    int ret;

    bh = __find_get_block(bdev, block, size);
    if (bh)
    return bh;

    ret = grow_buffers(bdev, block, size);
    if (ret < 0)
    return NULL;
    if (ret == 0)
    free_more_memory();
    }

    __find_get_block does not find the block, since it will not be marked as
    mapped, and so grow_buffers is called to fill in the buffers for the
    associated page. I believe the for (;;) loop is there primarily to
    retry in the case of memory pressure keeping grow_buffers from
    succeeding. However, we also continue to loop for other cases, like the
    block lying beond the end of the disk. So, the fix I came up with is to
    only loop when grow_buffers fails due to memory allocation issues
    (return value of 0).

    The attached patch was tested by myself, Torsten, and Rich, and was
    found to resolve the problem in call cases.

    Signed-off-by: Jeff Moyer
    Reported-and-Tested-by: Torsten Hilbrich
    Tested-by: Richard W.M. Jones
    Reviewed-by: Josh Boyer
    Cc: Stable # 3.0+
    [ Jens is on vacation, taking this directly - Linus ]
    --
    Stable Notes: this patch requires backport to 3.0, 3.2 and 3.3.
    Signed-off-by: Linus Torvalds

    Jeff Moyer
     
  • There is multiple voltage input pins on device which
    takes the voltage input for different voltage regulator.
    Support to configure the voltage input supplied by
    different regulator for each regulators.

    Signed-off-by: Laxman Dewangan
    Signed-off-by: Mark Brown

    Laxman Dewangan
     
  • Properly define the CAMIF interrupt resources. This device have two
    interrupts - corresponding to the "codec" and "preview" data paths.
    IRQ_CAM is handled internally by the architecture and demultiplexed
    to IRQ_S3C2440_CAM_C and IRQ_S3C2440_CAM_P - these interrupts only
    should be handled in the driver.

    Signed-off-by: Sylwester Nawrocki
    Signed-off-by: Kukjin Kim

    Sylwester Nawrocki
     
  • Use correct gate control bit for AC97 clock which is
    S3C2440_CLKCON_AC97, not S3C2440_CLKCON_CAMERA.

    Signed-off-by: Sylwester Nawrocki
    Signed-off-by: Kukjin Kim

    Sylwester Nawrocki
     
  • The rework of the snd-usb endpoint logic moved the calls to
    snd_usb_set_interface() into the snd_usb_endpoint implemenation. This
    changed the order in which these calls are issued to the device, and
    thereby caused regressions for some webcams.

    Fix this by moving the calls back to pcm.c for now to make it work again
    and use snd_usb_endpoint_activate() to really tear down all remaining
    URBs in the flight, consequently fixing another regression caused by USB
    packets on the wire after altsetting 0 has been selected.

    Signed-off-by: Daniel Mack
    Reported-and-tested-by: Philipp Dreimann
    Reported-by: Joseph Salisbury
    Signed-off-by: Takashi Iwai

    Daniel Mack