summaryrefslogtreecommitdiff
path: root/linux/drivers/media
diff options
context:
space:
mode:
authorMichael Hunold <devnull@localhost>2003-07-15 09:30:02 +0000
committerMichael Hunold <devnull@localhost>2003-07-15 09:30:02 +0000
commit30fc1765bec73a3e808041aaf0a81b78eb870c01 (patch)
treec9751c7d0e88ead9128f0b1a505a17c21fc57890 /linux/drivers/media
parente1a9b2d3a7d70c586bd2587ea41f338e7cbaa075 (diff)
downloadmediapointer-dvb-s2-30fc1765bec73a3e808041aaf0a81b78eb870c01.tar.gz
mediapointer-dvb-s2-30fc1765bec73a3e808041aaf0a81b78eb870c01.tar.bz2
- indentation fixes
- use c99 initializers - remove blank lines - remove bt848.h -- it's already in driver/media/video (this probably breaks 2.4 compilation)
Diffstat (limited to 'linux/drivers/media')
-rw-r--r--linux/drivers/media/dvb/bt8xx/Makefile2
-rw-r--r--linux/drivers/media/dvb/bt8xx/bt848.h358
-rw-r--r--linux/drivers/media/dvb/bt8xx/bt878.c466
-rw-r--r--linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c45
4 files changed, 225 insertions, 646 deletions
diff --git a/linux/drivers/media/dvb/bt8xx/Makefile b/linux/drivers/media/dvb/bt8xx/Makefile
index 8a933dc6a..66ecfa905 100644
--- a/linux/drivers/media/dvb/bt8xx/Makefile
+++ b/linux/drivers/media/dvb/bt8xx/Makefile
@@ -1,5 +1,5 @@
obj-$(CONFIG_DVB_BT8XX) += bt878.o dvb-bt8xx.o
-EXTRA_CFLAGS = -Idrivers/media/dvb/dvb-core/
+EXTRA_CFLAGS = -Idrivers/media/dvb/dvb-core/ -Idrivers/media/video
diff --git a/linux/drivers/media/dvb/bt8xx/bt848.h b/linux/drivers/media/dvb/bt8xx/bt848.h
deleted file mode 100644
index 7015fd825..000000000
--- a/linux/drivers/media/dvb/bt8xx/bt848.h
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- bt848.h - Bt848 register offsets
-
- Copyright (C) 1996,97,98 Ralph Metzler (rjkm@thp.uni-koeln.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
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef _BT848_H_
-#define _BT848_H_
-
-#ifndef PCI_VENDOR_ID_BROOKTREE
-#define PCI_VENDOR_ID_BROOKTREE 0x109e
-#endif
-#ifndef PCI_DEVICE_ID_BT848
-#define PCI_DEVICE_ID_BT848 0x350
-#endif
-#ifndef PCI_DEVICE_ID_BT849
-#define PCI_DEVICE_ID_BT849 0x351
-#endif
-#ifndef PCI_DEVICE_ID_BT878
-#define PCI_DEVICE_ID_BT878 0x36e
-#endif
-#ifndef PCI_DEVICE_ID_BT879
-#define PCI_DEVICE_ID_BT879 0x36f
-#endif
-
-
-/* Brooktree 848 registers */
-
-#define BT848_DSTATUS 0x000
-#define BT848_DSTATUS_PRES (1<<7)
-#define BT848_DSTATUS_HLOC (1<<6)
-#define BT848_DSTATUS_FIELD (1<<5)
-#define BT848_DSTATUS_NUML (1<<4)
-#define BT848_DSTATUS_CSEL (1<<3)
-#define BT848_DSTATUS_PLOCK (1<<2)
-#define BT848_DSTATUS_LOF (1<<1)
-#define BT848_DSTATUS_COF (1<<0)
-
-#define BT848_IFORM 0x004
-#define BT848_IFORM_HACTIVE (1<<7)
-#define BT848_IFORM_MUXSEL (3<<5)
-#define BT848_IFORM_MUX0 (2<<5)
-#define BT848_IFORM_MUX1 (3<<5)
-#define BT848_IFORM_MUX2 (1<<5)
-#define BT848_IFORM_XTSEL (3<<3)
-#define BT848_IFORM_XT0 (1<<3)
-#define BT848_IFORM_XT1 (2<<3)
-#define BT848_IFORM_XTAUTO (3<<3)
-#define BT848_IFORM_XTBOTH (3<<3)
-#define BT848_IFORM_NTSC 1
-#define BT848_IFORM_NTSC_J 2
-#define BT848_IFORM_PAL_BDGHI 3
-#define BT848_IFORM_PAL_M 4
-#define BT848_IFORM_PAL_N 5
-#define BT848_IFORM_SECAM 6
-#define BT848_IFORM_PAL_NC 7
-#define BT848_IFORM_AUTO 0
-#define BT848_IFORM_NORM 7
-
-#define BT848_TDEC 0x008
-#define BT848_TDEC_DEC_FIELD (1<<7)
-#define BT848_TDEC_FLDALIGN (1<<6)
-#define BT848_TDEC_DEC_RAT (0x1f)
-
-#define BT848_E_CROP 0x00C
-#define BT848_O_CROP 0x08C
-
-#define BT848_E_VDELAY_LO 0x010
-#define BT848_O_VDELAY_LO 0x090
-
-#define BT848_E_VACTIVE_LO 0x014
-#define BT848_O_VACTIVE_LO 0x094
-
-#define BT848_E_HDELAY_LO 0x018
-#define BT848_O_HDELAY_LO 0x098
-
-#define BT848_E_HACTIVE_LO 0x01C
-#define BT848_O_HACTIVE_LO 0x09C
-
-#define BT848_E_HSCALE_HI 0x020
-#define BT848_O_HSCALE_HI 0x0A0
-
-#define BT848_E_HSCALE_LO 0x024
-#define BT848_O_HSCALE_LO 0x0A4
-
-#define BT848_BRIGHT 0x028
-
-#define BT848_E_CONTROL 0x02C
-#define BT848_O_CONTROL 0x0AC
-#define BT848_CONTROL_LNOTCH (1<<7)
-#define BT848_CONTROL_COMP (1<<6)
-#define BT848_CONTROL_LDEC (1<<5)
-#define BT848_CONTROL_CBSENSE (1<<4)
-#define BT848_CONTROL_CON_MSB (1<<2)
-#define BT848_CONTROL_SAT_U_MSB (1<<1)
-#define BT848_CONTROL_SAT_V_MSB (1<<0)
-
-#define BT848_CONTRAST_LO 0x030
-#define BT848_SAT_U_LO 0x034
-#define BT848_SAT_V_LO 0x038
-#define BT848_HUE 0x03C
-
-#define BT848_E_SCLOOP 0x040
-#define BT848_O_SCLOOP 0x0C0
-#define BT848_SCLOOP_CAGC (1<<6)
-#define BT848_SCLOOP_CKILL (1<<5)
-#define BT848_SCLOOP_HFILT_AUTO (0<<3)
-#define BT848_SCLOOP_HFILT_CIF (1<<3)
-#define BT848_SCLOOP_HFILT_QCIF (2<<3)
-#define BT848_SCLOOP_HFILT_ICON (3<<3)
-
-#define BT848_SCLOOP_PEAK (1<<7)
-#define BT848_SCLOOP_HFILT_MINP (1<<3)
-#define BT848_SCLOOP_HFILT_MEDP (2<<3)
-#define BT848_SCLOOP_HFILT_MAXP (3<<3)
-
-
-#define BT848_OFORM 0x048
-#define BT848_OFORM_RANGE (1<<7)
-#define BT848_OFORM_CORE0 (0<<5)
-#define BT848_OFORM_CORE8 (1<<5)
-#define BT848_OFORM_CORE16 (2<<5)
-#define BT848_OFORM_CORE32 (3<<5)
-
-#define BT848_E_VSCALE_HI 0x04C
-#define BT848_O_VSCALE_HI 0x0CC
-#define BT848_VSCALE_YCOMB (1<<7)
-#define BT848_VSCALE_COMB (1<<6)
-#define BT848_VSCALE_INT (1<<5)
-#define BT848_VSCALE_HI 15
-
-#define BT848_E_VSCALE_LO 0x050
-#define BT848_O_VSCALE_LO 0x0D0
-#define BT848_TEST 0x054
-#define BT848_ADELAY 0x060
-#define BT848_BDELAY 0x064
-
-#define BT848_ADC 0x068
-#define BT848_ADC_RESERVED (2<<6)
-#define BT848_ADC_SYNC_T (1<<5)
-#define BT848_ADC_AGC_EN (1<<4)
-#define BT848_ADC_CLK_SLEEP (1<<3)
-#define BT848_ADC_Y_SLEEP (1<<2)
-#define BT848_ADC_C_SLEEP (1<<1)
-#define BT848_ADC_CRUSH (1<<0)
-
-#define BT848_E_VTC 0x06C
-#define BT848_O_VTC 0x0EC
-#define BT848_VTC_HSFMT (1<<7)
-#define BT848_VTC_VFILT_2TAP 0
-#define BT848_VTC_VFILT_3TAP 1
-#define BT848_VTC_VFILT_4TAP 2
-#define BT848_VTC_VFILT_5TAP 3
-
-#define BT848_SRESET 0x07C
-
-#define BT848_COLOR_FMT 0x0D4
-#define BT848_COLOR_FMT_O_RGB32 (0<<4)
-#define BT848_COLOR_FMT_O_RGB24 (1<<4)
-#define BT848_COLOR_FMT_O_RGB16 (2<<4)
-#define BT848_COLOR_FMT_O_RGB15 (3<<4)
-#define BT848_COLOR_FMT_O_YUY2 (4<<4)
-#define BT848_COLOR_FMT_O_BtYUV (5<<4)
-#define BT848_COLOR_FMT_O_Y8 (6<<4)
-#define BT848_COLOR_FMT_O_RGB8 (7<<4)
-#define BT848_COLOR_FMT_O_YCrCb422 (8<<4)
-#define BT848_COLOR_FMT_O_YCrCb411 (9<<4)
-#define BT848_COLOR_FMT_O_RAW (14<<4)
-#define BT848_COLOR_FMT_E_RGB32 0
-#define BT848_COLOR_FMT_E_RGB24 1
-#define BT848_COLOR_FMT_E_RGB16 2
-#define BT848_COLOR_FMT_E_RGB15 3
-#define BT848_COLOR_FMT_E_YUY2 4
-#define BT848_COLOR_FMT_E_BtYUV 5
-#define BT848_COLOR_FMT_E_Y8 6
-#define BT848_COLOR_FMT_E_RGB8 7
-#define BT848_COLOR_FMT_E_YCrCb422 8
-#define BT848_COLOR_FMT_E_YCrCb411 9
-#define BT848_COLOR_FMT_E_RAW 14
-
-#define BT848_COLOR_FMT_RGB32 0x00
-#define BT848_COLOR_FMT_RGB24 0x11
-#define BT848_COLOR_FMT_RGB16 0x22
-#define BT848_COLOR_FMT_RGB15 0x33
-#define BT848_COLOR_FMT_YUY2 0x44
-#define BT848_COLOR_FMT_BtYUV 0x55
-#define BT848_COLOR_FMT_Y8 0x66
-#define BT848_COLOR_FMT_RGB8 0x77
-#define BT848_COLOR_FMT_YCrCb422 0x88
-#define BT848_COLOR_FMT_YCrCb411 0x99
-#define BT848_COLOR_FMT_RAW 0xee
-
-#define BT848_COLOR_CTL 0x0D8
-#define BT848_COLOR_CTL_EXT_FRMRATE (1<<7)
-#define BT848_COLOR_CTL_COLOR_BARS (1<<6)
-#define BT848_COLOR_CTL_RGB_DED (1<<5)
-#define BT848_COLOR_CTL_GAMMA (1<<4)
-#define BT848_COLOR_CTL_WSWAP_ODD (1<<3)
-#define BT848_COLOR_CTL_WSWAP_EVEN (1<<2)
-#define BT848_COLOR_CTL_BSWAP_ODD (1<<1)
-#define BT848_COLOR_CTL_BSWAP_EVEN (1<<0)
-
-#define BT848_CAP_CTL 0x0DC
-#define BT848_CAP_CTL_DITH_FRAME (1<<4)
-#define BT848_CAP_CTL_CAPTURE_VBI_ODD (1<<3)
-#define BT848_CAP_CTL_CAPTURE_VBI_EVEN (1<<2)
-#define BT848_CAP_CTL_CAPTURE_ODD (1<<1)
-#define BT848_CAP_CTL_CAPTURE_EVEN (1<<0)
-
-#define BT848_VBI_PACK_SIZE 0x0E0
-
-#define BT848_VBI_PACK_DEL 0x0E4
-#define BT848_VBI_PACK_DEL_VBI_HDELAY 0xfc
-#define BT848_VBI_PACK_DEL_EXT_FRAME 2
-#define BT848_VBI_PACK_DEL_VBI_PKT_HI 1
-
-
-#define BT848_INT_STAT 0x100
-#define BT848_INT_MASK 0x104
-
-#define BT848_INT_ETBF (1<<23)
-
-#define BT848_INT_RISCS (0xf<<28)
-#define BT848_INT_RISC_EN (1<<27)
-#define BT848_INT_RACK (1<<25)
-#define BT848_INT_FIELD (1<<24)
-#define BT848_INT_SCERR (1<<19)
-#define BT848_INT_OCERR (1<<18)
-#define BT848_INT_PABORT (1<<17)
-#define BT848_INT_RIPERR (1<<16)
-#define BT848_INT_PPERR (1<<15)
-#define BT848_INT_FDSR (1<<14)
-#define BT848_INT_FTRGT (1<<13)
-#define BT848_INT_FBUS (1<<12)
-#define BT848_INT_RISCI (1<<11)
-#define BT848_INT_GPINT (1<<9)
-#define BT848_INT_I2CDONE (1<<8)
-#define BT848_INT_VPRES (1<<5)
-#define BT848_INT_HLOCK (1<<4)
-#define BT848_INT_OFLOW (1<<3)
-#define BT848_INT_HSYNC (1<<2)
-#define BT848_INT_VSYNC (1<<1)
-#define BT848_INT_FMTCHG (1<<0)
-
-
-#define BT848_GPIO_DMA_CTL 0x10C
-#define BT848_GPIO_DMA_CTL_GPINTC (1<<15)
-#define BT848_GPIO_DMA_CTL_GPINTI (1<<14)
-#define BT848_GPIO_DMA_CTL_GPWEC (1<<13)
-#define BT848_GPIO_DMA_CTL_GPIOMODE (3<<11)
-#define BT848_GPIO_DMA_CTL_GPCLKMODE (1<<10)
-#define BT848_GPIO_DMA_CTL_PLTP23_4 (0<<6)
-#define BT848_GPIO_DMA_CTL_PLTP23_8 (1<<6)
-#define BT848_GPIO_DMA_CTL_PLTP23_16 (2<<6)
-#define BT848_GPIO_DMA_CTL_PLTP23_32 (3<<6)
-#define BT848_GPIO_DMA_CTL_PLTP1_4 (0<<4)
-#define BT848_GPIO_DMA_CTL_PLTP1_8 (1<<4)
-#define BT848_GPIO_DMA_CTL_PLTP1_16 (2<<4)
-#define BT848_GPIO_DMA_CTL_PLTP1_32 (3<<4)
-#define BT848_GPIO_DMA_CTL_PKTP_4 (0<<2)
-#define BT848_GPIO_DMA_CTL_PKTP_8 (1<<2)
-#define BT848_GPIO_DMA_CTL_PKTP_16 (2<<2)
-#define BT848_GPIO_DMA_CTL_PKTP_32 (3<<2)
-#define BT848_GPIO_DMA_CTL_RISC_ENABLE (1<<1)
-#define BT848_GPIO_DMA_CTL_FIFO_ENABLE (1<<0)
-
-#define BT848_I2C 0x110
-#define BT848_I2C_DIV (0xf<<4)
-#define BT848_I2C_SYNC (1<<3)
-#define BT848_I2C_W3B (1<<2)
-#define BT848_I2C_SCL (1<<1)
-#define BT848_I2C_SDA (1<<0)
-
-
-#define BT848_RISC_STRT_ADD 0x114
-#define BT848_GPIO_OUT_EN 0x118
-#define BT848_GPIO_REG_INP 0x11C
-#define BT848_RISC_COUNT 0x120
-#define BT848_GPIO_DATA 0x200
-
-
-/* Bt848 RISC commands */
-
-/* only for the SYNC RISC command */
-#define BT848_FIFO_STATUS_FM1 0x06
-#define BT848_FIFO_STATUS_FM3 0x0e
-#define BT848_FIFO_STATUS_SOL 0x02
-#define BT848_FIFO_STATUS_EOL4 0x01
-#define BT848_FIFO_STATUS_EOL3 0x0d
-#define BT848_FIFO_STATUS_EOL2 0x09
-#define BT848_FIFO_STATUS_EOL1 0x05
-#define BT848_FIFO_STATUS_VRE 0x04
-#define BT848_FIFO_STATUS_VRO 0x0c
-#define BT848_FIFO_STATUS_PXV 0x00
-
-#define BT848_RISC_RESYNC (1<<15)
-
-/* WRITE and SKIP */
-/* disable which bytes of each DWORD */
-#define BT848_RISC_BYTE0 (1<<12)
-#define BT848_RISC_BYTE1 (1<<13)
-#define BT848_RISC_BYTE2 (1<<14)
-#define BT848_RISC_BYTE3 (1<<15)
-#define BT848_RISC_BYTE_ALL (0x0f<<12)
-#define BT848_RISC_BYTE_NONE 0
-/* cause RISCI */
-#define BT848_RISC_IRQ (1<<24)
-/* RISC command is last one in this line */
-#define BT848_RISC_EOL (1<<26)
-/* RISC command is first one in this line */
-#define BT848_RISC_SOL (1<<27)
-
-#define BT848_RISC_WRITE (0x01<<28)
-#define BT848_RISC_SKIP (0x02<<28)
-#define BT848_RISC_WRITEC (0x05<<28)
-#define BT848_RISC_JUMP (0x07<<28)
-#define BT848_RISC_SYNC (0x08<<28)
-
-#define BT848_RISC_WRITE123 (0x09<<28)
-#define BT848_RISC_SKIP123 (0x0a<<28)
-#define BT848_RISC_WRITE1S23 (0x0b<<28)
-
-
-
-/* Bt848A and higher only !! */
-#define BT848_TGLB 0x080
-#define BT848_TGCTRL 0x084
-#define BT848_FCAP 0x0E8
-#define BT848_PLL_F_LO 0x0F0
-#define BT848_PLL_F_HI 0x0F4
-
-#define BT848_PLL_XCI 0x0F8
-#define BT848_PLL_X (1<<7)
-#define BT848_PLL_C (1<<6)
-
-#define BT848_DVSIF 0x0FC
-
-/* Bt878 register */
-
-#define BT878_DEVCTRL 0x40
-#define BT878_EN_TBFX 0x02
-#define BT878_EN_VSFX 0x04
-
-#endif
diff --git a/linux/drivers/media/dvb/bt8xx/bt878.c b/linux/drivers/media/dvb/bt8xx/bt878.c
index de4906222..09c5dd38f 100644
--- a/linux/drivers/media/dvb/bt8xx/bt878.c
+++ b/linux/drivers/media/dvb/bt8xx/bt878.c
@@ -50,10 +50,11 @@
unsigned int bt878_verbose = 1;
unsigned int bt878_debug = 0;
-MODULE_PARM(bt878_verbose,"i");
-MODULE_PARM_DESC(bt878_verbose,"verbose startup messages, default is 1 (yes)");
-MODULE_PARM(bt878_debug,"i");
-MODULE_PARM_DESC(bt878_debug,"debug messages, default is 0 (no)");
+MODULE_PARM(bt878_verbose, "i");
+MODULE_PARM_DESC(bt878_verbose,
+ "verbose startup messages, default is 1 (yes)");
+MODULE_PARM(bt878_debug, "i");
+MODULE_PARM_DESC(bt878_debug, "debug messages, default is 0 (no)");
MODULE_LICENSE("GPL");
int bt878_num;
@@ -62,13 +63,14 @@ struct bt878 bt878[BT878_MAX];
EXPORT_SYMBOL(bt878_num);
EXPORT_SYMBOL(bt878);
-#if defined(__powerpc__) /* big-endian */
+#if defined(__powerpc__) /* big-endian */
extern __inline__ void io_st_le32(volatile unsigned *addr, unsigned val)
{
- __asm__ __volatile__ ("stwbrx %1,0,%2" : \
- "=m" (*addr) : "r" (val), "r" (addr));
- __asm__ __volatile__ ("eieio" : : : "memory");
+ __asm__ __volatile__("stwbrx %1,0,%2":"=m"(*addr):"r"(val),
+ "r"(addr));
+ __asm__ __volatile__("eieio":::"memory");
}
+
#define btwrite(dat,adr) io_st_le32((unsigned *)(bt->bt878_mem+(adr)),(dat))
#define btread(adr) ld_le32((unsigned *)(bt->bt878_mem+(adr)))
#else
@@ -87,58 +89,49 @@ extern __inline__ void io_st_le32(volatile unsigned *addr, unsigned val)
static void bt878_mem_free(struct bt878 *bt)
{
-
if (bt->buf_cpu) {
-
- pci_free_consistent(bt->dev, bt->buf_size, bt->buf_cpu, bt->buf_dma);
+ pci_free_consistent(bt->dev, bt->buf_size, bt->buf_cpu,
+ bt->buf_dma);
bt->buf_cpu = NULL;
-
}
-
+
if (bt->risc_cpu) {
-
- pci_free_consistent(bt->dev, bt->risc_size, bt->risc_cpu, bt->risc_dma);
+ pci_free_consistent(bt->dev, bt->risc_size, bt->risc_cpu,
+ bt->risc_dma);
bt->risc_cpu = NULL;
-
}
-
}
static int bt878_mem_alloc(struct bt878 *bt)
{
-
if (!bt->buf_cpu) {
-
bt->buf_size = 128 * 1024;
- bt->buf_cpu = pci_alloc_consistent(bt->dev, bt->buf_size, &bt->buf_dma);
-
+ bt->buf_cpu =
+ pci_alloc_consistent(bt->dev, bt->buf_size,
+ &bt->buf_dma);
+
if (!bt->buf_cpu)
return -ENOMEM;
-
+
memset(bt->buf_cpu, 0, bt->buf_size);
-
}
-
+
if (!bt->risc_cpu) {
-
bt->risc_size = PAGE_SIZE;
- bt->risc_cpu = pci_alloc_consistent(bt->dev, bt->risc_size, &bt->risc_dma);
-
+ bt->risc_cpu =
+ pci_alloc_consistent(bt->dev, bt->risc_size,
+ &bt->risc_dma);
+
if (!bt->risc_cpu) {
-
bt878_mem_free(bt);
-
return -ENOMEM;
-
}
memset(bt->risc_cpu, 0, bt->risc_size);
-
}
-
+
return 0;
-
}
/* RISC instructions */
@@ -160,59 +153,54 @@ static int bt878_mem_alloc(struct bt878 *bt)
static int bt878_make_risc(struct bt878 *bt)
{
-
u32 buf_pos = 0;
u32 line;
bt->block_bytes = bt->buf_size >> 4;
bt->block_count = 1 << 4;
- bt->line_bytes = bt->block_bytes;
- bt->line_count = bt->block_count;
+ bt->line_bytes = bt->block_bytes;
+ bt->line_count = bt->block_count;
while (bt->line_bytes > 4095) {
-
bt->line_bytes >>= 1;
bt->line_count <<= 1;
-
}
if (bt->line_count > 255) {
-
printk("bt878: buffer size error!\n");
-
return -EINVAL;
-
}
RISC_FLUSH();
-
RISC_INSTR(RISC_SYNC | RISC_SYNC_FM1);
RISC_INSTR(0);
for (line = 0; line < bt->line_count; line++) {
-
// At the beginning of every block we issue an IRQ with previous (finished) block number set
if (!(buf_pos % bt->block_bytes))
- RISC_INSTR(RISC_WRITE | RISC_WR_SOL | RISC_WR_EOL | RISC_IRQ | RISC_STATUS(((buf_pos / bt->block_bytes) + (bt->block_count - 1)) % bt->block_count) | bt->line_bytes);
+ RISC_INSTR(RISC_WRITE | RISC_WR_SOL | RISC_WR_EOL |
+ RISC_IRQ |
+ RISC_STATUS(((buf_pos /
+ bt->block_bytes) +
+ (bt->block_count -
+ 1)) %
+ bt->block_count) | bt->
+ line_bytes);
else
- RISC_INSTR(RISC_WRITE | RISC_WR_SOL | RISC_WR_EOL | bt->line_bytes);
-
+ RISC_INSTR(RISC_WRITE | RISC_WR_SOL | RISC_WR_EOL |
+ bt->line_bytes);
RISC_INSTR(bt->buf_dma + buf_pos);
-
buf_pos += bt->line_bytes;
-
}
RISC_INSTR(RISC_SYNC | RISC_SYNC_VRO);
RISC_INSTR(0);
- RISC_INSTR(RISC_JUMP);
+ RISC_INSTR(RISC_JUMP);
RISC_INSTR(bt->risc_dma);
btwrite((bt->line_count << 16) | bt->line_bytes, BT878_APACK_LEN);
-
- return 0;
-
+ return 0;
}
/*****************************/
@@ -221,43 +209,36 @@ static int bt878_make_risc(struct bt878 *bt)
void bt878_start(struct bt878 *bt, u32 controlreg)
{
+ dprintk("bt878 debug: bt878_start (ctl=%8.8x)\n", controlreg);
- dprintk("bt878 debug: bt878_start (ctl=%8.8x)\n",controlreg);
-
controlreg &= ~0x1F;
controlreg |= 0x1B;
-
+
btwrite(cpu_to_le32(bt->risc_dma), BT878_ARISC_START);
-
- btwrite(0x000ff800,BT878_AINT_MASK);
- btwrite(controlreg,BT878_AGPIO_DMA_CTL);
-
+
+ btwrite(0x000ff800, BT878_AINT_MASK);
+ btwrite(controlreg, BT878_AGPIO_DMA_CTL);
}
void bt878_stop(struct bt878 *bt)
{
-
u32 stat;
int i = 0;
-
+
dprintk("bt878 debug: bt878_stop\n");
btwrite(0, BT878_AINT_MASK);
btand(~0x1F, BT878_AGPIO_DMA_CTL);
do {
-
stat = btread(BT878_AINT_STAT);
-
- if (!(stat&BT878_ARISC_EN))
+ if (!(stat & BT878_ARISC_EN))
break;
-
- i++;
-
+ i++;
} while (i < 500);
- dprintk("bt878(%d) debug: bt878_stop, i=%d, stat=0x%8.8x\n",bt->nr,i,stat);
-
+ dprintk("bt878(%d) debug: bt878_stop, i=%d, stat=0x%8.8x\n",
+ bt->nr, i, stat);
}
EXPORT_SYMBOL(bt878_start);
@@ -266,69 +247,74 @@ EXPORT_SYMBOL(bt878_stop);
/*****************************/
/* Interrupt service routine */
/*****************************/
-
-static
-irqreturn_t bt878_irq(int irq, void *dev_id, struct pt_regs * regs)
+
+static irqreturn_t bt878_irq(int irq, void *dev_id, struct pt_regs *regs)
{
- u32 stat,astat,mask;
- int count;
- struct bt878 *bt;
-
- bt=(struct bt878 *)dev_id;
-
- count=0;
- while(1) {
- stat=btread(BT878_AINT_STAT);
- mask=btread(BT878_AINT_MASK);
- if(!(astat=(stat&mask)))
- return IRQ_NONE; /* this interrupt is not for me */
+ u32 stat, astat, mask;
+ int count;
+ struct bt878 *bt;
+
+ bt = (struct bt878 *) dev_id;
+
+ count = 0;
+ while (1) {
+ stat = btread(BT878_AINT_STAT);
+ mask = btread(BT878_AINT_MASK);
+ if (!(astat = (stat & mask)))
+ return IRQ_NONE; /* this interrupt is not for me */
/* dprintk("bt878(%d) debug: irq count %d, stat 0x%8.8x, mask 0x%8.8x\n",bt->nr,count,stat,mask); */
- btwrite(astat,BT878_AINT_STAT); /* try to clear interupt condition */
-
-
- if(astat&(BT878_ASCERR|BT878_AOCERR)) {
- if(bt878_verbose) {
+ btwrite(astat, BT878_AINT_STAT); /* try to clear interupt condition */
+
+
+ if (astat & (BT878_ASCERR | BT878_AOCERR)) {
+ if (bt878_verbose) {
printk("bt878(%d): irq%s%s risc_pc=%08x\n",
- bt->nr,
- (astat&BT878_ASCERR)?" SCERR":"",
- (astat&BT878_AOCERR)?" OCERR":"",
- btread(BT878_ARISC_PC));
+ bt->nr,
+ (astat & BT878_ASCERR) ? " SCERR" :
+ "",
+ (astat & BT878_AOCERR) ? " OCERR" :
+ "", btread(BT878_ARISC_PC));
}
}
- if(astat&(BT878_APABORT|BT878_ARIPERR|BT878_APPERR)) {
- if(bt878_verbose) {
- printk("bt878(%d): irq%s%s%s risc_pc=%08x\n",
- bt->nr,
- (astat&BT878_APABORT)?" PABORT":"",
- (astat&BT878_ARIPERR)?" RIPERR":"",
- (astat&BT878_APPERR)?" PPERR":"",
- btread(BT878_ARISC_PC));
+ if (astat & (BT878_APABORT | BT878_ARIPERR | BT878_APPERR)) {
+ if (bt878_verbose) {
+ printk
+ ("bt878(%d): irq%s%s%s risc_pc=%08x\n",
+ bt->nr,
+ (astat & BT878_APABORT) ? " PABORT" :
+ "",
+ (astat & BT878_ARIPERR) ? " RIPERR" :
+ "",
+ (astat & BT878_APPERR) ? " PPERR" :
+ "", btread(BT878_ARISC_PC));
}
}
- if(astat&(BT878_AFDSR|BT878_AFTRGT|BT878_AFBUS)) {
- if(bt878_verbose) {
- printk("bt878(%d): irq%s%s%s risc_pc=%08x\n",
- bt->nr,
- (astat&BT878_AFDSR)?" FDSR":"",
- (astat&BT878_AFTRGT)?" FTRGT":"",
- (astat&BT878_AFBUS)?" FBUS":"",
- btread(BT878_ARISC_PC));
+ if (astat & (BT878_AFDSR | BT878_AFTRGT | BT878_AFBUS)) {
+ if (bt878_verbose) {
+ printk
+ ("bt878(%d): irq%s%s%s risc_pc=%08x\n",
+ bt->nr,
+ (astat & BT878_AFDSR) ? " FDSR" : "",
+ (astat & BT878_AFTRGT) ? " FTRGT" :
+ "",
+ (astat & BT878_AFBUS) ? " FBUS" : "",
+ btread(BT878_ARISC_PC));
}
}
- if(astat&BT878_ARISCI) {
+ if (astat & BT878_ARISCI) {
bt->finished_block = (stat & BT878_ARISCS) >> 28;
tasklet_schedule(&bt->tasklet);
break;
}
count++;
- if(count>20) {
- btwrite(0,BT878_AINT_MASK);
- printk(KERN_ERR
- "bt878(%d): IRQ lockup, cleared int mask\n", bt->nr);
+ if (count > 20) {
+ btwrite(0, BT878_AINT_MASK);
+ printk(KERN_ERR
+ "bt878(%d): IRQ lockup, cleared int mask\n",
+ bt->nr);
break;
}
}
-
return IRQ_HANDLED;
}
@@ -336,77 +322,79 @@ irqreturn_t bt878_irq(int irq, void *dev_id, struct pt_regs * regs)
/* PCI device handling */
/***********************/
-static int __devinit bt878_probe(struct pci_dev *dev, const struct pci_device_id *pci_id)
+static int __devinit bt878_probe(struct pci_dev *dev,
+ const struct pci_device_id *pci_id)
{
- int result;
- unsigned char lat;
- struct bt878 *bt;
+ int result;
+ unsigned char lat;
+ struct bt878 *bt;
#if defined(__powerpc__)
- unsigned int cmd;
+ unsigned int cmd;
#endif
- printk(KERN_INFO "bt878: Bt878 AUDIO function found (%d).\n", bt878_num);
-
- bt=&bt878[bt878_num];
- bt->dev=dev;
- bt->nr = bt878_num;
- bt->shutdown=0;
-
- bt->id=dev->device;
- bt->irq=dev->irq;
- bt->bt878_adr=pci_resource_start(dev,0);
- if (pci_enable_device(dev))
- return -EIO;
- if (!request_mem_region(pci_resource_start(dev,0),
- pci_resource_len(dev,0),
- "bt878")) {
- return -EBUSY;
- }
+ printk(KERN_INFO "bt878: Bt878 AUDIO function found (%d).\n",
+ bt878_num);
+
+ bt = &bt878[bt878_num];
+ bt->dev = dev;
+ bt->nr = bt878_num;
+ bt->shutdown = 0;
+
+ bt->id = dev->device;
+ bt->irq = dev->irq;
+ bt->bt878_adr = pci_resource_start(dev, 0);
+ if (pci_enable_device(dev))
+ return -EIO;
+ if (!request_mem_region(pci_resource_start(dev, 0),
+ pci_resource_len(dev, 0), "bt878")) {
+ return -EBUSY;
+ }
+
+ pci_read_config_byte(dev, PCI_CLASS_REVISION, &bt->revision);
+ pci_read_config_byte(dev, PCI_LATENCY_TIMER, &lat);
+ printk(KERN_INFO "bt878(%d): Bt%x (rev %d) at %02x:%02x.%x, ",
+ bt878_num, bt->id, bt->revision, dev->bus->number,
+ PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
+ printk("irq: %d, latency: %d, memory: 0x%lx\n",
+ bt->irq, lat, bt->bt878_adr);
- pci_read_config_byte(dev, PCI_CLASS_REVISION, &bt->revision);
- pci_read_config_byte(dev, PCI_LATENCY_TIMER, &lat);
- printk(KERN_INFO "bt878(%d): Bt%x (rev %d) at %02x:%02x.%x, ",
- bt878_num,bt->id, bt->revision, dev->bus->number,
- PCI_SLOT(dev->devfn),PCI_FUNC(dev->devfn));
- printk("irq: %d, latency: %d, memory: 0x%lx\n",
- bt->irq, lat, bt->bt878_adr);
-
#if defined(__powerpc__)
- /* on OpenFirmware machines (PowerMac at least), PCI memory cycle */
- /* response on cards with no firmware is not enabled by OF */
- pci_read_config_dword(dev, PCI_COMMAND, &cmd);
- cmd = (cmd | PCI_COMMAND_MEMORY );
- pci_write_config_dword(dev, PCI_COMMAND, cmd);
+ /* on OpenFirmware machines (PowerMac at least), PCI memory cycle */
+ /* response on cards with no firmware is not enabled by OF */
+ pci_read_config_dword(dev, PCI_COMMAND, &cmd);
+ cmd = (cmd | PCI_COMMAND_MEMORY);
+ pci_write_config_dword(dev, PCI_COMMAND, cmd);
#endif
#ifdef __sparc__
- bt->bt878_mem=(unsigned char *)bt->bt878_adr;
+ bt->bt878_mem = (unsigned char *) bt->bt878_adr;
#else
- bt->bt878_mem=ioremap(bt->bt878_adr, 0x1000);
+ bt->bt878_mem = ioremap(bt->bt878_adr, 0x1000);
#endif
-
- /* clear interrupt mask */
- btwrite(0, BT848_INT_MASK);
-
- result = request_irq(bt->irq, bt878_irq,
- SA_SHIRQ | SA_INTERRUPT,"bt878",(void *)bt);
- if (result==-EINVAL)
- {
- printk(KERN_ERR "bt878(%d): Bad irq number or handler\n",
- bt878_num);
- goto fail1;
- }
- if (result==-EBUSY)
- {
- printk(KERN_ERR "bt878(%d): IRQ %d busy, change your PnP config in BIOS\n",bt878_num,bt->irq);
- goto fail1;
- }
- if (result < 0)
- goto fail1;
-
- pci_set_master(dev);
- pci_set_drvdata(dev,bt);
+
+ /* clear interrupt mask */
+ btwrite(0, BT848_INT_MASK);
+
+ result = request_irq(bt->irq, bt878_irq,
+ SA_SHIRQ | SA_INTERRUPT, "bt878",
+ (void *) bt);
+ if (result == -EINVAL) {
+ printk(KERN_ERR "bt878(%d): Bad irq number or handler\n",
+ bt878_num);
+ goto fail1;
+ }
+ if (result == -EBUSY) {
+ printk(KERN_ERR
+ "bt878(%d): IRQ %d busy, change your PnP config in BIOS\n",
+ bt878_num, bt->irq);
+ goto fail1;
+ }
+ if (result < 0)
+ goto fail1;
+
+ pci_set_master(dev);
+ pci_set_drvdata(dev, bt);
/* if(init_bt878(btv) < 0) {
bt878_remove(dev);
@@ -415,82 +403,76 @@ static int __devinit bt878_probe(struct pci_dev *dev, const struct pci_device_id
*/
if ((result = bt878_mem_alloc(bt))) {
-
printk("bt878: failed to allocate memory!\n");
-
goto fail2;
-
}
-
+
bt878_make_risc(bt);
-
- btwrite(0,BT878_AINT_MASK);
-
- bt878_num++;
-
- return 0;
-
- fail2:
- free_irq(bt->irq,bt);
- fail1:
- release_mem_region(pci_resource_start(bt->dev,0),
- pci_resource_len(bt->dev,0));
- return result;
+ btwrite(0, BT878_AINT_MASK);
+ bt878_num++;
+
+ return 0;
+
+ fail2:
+ free_irq(bt->irq, bt);
+ fail1:
+ release_mem_region(pci_resource_start(bt->dev, 0),
+ pci_resource_len(bt->dev, 0));
+ return result;
}
static void __devexit bt878_remove(struct pci_dev *pci_dev)
{
- u8 command;
- struct bt878 *bt = pci_get_drvdata(pci_dev);
-
- if (bt878_verbose)
- printk("bt878(%d): unloading\n",bt->nr);
-
- /* turn off all capturing, DMA and IRQs */
- btand(~15, BT878_AGPIO_DMA_CTL);
-
- /* first disable interrupts before unmapping the memory! */
- btwrite(0, BT878_AINT_MASK);
- btwrite(~0x0UL,BT878_AINT_STAT);
-
- /* disable PCI bus-mastering */
- pci_read_config_byte(bt->dev, PCI_COMMAND, &command);
- /* Should this be &=~ ?? */
- command&=~PCI_COMMAND_MASTER;
- pci_write_config_byte(bt->dev, PCI_COMMAND, command);
-
- free_irq(bt->irq,bt);
- printk(KERN_DEBUG "bt878_mem: 0x%p.\n", bt->bt878_mem);
- if (bt->bt878_mem)
- iounmap(bt->bt878_mem);
-
- release_mem_region(pci_resource_start(bt->dev,0),
- pci_resource_len(bt->dev,0));
- /* wake up any waiting processes
- because shutdown flag is set, no new processes (in this queue)
- are expected
- */
- bt->shutdown=1;
-
- bt878_mem_free(bt);
-
- pci_set_drvdata(pci_dev, NULL);
- return;
+ u8 command;
+ struct bt878 *bt = pci_get_drvdata(pci_dev);
+
+ if (bt878_verbose)
+ printk("bt878(%d): unloading\n", bt->nr);
+
+ /* turn off all capturing, DMA and IRQs */
+ btand(~15, BT878_AGPIO_DMA_CTL);
+
+ /* first disable interrupts before unmapping the memory! */
+ btwrite(0, BT878_AINT_MASK);
+ btwrite(~0x0UL, BT878_AINT_STAT);
+
+ /* disable PCI bus-mastering */
+ pci_read_config_byte(bt->dev, PCI_COMMAND, &command);
+ /* Should this be &=~ ?? */
+ command &= ~PCI_COMMAND_MASTER;
+ pci_write_config_byte(bt->dev, PCI_COMMAND, command);
+
+ free_irq(bt->irq, bt);
+ printk(KERN_DEBUG "bt878_mem: 0x%p.\n", bt->bt878_mem);
+ if (bt->bt878_mem)
+ iounmap(bt->bt878_mem);
+
+ release_mem_region(pci_resource_start(bt->dev, 0),
+ pci_resource_len(bt->dev, 0));
+ /* wake up any waiting processes
+ because shutdown flag is set, no new processes (in this queue)
+ are expected
+ */
+ bt->shutdown = 1;
+ bt878_mem_free(bt);
+
+ pci_set_drvdata(pci_dev, NULL);
+ return;
}
static struct pci_device_id bt878_pci_tbl[] __devinitdata = {
- {PCI_VENDOR_ID_BROOKTREE, PCI_DEVICE_ID_BROOKTREE_878,
- PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
- {0,}
+ {PCI_VENDOR_ID_BROOKTREE, PCI_DEVICE_ID_BROOKTREE_878,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
+ {0,}
};
MODULE_DEVICE_TABLE(pci, bt878_pci_tbl);
static struct pci_driver bt878_pci_driver = {
- name: "bt878",
- id_table: bt878_pci_tbl,
- probe: bt878_probe,
- remove: bt878_remove,
+ .name = "bt878",
+ .id_table = bt878_pci_tbl,
+ .probe = bt878_probe,
+ .remove = bt878_remove,
};
/*******************************/
@@ -499,22 +481,22 @@ static struct pci_driver bt878_pci_driver = {
int bt878_init_module(void)
{
- bt878_num = 0;
+ bt878_num = 0;
- printk(KERN_INFO "bt878: AUDIO driver version %d.%d.%d loaded\n",
- (BT878_VERSION_CODE >> 16) & 0xff,
- (BT878_VERSION_CODE >> 8) & 0xff,
- BT878_VERSION_CODE & 0xff);
+ printk(KERN_INFO "bt878: AUDIO driver version %d.%d.%d loaded\n",
+ (BT878_VERSION_CODE >> 16) & 0xff,
+ (BT878_VERSION_CODE >> 8) & 0xff,
+ BT878_VERSION_CODE & 0xff);
/*
bt878_check_chipset();
*/
- return pci_module_init(&bt878_pci_driver);
+ return pci_module_init(&bt878_pci_driver);
}
void bt878_cleanup_module(void)
{
- pci_unregister_driver(&bt878_pci_driver);
- return;
+ pci_unregister_driver(&bt878_pci_driver);
+ return;
}
module_init(bt878_init_module);
diff --git a/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c b/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c
index 71613d39b..2e9905b79 100644
--- a/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c
+++ b/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c
@@ -45,34 +45,26 @@ static int debug = 0;
static void dvb_bt8xx_task(unsigned long data)
{
-
struct dvb_bt8xx_card *card = (struct dvb_bt8xx_card *)data;
//printk("%d ", finished_block);
while (card->bt->last_block != card->bt->finished_block) {
-
dvb_dmx_swfilter(&card->demux, &card->bt->buf_cpu[card->bt->last_block * card->bt->block_bytes], card->bt->block_bytes);
-
card->bt->last_block = (card->bt->last_block + 1) % card->bt->block_count;
-
}
-
}
static int dvb_bt8xx_master_xfer(struct dvb_i2c_bus *i2c, const struct i2c_msg msgs[], int num)
{
-
struct dvb_bt8xx_card *card = (struct dvb_bt8xx_card *)i2c->data;
return card->i2c_adap->algo->master_xfer(card->i2c_adap, (struct i2c_msg *)msgs, num);
-
}
static int dvb_bt8xx_start_feed(struct dvb_demux_feed *dvbdmxfeed)
{
-
struct dvb_demux *dvbdmx = dvbdmxfeed->demux;
struct dvb_bt8xx_card *card = dvbdmx->priv;
@@ -89,12 +81,10 @@ static int dvb_bt8xx_start_feed(struct dvb_demux_feed *dvbdmxfeed)
// bt878_start(card->bt, card->gpio_mode);
return 0;
-
}
static int dvb_bt8xx_stop_feed(struct dvb_demux_feed *dvbdmxfeed)
{
-
struct dvb_demux *dvbdmx = dvbdmxfeed->demux;
struct dvb_bt8xx_card *card = dvbdmx->priv;
@@ -111,12 +101,10 @@ static int dvb_bt8xx_stop_feed(struct dvb_demux_feed *dvbdmxfeed)
card->active = 0;
return 0;
-
}
static struct bt878 *dvb_bt8xx_get_bt(unsigned int bttv_nr)
{
-
struct pci_dev* bttv_pci_dev;
unsigned int card_nr;
@@ -124,22 +112,18 @@ static struct bt878 *dvb_bt8xx_get_bt(unsigned int bttv_nr)
return NULL;
for (card_nr = 0; card_nr < bt878_num; card_nr++) {
-
if ((bt878[card_nr].dev->subsystem_vendor == bttv_pci_dev->subsystem_vendor) &&
(bt878[card_nr].dev->subsystem_device == bttv_pci_dev->subsystem_device) &&
(bt878[card_nr].dev->bus->number == bttv_pci_dev->bus->number) &&
(PCI_SLOT(bt878[card_nr].dev->devfn) == PCI_SLOT(bttv_pci_dev->devfn)))
return &bt878[card_nr];
-
}
return NULL;
-
}
static int __init dvb_bt8xx_load(unsigned int bttv_nr, char *card_name, u32 gpio_mode)
{
-
struct dvb_bt8xx_card *card;
int result;
@@ -151,7 +135,6 @@ static int __init dvb_bt8xx_load(unsigned int bttv_nr, char *card_name, u32 gpio
card->bttv_nr = bttv_nr;
if (!(card->bt = dvb_bt8xx_get_bt(card->bttv_nr))) {
-
printk("dvb_bt8xx: unable to determine DMA core of card%d\n", card->bttv_nr);
return -EFAULT;
@@ -161,7 +144,6 @@ static int __init dvb_bt8xx_load(unsigned int bttv_nr, char *card_name, u32 gpio
card->gpio_mode = gpio_mode;
if (!(card->i2c_adap = bttv_get_i2c_adap(card->bttv_nr))) {
-
printk("dvb_bt8xx: unable to determine i2c adapter of card%d\n", card->bttv_nr);
kfree(card);
@@ -181,7 +163,6 @@ static int __init dvb_bt8xx_load(unsigned int bttv_nr, char *card_name, u32 gpio
}
if (!(dvb_register_i2c_bus(dvb_bt8xx_master_xfer, card, card->adapter, 0))) {
-
printk("dvb_bt8xx: dvb_register_i2c_bus of card%d failed\n", card->bttv_nr);
dvb_unregister_adapter(card->adapter);
@@ -189,7 +170,6 @@ static int __init dvb_bt8xx_load(unsigned int bttv_nr, char *card_name, u32 gpio
kfree(card);
return -EFAULT;
-
}
memset(&card->demux, 0, sizeof(struct dvb_demux));
@@ -204,14 +184,12 @@ static int __init dvb_bt8xx_load(unsigned int bttv_nr, char *card_name, u32 gpio
card->demux.write_to_decoder = NULL;
if ((result = dvb_dmx_init(&card->demux)) < 0) {
-
printk("dvb_bt8xx: dvb_dmx_init failed (errno = %d)\n", result);
dvb_unregister_i2c_bus(dvb_bt8xx_master_xfer, card->adapter, 0);
dvb_unregister_adapter(card->adapter);
return result;
-
}
card->dmxdev.filternum = 256;
@@ -219,7 +197,6 @@ static int __init dvb_bt8xx_load(unsigned int bttv_nr, char *card_name, u32 gpio
card->dmxdev.capabilities = 0;
if ((result = dvb_dmxdev_init(&card->dmxdev, card->adapter)) < 0) {
-
printk("dvb_bt8xx: dvb_dmxdev_init failed (errno = %d)\n", result);
dvb_dmx_release(&card->demux);
@@ -227,13 +204,11 @@ static int __init dvb_bt8xx_load(unsigned int bttv_nr, char *card_name, u32 gpio
dvb_unregister_adapter(card->adapter);
return result;
-
}
card->fe_hw.source = DMX_FRONTEND_0;
if ((result = card->demux.dmx.add_frontend(&card->demux.dmx, &card->fe_hw)) < 0) {
-
printk("dvb_bt8xx: dvb_dmx_init failed (errno = %d)\n", result);
dvb_dmxdev_release(&card->dmxdev);
@@ -242,13 +217,11 @@ static int __init dvb_bt8xx_load(unsigned int bttv_nr, char *card_name, u32 gpio
dvb_unregister_adapter(card->adapter);
return result;
-
}
card->fe_mem.source = DMX_MEMORY_FE;
if ((result = card->demux.dmx.add_frontend(&card->demux.dmx, &card->fe_mem)) < 0) {
-
printk("dvb_bt8xx: dvb_dmx_init failed (errno = %d)\n", result);
card->demux.dmx.remove_frontend(&card->demux.dmx, &card->fe_hw);
@@ -258,11 +231,9 @@ static int __init dvb_bt8xx_load(unsigned int bttv_nr, char *card_name, u32 gpio
dvb_unregister_adapter(card->adapter);
return result;
-
}
if ((result = card->demux.dmx.connect_frontend(&card->demux.dmx, &card->fe_hw)) < 0) {
-
printk("dvb_bt8xx: dvb_dmx_init failed (errno = %d)\n", result);
card->demux.dmx.remove_frontend(&card->demux.dmx, &card->fe_mem);
@@ -273,7 +244,6 @@ static int __init dvb_bt8xx_load(unsigned int bttv_nr, char *card_name, u32 gpio
dvb_unregister_adapter(card->adapter);
return result;
-
}
dvb_net_init(card->adapter, &card->dvbnet, &card->demux.dmx);
@@ -290,12 +260,10 @@ static int __init dvb_bt8xx_load(unsigned int bttv_nr, char *card_name, u32 gpio
static void dvb_bt8xx_close(void)
{
-
struct dvb_bt8xx_card *card;
struct list_head *entry, *entry_safe;
list_for_each_safe(entry, entry_safe, &card_list) {
-
card = list_entry(entry, struct dvb_bt8xx_card, list);
dprintk("dvb_bt8xx: unloading card%d\n", card->bttv_nr);
@@ -314,14 +282,12 @@ static void dvb_bt8xx_close(void)
kfree(card);
list_del(&card->list);
-
}
}
static int __init dvb_bt8xx_init(void)
{
-
int card_id;
unsigned int card_nr;
int card_type;
@@ -329,23 +295,14 @@ static int __init dvb_bt8xx_init(void)
dprintk("dvb_bt8xx: enumerating availible bttv cards...\n");
for (card_nr = 0; !bttv_get_cardinfo(card_nr, &card_type, &card_id); card_nr++) {
-
switch(card_id) {
-
case 0x001C11BD:
-
dvb_bt8xx_load(card_nr, "Pinnacle PCTV DVB-S", 0x0400C060);
-
break;
-
case 0x01010071:
-
dvb_bt8xx_load(card_nr, "Nebula DigiTV DVB-T", (1 << 26) | (1 << 14) | (1 << 5));
-
break;
-
}
-
}
return 0;
@@ -354,9 +311,7 @@ static int __init dvb_bt8xx_init(void)
static void __exit dvb_bt8xx_exit(void)
{
-
dvb_bt8xx_close();
-
}
module_init(dvb_bt8xx_init);