33_saa7134-2.6.7.diff.gz
PATCH 1/1 33_saa7134-2.6.7.diff.gz
Hi,
This is an update for the saa7134 driver. Changes:
* add support for more TV cards, as usual ;)
* add support for image cropping.
* use v4l2 API to talk to the tuner chips (thus it depends on the tuner/tda9887 patch).
* fixes for the audio carrier scan.
* make transport stream packet size configurable.
please apply,
Gerd
drivers/media/video/saa7134/saa6752hs.c +0 -1
@@ -337,7 +337,6 @@ static int saa6752hs_probe(struct i2c_ad {if (adap->class &I2C_CLASS_TV_ANALOG )return i2c_probe (adap, &addr_data, saa6752hs_attach); -return 0 ; }
drivers/media/video/saa7134/saa7134-cards.c +102 -20
184 lines not on this page · raw message
drivers/media/video/saa7134/saa7134-core.c +12 -4
@@ -607,10 +607,18 @@ static irqreturn_t saa7134_irq(int irq, };if (10 == loop) {print_irqstatus (dev,loop,report,status); -printk (KERN_WARNING "%s/irq: looping -- clearing enable bits\n" ,dev->name); -/* disable all irqs */ -saa_writel (SAA7134_IRQ1 ,0 ); -saa_writel (SAA7134_IRQ2 ,0 ); +if (report &SAA7134_IRQ_REPORT_PE ) { +/* disable all parity error */ +printk (KERN_WARNING "%s/irq: looping -- " +"clearing PE (parity error!) enable bit\n" ,dev->name); +saa_clearl (SAA7134_IRQ2 ,SAA7134_IRQ2_INTE_PE ); + }else { +/* disable all irqs */ +printk (KERN_WARNING "%s/irq: looping -- " +"clearing all enable bits\n" ,dev->name); +saa_writel (SAA7134_IRQ1 ,0 ); +saa_writel (SAA7134_IRQ2 ,0 ); + } } out:
drivers/media/video/saa7134/saa7134-input.c +66 -4
114 lines not on this page · raw message
drivers/media/video/saa7134/saa7134-oss.c +3 -2
@@ -50,7 +50,7 @@ static int dsp_buffer_conf(struct saa713if (blksize <0x100 ) blksize =0x100 ;if (blksize >0x10000 ) - blksize =0x100 ; + blksize =0x10000 ;if (blocks <2 ) blocks =2 ;
@@ -74,6 +74,7 @@ static int dsp_buffer_init(struct saa713if (!dev->oss.bufsize)BUG (); +videobuf_dma_init (&dev->oss.dma); err =videobuf_dma_init_kernel (&dev->oss.dma,PCI_DMA_FROMDEVICE , dev->oss.bufsize >>PAGE_SHIFT );if (0 != err)
@@ -172,7 +173,7 @@ static int dsp_rec_start(struct saa7134_ fmt |= (2 <<4 );if (!sign) fmt |=0x04 ; -saa_writel (0x588 >>2 , dev->oss.blksize); +saa_writel (0x588 >>2 , dev->oss.blksize -4 );saa_writel (0x58c >>2 ,0x543210 | (fmt <<24 ));break ; }
drivers/media/video/saa7134/saa7134-ts.c +17 -10
@@ -33,6 +33,8 @@/* ------------------------------------------------------------------ */ +#define TS_PACKET_SIZE 188/* TS packets 188 bytes */ +static unsigned int ts_debug =0 ;MODULE_PARM (ts_debug,"i" );MODULE_PARM_DESC (ts_debug,"enable debug messages [ts]" );
@@ -41,8 +43,9 @@ static unsigned int tsbufs = 4;MODULE_PARM (tsbufs,"i" );MODULE_PARM_DESC (tsbufs,"number of ts buffers, range 2-32" ); -#define TS_PACKET_SIZE 188/* TS packets 188 bytes */ -#define TS_NR_PACKETS 312 +static unsigned int ts_nr_packets =30 ; +MODULE_PARM (ts_nr_packets,"i" ); +MODULE_PARM_DESC (ts_nr_packets,"size of a ts buffers (in ts packets)" ); #define dprintk(fmt, arg...) if (ts_debug) \ printk(KERN_DEBUG "%s/ts: " fmt, dev->name , ## arg)
@@ -96,7 +99,7 @@ static int buffer_prepare(struct file *fdprintk ("buffer_prepare [%p,%s]\n" ,buf,v4l2_field_names[field]); llength =TS_PACKET_SIZE ; - lines =TS_NR_PACKETS ; + lines = ts_nr_packets; size = lines * llength;if (0 != buf->vb.baddr && buf->vb.bsize < size)
@@ -135,7 +138,7 @@ static int buffer_prepare(struct file *fstatic int buffer_setup (struct file *file,unsigned int *count,unsigned int *size) { - *size =TS_PACKET_SIZE *TS_NR_PACKETS ; + *size =TS_PACKET_SIZE * ts_nr_packets;if (0 == *count) *count = tsbufs; *count =saa7134_buffer_count (*size,*count);
@@ -353,7 +356,7 @@ static int ts_do_ioctl(struct inode *ino f->fmt.pix.width =720 ;/* D1 */ f->fmt.pix.height =576 ; f->fmt.pix.pixelformat =V4L2_PIX_FMT_MPEG ; - f->fmt.pix.sizeimage =TS_PACKET_SIZE *TS_NR_PACKETS ; + f->fmt.pix.sizeimage =TS_PACKET_SIZE *ts_nr_packets;return 0 ; }
@@ -379,7 +382,7 @@ static int ts_do_ioctl(struct inode *ino f->fmt.pix.width =720 ;/* D1 */ f->fmt.pix.height =576 ; f->fmt.pix.pixelformat =V4L2_PIX_FMT_MPEG ; - f->fmt.pix.sizeimage =TS_PACKET_SIZE *TS_NR_PACKETS ; + f->fmt.pix.sizeimage =TS_PACKET_SIZE *ts_nr_packets;return 0 ; }
@@ -408,7 +411,7 @@ static int ts_do_ioctl(struct inode *inocase MPEG_SETPARAMS :return ts_init_encoder (dev, arg); - +default :return -ENOIOCTLCMD ; }
@@ -455,6 +458,10 @@ int saa7134_ts_init1(struct saa7134_dev tsbufs =2 ;if (tsbufs >VIDEO_MAX_FRAME ) tsbufs =VIDEO_MAX_FRAME ; +if (ts_nr_packets <4 ) + ts_nr_packets =4 ; +if (ts_nr_packets >312 ) + ts_nr_packets =312 ;INIT_LIST_HEAD (&dev->ts_q.queue);init_timer (&dev->ts_q.timeout);
@@ -472,9 +479,9 @@ int saa7134_ts_init1(struct saa7134_devsaa_writeb (SAA7134_TS_SERIAL1 ,0x00 );/* deactivate TS softreset */ saa_writeb (SAA7134_TS_PARALLEL ,0xec );/* TSSOP high active, TSVAL high active, TSLOCK ignored */ saa_writeb (SAA7134_TS_PARALLEL_SERIAL , (TS_PACKET_SIZE -1 )); -saa_writeb (SAA7134_TS_DMA0 , ((TS_NR_PACKETS -1 )&0xff )); -saa_writeb (SAA7134_TS_DMA1 , (((TS_NR_PACKETS -1 )>>8 )&0xff )); -saa_writeb (SAA7134_TS_DMA2 , ((((TS_NR_PACKETS -1 )>>16 )&0x3f ) |0x00 ));/* TSNOPIT=0, TSCOLAP=0 */ +saa_writeb (SAA7134_TS_DMA0 , ((ts_nr_packets-1 )&0xff )); +saa_writeb (SAA7134_TS_DMA1 , (((ts_nr_packets-1 )>>8 )&0xff )); +saa_writeb (SAA7134_TS_DMA2 , ((((ts_nr_packets-1 )>>16 )&0x3f ) |0x00 ));/* TSNOPIT=0, TSCOLAP=0 */ return 0 ; }
drivers/media/video/saa7134/saa7134-tvaudio.c +105 -71
279 lines not on this page · raw message
drivers/media/video/saa7134/saa7134-video.c +118 -91
366 lines not on this page · raw message
drivers/media/video/saa7134/saa7134.h +7 -3
@@ -19,7 +19,7 @@*/ #include <linux/version.h> -#define SAA7134_VERSION_CODE KERNEL_VERSION(0,2,11) +#define SAA7134_VERSION_CODE KERNEL_VERSION(0,2,12)#include <linux/pci.h> #include <linux/i2c.h>
@@ -152,6 +152,10 @@ struct saa7134_format {#define SAA7134_BOARD_ECS_TVP3XP_4CB5 31#define SAA7134_BOARD_AVACSSMARTTV 32#define SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER 33 +#define SAA7134_BOARD_NOVAC_PRIMETV7133 34 +#define SAA7134_BOARD_AVERMEDIA_305 35 +#define SAA7133_BOARD_UPMOST_PURPLE_TV 36 +#define SAA7134_BOARD_ITEMS_MTV005 37#define SAA7134_INPUT_MAX 8
@@ -393,12 +397,12 @@ struct saa7134_dev {int ctl_mirror;int ctl_y_odd;int ctl_y_even; - +/* crop */ struct v4l2_rect crop_bounds;struct v4l2_rect crop_defrect;struct v4l2_rect crop_current; - +/* other global state info */ unsigned int automute;struct saa7134_thread thread;
Signature · 1 line
Smoking Crack Organization