29 Apr, 2015

1 commit

  • Looks like audigy emu10k2 (probably emu10k1 - sb live too) support two
    modes for DMA. Second mode is useful for 64 bit os with more then 2 GB
    of ram (fixes problems with big soundfont loading)

    1) 32MB from 2 GB address space using 8192 pages (used now as default)
    2) 16MB from 4 GB address space using 4096 pages

    Mode is set using HCFG_EXPANDED_MEM flag in HCFG register.
    Also format of emu10k2 page table is then different.

    Signed-off-by: Peter Zubaj
    Tested-by: Takashi Iwai
    Cc:
    Signed-off-by: Takashi Iwai

    Peter Zubaj
     

27 Apr, 2015

1 commit

  • Some models provide too long string for the shortname that has 32bytes
    including the terminator, and it results in a non-terminated string
    exposed to the user-space. This isn't too critical, though, as the
    string is stopped at the succeeding longname string.

    This patch fixes such entries by dropping "SB" prefix (it's enough to
    fit within 32 bytes, so far). Meanwhile, it also changes strcpy()
    with strlcpy() to make sure that this kind of problem won't happen in
    future, too.

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

13 Apr, 2015

1 commit


12 Apr, 2015

1 commit


11 Apr, 2015

1 commit


10 Apr, 2015

1 commit

  • The functions snd_emu10k1_proc_spdif_read and snd_emu1010_fpga_read
    acquire the emu_lock before accessing the FPGA. The function used
    to access the FPGA (snd_emu1010_fpga_read) also tries to take
    the emu_lock which causes a deadlock.
    Remove the outer locking in the proc-functions (guarding only the
    already safe fpga read) to prevent this deadlock.

    [removed superfluous flags variables too -- tiwai]

    Signed-off-by: Michael Gernoth
    Cc:
    Signed-off-by: Takashi Iwai

    Michael Gernoth
     

06 Apr, 2015

1 commit


12 Feb, 2015

1 commit

  • This patch moves the driver object initialization and allocation to
    each driver's module init/exit code like other normal drivers. The
    snd_seq_driver struct is now published in seq_device.h, and each
    driver is responsible to define it with proper driver attributes
    (name, probe and remove) with snd_seq_driver specific attributes as id
    and argsize fields. The helper functions snd_seq_driver_register(),
    snd_seq_driver_unregister() and module_snd_seq_driver() are used for
    simplifying codes.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

11 Jan, 2015

1 commit


09 Jan, 2015

1 commit

  • This is a similar cleanup like the commit [3db084fd0af5: ALSA: fm801:
    PCI core handles power state for us].

    Since pci_set_power_state(), pci_save_state() and pci_restore_state()
    are already done in the PCI core side, so we don't need to it doubly.

    Also, pci_enable_device(), pci_disable_device() and pci_set_master()
    calls in PM callbacks are superfluous nowadays, too, so get rid of
    them as well.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

04 Jan, 2015

1 commit


02 Jan, 2015

1 commit

  • The various PCM and hwdep allocation functions in this driver take a pointer
    to a pointer of a PCM/hwdep where if this parameter is provided the newly
    allocated object is stored. All callers pass NULL though, so remove the
    parameter.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Takashi Iwai

    Lars-Peter Clausen
     

11 Nov, 2014

1 commit


03 Nov, 2014

1 commit


21 Oct, 2014

1 commit


14 Oct, 2014

1 commit

  • The emu10k1 voice allocator takes voice_lock spinlock. When there is
    no empty stream available, it tries to release a voice used by synth,
    and calls get_synth_voice. The callback function,
    snd_emu10k1_synth_get_voice(), however, also takes the voice_lock,
    thus it deadlocks.

    The fix is simply removing the voice_lock holds in
    snd_emu10k1_synth_get_voice(), as this is always called in the
    spinlock context.

    Reported-and-tested-by: Arthur Marsh
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

13 Aug, 2014

1 commit

  • We should prefer `struct pci_device_id` over `DEFINE_PCI_DEVICE_TABLE` to
    meet kernel coding style guidelines. This issue was reported by checkpatch.

    A simplified version of the semantic patch that makes this change is as
    follows (http://coccinelle.lip6.fr/):

    //

    @@
    identifier i;
    declarer name DEFINE_PCI_DEVICE_TABLE;
    initializer z;
    @@

    - DEFINE_PCI_DEVICE_TABLE(i)
    + const struct pci_device_id i[]
    = z;

    //

    [bhelgaas: add semantic patch]
    Signed-off-by: Benoit Taine
    Signed-off-by: Bjorn Helgaas

    Benoit Taine
     

05 Mar, 2014

1 commit

  • The previous dev_err() conversion resulted in a code that may give
    NULL dereference in snd_emu10k1_ptr_write(). Since it's a sanity
    check, better to be replaced with a debug macro like other places in
    this driver.

    Fixes: 6f002b02166c ('ALSA: emu10k1: Use standard printk helpers')
    Reported-by: Dan Carpenter
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

26 Feb, 2014

2 commits


12 Feb, 2014

1 commit


18 Oct, 2013

1 commit

  • Partially restructures _snd_emu10k1_audigy_init_efx() and
    _snd_emu10k1_init_efx() functions.

    Be noted that the cast is demanded to use '__user'. So, in these cases,
    avoid patches based on the coccinelle 'drop_kmalloc_cast' semantic patch.

    Signed-off-by: Geyslan G. Bem
    Signed-off-by: Takashi Iwai

    Geyslan G. Bem
     

29 May, 2013

1 commit

  • As drvdata is cleared to NULL at probe failure or at removal by the
    driver core, we don't have to call pci_set_drvdata(pci, NULL) any
    longer in each driver.

    The only remaining pci_set_drvdata(NULL) is in azx_firmware_cb() in
    hda_intel.c. Since this function itself releases the card instance,
    we need to clear drvdata here as well, so that it won't be released
    doubly in the remove callback.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

24 Apr, 2013

1 commit

  • The commit [b209c4df: ALSA: emu10k1: cache emu1010 firmware] broke the
    firmware loading of the dock, just (mistakenly) ignoring a different
    firmware for docks on some models. This patch revives them again.

    Bugzilla: https://bugs.archlinux.org/task/34865
    Reported-and-tested-by: Tobias Powalowski
    Cc: [v3.8+]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

25 Feb, 2013

2 commits


22 Feb, 2013

1 commit


14 Dec, 2012

1 commit

  • Pull trivial branch from Jiri Kosina:
    "Usual stuff -- comment/printk typo fixes, documentation updates, dead
    code elimination."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    HOWTO: fix double words typo
    x86 mtrr: fix comment typo in mtrr_bp_init
    propagate name change to comments in kernel source
    doc: Update the name of profiling based on sysfs
    treewide: Fix typos in various drivers
    treewide: Fix typos in various Kconfig
    wireless: mwifiex: Fix typo in wireless/mwifiex driver
    messages: i2o: Fix typo in messages/i2o
    scripts/kernel-doc: check that non-void fcts describe their return value
    Kernel-doc: Convention: Use a "Return" section to describe return values
    radeon: Fix typo and copy/paste error in comments
    doc: Remove unnecessary declarations from Documentation/accounting/getdelays.c
    various: Fix spelling of "asynchronous" in comments.
    Fix misspellings of "whether" in comments.
    eisa: Fix spelling of "asynchronous".
    various: Fix spelling of "registered" in comments.
    doc: fix quite a few typos within Documentation
    target: iscsi: fix comment typos in target/iscsi drivers
    treewide: fix typo of "suport" in various comments and Kconfig
    treewide: fix typo of "suppport" in various comments
    ...

    Linus Torvalds
     

07 Dec, 2012

1 commit

  • CONFIG_HOTPLUG is going away as an option. As result the __dev*
    markings will be going away.

    Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst,
    and __devexit.

    Signed-off-by: Bill Pemberton
    Signed-off-by: Takashi Iwai

    Bill Pemberton
     

23 Nov, 2012

3 commits


19 Nov, 2012

1 commit


18 Oct, 2012

1 commit


06 Oct, 2012

1 commit

  • A simplified version of the semantic patch that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @r1@
    statement S;
    position p,p1;
    @@
    S@p1;@p

    @script:python r2@
    p << r1.p;
    p1 << r1.p1;
    @@
    if p[0].line != p1[0].line_end:
    cocci.include_match(False)
    @@
    position r1.p;
    @@
    -;@p
    //

    Signed-off-by: Peter Senna Tschudin
    Signed-off-by: Takashi Iwai

    Peter Senna Tschudin
     

12 Sep, 2012

1 commit


05 Sep, 2012

1 commit


15 Aug, 2012

1 commit


03 Aug, 2012

1 commit

  • When period=1, the driver tries to allocate a bit bigger buffer than
    requested by the user due to the irq latency tolerance. This may lead
    to accesses over the actually allocated pages.

    This patch adds a check of the page index and assigns the silent page
    when it's over the given buffer size.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

03 Jul, 2012

1 commit