Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/pci Define and use symbolic bits in registers.
details: https://anonhg.NetBSD.org/src/rev/ea186f6895a9
branches: trunk
changeset: 769908:ea186f6895a9
user: jakllsch <jakllsch%NetBSD.org@localhost>
date: Mon Sep 26 18:07:37 2011 +0000
description:
Define and use symbolic bits in registers.
diffstat:
sys/dev/pci/cxdtv.c | 23 +++++++++++------------
sys/dev/pci/cxdtvreg.h | 33 ++++++++++++++++++++++++++++-----
2 files changed, 39 insertions(+), 17 deletions(-)
diffs (136 lines):
diff -r 9db78bfb9508 -r ea186f6895a9 sys/dev/pci/cxdtv.c
--- a/sys/dev/pci/cxdtv.c Mon Sep 26 15:19:45 2011 +0000
+++ b/sys/dev/pci/cxdtv.c Mon Sep 26 18:07:37 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cxdtv.c,v 1.8 2011/08/29 14:47:08 jmcneill Exp $ */
+/* $NetBSD: cxdtv.c,v 1.9 2011/09/26 18:07:37 jakllsch Exp $ */
/*
* Copyright (c) 2008, 2011 Jonathan A. Kollasch
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cxdtv.c,v 1.8 2011/08/29 14:47:08 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cxdtv.c,v 1.9 2011/09/26 18:07:37 jakllsch Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -780,7 +780,7 @@
rm = sc->sc_riscbuf;
- /* htole32 will be done when program is copied to chip sram */
+ /* htole32 will be done when program is copied to chip SRAM */
/* XXX */
*(rm++) = (CX_RISC_SYNC|0);
@@ -881,33 +881,32 @@
/* software reset */
- /* serial MPEG port on HD5500 */
switch(sc->sc_vendor) {
case PCI_VENDOR_ATI:
/* both ATI boards with DTV are the same */
bus_space_write_4(sc->sc_memt, sc->sc_memh,
- CXDTV_TS_GEN_CONTROL, 0x40);
+ CXDTV_TS_GEN_CONTROL, IPB_SW_RST);
delay(100);
/* parallel MPEG port */
bus_space_write_4(sc->sc_memt, sc->sc_memh,
- CXDTV_PINMUX_IO, 0x80); /* XXX bit defines */
+ CXDTV_PINMUX_IO, MPEG_PAR_EN);
break;
case PCI_VENDOR_PCHDTV:
if (sc->sc_product == PCI_PRODUCT_PCHDTV_HD5500) {
bus_space_write_4(sc->sc_memt, sc->sc_memh,
- CXDTV_TS_GEN_CONTROL, 0x48);
+ CXDTV_TS_GEN_CONTROL, IPB_SW_RST|IPB_SMODE);
delay(100);
- /* serial MPEG port */
bus_space_write_4(sc->sc_memt, sc->sc_memh,
- CXDTV_PINMUX_IO, 0x00); /* XXX bit defines */
+ CXDTV_PINMUX_IO, 0x00); /* serial MPEG port */
/* byte-width start-of-packet */
bus_space_write_4(sc->sc_memt, sc->sc_memh,
CXDTV_HW_SOP_CONTROL,
0x47 << 16 | 188 << 4 | 1);
bus_space_write_4(sc->sc_memt, sc->sc_memh,
- CXDTV_TS_SOP_STATUS, 1 << 13);
+ CXDTV_TS_SOP_STATUS, IPB_SOP_BYTEWIDE);
+ /* serial MPEG port on HD5500 */
bus_space_write_4(sc->sc_memt, sc->sc_memh,
- CXDTV_TS_GEN_CONTROL, 0x08);
+ CXDTV_TS_GEN_CONTROL, IPB_SMODE);
}
break;
default:
@@ -917,7 +916,7 @@
bus_space_write_4(sc->sc_memt, sc->sc_memh, CXDTV_TS_LNGTH,
CXDTV_TS_PKTSIZE);
- /* Configure for standard MPEG TS, 1 good to sync */
+ /* Configure for standard MPEG TS, 1 good packet to sync */
bus_space_write_4(sc->sc_memt, sc->sc_memh, CXDTV_HW_SOP_CONTROL,
0x47 << 16 | 188 << 4 | 1);
diff -r 9db78bfb9508 -r ea186f6895a9 sys/dev/pci/cxdtvreg.h
--- a/sys/dev/pci/cxdtvreg.h Mon Sep 26 15:19:45 2011 +0000
+++ b/sys/dev/pci/cxdtvreg.h Mon Sep 26 18:07:37 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cxdtvreg.h,v 1.1 2011/07/11 00:46:04 jakllsch Exp $ */
+/* $NetBSD: cxdtvreg.h,v 1.2 2011/09/26 18:07:38 jakllsch Exp $ */
/*-
* Copyright (c) 2007 Jared D. McNeill <jmcneill%invisible.ca@localhost>
@@ -76,7 +76,10 @@
#define CXDTV_DEV_CNTRL2_RUN_RISC __BIT(5)
-/* mpeg ts registers */
+/* PINMUX_IO */
+#define MPEG_PAR_EN __BIT(7)
+
+/* MPEG TS registers */
#define CXDTV_DMA28_PTR1 0x30009c
#define CXDTV_DMA28_PTR2 0x3000dc
@@ -98,14 +101,34 @@
#define CXDTV_TS_INT_MSTAT 0x200078
#define CXDTV_TS_INT_SSTAT 0x20007c
-/* for TS_DMA_CNTRL */
+/* TS_DMA_CNTRL */
#define CXDTV_TS_RISC_EN __BIT(4)
#define CXDTV_TS_FIFO_EN __BIT(0)
-#define CXDTV_TS_RISCI2 0x10
-#define CXDTV_TS_RISCI1 0x01
+/* TS_INT_* */
+#define CXDTV_TS_RISCI2 __BIT(4)
+#define CXDTV_TS_RISCI1 __BIT(0)
#define CXDTV_TS_RISCI (CXDTV_TS_RISCI2|CXDTV_TS_RISCI1)
+/* HW_SOP_CONTROL */
+
+/* TS_GEN_CONTROL */
+#define MPEG_IN_SYNC __BIT(0)
+#define IPB_MCLK_POL __BIT(1)
+#define IPB_PUNC_CLK __BIT(2)
+#define IPB_SMODE __BIT(3)
+#define IPB_BIT_RVRS __BIT(4)
+#define IPB_ERR_ACK __BIT(5)
+#define IPB_SW_RST __BIT(6)
+#define IPB_STAT_CLR __BIT(7)
+
+/* TS_SOP_STATUS */
+#define MPG_BAD_SOP_STAT __BITS(11,0)
+#define IPB_SOP_SYNC_CHK __BIT(12)
+#define IPB_SOP_BYTEWIDE __BIT(13)
+#define IPB_SOP_SEL __BITS(15, 14)
+#define IPB_TSSOP_POL __BIT(16)
+
/* RISC instructions */
#define CX_RISC_WRITECR 0xd0000000
#define CX_RISC_WRITECM 0xc0000000
Home |
Main Index |
Thread Index |
Old Index