version 1.4, 2001/03/29 23:12:01
|
version 1.5, 2001/04/25 15:31:09
|
Line 29
|
Line 29
|
// Frees allocated channel buffers |
// Frees allocated channel buffers |
int DecoderKillChannelBuffers(struct cvdv_cards *card) |
int DecoderKillChannelBuffers(struct cvdv_cards *card) |
{ |
{ |
printk(KERN_DEBUG LOGNAME ": -- DecoderKillChannelBuffers\n"); |
MDEBUG(1, ": -- DecoderKillChannelBuffers\n"); |
DecoderStopDecode(card); |
DecoderStopDecode(card); |
DRAMFree(card, card->VideoES); |
DRAMFree(card, card->VideoES); |
card->VideoES = BLANK; |
card->VideoES = BLANK; |
Line 70 int DecoderSetChannelBuffers(struct cvdv
|
Line 70 int DecoderSetChannelBuffers(struct cvdv
|
DecoderWriteByte(card,adr+3,((addr-1)>>8)&0x003F);\ |
DecoderWriteByte(card,adr+3,((addr-1)>>8)&0x003F);\ |
} |
} |
u32 addr; |
u32 addr; |
printk(KERN_DEBUG LOGNAME ": -- DecoderSetChannelBuffers\n"); |
MDEBUG(1, ": -- DecoderSetChannelBuffers\n"); |
//DecoderStopDecode(card); |
//DecoderStopDecode(card); |
DecoderStopChannel(card); |
DecoderStopChannel(card); |
VideoES >>= 1; // change to word sizes |
VideoES >>= 1; // change to word sizes |
Line 103 int DecoderSetChannelBuffers(struct cvdv
|
Line 103 int DecoderSetChannelBuffers(struct cvdv
|
//DecoderSetByte(card,0x07B,0x10); // navi pack counter enable |
//DecoderSetByte(card,0x07B,0x10); // navi pack counter enable |
card->NaviPackAddress = |
card->NaviPackAddress = |
(DecoderReadWord(card, 0x05C) & 0x3FFF) << 7; |
(DecoderReadWord(card, 0x05C) & 0x3FFF) << 7; |
//printk(KERN_DEBUG LOGNAME ": navi bank init'ed: 0x%08X\n",card->NaviPackAddress); |
MDEBUG(4, ": navi bank init'ed: 0x%08X\n",card->NaviPackAddress); |
} else { |
} else { |
card->reg07B &= ~0x10; // navi pack counter disable |
card->reg07B &= ~0x10; // navi pack counter disable |
DecoderWriteByte(card, 0x07B, card->reg07B); |
DecoderWriteByte(card, 0x07B, card->reg07B); |
Line 119 int DecoderSetChannelBuffers(struct cvdv
|
Line 119 int DecoderSetChannelBuffers(struct cvdv
|
|
|
int DecoderUnPrepare(struct cvdv_cards *card) |
int DecoderUnPrepare(struct cvdv_cards *card) |
{ |
{ |
printk(KERN_ERR LOGNAME ": -- DecoderUnPrepare\n"); |
MDEBUG(0, ": -- DecoderUnPrepare\n"); |
//DecoderStopDecode(card); |
//DecoderStopDecode(card); |
DecoderStopChannel(card); |
DecoderStopChannel(card); |
DecoderKillChannelBuffers(card); |
DecoderKillChannelBuffers(card); |
Line 156 void DecoderSelectAudioID(struct cvdv_ca
|
Line 156 void DecoderSelectAudioID(struct cvdv_ca
|
{ |
{ |
int AID = card->setup.audioID; |
int AID = card->setup.audioID; |
int AExt = card->setup.audioIDext; |
int AExt = card->setup.audioIDext; |
printk(KERN_DEBUG LOGNAME ": -- SelectAudio %d %d\n", AID, AExt); |
MDEBUG(1, ": -- SelectAudio %d %d\n", AID, AExt); |
DecoderWriteByte(card, 0x07C, AExt & 0x1F); // Audio Stream Extension ID |
DecoderWriteByte(card, 0x07C, AExt & 0x1F); // Audio Stream Extension ID |
card->reg08F = (card->reg08F & ~0x1F) | (AID & 0x1F); |
card->reg08F = (card->reg08F & ~0x1F) | (AID & 0x1F); |
DecoderWriteByte(card, 0x08F, card->reg08F); |
DecoderWriteByte(card, 0x08F, card->reg08F); |
Line 175 void DecoderPrepareAudio(struct cvdv_car
|
Line 175 void DecoderPrepareAudio(struct cvdv_car
|
int AID = card->setup.audioID; |
int AID = card->setup.audioID; |
int AExt = card->setup.audioIDext; |
int AExt = card->setup.audioIDext; |
int IEC956 = card->setup.SPDIFmode; |
int IEC956 = card->setup.SPDIFmode; |
printk(KERN_DEBUG LOGNAME ": -- PrepAudio %d %d %d %d %d\n", |
MDEBUG(1, ": -- PrepAudio %d %d %d %d %d\n", |
AHeader, card->setup.audioselect, AID, AExt, IEC956); |
AHeader, card->setup.audioselect, AID, AExt, IEC956); |
switch (card->setup.audioselect) { |
switch (card->setup.audioselect) { |
case audio_disable: |
case audio_disable: |
Line 289 void DecoderPrepareVideo(struct cvdv_car
|
Line 289 void DecoderPrepareVideo(struct cvdv_car
|
int DecoderPrepareES(struct cvdv_cards *card) |
int DecoderPrepareES(struct cvdv_cards *card) |
{ |
{ |
int i; |
int i; |
printk(KERN_DEBUG LOGNAME ": -- PrepareES\n"); |
MDEBUG(1, ": -- PrepareES\n"); |
//DecoderStopDecode(card); |
//DecoderStopDecode(card); |
|
|
// DecoderWriteByte(card,0x05,0x00); |
// DecoderWriteByte(card,0x05,0x00); |
|
|
DecoderMaskByte(card, 0x007, 0xCE, 0xC2 | (3 << 2)); // Stream Select: A/V Elementary Stream |
DecoderMaskByte(card, 0x007, 0xCE, 0xC2 | (3 << 2)); // Stream Select: A/V Elementary Stream |
//printk(KERN_DEBUG LOGNAME ": Int - A VideoES w/r addr: %08X %08X\n", |
MDEBUG(3, ": Int - A VideoES w/r addr: %08X %08X\n", |
// (DecoderReadByte(card,0x060)|(DecoderReadByte(card,0x061)<<8)|(DecoderReadByte(card,0x062)<<16))<<2, |
(DecoderReadByte(card,0x060)|(DecoderReadByte(card,0x061)<<8)| |
// (DecoderReadByte(card,0x06C)|(DecoderReadByte(card,0x06D)<<8)|(DecoderReadByte(card,0x06E)<<16))<<2); |
(DecoderReadByte(card,0x062)<<16))<<2, |
|
(DecoderReadByte(card,0x06C)|(DecoderReadByte(card,0x06D)<<8)| |
|
(DecoderReadByte(card,0x06E)<<16))<<2); |
// set the decoding buffers |
// set the decoding buffers |
card->reg093 = (card->reg093 & ~0xFC); // write no header |
card->reg093 = (card->reg093 & ~0xFC); // write no header |
DecoderWriteByte(card, 0x093, card->reg093); |
DecoderWriteByte(card, 0x093, card->reg093); |
if ((i = DecoderSetChannelBuffers(card, 256000, 4096, 0, 0, 0, 0))) { |
if ((i = DecoderSetChannelBuffers(card, 256000, 4096, 0, 0, 0, 0))) { |
printk(KERN_ERR LOGNAME |
MDEBUG(0, ": SetDecoderBuffers failed for buffer at 0x%03X\n", i); |
": SetDecoderBuffers failed for buffer at 0x%03X\n", |
|
i); |
|
DecoderKillChannelBuffers(card); |
DecoderKillChannelBuffers(card); |
return 1; |
return 1; |
} |
} |
//printk(KERN_DEBUG LOGNAME ": Int - B VideoES w/r addr: %08X %08X\n", |
MDEBUG(3, ": Int - B VideoES w/r addr: %08X %08X\n", |
// (DecoderReadByte(card,0x060)|(DecoderReadByte(card,0x061)<<8)|(DecoderReadByte(card,0x062)<<16))<<2, |
(DecoderReadByte(card,0x060)|(DecoderReadByte(card,0x061)<<8)| |
// (DecoderReadByte(card,0x06C)|(DecoderReadByte(card,0x06D)<<8)|(DecoderReadByte(card,0x06E)<<16))<<2); |
(DecoderReadByte(card,0x062)<<16))<<2, |
|
(DecoderReadByte(card,0x06C)|(DecoderReadByte(card,0x06D)<<8)| |
//printk(KERN_DEBUG LOGNAME ": Int - C VideoES w/r addr: %08X %08X\n", |
(DecoderReadByte(card,0x06E)<<16))<<2); |
// (DecoderReadByte(card,0x060)|(DecoderReadByte(card,0x061)<<8)|(DecoderReadByte(card,0x062)<<16))<<2, |
|
// (DecoderReadByte(card,0x06C)|(DecoderReadByte(card,0x06D)<<8)|(DecoderReadByte(card,0x06E)<<16))<<2); |
MDEBUG(3, ": Int - C VideoES w/r addr: %08X %08X\n", |
|
(DecoderReadByte(card,0x060)|(DecoderReadByte(card,0x061)<<8)| |
|
(DecoderReadByte(card,0x062)<<16))<<2, |
|
(DecoderReadByte(card,0x06C)|(DecoderReadByte(card,0x06D)<<8)| |
|
(DecoderReadByte(card,0x06E)<<16))<<2); |
|
|
// DecoderStartChannel(card); |
// DecoderStartChannel(card); |
// DecoderStartDecode(card); |
// DecoderStartDecode(card); |
|
|
//printk(KERN_DEBUG LOGNAME ": Int - D VideoES w/r addr: %08X %08X\n", |
MDEBUG(3, ": Int - D VideoES w/r addr: %08X %08X\n", |
// (DecoderReadByte(card,0x060)|(DecoderReadByte(card,0x061)<<8)|(DecoderReadByte(card,0x062)<<16))<<2, |
(DecoderReadByte(card,0x060)|(DecoderReadByte(card,0x061)<<8)| |
// (DecoderReadByte(card,0x06C)|(DecoderReadByte(card,0x06D)<<8)|(DecoderReadByte(card,0x06E)<<16))<<2); |
(DecoderReadByte(card,0x062)<<16))<<2, |
|
(DecoderReadByte(card,0x06C)|(DecoderReadByte(card,0x06D)<<8)| |
|
(DecoderReadByte(card,0x06E)<<16))<<2); |
|
|
DecoderPrepare(card); |
DecoderPrepare(card); |
|
|
Line 344 int DecoderPreparePES(struct cvdv_cards
|
Line 350 int DecoderPreparePES(struct cvdv_cards
|
int SysHeader = 0; |
int SysHeader = 0; |
int DSIHeader = 0; |
int DSIHeader = 0; |
|
|
printk(KERN_DEBUG LOGNAME ": -- PreparePES\n"); |
MDEBUG(1, ": -- PreparePES\n"); |
DecoderMaskByte(card, 0x007, 0xCE, 0xC2 | (0 << 2)); // Stream Select: A/V PES Packets |
DecoderMaskByte(card, 0x007, 0xCE, 0xC2 | (0 << 2)); // Stream Select: A/V PES Packets |
|
|
if (SPUID < 0) |
if (SPUID < 0) |
Line 365 int DecoderPreparePES(struct cvdv_cards
|
Line 371 int DecoderPreparePES(struct cvdv_cards
|
(i = |
(i = |
DecoderSetChannelBuffers(card, 256000, 4096, 512, 0, 512, |
DecoderSetChannelBuffers(card, 256000, 4096, 512, 0, 512, |
0))) { |
0))) { |
printk(KERN_ERR LOGNAME |
MDEBUG(0,": SetDecoderBuffers failed for buffer at 0x%03X\n", i); |
": SetDecoderBuffers failed for buffer at 0x%03X\n", |
|
i); |
|
DecoderKillChannelBuffers(card); |
DecoderKillChannelBuffers(card); |
return 1; |
return 1; |
} |
} |
Line 390 int DecoderPreparePS(struct cvdv_cards *
|
Line 394 int DecoderPreparePS(struct cvdv_cards *
|
int PackHeader, int SysHeader, int DSIHeader, int DVD) |
int PackHeader, int SysHeader, int DSIHeader, int DVD) |
{ |
{ |
int i=0; |
int i=0; |
printk(KERN_DEBUG LOGNAME ": -- PreparePS %s\n", |
MDEBUG(1, ": -- PreparePS %s\n", ((DVD) ? "DVD" : "")); |
((DVD) ? "DVD" : "")); |
|
//DecoderStopDecode(card); |
//DecoderStopDecode(card); |
DecoderMaskByte(card, 0x007, 0xCE, 0xC2 | (1 << 2)); // Stream Select: MPEG1 System / MPEG2 Program Stream |
DecoderMaskByte(card, 0x007, 0xCE, 0xC2 | (1 << 2)); // Stream Select: MPEG1 System / MPEG2 Program Stream |
|
|
Line 419 int DecoderPreparePS(struct cvdv_cards *
|
Line 422 int DecoderPreparePS(struct cvdv_cards *
|
// 512,0) ; |
// 512,0) ; |
|
|
if (i) { |
if (i) { |
printk(KERN_ERR LOGNAME |
MDEBUG(0,": SetDecoderBuffers failed for buffer at 0x%03X\n", i); |
": SetDecoderBuffers failed for buffer at 0x%03X\n", |
|
i); |
|
DecoderKillChannelBuffers(card); |
DecoderKillChannelBuffers(card); |
return 1; |
return 1; |
} |
} |
Line 431 int DecoderPreparePS(struct cvdv_cards *
|
Line 432 int DecoderPreparePS(struct cvdv_cards *
|
(i = |
(i = |
DecoderSetChannelBuffers(card, 340000, 32768, 512, |
DecoderSetChannelBuffers(card, 340000, 32768, 512, |
0, 512, 0))) { |
0, 512, 0))) { |
printk(KERN_ERR LOGNAME |
MDEBUG(0,": SetDecoderBuffers failed for buffer at 0x%03X\n", i); |
": SetDecoderBuffers failed for buffer at 0x%03X\n", |
|
i); |
|
DecoderKillChannelBuffers(card); |
DecoderKillChannelBuffers(card); |
return 1; |
return 1; |
} |
} |