Lines 1467-1472
Link Here
|
1467 |
|
1467 |
|
1468 |
if (((ret = drmCommandWriteRead(xl->fd, DRM_VIA_ALLOCMEM, mem, |
1468 |
if (((ret = drmCommandWriteRead(xl->fd, DRM_VIA_ALLOCMEM, mem, |
1469 |
sizeof(mem))) < 0) || mem->size != size) { |
1469 |
sizeof(mem))) < 0) || mem->size != size) { |
|
|
1470 |
fprintf(stderr, "updateLowLevelBuf failure:\n" |
1471 |
" ret=%d, size=%u, mem->size=%u\n", |
1472 |
ret, size, mem->size); |
1470 |
mem->size = 0; |
1473 |
mem->size = 0; |
1471 |
return -1; |
1474 |
return -1; |
1472 |
} |
1475 |
} |
Lines 1514-1519
Link Here
|
1514 |
drmAddress fbAddress, unsigned fbStride, unsigned fbDepth, |
1517 |
drmAddress fbAddress, unsigned fbStride, unsigned fbDepth, |
1515 |
unsigned width, unsigned height, int useAgp, unsigned chipId) |
1518 |
unsigned width, unsigned height, int useAgp, unsigned chipId) |
1516 |
{ |
1519 |
{ |
|
|
1520 |
int ret; |
1517 |
XvMCLowLevel *xl; |
1521 |
XvMCLowLevel *xl; |
1518 |
|
1522 |
|
1519 |
if (chipId != PCI_CHIP_VT3259 && chipId != PCI_CHIP_VT3364) { |
1523 |
if (chipId != PCI_CHIP_VT3259 && chipId != PCI_CHIP_VT3364) { |
Lines 1523-1535
Link Here
|
1523 |
} |
1527 |
} |
1524 |
|
1528 |
|
1525 |
xl = (XvMCLowLevel *) malloc(sizeof(XvMCLowLevel)); |
1529 |
xl = (XvMCLowLevel *) malloc(sizeof(XvMCLowLevel)); |
1526 |
if (!xl) |
1530 |
if (!xl) { |
|
|
1531 |
fprintf(stderr, "xl malloc failed\n"); |
1527 |
return NULL; |
1532 |
return NULL; |
|
|
1533 |
} |
1534 |
|
1528 |
xl->state = ll_init; |
1535 |
xl->state = ll_init; |
1529 |
|
1536 |
|
1530 |
xl->agpBuf.buf = (CARD32 *) malloc(LL_AGP_CMDBUF_SIZE * sizeof(CARD32)); |
1537 |
xl->agpBuf.buf = (CARD32 *) malloc(LL_AGP_CMDBUF_SIZE * sizeof(CARD32)); |
1531 |
if (!xl->agpBuf.buf) |
1538 |
if (!xl->agpBuf.buf) { |
|
|
1539 |
fprintf(stderr, "xl->agpBuf.buf malloc failed\n"); |
1532 |
return releaseXvMCLowLevel(xl); |
1540 |
return releaseXvMCLowLevel(xl); |
|
|
1541 |
} |
1533 |
xl->state = ll_agpBuf; |
1542 |
xl->state = ll_agpBuf; |
1534 |
xl->agpBuf.bufSize = LL_AGP_CMDBUF_SIZE; |
1543 |
xl->agpBuf.bufSize = LL_AGP_CMDBUF_SIZE; |
1535 |
xl->agpBuf.flushFunc = &agpFlush; |
1544 |
xl->agpBuf.flushFunc = &agpFlush; |
Lines 1538-1545
Link Here
|
1538 |
xl->agpBuf.waitFlags = 0; |
1547 |
xl->agpBuf.waitFlags = 0; |
1539 |
|
1548 |
|
1540 |
xl->pciBuf.buf = (CARD32 *) malloc(LL_PCI_CMDBUF_SIZE * sizeof(CARD32)); |
1549 |
xl->pciBuf.buf = (CARD32 *) malloc(LL_PCI_CMDBUF_SIZE * sizeof(CARD32)); |
1541 |
if (!xl->pciBuf.buf) |
1550 |
if (!xl->pciBuf.buf) { |
|
|
1551 |
fprintf(stderr, "xl->pciBuf.buf malloc failed\n"); |
1542 |
return releaseXvMCLowLevel(xl); |
1552 |
return releaseXvMCLowLevel(xl); |
|
|
1553 |
} |
1543 |
xl->state = ll_pciBuf; |
1554 |
xl->state = ll_pciBuf; |
1544 |
xl->pciBuf.bufSize = LL_PCI_CMDBUF_SIZE; |
1555 |
xl->pciBuf.bufSize = LL_PCI_CMDBUF_SIZE; |
1545 |
xl->pciBuf.flushFunc = &pciFlush; |
1556 |
xl->pciBuf.flushFunc = &pciFlush; |
Lines 1562-1576
Link Here
|
1562 |
xl->agpSync = 0; |
1573 |
xl->agpSync = 0; |
1563 |
xl->chipId = chipId; |
1574 |
xl->chipId = chipId; |
1564 |
|
1575 |
|
1565 |
if (viaDMAInitTimeStamp(xl)) |
1576 |
if ((ret = viaDMAInitTimeStamp(xl))) { |
|
|
1577 |
fprintf(stderr, "viaDMAInitTimeStamp failed with code %d\n", ret); |
1566 |
return releaseXvMCLowLevel(xl); |
1578 |
return releaseXvMCLowLevel(xl); |
|
|
1579 |
} |
1567 |
xl->state = ll_timeStamp; |
1580 |
xl->state = ll_timeStamp; |
1568 |
|
1581 |
|
1569 |
xl->scale.mem.size = 0; |
1582 |
xl->scale.mem.size = 0; |
1570 |
xl->back.mem.size = 0; |
1583 |
xl->back.mem.size = 0; |
1571 |
|
1584 |
|
1572 |
if (updateLowLevelBuf(xl, &xl->scale, width, height)) |
1585 |
if ((ret = updateLowLevelBuf(xl, &xl->scale, width, height))) { |
|
|
1586 |
fprintf(stderr, "updateLowLevelBuf failed with code %d\n", ret); |
1573 |
return releaseXvMCLowLevel(xl); |
1587 |
return releaseXvMCLowLevel(xl); |
|
|
1588 |
} |
1574 |
xl->state = ll_llBuf; |
1589 |
xl->state = ll_llBuf; |
1575 |
|
1590 |
|
1576 |
#ifdef VIDEO_DMA |
1591 |
#ifdef VIDEO_DMA |