aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/firewire/firewire.c10
-rw-r--r--sys/dev/firewire/fwdev.c9
-rw-r--r--sys/dev/firewire/iec68113.h2
3 files changed, 14 insertions, 7 deletions
diff --git a/sys/dev/firewire/firewire.c b/sys/dev/firewire/firewire.c
index 4b674c43f2e0..89f45980cec4 100644
--- a/sys/dev/firewire/firewire.c
+++ b/sys/dev/firewire/firewire.c
@@ -184,14 +184,14 @@ dvloop:
}else{
goto out;
}
-#if 1
-#define DVSEC 100
-#define DVFRAC 2997 /* NTSC: 29.97 Hz (2997 = 29.97 * 100) */
-#define DVDIFF 203 /* 203 = (8000/250 - 29.97) * 100 */
-#else
+#if DV_PAL
#define DVSEC 3
#define DVFRAC 75 /* PAL: 25 Hz (1875 = 25 * 3) */
#define DVDIFF 5 /* 125 = (8000/300 - 25) * 3 */
+#else
+#define DVSEC 100
+#define DVFRAC 2997 /* NTSC: 29.97 Hz (2997 = 29.97 * 100) */
+#define DVDIFF 203 /* 203 = (8000/250 - 29.97) * 100 */
#endif
#define CYCLEFRAC 0xc00
cycle = (u_int64_t) 8000 * DVSEC * it->dvsync;
diff --git a/sys/dev/firewire/fwdev.c b/sys/dev/firewire/fwdev.c
index d0f6371ccd25..672a452b1f28 100644
--- a/sys/dev/firewire/fwdev.c
+++ b/sys/dev/firewire/fwdev.c
@@ -52,6 +52,7 @@
#include <dev/firewire/firewire.h>
#include <dev/firewire/firewirereg.h>
#include <dev/firewire/fwmem.h>
+#include <dev/firewire/iec68113.h>
#define CDEV_MAJOR 127
#define FWNODE_INVAL 0xffff
@@ -568,14 +569,18 @@ fw_ioctl (dev_t dev, u_long cmd, caddr_t data, int flag, fw_proc *td)
err = ENOMEM;
break;
}
-#define FWDVPACKET 250 /* NTSC (300 for PAL) */
+#if DV_PAL
+#define FWDVPACKET 300
+#else
+#define FWDVPACKET 250
+#endif
#define FWDVPMAX 512
ibufreq->rx.nchunk = 8;
ibufreq->rx.npacket = 50;
ibufreq->rx.psize = FWDVPMAX;
ibufreq->tx.nchunk = 5;
- ibufreq->tx.npacket = 300;
+ ibufreq->tx.npacket = FWDVPACKET + 30; /* > 320 or 267 */
ibufreq->tx.psize = FWDVPMAX;
err = fw_ioctl(dev, FW_SSTBUF, (caddr_t)ibufreq, flag, td);
diff --git a/sys/dev/firewire/iec68113.h b/sys/dev/firewire/iec68113.h
index ac202fab092e..2ee5d77b76cd 100644
--- a/sys/dev/firewire/iec68113.h
+++ b/sys/dev/firewire/iec68113.h
@@ -79,3 +79,5 @@ struct dvdbc{
u_int8_t payload[77];
#define DV_DSF_12 0x80 /* PAL: payload[0] in Header DIF */
};
+
+#define DV_PAL 0