fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / media / dvb / bt8xx / bt878.h
index ebffd12..f685bc1 100644 (file)
@@ -1,7 +1,7 @@
-/* 
+/*
     bt878.h - Bt878 audio module (register offsets)
 
-    Copyright (C) 2002 Peter Hettkamp <peter.hettkamp@t-online.de>
+    Copyright (C) 2002 Peter Hettkamp <peter.hettkamp@htp-tel.de>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 #include <linux/pci.h>
 #include <linux/sched.h>
 #include <linux/spinlock.h>
+#include <linux/mutex.h>
+
 #include "bt848.h"
+#include "bttv.h"
 
 #define BT878_VERSION_CODE 0x000000
 
 
 #define BT878_RISC_SYNC_MASK   (1 << 15)
 
+
+#define BTTV_BOARD_UNKNOWN                 0x00
+#define BTTV_BOARD_PINNACLESAT             0x5e
+#define BTTV_BOARD_NEBULA_DIGITV           0x68
+#define BTTV_BOARD_PC_HDTV                 0x70
+#define BTTV_BOARD_TWINHAN_DST             0x71
+#define BTTV_BOARD_AVDVBT_771              0x7b
+#define BTTV_BOARD_AVDVBT_761              0x7c
+#define BTTV_BOARD_DVICO_DVBT_LITE         0x80
+#define BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE 0x87
+
+struct cards {
+       __u32 pci_id;
+       __u16 card_id;
+       char  *name;
+};
+
 extern int bt878_num;
-extern struct bt878 bt878[BT878_MAX];
 
 struct bt878 {
-       struct semaphore  gpio_lock;
+       struct mutex gpio_lock;
        unsigned int nr;
        unsigned int bttv_nr;
-       struct dvb_adapter *adap_ptr;
+       struct i2c_adapter *adapter;
        struct pci_dev *dev;
        unsigned int id;
        unsigned int TS_Size;
        unsigned char revision;
        unsigned int irq;
        unsigned long bt878_adr;
-       unsigned char *bt878_mem; /* function 1 */
+       volatile void __iomem *bt878_mem; /* function 1 */
 
        volatile u32 finished_block;
        volatile u32 last_block;
@@ -120,25 +139,27 @@ struct bt878 {
        u32 risc_pos;
 
        struct tasklet_struct tasklet;
-       int shutdown;   
+       int shutdown;
 };
 
+extern struct bt878 bt878[BT878_MAX];
+
 void bt878_start(struct bt878 *bt, u32 controlreg, u32 op_sync_orin,
                u32 irq_err_ignore);
-void bt878_stop(struct bt878 *bt);          
+void bt878_stop(struct bt878 *bt);
 
 #if defined(__powerpc__)       /* big-endian */
-extern __inline__ void io_st_le32(volatile unsigned *addr, unsigned val)
+extern __inline__ void io_st_le32(volatile unsigned __iomem *addr, unsigned val)
 {
        __asm__ __volatile__("stwbrx %1,0,%2":"=m"(*addr):"r"(val),
                             "r"(addr));
        __asm__ __volatile__("eieio":::"memory");
 }
 
-#define bmtwrite(dat,adr)  io_st_le32((unsigned *)(adr),(dat))
-#define bmtread(adr)       ld_le32((unsigned *)(adr))
+#define bmtwrite(dat,adr)  io_st_le32((adr),(dat))
+#define bmtread(adr)       ld_le32((adr))
 #else
-#define bmtwrite(dat,adr)  writel((dat), (char *) (adr))
+#define bmtwrite(dat,adr)  writel((dat), (adr))
 #define bmtread(adr)       readl(adr)
 #endif