25 May, 2012

1 commit

  • Pull IEEE 1394 (FireWire) subsystem updates from Stefan Richter:

    - Fix mismatch between DMA mapping direction (was wrong) and DMA
    synchronization direction (was correct) of isochronous reception
    buffers of userspace drivers if vma-mapped for R/W access. For
    example, libdc1394 was affected.

    - more consistent retry stategy in device discovery/ rediscovery, and
    improved failure diagnostics

    - various small cleanups, e.g. use SCSI layer's DMA mapping API in
    firewire-sbp2

    * tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
    firewire: sbp2: document the absence of alignment requirements
    firewire: sbp2: remove superfluous blk_queue_max_segment_size() call
    firewire: sbp2: use scsi_dma_(un)map
    firewire: sbp2: give correct DMA device to scsi framework
    firewire: core: fw_device_refresh(): clean up error handling
    firewire: core: log config rom reading errors
    firewire: core: log error in case of failed bus manager lock
    firewire: move rcode_string() to core
    firewire: core: improve reread_config_rom() interface
    firewire: core: wait for inaccessible devices after bus reset
    firewire: ohci: omit spinlock IRQ flags where possible
    firewire: ohci: correct signedness of a local variable
    firewire: core: fix DMA mapping direction
    firewire: use module_pci_driver

    Linus Torvalds
     

14 May, 2012

3 commits


18 Apr, 2012

1 commit


23 Mar, 2012

1 commit

  • Pull IEEE 1394 (FireWire) subsystem updates post v3.3 from Stefan Richter:

    - Some SBP-2 initiator fixes, side product from ongoing work on a target.

    - Reintroduction of an isochronous I/O feature of the older ieee1394 driver
    stack (flush buffer completions); it was evidently rarely used but not
    actually unused. Matching libraw1394 code is already available.

    - Be sure to prefix all kernel log messages with device name or card name,
    and other logging related cleanups.

    - Misc other small cleanups, among them a small API change that affects
    sound/firewire/ too. Clemens Ladisch is aware of it.

    * tag 'firewire-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394: (26 commits)
    firewire: allow explicit flushing of iso packet completions
    firewire: prevent dropping of completed iso packet header data
    firewire: ohci: factor out iso completion flushing code
    firewire: ohci: simplify iso header pointer arithmetic
    firewire: ohci: optimize control bit checks
    firewire: ohci: remove unused excess_bytes field
    firewire: ohci: copy_iso_headers(): make comment match the code
    firewire: cdev: fix IR multichannel event documentation
    firewire: ohci: fix too-early completion of IR multichannel buffers
    firewire: ohci: move runtime debug facility out of #ifdef
    firewire: tone down some diagnostic log messages
    firewire: sbp2: replace a GFP_ATOMIC allocation
    firewire: sbp2: Fix SCSI sense data mangling
    firewire: sbp2: Ignore SBP-2 targets on the local node
    firewire: sbp2: Take into account Unit_Unique_ID
    firewire: nosy: Use the macro DMA_BIT_MASK().
    firewire: core: convert AR-req handler lock from _irqsave to _bh
    firewire: core: fix race at address_handler unregistration
    firewire: core: remove obsolete comment
    firewire: core: prefix log messages with card name
    ...

    Linus Torvalds
     

16 Jan, 2012

1 commit

  • fw_unit device drivers invariably need to talk to the fw_unit's parent
    (an fw_device) and grandparent (an fw_card). firewire-core already
    maintains an fw_card reference for the entire lifetime of an fw_device.
    Likewise, let firewire-core maintain an fw_device reference for the
    entire lifetime of an fw_unit so that fw_unit drivers don't have to.

    Signed-off-by: Stefan Richter

    Stefan Richter
     

07 Nov, 2011

1 commit

  • * 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
    Revert "tracing: Include module.h in define_trace.h"
    irq: don't put module.h into irq.h for tracking irqgen modules.
    bluetooth: macroize two small inlines to avoid module.h
    ip_vs.h: fix implicit use of module_get/module_put from module.h
    nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
    include: replace linux/module.h with "struct module" wherever possible
    include: convert various register fcns to macros to avoid include chaining
    crypto.h: remove unused crypto_tfm_alg_modname() inline
    uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
    pm_runtime.h: explicitly requires notifier.h
    linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
    miscdevice.h: fix up implicit use of lists and types
    stop_machine.h: fix implicit use of smp.h for smp_processor_id
    of: fix implicit use of errno.h in include/linux/of.h
    of_platform.h: delete needless include
    acpi: remove module.h include from platform/aclinux.h
    miscdevice.h: delete unnecessary inclusion of module.h
    device_cgroup.h: delete needless include
    net: sch_generic remove redundant use of
    net: inet_timewait_sock doesnt need
    ...

    Fix up trivial conflicts (other header files, and removal of the ab3550 mfd driver) in
    - drivers/media/dvb/frontends/dibx000_common.c
    - drivers/media/video/{mt9m111.c,ov6650.c}
    - drivers/mfd/ab3550-core.c
    - include/linux/dmaengine.h

    Linus Torvalds
     

01 Nov, 2011

2 commits

  • Standardize the style for compiler based printf format verification.
    Standardized the location of __printf too.

    Done via script and a little typing.

    $ grep -rPl --include=*.[ch] -w "__attribute__" * | \
    grep -vP "^(tools|scripts|include/linux/compiler-gcc.h)" | \
    xargs perl -n -i -e 'local $/; while (<>) { s/\b__attribute__\s*\(\s*\(\s*format\s*\(\s*printf\s*,\s*(.+)\s*,\s*(.+)\s*\)\s*\)\s*\)/__printf($1, $2)/g ; print; }'

    [akpm@linux-foundation.org: revert arch bits]
    Signed-off-by: Joe Perches
    Cc: "Kirill A. Shutemov"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • These aren't modules, but they do make use of these macros, so
    they will need export.h to get that definition. Previously,
    they got it via the implicit module.h inclusion.

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

04 Oct, 2011

1 commit

  • There is a lock inversion between fwspk->mutex and pcm->open_mutex
    reported by lockdep when fwspk_hw_free is called.

    Fixed by copying the fix from the same former issue in the isight
    sound driver (commit f3f7c1837f6bcae3601fc535b339426868bf1549
    "ALSA: isight: fix locking").

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

    Stefan Richter
     

15 Aug, 2011

1 commit


17 Jun, 2011

3 commits


23 May, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (346 commits)
    ASoC: core: Don't set "(null)" as a driver name
    ALSA: hda - Use LPIB for ATI/AMD chipsets as default
    Revert "ALSA: hda - Use position_fix=3 as default for AMD chipsets"
    ASoC: Tegra: Fix compile when debugfs not enabled
    ASoC: spdif-dit: Add missing MODULE_*
    SOUND: OSS: Remove Au1550 driver.
    ALSA: hda - add Intel Panther Point HDMI codec id
    ALSA: emu10k1 - Add dB range to Bass and Treble for SB Live!
    ALSA: hda - Remove PCM mixer elements from Virtual Master of realtek
    ALSA: hda - Fix input-src parse in patch_analog.c
    ASoC: davinci-mcasp: enable ping-pong SRAM buffers
    ASoC: add iPAQ hx4700 machine driver
    ASoC: Asahi Kasei AK4641 codec driver
    ALSA: hda - Enable Realtek ALC269 codec input layer beep
    ALSA: intel8x0m: enable AMD8111 modem
    ALSA: HDA: Add jack detection for HDMI
    ALSA: sound, core, pcm_lib: fix xrun_log
    ASoC: Max98095: Move existing NULL check before pointer dereference.
    ALSA: sound, core, pcm_lib: xrun_log: log also in_interrupt
    ALSA: usb-audio - Add support for USB X-Fi S51 Pro
    ...

    Linus Torvalds
     

11 May, 2011

11 commits

  • Lockdep complains about conflicts between isight->mutex,
    ALSA's register_mutex, mm->mmap_sem, and pcm->open_mutex.

    This can be fixed by moving the calls to isight_pcm_abort(),
    snd_card_disconnect(), and fw_iso_resources_update() out of
    isight->mutex. These functions are designed to be called
    asynchronously; the mutex needs to protect only the device
    streaming state modified by isight_start/stop_streaming().

    Signed-off-by: Clemens Ladisch
    Reported-by: Stefan Richter
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • Experiments have shown this driver to work now.

    Signed-off-by: Clemens Ladisch
    Tested-by: Stefan Richter
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • When aborting a PCM stream, the xrun is signaled only if the stream is
    running. When disconnecting a PCM stream, calling snd_card_disconnect()
    too early would change the stream into a non-running state and thus
    prevent the xrun from being noticed by user space.

    To prevent this, move the snd_card_disconnect() call after the xrun.

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

    Clemens Ladisch
     
  • Signed-off-by: Stefan Richter
    [cl: removed superfluous variable]
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Stefan Richter
     
  • which is needed to get the iSight to talk.

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

    Stefan Richter
     
  • Set the .header_size field when queueing packets to avoid a division by
    zero.

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

    Clemens Ladisch
     
  • After handling a received packet, we want to resubmit the same packet,
    so do not increase the packet index too early.

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

    Clemens Ladisch
     
  • Fix crashes in isight_pcm_abort() that happen when the driver tries to
    access isight->pcm->runtime which does not exist when the device is not
    open. Introduce a new field pcm_active to track this state.

    Signed-off-by: Clemens Ladisch
    Reported-by: Stefan Richter
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • This adds an experimental driver for the front and rear microphones of
    the Apple iSight web camera.

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

    Clemens Ladisch
     
  • When queueing iso packets, the run time is dominated by the two
    MMIO accesses that set the DMA context's wake bit. Because most
    drivers submit packets in batches, we can save much time by
    removing all but the last wakeup.

    The internal kernel API is changed to require a call to
    fw_iso_context_queue_flush() after a batch of queued packets.
    The user space API does not change, so one call to
    FW_CDEV_IOC_QUEUE_ISO must specify multiple packets to take
    advantage of this optimization.

    In my measurements, this patch reduces the time needed to queue
    fifty skip packets from userspace to one sixth on a 2.5 GHz CPU,
    or to one third at 800 MHz.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Stefan Richter

    Clemens Ladisch
     
  • We do not need slab allocations anymore in order to satisfy
    streaming DMA mapping constraints, thanks to commit da28947e7e36
    "firewire: ohci: avoid separate DMA mapping for small AT payloads".

    (Besides, the slab-allocated buffers that firewire-core, firewire-sbp2,
    and firedtv used to provide for 8-byte write and lock requests were
    still not fully portable since they crossed cacheline boundaries or
    shared a cacheline with unrelated CPU-accessed data. snd-firewire-lib
    got this aspect right by using an extra kmalloc/ kfree just for the
    8-byte transaction buffer.)

    This change replaces kmalloc'ed lock transaction scratch buffers in
    firewire-core, firedtv, and snd-firewire-lib by local stack allocations.
    Perhaps the most notable result of the change is simpler locking because
    there is no need to serialize usages of preallocated per-device buffers
    anymore. Also, allocations and deallocations are simpler.

    Signed-off-by: Stefan Richter
    Acked-by: Clemens Ladisch

    Stefan Richter
     

30 Mar, 2011

1 commit

  • When aborting a PCM stream, the xrun is signaled only if the stream is
    running. When disconnecting a PCM stream, calling snd_card_disconnect()
    too early would change the stream into a non-running state and thus
    prevent the xrun from being noticed by user space.

    To prevent this, move the snd_card_disconnect() call after the xrun.

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

    Clemens Ladisch
     

16 Mar, 2011

1 commit


15 Mar, 2011

4 commits

  • Add an AMDTP stream error state that occurs when we fail to queue
    another packet. In this case, the stream is stopped, and the error can
    be reported when the application tries to restart the PCM stream.

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

    Clemens Ladisch
     
  • For correct cache coherency on some architectures, DMA buffers must be
    allocated in a different cache line than data that is concurrently used
    by the CPU.

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

    Clemens Ladisch
     
  • In non-blocking mode, the SYT_INTERVAL is larger than the number of
    audio frames in each packet, so there are packets that do not contain
    any frame to which the SYT could be applied. For these packets, the
    SYT must not be the timestamp of the next valid SYT frame, but the
    special no-info SYT value.

    This fixes broken playback on the FireWave at 44.1 kHz.

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

    Clemens Ladisch
     
  • Add a driver for two playback-only FireWire devices based on the OXFW970
    chip.

    v2: better AMDTP API abstraction; fix fw_unit leak; small fixes
    v3: cache the iPCR value
    v4: FireWave constraints; fix fw_device reference counting;
    fix PCR caching; small changes and fixes
    v5: volume/mute support; fix crashing due to pcm stop races
    v6: fix build; one-channel volume for LaCie
    v7: use signed values to make volume (range checks) work; fix function
    block IDs for volume/mute; always use channel 0 for LaCie volume

    Signed-off-by: Clemens Ladisch
    Acked-by: Stefan Richter
    Tested-by: Jay Fenlason
    Signed-off-by: Takashi Iwai

    Clemens Ladisch