aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-05-21 15:25:07 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-05-21 15:25:07 -0400
commitdcb4a1f0e0367efb813907e5083998bbb98b0456 (patch)
tree80b1edb72dd20ed20917e6c835bd49a0c0b52df2 /drivers/media
parentc21fd1a8c68ce3f49b00caf10337169262cfb8ad (diff)
parent105e53f863c04e1d9e5bb34bf753c9fdbce6a60c (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.c15
-rw-r--r--drivers/media/dvb/firewire/firedtv-fw.c1
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