diff options
Diffstat (limited to 'sound/pci/ctxfi/ctatc.c')
| -rw-r--r-- | sound/pci/ctxfi/ctatc.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/pci/ctxfi/ctatc.c b/sound/pci/ctxfi/ctatc.c index b5fa583a239..af632bd0832 100644 --- a/sound/pci/ctxfi/ctatc.c +++ b/sound/pci/ctxfi/ctatc.c @@ -435,6 +435,11 @@ atc_pcm_playback_position(struct ct_atc *atc, struct ct_atc_pcm *apcm)  		return 0;  	position = src->ops->get_ca(src); +	if (position < apcm->vm_block->addr) { +		snd_printdd("ctxfi: bad ca - ca=0x%08x, vba=0x%08x, vbs=0x%08x\n", position, apcm->vm_block->addr, apcm->vm_block->size); +		position = apcm->vm_block->addr; +	} +  	size = apcm->vm_block->size;  	max_cisz = src->multi * src->rsc.msr;  	max_cisz = 128 * (max_cisz < 8 ? max_cisz : 8); @@ -1734,8 +1739,6 @@ int ct_atc_create(struct snd_card *card, struct pci_dev *pci,  	if (err < 0)  		goto error1; -	snd_card_set_dev(card, &pci->dev); -  	*ratc = atc;  	return 0;  | 
