Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02b20b0b authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

V4L/DVB (12730): Add conexant cx25821 driver



GIT_BRANCH=devel
GIT_AUTHOR_DATE=1252851239
GIT_AUTHOR_NAME=Palash Bandyopadhyay
GIT_AUTHOR_EMAIL=Palash.Bandyopadhyay@conexant.com
Add conexant cx25821 driver release v106 of the Athena driver.

Signed-off-by: default avatarPalash Bandyopadhyay <palash.bandyopadhyay@conexant.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 78f28b7c
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
config VIDEO_CX25821
	tristate "Conexant cx25821 support"
	depends on DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT
	select I2C_ALGOBIT
	select VIDEO_BTCX
	select VIDEO_TVEEPROM
	select VIDEO_IR
	select VIDEOBUF_DVB
	select VIDEOBUF_DMA_SG
	select VIDEO_CX25840
	select VIDEO_CX2341X
	---help---
	  This is a video4linux driver for Conexant 25821 based
	  TV cards.

	  To compile this driver as a module, choose M here: the
	  module will be called cx25821
	  
config VIDEO_CX25821_ALSA
	tristate "Conexant 25821 DMA audio support"
	depends on VIDEO_CX25821 && SND && EXPERIMENTAL
	select SND_PCM
	---help---
	  This is a video4linux driver for direct (DMA) audio on
	  Conexant 25821 based capture cards using ALSA.

	  It only works with boards with function 01 enabled.
	  To check if your board supports, use lspci -n.
	  If supported, you should see 14f1:8801 or 14f1:8811
	  PCI device.

	  To compile this driver as a module, choose M here: the
	  module will be called cx25821-alsa.	  
+15 −0
Original line number Diff line number Diff line
cx25821-objs	:= cx25821-core.o cx25821-cards.o cx25821-i2c.o cx25821-gpio.o 				\
				cx25821-medusa-video.o cx25821-video.o cx25821-video0.o cx25821-video1.o    \
				cx25821-video2.o cx25821-video3.o cx25821-video4.o cx25821-video5.o         \
				cx25821-video6.o cx25821-video7.o cx25821-vidups9.o cx25821-vidups10.o      \
				cx25821-audups11.o cx25821-video-upstream.o cx25821-video-upstream-ch2.o 	\
				cx25821-audio-upstream.o cx25821-videoioctl.o

obj-$(CONFIG_VIDEO_CX25821) += cx25821.o
obj-$(CONFIG_VIDEO_CX25821_ALSA) += cx25821-alsa.o

EXTRA_CFLAGS += -Idrivers/media/video
EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core
EXTRA_CFLAGS += -Idrivers/media/dvb/frontends

EXTRA_CFLAGS += $(extra-cflags-y) $(extra-cflags-m)
+791 −0

File added.

Preview size limit exceeded, changes collapsed.

+825 −0

File added.

Preview size limit exceeded, changes collapsed.

+62 −0
Original line number Diff line number Diff line
/*
 *  Driver for the Conexant CX25821 PCIe bridge
 *
 *  Copyright (C) 2009 Conexant Systems Inc. 
 *  Authors  <hiep.huynh@conexant.com>, <shu.lin@conexant.com>
 *
 *  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.
 */

#include <linux/mutex.h>
#include <linux/workqueue.h>


#define NUM_AUDIO_PROGS       8
#define NUM_AUDIO_FRAMES      8
#define END_OF_FILE           0
#define IN_PROGRESS           1
#define RESET_STATUS          -1
#define FIFO_DISABLE          0
#define FIFO_ENABLE           1
#define NUM_NO_OPS            4


#define RISC_READ_INSTRUCTION_SIZE      12
#define RISC_JUMP_INSTRUCTION_SIZE      12
#define RISC_WRITECR_INSTRUCTION_SIZE   16
#define RISC_SYNC_INSTRUCTION_SIZE      4
#define DWORD_SIZE                      4
#define AUDIO_SYNC_LINE                 4


#define LINES_PER_AUDIO_BUFFER      15
#define AUDIO_LINE_SIZE             128
#define AUDIO_DATA_BUF_SZ           (AUDIO_LINE_SIZE * LINES_PER_AUDIO_BUFFER)

#define USE_RISC_NOOP_AUDIO   1

#ifdef USE_RISC_NOOP_AUDIO                
#define AUDIO_RISC_DMA_BUF_SIZE    ( LINES_PER_AUDIO_BUFFER*RISC_READ_INSTRUCTION_SIZE + RISC_WRITECR_INSTRUCTION_SIZE + NUM_NO_OPS*DWORD_SIZE + RISC_JUMP_INSTRUCTION_SIZE)
#endif


#ifndef USE_RISC_NOOP_AUDIO
#define AUDIO_RISC_DMA_BUF_SIZE    ( LINES_PER_AUDIO_BUFFER*RISC_READ_INSTRUCTION_SIZE + RISC_WRITECR_INSTRUCTION_SIZE + RISC_JUMP_INSTRUCTION_SIZE)
#endif

static int _line_size;        
char * _defaultAudioName = "/root/audioGOOD.wav";   
    
Loading