Commit Graph

634413 Commits

Author SHA1 Message Date
Takashi Sakamoto
2e57069c86 ALSA: bebob: compare whole string for model name so that readers are not confused
A modalias of 'ieee1394:ven00000D6Cmo00010060sp' hits units for M-Audio
FireWire Audiophile only. However the unit has two states relevant to
loaded firmware. Initial firmware returns 'FW Audiophile Bootloader',
while functional firmware returns 'FW Audiophile'.

ALSA bebob driver compares the units' model name to strings of 24 characters
by the first 15 characters. This is shorter way to differentiate these two
states but confusing to readers.

This commit improves the code for this point. Kernel stack is consumed more in
call of check_audiophile_booted() by a bit.

With initial firmware:
$ ./linux-firewire-utils/src/crpp < /sys/bus/firewire/devices/fw1/config_rom
               ROM header and bus information block
               -----------------------------------------------------------------
400  04276da6  bus_info_length 4, crc_length 39, crc 28070
404  31333934  bus_name "1394"
408  006481f2  irmc 0, cmc 0, isc 0, bmc 0, pmc 0, cyc_clk_acc 100,
               max_rec 8 (512), max_rom 1, gen 15, spd 2 (S400)
40c  000d6c03  company_id 000d6c     |
410  102b7e2e  device_id 03102b7e2e  | EUI-64 000d6c03102b7e2e

               root directory
               -----------------------------------------------------------------
414  00067414  directory_length 6, crc 29716
418  0c0083c0  node capabilities per IEEE 1394
41c  03000d6c  vendor
420  81000009  --> descriptor leaf at 444
424  17010060  model
428  8100000c  --> descriptor leaf at 458
42c  d1000001  --> unit directory at 430

               unit directory at 430
               -----------------------------------------------------------------
430  00049da1  directory_length 4, crc 40353 (should be 48611)
434  1200a02d  specifier id: 1394 TA
438  13014001  version: Vender Unique and AV/C
43c  17010060  model
440  8100000f  --> descriptor leaf at 47c

               descriptor leaf at 444
               -----------------------------------------------------------------
444  0004073e  leaf_length 4, crc 1854
448  00000000  textual descriptor
44c  00000000  minimal ASCII
450  4d2d4155  "M-AU"
454  44494f00  "DIO"

               descriptor leaf at 458
               -----------------------------------------------------------------
458  00086f21  leaf_length 8, crc 28449
45c  00000000  textual descriptor
460  00000000  minimal ASCII
464  46572041  "FW A"
468  7564696f  "udio"
46c  7068696c  "phil"
470  6520426f  "e Bo"
474  6f746c6f  "otlo"
478  61646572  "ader"

               descriptor leaf at 47c
               -----------------------------------------------------------------
47c  00086f21  leaf_length 8, crc 28449
480  00000000  textual descriptor
484  00000000  minimal ASCII
488  46572041  "FW A"
48c  7564696f  "udio"
490  7068696c  "phil"
494  6520426f  "e Bo"
498  6f746c6f  "otlo"
49c  61646572  "ader"

With functional firmware:
$ ./linux-firewire-utils/src/crpp < /sys/bus/firewire/devices/fw1/config_rom
               ROM header and bus information block
               -----------------------------------------------------------------
400  042de16f  bus_info_length 4, crc_length 45, crc 57711
404  31333934  bus_name "1394"
408  f0648122  irmc 1, cmc 1, isc 1, bmc 1, pmc 0, cyc_clk_acc 100,
               max_rec 8 (512), max_rom 1, gen 2, spd 2 (S400)
40c  000d6c03  company_id 000d6c     |
410  002b7e2e  device_id 03002b7e2e  | EUI-64 000d6c03002b7e2e

               root directory
               -----------------------------------------------------------------
414  0009dac4  directory_length 9, crc 56004
418  0400000d  hardware version
41c  0c0083c0  node capabilities per IEEE 1394
420  03000d6c  vendor
424  81000012  --> descriptor leaf at 46c
428  17010060  model
42c  81000015  --> descriptor leaf at 480
430  13ffffff  version
434  d1000002  --> unit directory at 43c
438  d4000006  --> dependent info directory at 450

               unit directory at 43c
               -----------------------------------------------------------------
43c  00041eb9  directory_length 4, crc 7865
440  1200a02d  specifier id: 1394 TA
444  13014001  version: Vender Unique and AV/C
448  17010060  model
44c  81000014  --> descriptor leaf at 49c

               dependent info directory at 450
               -----------------------------------------------------------------
450  000637c7  directory_length 6, crc 14279
454  120007f5  specifier id
458  13000001  version
45c  3affffc7  (immediate value)
460  3b100000  (immediate value)
464  3cffffc7  (immediate value)
468  3d600000  (immediate value)

               descriptor leaf at 46c
               -----------------------------------------------------------------
46c  0004b8e4  leaf_length 4, crc 47332
470  00000000  textual descriptor
474  00000000  minimal ASCII
478  4d2d4175  "M-Au"
47c  64696f00  "dio"

               descriptor leaf at 480
               -----------------------------------------------------------------
480  0006194b  leaf_length 6, crc 6475
484  00000000  textual descriptor
488  00000000  minimal ASCII
48c  46572041  "FW A"
490  7564696f  "udio"
494  7068696c  "phil"
498  65000000  "e"

               descriptor leaf at 49c
               -----------------------------------------------------------------
49c  0006194b  leaf_length 6, crc 6475
4a0  00000000  textual descriptor
4a4  00000000  minimal ASCII
4a8  46572041  "FW A"
4ac  7564696f  "udio"
4b0  7068696c  "phil"
4b4  65000000  "e"

Reported-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
Reported-by: Joe Perches <joe@perches.com>
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-18 09:22:47 +01:00
Takashi Iwai
aeaa6203b6 ALSA: emu10k1: Use workqueue instead of kthread for emu1010 fw polling
This patch is a cleanup of EMU1010 dock probing code in emu10k1 driver
to use work instead of kthread in a loop.  The work is lighter and
easier to control than kthread, in general.

Instead of a loop with the explicit sleep, we do simply
delayed-schedule the work.  At suspend/resume callbacks, the work is
canceled and restarted, respectively.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-15 08:21:19 +01:00
Takashi Iwai
4e4dfe4c3f ALSA: emu10k1: Simplify firmware loader code
The EMU1010 support in emu10k1 driver has two request_firmware()
calls, one for the main board and one for the dock.  Both call
patterns are fairly similar, and we can simplify it by introducing a
helper function and a table instead of the open switch/case.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-15 08:20:43 +01:00
Takashi Iwai
e8c44abeab ALSA: emu10k1: Fix emu1010 dock attach check
The emu1010_firmware_thread() checks the previous dock status, but a
wrong register is recorded as the last status when the dock is plugged
in.  Usually this isn't a big issue since this value gets overwritten
by the next loop after one second.  But when a dock is unplugged
immediately after plugging, it means essentially missing undock
handling.

This patch addresses it by remembering the correct register value.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-15 08:01:14 +01:00
Takashi Iwai
43e575fabb ALSA: core: Fix kernel-doc warnings
Several lines in sound/core.h get the kernel-doc warnings like

  ./include/sound/core.h:323: warning: No description found for parameter '...'

where we use define like foo(x, args...) and "args" isn't mentioned in
the comments.  As an easy workaround, use simple __VA_ARGS__ for VLA
in macros.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-15 07:28:18 +01:00
Takashi Iwai
f84551e45f ALSA: compress: Fix kernel-doc warnings
Some fields in struct snd_compr have no corresponding comments, and
the kernel-doc complains like:

  ./include/sound/compress_driver.h:162: warning: No description found for parameter 'id[64]'
  ./include/sound/compress_driver.h:162: warning: No description found for parameter 'proc_root'
  ./include/sound/compress_driver.h:162: warning: No description found for parameter 'proc_info_entry'

Actually all these are internal elements, just put "private:" comment
so that they will be ignored.

Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-15 07:28:15 +01:00
Takashi Iwai
1936f00424 ALSA: ac97: Fix kernel-doc error with sphinx formatter
Sphinx takes a word like (*foo)->bar in the kernel-doc comments as a
part of the emphasized marker, and complains like

  ./sound/pci/ac97/ac97_codec.c:1908: WARNING: Inline emphasis start-string without end-string.

For avoiding this, wrap it with the quotes (``) in the comment.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-15 07:28:12 +01:00
Fabian Frederick
b2fac07303 ALSA: pci: don't opencode IS_REACHABLE()
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-13 21:33:41 +01:00
Fabian Frederick
658355b599 ALSA: oss: don't opencode IS_REACHABLE()
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-12 10:12:00 +01:00
Fabian Frederick
7e1b23b078 ALSA: rawmidi: don't opencode IS_REACHABLE()
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-12 10:11:52 +01:00
Fabian Frederick
db0717da2a ALSA: opl3: don't opencode IS_REACHABLE()
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-12 10:11:36 +01:00
Takashi Iwai
7f084afa52 Merge branch 'topic/restize-docs' into for-next 2016-11-11 17:37:35 +01:00
Takashi Iwai
c6ab9e57e8 ASoC: doc: ReSTize codec_to_codec.txt
Yet another simple conversion from a plain text file.
Renamed to codec-to-codec.rst to align with others.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-11 17:35:10 +01:00
Takashi Iwai
76228a2b54 Merge branch 'topic/doc' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into topic/restize-docs 2016-11-11 17:34:57 +01:00
Takashi Iwai
40433cd34e ASoC: doc: ReSTize DPCM.txt
A simple conversion from a plain text file.
The file name was renamed to lower letters to align with others.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-11 17:34:22 +01:00
Takashi Iwai
8155258a7d ASoC: doc: ReSTize jack.txt
A simple conversion from a plain text file.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-11 17:34:14 +01:00
Takashi Iwai
fb3df95083 ASoC: doc: ReSTize clocking.txt
A simple conversion from a plain text file.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-11 17:34:03 +01:00
Takashi Iwai
c9746eeafc ASoC: doc: ReSTize pops_clicks.txt
A simple conversion from a plain text file.
The file name was changed from "pops_clicks" to "pops-clicks" to align
with others.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-11 17:33:54 +01:00
Takashi Iwai
d9641c9d63 ASoC: doc: ReSTize machine.txt
A simple conversion from a plain text file.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-11 17:33:46 +01:00
Takashi Iwai
d8a5d624cc ASoC: doc: ReSTize platform.txt
A simple conversion from a plain text file.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-11 17:33:37 +01:00
Takashi Iwai
77190f0333 ASoC: doc: ReSTize dapm.txt
A simple conversion from a plain text file.
The section numbers and the item numbers are dropped to align with the
ReST format.  Some lists are converted to description lists to be
clearer.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-11 17:33:29 +01:00
Takashi Iwai
e732d1bcd4 ASoC: doc: ReSTize DAI.txt
A simple conversion from a plain text file with slight reformatting /
corrections.

The file name was changed to lower letters to align with others.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-11 17:33:16 +01:00
Takashi Iwai
693ba474a3 ASoC: doc: ReSTize codec.txt
A simple conversion from a plain text file.
The section numbers are dropped to align with other documents.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-11 17:33:07 +01:00
Takashi Iwai
8e5336a144 ASoC: doc: ReSTize overview.txt
A simple conversion from a plain text file.
Created a new subdirectory, Documentation/sound/soc, for this and
other ASoC documents.

Since the index page contains the TOC, so "Documentation" section got
removed from overview.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-11 17:32:48 +01:00
Takashi Iwai
a04dae9eb1 Merge branch 'topic/restize-docs' into for-next 2016-11-11 16:15:22 +01:00
Takashi Iwai
f336c3f072 ALSA: doc: ReSTize img,spdif-in.txt
Yet another simple conversion from a plain text file.
Put to cards directory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 22:33:31 +01:00
Takashi Iwai
bb02859cd3 ALSA: doc: ReSTize serial-u16550.txt
Yet another simple conversion from a plain text file.
Put to cards directory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 22:33:29 +01:00
Takashi Iwai
c79b5bb0a3 ALSA: doc: ReSTize hdspm.txt
A simple conversion from a plain text file.  Quite a few reformatting
in the end due to the style of the original document.

Put to cards directory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 22:33:28 +01:00
Takashi Iwai
a02f5895ee ALSA: doc: ReSTize README.maya44
Another	simple conversion from a plain text file.
Put to cards directory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 22:33:27 +01:00
Takashi Iwai
7bb97dfdca ALSA: doc: ReSTize Bt87x.txt
Another	simple conversion from a plain text file.
Put to cards directory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 22:33:26 +01:00
Takashi Iwai
3d8e81862c ALSA: doc: ReSTize MIXART.txt
Another simple conversion from a plain text file.
Put to cards directory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 22:33:25 +01:00
Takashi Iwai
4e47556e34 ALSA: doc: ReSTize Audiophile-USB.txt
Another simple conversion from a plain text file.
Put to cards directory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 22:33:24 +01:00
Takashi Iwai
312c01b173 ALSA: doc: ReSTize VIA82xx-mixer.txt
Another simple conversion from a plain text file.
Put to cards directory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 22:33:23 +01:00
Takashi Iwai
e7030c96fc ALSA: doc: ReSTize emu10k1-jack.txt
Another simple conversion from a plain text file.
Put to cards directory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 22:33:22 +01:00
Takashi Iwai
72e6916671 ALSA: doc: ReSTize Audigy-mixer.txt
Another simple conversion from a plain text file.
Put to cards subdirectory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 22:33:20 +01:00
Takashi Iwai
ecef1481d5 ALSA: doc: ReSTize SB-Live-mixer document
Another simple conversion from a plain text file.
Put to cards subdirectory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 22:33:12 +01:00
Takashi Iwai
95ee717a89 ALSA: doc: ReSTize CMIPCI document
A simple conversion from a plain text file.
Put to cards subdirectory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 18:10:07 +01:00
Takashi Iwai
f59c3c6d87 ALSA: doc: ReSTize Joystick document
A conversion from a simple text file.
A new subdirectory, cards, was created to contain the card-specific
information like this one.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 18:10:03 +01:00
Takashi Iwai
df3a57105c ALSA: doc: ReSTize Jack-Controls.txt
A simple conversion from a plain text file.
Put to designs subdirectory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 18:09:31 +01:00
Takashi Iwai
20a1d0f44d ALSA: doc: ReSTize timestamping document
A simple conversion from a plain text file.
Put to designs subdirectory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 18:09:30 +01:00
Takashi Iwai
e9df12c3ba ALSA: doc: ReSTize compress-offload document
A simple conversion from a plain text file.
Put to designs subdirectory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 18:09:29 +01:00
Takashi Iwai
5a481fe309 ALSA: doc: ReSTize ControlNames.txt
A simple conversion from a plain text file.
Put to designs subdirectory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 18:09:28 +01:00
Takashi Iwai
07aecc06eb ALSA: doc: ReSTize seq_oss document
Converted from an ancient plain HTML document. It's much readable now!
Put to designs subdirectory with a slight rename.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 18:09:27 +01:00
Takashi Iwai
0c266c4b70 ALSA: doc: ReSTize OSS-Emulation document
A simple conversion from a text file.
Put to designs subdirectory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 18:09:26 +01:00
Takashi Iwai
efe541c230 ALSA: doc: ReSTize Channel-Mapping-API document
A simple conversion from a text file.
Put to designs subdirectory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 18:09:25 +01:00
Takashi Iwai
48e92b488d ALSA: doc: ReSTize powersave document
A simple conversion from a text file.
Put into designs subdirectory, although it's mostly relevant with
HD-audio.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 18:09:23 +01:00
Takashi Iwai
afb8fd3c72 ALSA: doc: ReSTize Procfile document
A simple conversion from a text file.

A new subidrectory, Documentation/sound/designs, was created to put
this document.  The other API design and implementation docuemnts
will be put to that directory in later commits.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 18:09:21 +01:00
Takashi Iwai
f6d23df5ca ALSA: doc: ReSTize ALSA-Configuration document
A simple conversion from the text file.

Since this is the only document specific to the configurations, it's
put to the root sound subdirectory.

A section describing the obsoleted configure stuff of old alsa-driver
tarball got removed.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 18:08:44 +01:00
Takashi Iwai
76ab4e1515 ALSA: doc: ReSTize HD-Audio-DP-MST-audio.txt
A simple conversion from a plain text file.
Put to hd-audio subdirectory.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 17:59:23 +01:00
Takashi Iwai
fe0abd18e1 ALSA: doc: ReSTize HD-Audio-Controls document
A conversion from a simple text file.
Put to hd-audio subdirectory with a rename.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-11-10 17:59:22 +01:00