diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-21 15:25:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-21 15:25:07 -0400 |
commit | dcb4a1f0e0367efb813907e5083998bbb98b0456 (patch) | |
tree | 80b1edb72dd20ed20917e6c835bd49a0c0b52df2 /drivers/media | |
parent | c21fd1a8c68ce3f49b00caf10337169262cfb8ad (diff) | |
parent | 105e53f863c04e1d9e5bb34bf753c9fdbce6a60c (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
firewire: sbp2: parallelize login, reconnect, logout
firewire: sbp2: octlet AT payloads can be stack-allocated
firewire: sbp2: omit Scsi_Host lock from queuecommand
firewire: core: use non-reentrant workqueue with rescuer
firewire: optimize iso queueing by setting wake only after the last packet
firewire: octlet AT payloads can be stack-allocated
firewire: ohci: optimize find_branch_descriptor()
firewire: ohci: avoid separate DMA mapping for small AT payloads
firewire: ohci: do not start DMA contexts before link is enabled
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/dvb/firewire/firedtv-avc.c | 15 | ||||
-rw-r--r-- | drivers/media/dvb/firewire/firedtv-fw.c | 1 |
2 files changed, 2 insertions, 14 deletions
diff --git a/drivers/media/dvb/firewire/firedtv-avc.c b/drivers/media/dvb/firewire/firedtv-avc.c index fc5ccd8c923a..21c52e3b522e 100644 --- a/drivers/media/dvb/firewire/firedtv-avc.c +++ b/drivers/media/dvb/firewire/firedtv-avc.c | |||
@@ -1320,14 +1320,10 @@ static int cmp_read(struct firedtv *fdtv, u64 addr, __be32 *data) | |||
1320 | { | 1320 | { |
1321 | int ret; | 1321 | int ret; |
1322 | 1322 | ||
1323 | mutex_lock(&fdtv->avc_mutex); | ||
1324 | |||
1325 | ret = fdtv_read(fdtv, addr, data); | 1323 | ret = fdtv_read(fdtv, addr, data); |
1326 | if (ret < 0) | 1324 | if (ret < 0) |
1327 | dev_err(fdtv->device, "CMP: read I/O error\n"); | 1325 | dev_err(fdtv->device, "CMP: read I/O error\n"); |
1328 | 1326 | ||
1329 | mutex_unlock(&fdtv->avc_mutex); | ||
1330 | |||
1331 | return ret; | 1327 | return ret; |
1332 | } | 1328 | } |
1333 | 1329 | ||
@@ -1335,18 +1331,9 @@ static int cmp_lock(struct firedtv *fdtv, u64 addr, __be32 data[]) | |||
1335 | { | 1331 | { |
1336 | int ret; | 1332 | int ret; |
1337 | 1333 | ||
1338 | mutex_lock(&fdtv->avc_mutex); | 1334 | ret = fdtv_lock(fdtv, addr, data); |
1339 | |||
1340 | /* data[] is stack-allocated and should not be DMA-mapped. */ | ||
1341 | memcpy(fdtv->avc_data, data, 8); | ||
1342 | |||
1343 | ret = fdtv_lock(fdtv, addr, fdtv->avc_data); | ||
1344 | if (ret < 0) | 1335 | if (ret < 0) |
1345 | dev_err(fdtv->device, "CMP: lock I/O error\n"); | 1336 | dev_err(fdtv->device, "CMP: lock I/O error\n"); |
1346 | else | ||
1347 | memcpy(data, fdtv->avc_data, 8); | ||
1348 | |||
1349 | mutex_unlock(&fdtv->avc_mutex); | ||
1350 | 1337 | ||
1351 | return ret; | 1338 | return ret; |
1352 | } | 1339 | } |
diff --git a/drivers/media/dvb/firewire/firedtv-fw.c b/drivers/media/dvb/firewire/firedtv-fw.c index 8022b743af91..864b6274c729 100644 --- a/drivers/media/dvb/firewire/firedtv-fw.c +++ b/drivers/media/dvb/firewire/firedtv-fw.c | |||
@@ -125,6 +125,7 @@ static void handle_iso(struct fw_iso_context *context, u32 cycle, | |||
125 | 125 | ||
126 | i = (i + 1) & (N_PACKETS - 1); | 126 | i = (i + 1) & (N_PACKETS - 1); |
127 | } | 127 | } |
128 | fw_iso_context_queue_flush(ctx->context); | ||
128 | ctx->current_packet = i; | 129 | ctx->current_packet = i; |
129 | } | 130 | } |
130 | 131 | ||