diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-10-22 10:02:57 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-10-22 10:02:57 +0200 |
commit | 861e66d3418a90f57b31a50110fc70b23569c551 (patch) | |
tree | ffa0d5bf8dc3e4b82b88d8942390a11d827423f9 /sound/firewire/scs1x.c | |
parent | b55447a7301b12d509df4b2909ed38d125ad83d4 (diff) | |
parent | b20be8de1b3972ccf9af72850b045214faa8d830 (diff) |
Merge branch 'dice-driver-playback-only' of git://git.alsa-project.org/alsa-kprivate into for-next
Diffstat (limited to 'sound/firewire/scs1x.c')
-rw-r--r-- | sound/firewire/scs1x.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sound/firewire/scs1x.c b/sound/firewire/scs1x.c index 505fc812319..858023cf429 100644 --- a/sound/firewire/scs1x.c +++ b/sound/firewire/scs1x.c @@ -369,7 +369,7 @@ static int scs_init_hss_address(struct scs *scs) data = cpu_to_be64(((u64)HSS1394_TAG_CHANGE_ADDRESS << 56) | scs->hss_handler.offset); err = snd_fw_transaction(scs->unit, TCODE_WRITE_BLOCK_REQUEST, - HSS1394_ADDRESS, &data, 8); + HSS1394_ADDRESS, &data, 8, 0); if (err < 0) dev_err(&scs->unit->device, "HSS1394 communication failed\n"); @@ -455,12 +455,16 @@ err_card: static void scs_update(struct fw_unit *unit) { struct scs *scs = dev_get_drvdata(&unit->device); + int generation; __be64 data; data = cpu_to_be64(((u64)HSS1394_TAG_CHANGE_ADDRESS << 56) | scs->hss_handler.offset); + generation = fw_parent_device(unit)->generation; + smp_rmb(); /* node_id vs. generation */ snd_fw_transaction(scs->unit, TCODE_WRITE_BLOCK_REQUEST, - HSS1394_ADDRESS, &data, 8); + HSS1394_ADDRESS, &data, 8, + FW_FIXED_GENERATION | generation); } static void scs_remove(struct fw_unit *unit) |