diff options
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-ts.c')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-ts.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/drivers/media/video/saa7134/saa7134-ts.c b/drivers/media/video/saa7134/saa7134-ts.c index 5b1d1dafb5a5..4b63ad3e8466 100644 --- a/drivers/media/video/saa7134/saa7134-ts.c +++ b/drivers/media/video/saa7134/saa7134-ts.c | |||
@@ -177,6 +177,22 @@ static unsigned int ts_nr_packets = 64; | |||
177 | module_param(ts_nr_packets, int, 0444); | 177 | module_param(ts_nr_packets, int, 0444); |
178 | MODULE_PARM_DESC(ts_nr_packets,"size of a ts buffers (in ts packets)"); | 178 | MODULE_PARM_DESC(ts_nr_packets,"size of a ts buffers (in ts packets)"); |
179 | 179 | ||
180 | int saa7134_ts_init_hw(struct saa7134_dev *dev) | ||
181 | { | ||
182 | /* deactivate TS softreset */ | ||
183 | saa_writeb(SAA7134_TS_SERIAL1, 0x00); | ||
184 | /* TSSOP high active, TSVAL high active, TSLOCK ignored */ | ||
185 | saa_writeb(SAA7134_TS_PARALLEL, 0xec); | ||
186 | saa_writeb(SAA7134_TS_PARALLEL_SERIAL, (TS_PACKET_SIZE-1)); | ||
187 | saa_writeb(SAA7134_TS_DMA0, ((dev->ts.nr_packets-1)&0xff)); | ||
188 | saa_writeb(SAA7134_TS_DMA1, (((dev->ts.nr_packets-1)>>8)&0xff)); | ||
189 | /* TSNOPIT=0, TSCOLAP=0 */ | ||
190 | saa_writeb(SAA7134_TS_DMA2, | ||
191 | ((((dev->ts.nr_packets-1)>>16)&0x3f) | 0x00)); | ||
192 | |||
193 | return 0; | ||
194 | } | ||
195 | |||
180 | int saa7134_ts_init1(struct saa7134_dev *dev) | 196 | int saa7134_ts_init1(struct saa7134_dev *dev) |
181 | { | 197 | { |
182 | /* sanitycheck insmod options */ | 198 | /* sanitycheck insmod options */ |
@@ -200,12 +216,7 @@ int saa7134_ts_init1(struct saa7134_dev *dev) | |||
200 | saa7134_pgtable_alloc(dev->pci,&dev->ts.pt_ts); | 216 | saa7134_pgtable_alloc(dev->pci,&dev->ts.pt_ts); |
201 | 217 | ||
202 | /* init TS hw */ | 218 | /* init TS hw */ |
203 | saa_writeb(SAA7134_TS_SERIAL1, 0x00); /* deactivate TS softreset */ | 219 | saa7134_ts_init_hw(dev); |
204 | saa_writeb(SAA7134_TS_PARALLEL, 0xec); /* TSSOP high active, TSVAL high active, TSLOCK ignored */ | ||
205 | saa_writeb(SAA7134_TS_PARALLEL_SERIAL, (TS_PACKET_SIZE-1)); | ||
206 | saa_writeb(SAA7134_TS_DMA0, ((dev->ts.nr_packets-1)&0xff)); | ||
207 | saa_writeb(SAA7134_TS_DMA1, (((dev->ts.nr_packets-1)>>8)&0xff)); | ||
208 | saa_writeb(SAA7134_TS_DMA2, ((((dev->ts.nr_packets-1)>>16)&0x3f) | 0x00)); /* TSNOPIT=0, TSCOLAP=0 */ | ||
209 | 220 | ||
210 | return 0; | 221 | return 0; |
211 | } | 222 | } |