ALSA: firewire-lib: Add 'direction' member to 'amdtp_stream' structure
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Fri, 25 Apr 2014 13:44:44 +0000 (22:44 +0900)
committerTakashi Iwai <tiwai@suse.de>
Mon, 26 May 2014 12:11:42 +0000 (14:11 +0200)
This patch adds 'direction' member to amdtp_stream structure to indicate its
direction. This patch also adds 'direction' argument to amdtp_stream_init()
function to determine its direction.

The amdtp_stream_init() function is exported and used by firewire-speakers and
dice so this patch also affects them.

This patch just add them. Actual implementation will be done by followed
patches.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/amdtp.c
sound/firewire/amdtp.h
sound/firewire/dice.c
sound/firewire/speakers.c

index 38013f918869ab6f8545a8e4d11f0d488a998841..95c5a1515dad45ceb462185604a2c745b8bdfd7d 100644 (file)
@@ -53,12 +53,14 @@ static void pcm_period_tasklet(unsigned long data);
  * amdtp_stream_init - initialize an AMDTP stream structure
  * @s: the AMDTP stream to initialize
  * @unit: the target of the stream
+ * @dir: the direction of stream
  * @flags: the packet transmission method to use
  */
 int amdtp_stream_init(struct amdtp_stream *s, struct fw_unit *unit,
-                     enum cip_flags flags)
+                     enum amdtp_stream_direction dir, enum cip_flags flags)
 {
        s->unit = fw_unit_get(unit);
+       s->direction = dir;
        s->flags = flags;
        s->context = ERR_PTR(-1);
        mutex_init(&s->mutex);
index 60028c7fc1444198eb82ed2a0a61c427c6a13638..019134edb9f7793c918b2b13c1a516a878804471 100644 (file)
@@ -48,9 +48,15 @@ struct fw_unit;
 struct fw_iso_context;
 struct snd_pcm_substream;
 
+enum amdtp_stream_direction {
+       AMDTP_OUT_STREAM = 0,
+       AMDTP_IN_STREAM
+};
+
 struct amdtp_stream {
        struct fw_unit *unit;
        enum cip_flags flags;
+       enum amdtp_stream_direction direction;
        struct fw_iso_context *context;
        struct mutex mutex;
 
@@ -85,6 +91,7 @@ struct amdtp_stream {
 };
 
 int amdtp_stream_init(struct amdtp_stream *s, struct fw_unit *unit,
+                     enum amdtp_stream_direction dir,
                      enum cip_flags flags);
 void amdtp_stream_destroy(struct amdtp_stream *s);
 
index ca12fcbc65eca75bf4edb3a8c0a9291fa8da8c65..26b2158f87d16c6a4bd99ec41d4cf366927b077c 100644 (file)
@@ -1360,7 +1360,7 @@ static int dice_probe(struct fw_unit *unit, const struct ieee1394_device_id *id)
                goto err_owner;
        dice->resources.channels_mask = 0x00000000ffffffffuLL;
 
-       err = amdtp_stream_init(&dice->stream, unit,
+       err = amdtp_stream_init(&dice->stream, unit, AMDTP_OUT_STREAM,
                                CIP_BLOCKING | CIP_HI_DUALWIRE);
        if (err < 0)
                goto err_resources;
index 2096ad7fd46903a60044c7f9fc1b61b8c012d57f..c07e7cd154f257d97801ed5e8bcb13994dd1d6dd 100644 (file)
@@ -683,7 +683,8 @@ static int fwspk_probe(struct fw_unit *unit,
        if (err < 0)
                goto err_unit;
 
-       err = amdtp_stream_init(&fwspk->stream, unit, CIP_NONBLOCKING);
+       err = amdtp_stream_init(&fwspk->stream, unit, AMDTP_OUT_STREAM,
+                               CIP_NONBLOCKING);
        if (err < 0)
                goto err_connection;