01 Dec, 2009

1 commit


10 Nov, 2009

7 commits

  • Record the pid of the task that opened a RawMIDI substream.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • Record the pid of the task that opened a PCM substream. For sound
    cards with hardware mixing, this allows determining which process
    is associated with a specific substream's volume control.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • The substream_opened field is to count the number of opened substreams,
    not the number of times that any substreams have been opened.

    Furthermore, all substreams being opened does not imply that the next
    open would fail, due to the possibility of O_APPEND. With this wrong
    check, opening a substream multiple times would succeed only if the
    device had more unopened substreams.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • Takashi Iwai
     
  • Commit 9a1b64caac82aa02cb74587ffc798e6f42c6170a in 2.6.30 broke the
    error handling code in rawmidi_open_priv().

    If only the output substream of a RawMIDI device has been opened and
    if this device is then opened with O_RDWR | O_APPEND and if the
    initialization of the input substream fails (either because of low
    memory or because the device driver's open callback fails), then the
    runtime structure of the already open output substream will be freed
    and all following writes through the first handle will cause
    snd_rawmidi_write() to use the NULL runtime pointer.

    Signed-off-by: Clemens Ladisch
    Cc:
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • Commit 9a1b64caac82aa02cb74587ffc798e6f42c6170a in 2.6.30 dropped the
    check that a substream must already have been opened with O_APPEND to be
    able to open it a second time.

    This would make it possible for a substream to be switched to append
    mode, which would mean that non-atomic writes would fail unexpectedly.

    Signed-off-by: Clemens Ladisch
    Cc:
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • Commit 9a1b64caac82aa02cb74587ffc798e6f42c6170a in 2.6.30 moved the
    substream initialization code to where it would be executed every time
    the substream is opened.

    This had the consequence that any further opening would drop and leak
    the data in the existing buffer, and that the device driver's open
    callback would be called multiple times, unexpectedly.

    Signed-off-by: Clemens Ladisch
    Cc:
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     

08 Nov, 2009

3 commits


07 Nov, 2009

3 commits

  • So far, CORB/RIRB still remains even if the driver is switched to the
    single_cmd mode. The specification says that this should be disabled,
    but I hoped this isn't the case; indeed most devices worked together with
    CORB/RIRB.

    However, Poulsbo (US15W) seems problematic with this setup, and it
    requires to disable CORB/RIRB when single_cmd is used.

    Now this patch disables CORB/RIRB initialization when the single_cmd
    mode is used. Also the unsolicited event is disabled because it can't
    work without RIRB.

    Reported-and-tested-by: Troy Kisky
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Fix combine_word problem where first octet is not
    read properly. The only affected place seems to be the
    INPUT_TERMINAL type. Before now, sound controls can be created
    with the output terminal's name which is a fallback mechanism
    used only for unknown input terminal types. For example,
    Line can wrongly appear as Speaker. After the change it
    should appear as Line.

    The side effect of this change can be that users
    can expect the wrong control name in their scripts or
    programs while now we return the correct one.

    Probably, these defines should use get_unaligned_le16 and
    friends.

    Signed-off-by: Julian Anastasov
    Cc:
    Signed-off-by: Takashi Iwai

    Julian Anastasov
     
  • SPIN_LOCK_UNLOCKED is deprecated. Use __SPIN_LOCK_UNLOCKED instead.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Takashi Iwai

    Thomas Gleixner
     

06 Nov, 2009

5 commits

  • Added the missing clk_enable after acquiring the 'audio-bus' clock.

    Signed-off-by: Jassi Brar
    Signed-off-by: Mark Brown

    Jassi Brar
     
  • After DMA burst mode has been introduced in sound/soc/omap/omap-pcm.c,
    omap_pcm_prepare() unconditionally calls:

    omap_set_dma_src_burst_mode(prtd->dma_ch, OMAP_DMA_DATA_BURST_16);
    omap_set_dma_dest_burst_mode(prtd->dma_ch, OMAP_DMA_DATA_BURST_16);

    Current implementation of those two functions found in
    arch/arm/plat-ompa/dma.c doesn't support OMAP_DMA_DATA_BURST_16 on OMAP1 at
    all, so they both end with BUG() on that machine. That results in
    ASoC being completely unusable, at least on my OMAP5910 based Amstrad Delta.

    The patch corrects the problem by not calling those two functions when run on
    OMAP1 class based machines.

    Created against linux-2.6.32-rc5.
    Tested on Amstrad Delta.

    Signed-off-by: Janusz Krzysztofik
    Acked-by: Jarkko Nikula
    Signed-off-by: Mark Brown

    Janusz Krzysztofik
     
  • Instead of storing the PID number, take a reference to the task's pid
    structure. This protects against duplicates due to PID overflows, and
    using pid_vnr() ensures that the PID returned by snd_ctl_elem_info() is
    correct as seen from the current namespace.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • We do not need to save the ID of the process that locked a control
    because that information is already available in the owner's file data.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • Function hp_bseries_system() is always used, outside of
    CONFIG_ boundaries/controls, so move it.

    sound/pci/hda/patch_sigmatel.c:5458: error: implicit declaration of function 'hp_bseries_system'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Takashi Iwai

    Randy Dunlap
     

05 Nov, 2009

4 commits


04 Nov, 2009

8 commits

  • The XO-1.5 laptop now has a unique subvendor/subproduct ID, which can
    be used to automatically select the correct CXT5066 configuration.

    Signed-off-by: Daniel Drake
    Signed-off-by: Takashi Iwai

    Daniel Drake
     
  • This is a port of the sound/oss/sh_dac_audio.c driver.
    The driver uses an on-chip 8-bit D/A converter, which has a speaker connected
    to one of its channels, found in several ancient HP machines.
    For interrupts it uses a high-resolution timer (hrtimer).
    Tested on SH7709 based hp6xx (HP Jornada 680/690 and HP Palmtop 620lx/660lx).

    Also, since OSS Emulation works, the old OSS sound/oss/sh_dac_audio.c driver
    would be obsolete soon, and it could be removed.

    Signed-off-by: Rafael Ignacio Zurita
    Acked-by: Paul Mundt
    Signed-off-by: Takashi Iwai

    Rafael Ignacio Zurita
     
  • This patch enables GPIO to control mute LED indicator on the HP systems
    with the special string in BIOS and applies it with the correct polarity on
    HP B-series systems.

    It also restores configuration of the pin intended as the second Headphone
    on HP B-series systems but configured as something else in the BIOS to
    pass MS DTM.

    Signed-off-by: Vitaliy Kulikov
    Signed-off-by: Takashi Iwai

    Vitaliy Kulikov
     
  • Linus Torvalds
     
  • * 'for-linus' of git://github.com/at91linux/linux-2.6-at91:
    at91: at91sam9g45 family: identify several chip versions
    avr32: add two new at91 to cpu.h definition

    Linus Torvalds
     
  • cpu_is_xxx() macros are identifying generic at91sam9g45 chip. This patch adds
    the capacity to differentiate Engineering Samples and final lots through the
    inclusion of at91_cpu_fully_identify() and the related chip IDs with chip
    version field preserved.

    Signed-off-by: Nicolas Ferre
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD
    Acked-by: Hans-Christian Egtvedt

    Nicolas Ferre
     
  • Somme common drivers will need those at91 cpu_is_xxx() definitions. As
    at91sam9g10 and at91sam9g45 are on the way to linus' tree, here is the patch
    that adds those chips to cpu.h in AVR32 architecture.

    Signed-off-by: Nicolas Ferre
    Signed-off-by: Haavard Skinnemoen

    Nicolas Ferre
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (38 commits)
    MIPS: O32: Fix ppoll
    MIPS: Oprofile: Rename cpu_type from godson2 to loongson2
    MIPS: Alchemy: Fix hang with high-frequency edge interrupts
    MIPS: TXx9: Fix spi-baseclk value
    MIPS: bcm63xx: Set the correct BCM3302 CPU name
    MIPS: Loongson 2: Set cpu_has_dc_aliases and cpu_icache_snoops_remote_store
    MIPS: Avoid potential hazard on Context register
    MIPS: Octeon: Use lockless interrupt controller operations when possible.
    MIPS: Octeon: Use write_{un,}lock_irq{restore,save} to set irq affinity
    MIPS: Set S-cache linesize to 64-bytes for MTI's S-cache
    MIPS: SMTC: Avoid queing multiple reschedule IPIs
    MIPS: GCMP: Avoid accessing registers when they are not present
    MIPS: GIC: Random fixes and enhancements.
    MIPS: CMP: Fix memory barriers for correct operation of amon_cpu_start
    MIPS: Fix abs.[sd] and neg.[sd] emulation for NaN operands
    MIPS: SPRAM: Clean up support code a little
    MIPS: 1004K: Enable SPRAM support.
    MIPS: Malta: Enable PCI 2.1 compatibility in PIIX4
    MIPS: Kconfig: Fix duplicate default value for MIPS_L1_CACHE_SHIFT.
    MIPS: MTI: Fix accesses to device registers on MIPS boards
    ...

    Linus Torvalds
     

03 Nov, 2009

9 commits

  • * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
    PM: Remove some debug messages producing too much noise
    PM: Fix warning on suspend errors
    PM / Hibernate: Add newline to load_image() fail path
    PM / Hibernate: Fix error handling in save_image()
    PM / Hibernate: Fix blkdev refleaks
    PM / yenta: Split resume into early and late parts (rev. 4)

    Linus Torvalds
     
  • nr_processes() returns the sum of the per cpu counter process_counts for
    all online CPUs. This counter is incremented for the current CPU on
    fork() and decremented for the current CPU on exit(). Since a process
    does not necessarily fork and exit on the same CPU the process_count for
    an individual CPU can be either positive or negative and effectively has
    no meaning in isolation.

    Therefore calculating the sum of process_counts over only the online
    CPUs omits the processes which were started or stopped on any CPU which
    has since been unplugged. Only the sum of process_counts across all
    possible CPUs has meaning.

    The only caller of nr_processes() is proc_root_getattr() which
    calculates the number of links to /proc as
    stat->nlink = proc_root.nlink + nr_processes();

    You don't have to be all that unlucky for the nr_processes() to return a
    negative value leading to a negative number of links (or rather, an
    apparently enormous number of links). If this happens then you can get
    failures where things like "ls /proc" start to fail because they got an
    -EOVERFLOW from some stat() call.

    Example with some debugging inserted to show what goes on:
    # ps haux|wc -l
    nr_processes: CPU0: 90
    nr_processes: CPU1: 1030
    nr_processes: CPU2: -900
    nr_processes: CPU3: -136
    nr_processes: TOTAL: 84
    proc_root_getattr. nlink 12 + nr_processes() 84 = 96
    84
    # echo 0 >/sys/devices/system/cpu/cpu1/online
    # ps haux|wc -l
    nr_processes: CPU0: 85
    nr_processes: CPU2: -901
    nr_processes: CPU3: -137
    nr_processes: TOTAL: -953
    proc_root_getattr. nlink 12 + nr_processes() -953 = -941
    75
    # stat /proc/
    nr_processes: CPU0: 84
    nr_processes: CPU2: -901
    nr_processes: CPU3: -137
    nr_processes: TOTAL: -954
    proc_root_getattr. nlink 12 + nr_processes() -954 = -942
    File: `/proc/'
    Size: 0 Blocks: 0 IO Block: 1024 directory
    Device: 3h/3d Inode: 1 Links: 4294966354
    Access: (0555/dr-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
    Access: 2009-11-03 09:06:55.000000000 +0000
    Modify: 2009-11-03 09:06:55.000000000 +0000
    Change: 2009-11-03 09:06:55.000000000 +0000

    I'm not 100% convinced that the per_cpu regions remain valid for offline
    CPUs, although my testing suggests that they do. If not then I think the
    correct solution would be to aggregate the process_count for a given CPU
    into a global base value in cpu_down().

    This bug appears to pre-date the transition to git and it looks like it
    may even have been present in linux-2.6.0-test7-bk3 since it looks like
    the code Rusty patched in http://lwn.net/Articles/64773/ was already
    wrong.

    Signed-off-by: Ian Campbell
    Cc: Andrew Morton
    Cc: Rusty Russell
    Signed-off-by: Linus Torvalds

    Ian Campbell
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: gpio-keys - use IRQF_SHARED
    Input: winbond-cir - select LEDS_TRIGGERS
    Input: i8042 - try to get stable CTR value when initializing
    Input: atkbd - add a quirk for OQO 01+ multimedia keys

    Linus Torvalds
     
  • * 'fixes-s3c-2632-rc5' of git://git.fluff.org/bjdooks/linux:
    ARM: S3C2410: Fix sparse warnings in arch/arm/mach-s3c2410/gpio.c
    ARM: S3C2440: mini2440: Fix spare warnings
    ARM: S3C24XX: Fix warnings in arch/arm/plat-s3c24xx/gpio.c
    ARM: S3C2440: mini2440: Fix missing CONFIG_S3C_DEV_USB_HOST
    ARM: S3C24XX: arch/arm/plat-s3c24xx: Move dereference after NULL test
    ARM: S3C: Fix adc function exports
    ARM: S3C2410: Fix link if CONFIG_S3C2410_IOTIMING is not set
    ARM: S3C24XX: Introduce S3C2442B CPU
    ARM: S3C24XX: Define a macro to avoid compilation error
    ARM: S3C: Add info for supporting circular DMA buffers
    ARM: S3C64XX: Set rate of crystal mux
    ARM: S3C64XX: Fix S3C64XX_CLKDIV0_ARM_MASK value

    Linus Torvalds
     
  • * 'i2c-fixes' of git://git.fluff.org/bjdooks/linux:
    i2c-mpc: Do not generate STOP after read.
    i2c: imx: disable clock when it's possible to save power.
    i2c: imx: only imx1 needs disable delay
    i2c: imx: check busy bit when START/STOP

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:
    nilfs2: add zero-fill for new btree node buffers
    nilfs2: fix irregular checkpoint creation due to data flush
    nilfs2: fix dirty page accounting leak causing hang at write

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (21 commits)
    mac80211: check interface is down before type change
    cfg80211: fix NULL ptr deref
    libertas if_usb: Fix crash on 64-bit machines
    mac80211: fix reason code output endianness
    mac80211: fix addba timer
    ath9k: fix misplaced semicolon on rate control
    b43: Fix DMA TX bounce buffer copying
    mac80211: fix BSS leak
    rt73usb.c : more ids
    ipw2200: fix oops on missing firmware
    gre: Fix dev_addr clobbering for gretap
    sky2: set carrier off in probe
    net: fix sk_forward_alloc corruption
    pcnet_cs: add cis of PreMax PE-200 ethernet pcmcia card
    r8169: Fix card drop incoming VLAN tagged MTU byte large jumbo frames
    ibmtr: possible Read buffer overflow?
    net: Fix RPF to work with policy routing
    net: fix kmemcheck annotations
    e1000e: rework disable K1 at 1000Mbps for 82577/82578
    e1000e: config PHY via software after resets
    ...

    Linus Torvalds
     
  • pm_runtime_idle() is somewhat noisy. Remove debug prints.

    Signed-off-by: Pavel Machek
    Signed-off-by: Rafael J. Wysocki

    Pavel Machek
     
  • Fixes the point where we need to complete the power transition when
    device suspend fails, so that we don't print warnings about devices
    added to the device hierarchy after a failing suspend.

    [rjw: Modified changelog.]

    Signed-off-by: Romit Dasgupta
    Signed-off-by: Rafael J. Wysocki

    Romit Dasgupta