11 Jan, 2012

1 commit

  • Before, /proc/asound looked like this:

    2 [Default ]: HDSPM - RME RayDAT_f1cd85
    RME RayDAT S/N 0xf1cd85 at 0xf7300000, irq 18

    In case of a second HDSPM card, its name would be Default_1. This is
    cumbersome, because the order of the cards isn't stable across reboots.

    To help userspace tools referring to the correct card, this commit
    provides a unique id for each card:

    2 [HDSPMxf1cd85 ]: HDSPM - RME RayDAT_f1cd85
    RME RayDAT S/N 0xf1cd85 at 0xf7300000, irq 18

    In this example, userspace (configuration files) would then use
    hw:HDSPMxf1cd85 to choose the right card.

    The serial is masked to 24bits, so this string is always shorter than
    sixteen chars.

    Signed-off-by: Adrian Knoth
    Signed-off-by: Takashi Iwai

    Adrian Knoth
     

10 Jan, 2012

1 commit


08 Jan, 2012

1 commit


19 Dec, 2011

1 commit

  • module_param(bool) used to counter-intuitively take an int. In
    fddd5201 (mid-2009) we allowed bool or int/unsigned int using a messy
    trick.

    It's time to remove the int/unsigned int option. For this version
    it'll simply give a warning, but it'll break next kernel version.

    Signed-off-by: Rusty Russell
    Signed-off-by: Takashi Iwai

    Rusty Russell
     

22 Nov, 2011

1 commit

  • Commit c09403dcc5698abf214329fbbf3cf8dbb5558bea has introduced a
    regression: PCIe versions of RME MADI were no longer detected, because
    the MADIface ID (0xd5) was used instead of the correct 0xd2.

    This commit fixes the problem.

    Signed-off-by: Adrian Knoth
    Signed-off-by: Takashi Iwai

    Adrian Knoth
     

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

1 commit


31 Oct, 2011

3 commits


23 Sep, 2011

2 commits

  • This makes the code cleaner and silences a Sparse complaint:
    sound/pci/rme9652/hdspm.c:6341:23: warning: incorrect type in assignment (incompatible argument 4 (different address spaces))
    sound/pci/rme9652/hdspm.c:6341:23: expected int ( *ioctl )( ... )
    sound/pci/rme9652/hdspm.c:6341:23: got int ( static [toplevel] * )( ... )
    sound/pci/rme9652/hdspm.c:6102:44: warning: dereference of noderef expression
    sound/pci/rme9652/hdspm.c:6225:50: warning: dereference of noderef expression
    sound/pci/rme9652/hdspm.c:6264:50: warning: dereference of noderef expression
    sound/pci/rme9652/hdspm.c:6283:50: warning: dereference of noderef expression
    sound/pci/rme9652/hdspm.c:6289:59: warning: dereference of noderef expression

    Signed-off-by: Dan Carpenter
    Signed-off-by: Takashi Iwai

    Dan Carpenter
     
  • Smatch has a new check for Rosenberg type information leaks where
    structs are copied to the user with uninitialized stack data in them.

    The status struct has a hole in it, and on some paths not all the
    members were initialized.

    struct hdspm_status {
    unsigned char card_type; /* 0 1 */
    /* XXX 3 bytes hole, try to pack */
    enum hdspm_syncsource autosync_source; /* 4 4 */
    long long unsigned int card_clock; /* 8 8 */

    The hdspm_version struct had holes in it as well.

    struct hdspm_version {
    unsigned char card_type; /* 0 1 */
    char cardname[20]; /* 1 20 */
    /* XXX 3 bytes hole, try to pack */
    unsigned int serial; /* 24 4 */
    short unsigned int firmware_rev; /* 28 2 */
    /* XXX 2 bytes hole, try to pack */
    int addons; /* 32 4 */

    Signed-off-by: Dan Carpenter
    Signed-off-by: Takashi Iwai

    Dan Carpenter
     

15 Aug, 2011

8 commits


05 Aug, 2011

1 commit


29 Jul, 2011

3 commits


22 Jul, 2011

1 commit


30 Jun, 2011

1 commit

  • The char can be unsigned on some architectures. Since the code checks
    the negative values, they should be declared as signed char explicitly.

    sound/pci/rme9652/hdspm.c:5449: warning: comparison is always false due to limited range of data type
    sound/pci/rme9652/hdspm.c:5462: warning: comparison is always false due to limited range of data type

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

14 Jun, 2011

1 commit


13 Jun, 2011

3 commits


10 Jun, 2011

2 commits

  • The name argument of request_irq() appears in /proc/interrupts, and
    it's quite ugly when the name entry contains a space or special letters.
    In general, it's simpler and more readable when the module name appears
    there, so let's replace all entries with KBUILD_MODNAME.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The convention for pci_driver.name entry in kernel drivers seem to be
    the module name or equivalent ones. But, so far, almost all PCI sound
    drivers use more verbose name like "ABC Xyz (12)", and these are fairly
    confusing when appearing as a file name.

    This patch converts the all pci_driver.name entries in sound/pci/* to
    use KBUILD_MODNAME for more unified appearance.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

31 Mar, 2011

1 commit


08 Mar, 2011

1 commit


28 Feb, 2011

4 commits

  • Depending on the model and the presence of a TCO module, the number of
    midi ports varies. Some have 1 port (MADIface), some have 2 (default),
    with TCO, there are 3.

    Don't hardcode the number of midi ports to initialize.

    This patch also fixes a boot lockup on MADIface.

    [Coding-style fixes by tiwai]

    Signed-off-by: Adrian Knoth
    Signed-off-by: Takashi Iwai

    Adrian Knoth
     
  • Don't continue if we cannot detect the real card type, otherwise, all
    subsequent functions, especially strcpy(), would fail, leaving the whole
    driver in an unusable state.

    Without such a protection, dmesg would look like this:

    Pid: 1525, comm: modprobe Not tainted 2.6.38-rc6 #1 MSI MS-7250/MS-7250
    EIP: 0060:[] EFLAGS: 00010296 CPU: 1
    EIP is at strcpy+0x10/0x30
    EAX: f4d33e58 EBX: f5990800 ECX: f4d33e58 EDX: 00000000
    ESI: 00000000 EDI: f4d33e58 EBP: f5990930 ESP: f3dd3e0c
    DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
    f53d4204 00000000 f90bfc03 00000001 00000001 f3dd3e64 c10fedff f3dd3e7c
    f3d854e4 f53d4000 c10307b8 00000001 c10307b8 f5990860 c10307b8 00000001
    c10332e5 f59908bc c12f4339 f59908bc f5990860 c11ef207 f4d33e00 f53d4000
    [] ? snd_hdspm_probe+0x7e7/0x1166 [snd_hdspm]
    [] ? __sysfs_add_one+0x1f/0xf0
    [] ? get_parent_ip+0x8/0x20
    [] ? get_parent_ip+0x8/0x20
    [] ? get_parent_ip+0x8/0x20
    [] ? add_preempt_count+0xa5/0xd0
    [] ? _raw_spin_lock_irqsave+0x19/0x40
    [] ? pm_runtime_enable+0x17/0x80
    [] ? local_pci_probe+0x42/0xb0
    [] ? pci_device_probe+0x61/0x80
    [] ? driver_probe_device+0x77/0x180
    [] ? pci_match_device+0xa0/0xc0
    [] ? __driver_attach+0x79/0x80
    [] ? __driver_attach+0x0/0x80
    [] ? bus_for_each_dev+0x52/0x80
    [] ? driver_attach+0x16/0x20
    [] ? __driver_attach+0x0/0x80
    [] ? bus_add_driver+0xa1/0x220
    [] ? pci_device_remove+0x0/0xf0
    [] ? driver_register+0x63/0x120
    [] ? __pci_register_driver+0x3d/0xb0
    [] ? do_one_initcall+0x32/0x160
    [] ? alsa_card_hdspm_init+0x0/0x14 [snd_hdspm]
    [] ? sys_init_module+0x99/0x1e0
    [] ? sys_close+0x6d/0xc0
    [] ? sysenter_do_call+0x12/0x26
    ---[ end trace 239f0661c558378b ]---

    Signed-off-by: Adrian Knoth
    Signed-off-by: Takashi Iwai

    Adrian Knoth
     
  • In contrast to the PCIe version (RME AES), the PCI version (RME AES32)
    has a different firmware revision.

    This patch adds the missing PCI revision.

    Signed-off-by: Adrian Knoth
    Signed-off-by: Takashi Iwai

    Adrian Knoth
     
  • Signed-off-by: Adrian Knoth
    Signed-off-by: Takashi Iwai

    Adrian Knoth
     

23 Feb, 2011

2 commits