diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2006-09-14 10:47:55 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-09-26 11:30:36 -0400 |
commit | e355880b838c80ff53e6386a1caad10e6f719259 (patch) | |
tree | bb9400b4f6dc2d994bf4d428b2ec6c617af1f52f /drivers/media | |
parent | d7e7a1567894146ca6c9442c824dded4f0f48dde (diff) |
V4L/DVB (4632): Zoran: Implement pcipci failure check
We should be doing this on all devices doing PCI<->PCI DMA. We only set
the _FAIL ones when the DMA will fail or may cause crashes. This relies
on the PCIAGP_FAIL patch I sent to Andrew already
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/zoran_card.c | 6 | ||||
-rw-r--r-- | drivers/media/video/zoran_driver.c | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/drivers/media/video/zoran_card.c b/drivers/media/video/zoran_card.c index f2249ed25273..aa80ddd317b0 100644 --- a/drivers/media/video/zoran_card.c +++ b/drivers/media/video/zoran_card.c | |||
@@ -1621,10 +1621,10 @@ init_dc10_cards (void) | |||
1621 | dprintk(5, KERN_DEBUG "Jotti is een held!\n"); | 1621 | dprintk(5, KERN_DEBUG "Jotti is een held!\n"); |
1622 | 1622 | ||
1623 | /* some mainboards might not do PCI-PCI data transfer well */ | 1623 | /* some mainboards might not do PCI-PCI data transfer well */ |
1624 | if (pci_pci_problems & PCIPCI_FAIL) { | 1624 | if (pci_pci_problems & (PCIPCI_FAIL|PCIAGP_FAIL|PCIPCI_ALIMAGIK)) { |
1625 | dprintk(1, | 1625 | dprintk(1, |
1626 | KERN_WARNING | 1626 | KERN_WARNING |
1627 | "%s: chipset may not support reliable PCI-PCI DMA\n", | 1627 | "%s: chipset does not support reliable PCI-PCI DMA\n", |
1628 | ZORAN_NAME); | 1628 | ZORAN_NAME); |
1629 | } | 1629 | } |
1630 | 1630 | ||
@@ -1632,7 +1632,7 @@ init_dc10_cards (void) | |||
1632 | for (i = 0; i < zoran_num; i++) { | 1632 | for (i = 0; i < zoran_num; i++) { |
1633 | struct zoran *zr = &zoran[i]; | 1633 | struct zoran *zr = &zoran[i]; |
1634 | 1634 | ||
1635 | if (pci_pci_problems & PCIPCI_NATOMA && zr->revision <= 1) { | 1635 | if ((pci_pci_problems & PCIPCI_NATOMA) && zr->revision <= 1) { |
1636 | zr->jpg_buffers.need_contiguous = 1; | 1636 | zr->jpg_buffers.need_contiguous = 1; |
1637 | dprintk(1, | 1637 | dprintk(1, |
1638 | KERN_INFO | 1638 | KERN_INFO |
diff --git a/drivers/media/video/zoran_driver.c b/drivers/media/video/zoran_driver.c index 5f90db27892b..862a984c2155 100644 --- a/drivers/media/video/zoran_driver.c +++ b/drivers/media/video/zoran_driver.c | |||
@@ -1512,6 +1512,13 @@ setup_fbuffer (struct file *file, | |||
1512 | if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RAWIO)) | 1512 | if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RAWIO)) |
1513 | return -EPERM; | 1513 | return -EPERM; |
1514 | 1514 | ||
1515 | /* Don't allow frame buffer overlay if PCI or AGP is buggy, or on | ||
1516 | ALi Magik (that needs very low latency while the card needs a | ||
1517 | higher value always) */ | ||
1518 | |||
1519 | if (pci_pci_problems & (PCIPCI_FAIL | PCIAGP_FAIL | PCIPCI_ALIMAGIK)) | ||
1520 | return -ENXIO; | ||
1521 | |||
1515 | /* we need a bytesperline value, even if not given */ | 1522 | /* we need a bytesperline value, even if not given */ |
1516 | if (!bytesperline) | 1523 | if (!bytesperline) |
1517 | bytesperline = width * ((fmt->depth + 7) & ~7) / 8; | 1524 | bytesperline = width * ((fmt->depth + 7) & ~7) / 8; |