<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/sound/firewire/tascam, branch linux-5.0.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.0.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.0.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2018-11-23T14:31:15Z</updated>
<entry>
<title>ALSA: firewire-tascam: notify events of change of state for userspace applications</title>
<updated>2018-11-23T14:31:15Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2018-11-23T04:13:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a8c0d13267a4151b2ff124cde6331ec28ed0d55e'/>
<id>urn:sha1:a8c0d13267a4151b2ff124cde6331ec28ed0d55e</id>
<content type='text'>
In former commits, ALSA firewire-tascam driver queues events to notify
change of state of control surface to userspace via ALSA hwdep
interface.

This commit implements actual notification of the events. The events are
not governed by real time, thus no need to care underrun.

Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire-tascam: apply small refactoring to handle several type of event for hwdep interface</title>
<updated>2018-11-23T14:31:14Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2018-11-23T04:13:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=afb8e2daa031b39900488515a73c0998491ac4b8'/>
<id>urn:sha1:afb8e2daa031b39900488515a73c0998491ac4b8</id>
<content type='text'>
In later commits, ALSA firewire-tascam driver will allow userspace
applications to receive notifications about changes of device state,
transferred in tx isochronous packet. At present, all of drivers in ALSA
firewire stack have mechanism to notify change of status of packet
streaming, thus it needs to distinguish these two types of notification.

This commit is a preparation for the above.

Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire-tascam: queue events for change of control surface</title>
<updated>2018-11-23T14:31:12Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2018-11-23T04:13:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d7167422433cdb61e58baee9c25543d0eba95c9d'/>
<id>urn:sha1:d7167422433cdb61e58baee9c25543d0eba95c9d</id>
<content type='text'>
Units of TASCAM FireWire series transfer image of states of the unit in
tx isochronous packets. Demultiplexing of the states from the packets
is done in software interrupt context regardless of any process context.
In a view of userspace applications, it needs to have notification
mechanism to catch change of the states.

This commit implements a queue to store events for the notification. The
image of states includes fluctuating data such as level of gain/volume
for physical input/output and position of knobs. Therefore the events
are queued corresponding to some control features only.

Furthermore, the queued events are planned to be consumed by userspace
applications via ALSA hwdep interface. This commit suppresses event
queueing when no applications open the hwdep interface.

However, the queue is maintained in an optimistic scenario, thus without
any care against overrrun. This is reasonable because target events are
useless just to handle PCM frames. It starts queueing when an usespace
application opens hwdep interface, thus it's expected to read the queued
events steadily.

Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire-tascam: add new hwdep ioctl command to get state image</title>
<updated>2018-11-23T14:31:10Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2018-11-23T04:13:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=90e8ac5c9d446124a5b43a6f135bf67e060c0c9d'/>
<id>urn:sha1:90e8ac5c9d446124a5b43a6f135bf67e060c0c9d</id>
<content type='text'>
In a previous commit, ALSA firewire-tascam driver stores state image
from tx isochronous packets. This image includes states of knob, fader,
button of control surface, level of gain/volume of each physical
inputs/outputs, and so on. It's useful for userspace applications to
read whole of the image.

This commit adds a unique ioctl command for ALSA hwdep interface for the
purpose. For actual meaning of each bits in this image, please refer to
discussion in alsa-devel[1].

[1] http://mailman.alsa-project.org/pipermail/alsa-devel/2018-October/140785.html

Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire-tascam: pick up data of state from tx isochronous pakcets</title>
<updated>2018-11-23T14:31:08Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2018-11-23T04:13:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=33b2e1442aeaacabb4e29f8adb31469e87599b16'/>
<id>urn:sha1:33b2e1442aeaacabb4e29f8adb31469e87599b16</id>
<content type='text'>
Units of TASCAM FireWire series multiplex PCM frames and state of
control surface into the same tx isochronous packets. One isochronous
packet includes a part of the state in a quadlet data. An image of the
state consists of 64 quadlet data.

This commit demultiplexes the state from tx isochronous packets.

Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire: simplify cleanup process when failing to register sound card</title>
<updated>2018-10-10T10:11:50Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2018-10-10T06:35:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3babca4555b20fc80aff4776662fb237257d9afd'/>
<id>urn:sha1:3babca4555b20fc80aff4776662fb237257d9afd</id>
<content type='text'>
In former commits, .private_free callback releases resources just for
data transmission. This release function can be called without the
resources are actually allocated in error paths.

This commit applies a small refactoring to clean up codes in error
paths.

Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire: release reference count of firewire unit in .remove callback of bus driver</title>
<updated>2018-10-10T10:11:41Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2018-10-10T06:35:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5b14ec25a79bf60fc9a663fe579a500b6ac9d8ab'/>
<id>urn:sha1:5b14ec25a79bf60fc9a663fe579a500b6ac9d8ab</id>
<content type='text'>
In a previous commit, drivers in ALSA firewire stack blocks .remove
callback of bus driver. This enables to release members of private
data in the callback after releasing device of sound card.

This commit simplifies codes to release the members.

Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire: block .remove callback of bus driver till all of ALSA character devices are released</title>
<updated>2018-10-10T10:11:34Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2018-10-10T06:34:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=61ccc6f6b27c03bb32ca38a3c580d49ce1612d43'/>
<id>urn:sha1:61ccc6f6b27c03bb32ca38a3c580d49ce1612d43</id>
<content type='text'>
At present, in .remove callback of bus driver just decrease reference
count of device for ALSA card instance. This delegates release of the
device to a process in which the last of ALSA character device is
released.

On the other hand, the other drivers such as for devices on PCIe are
programmed to block .remove callback of bus driver till all of ALSA
character devices are released.

For consistency of behaviour for whole drivers, this probably confuses
users. This commit takes drivers in ALSA firewire stack to imitate the
above behaviour.

Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire: use managed-resource of fw unit device for private data</title>
<updated>2018-10-04T05:54:01Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2018-10-02T23:21:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=366a20d7a75cff7f89dede6fdfd41bd491aaf8ac'/>
<id>urn:sha1:366a20d7a75cff7f89dede6fdfd41bd491aaf8ac</id>
<content type='text'>
At present, private data of each driver in ALSA firewire stack is
allocated/freed by kernel slab allocator for corresponding unit on
IEEE 1394 bus. In this case, resource-managed slab allocator is
available to release memory object automatically just before releasing
device structure for the unit. This idea can prevent runtime from
memory leak due to programming mistakes.

This commit uses the allocator for the private data. These drivers
already use reference counter to maintain lifetime of device structure
for the unit by a pair of fw_unit_get()/fw_unit_put(). The private data
is safely released in a callback of 'struct snd_card.private_free().

Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: firewire-tascam: fix memory leak of private data</title>
<updated>2018-09-13T13:14:39Z</updated>
<author>
<name>Takashi Sakamoto</name>
</author>
<published>2018-09-13T12:31:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8d28277c065a974873c6781d44b7bcdcd8fb4e8a'/>
<id>urn:sha1:8d28277c065a974873c6781d44b7bcdcd8fb4e8a</id>
<content type='text'>
Although private data of sound card instance is usually allocated in the
tail of the instance, drivers in ALSA firewire stack allocate the private
data before allocating the instance. In this case, the private data
should be released explicitly at .private_free callback of the instance.

This commit fixes memory leak following to the above design.

Fixes: b610386c8afb ('ALSA: firewire-tascam: deleyed registration of sound card')
Cc: &lt;stable@vger.kernel.org&gt; # v4.7+
Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
</feed>
