summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@localhost.localdomain>2009-09-13 22:56:48 -0400
committerroot <root@localhost.localdomain>2009-09-13 22:56:48 -0400
commit57d1270415730ba2ff3415614707dd939572d48e (patch)
tree31d93454cc652bf71c423ad987e1a6b5eacb75d0
parent654b8f2b5b31f1e121680fdfcb3de1d9cdc19ac8 (diff)
xvmc: fix adaptor pointer error, also fix null busIDString in dri2
-rw-r--r--src/radeon_hwmc.c14
-rw-r--r--src/radeon_hwmc.h4
-rw-r--r--src/radeon_video.c4
3 files changed, 14 insertions, 8 deletions
diff --git a/src/radeon_hwmc.c b/src/radeon_hwmc.c
index 4eeadac..997b095 100644
--- a/src/radeon_hwmc.c
+++ b/src/radeon_hwmc.c
@@ -172,17 +172,18 @@ void RADEONDestroyAdaptor(XF86MCAdaptorPtr xv_adaptor)
}
Bool RADEONInitHwmc(ScreenPtr pScreen, unsigned int num_adaptors,
- XF86VideoAdaptorPtr *xv_adaptors)
+ XF86MCAdaptorPtr *pAdaptor)
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
RADEONInfoPtr info = RADEONPTR(pScrn);
Bool status = FALSE;
+ char buf[64];
int i;
assert(pScrn);
- assert(xv_adaptors);
+ assert(pAdaptor);
- if (xf86XvMCScreenInit(pScreen, num_adaptors, xv_adaptors))
+ if (xf86XvMCScreenInit(pScreen, num_adaptors, pAdaptor))
{
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[XvMC] Driver initialized\n");
status = TRUE;
@@ -190,11 +191,16 @@ Bool RADEONInitHwmc(ScreenPtr pScreen, unsigned int num_adaptors,
else
{
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "[XvMC] Failed to initialize\n");
+ return status;
}
+ sprintf(buf, "pci:%04x:%02x:%02x.%d",info->PciInfo->domain,
+ info->PciInfo->bus,
+ info->PciInfo->dev,
+ info->PciInfo->func);
xf86XvMCRegisterDRInfo(pScreen, RADEON_XVMC_LIBNAME,
- info->dri->pDRIInfo->busIdString,
+ buf,
RADEON_XVMC_MAJOR,
RADEON_XVMC_MINOR,
RADEON_XVMC_PATCHLEVEL);
diff --git a/src/radeon_hwmc.h b/src/radeon_hwmc.h
index 655a93c..7a8d1e9 100644
--- a/src/radeon_hwmc.h
+++ b/src/radeon_hwmc.h
@@ -31,7 +31,7 @@
extern XF86MCAdaptorPtr RADEONCreateAdaptor(ScreenPtr pScreen);
extern void RADEONInitHwmc(ScreenPtr pScreen, unsigned int num_adaptors,
- XF86VideoAdaptorPtr * xv_adaptors);
+ XF86MCAdaptorPtr *pAdaptor);
extern void RADEONDestroyAdaptor(XF86MCAdaptorPtr xv_adaptor);
-#endif \ No newline at end of file
+#endif
diff --git a/src/radeon_video.c b/src/radeon_video.c
index 0e3d5fa..f3be905 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -318,10 +318,10 @@ void RADEONInitVideo(ScreenPtr pScreen)
if (texturedAdaptor)
{
- XF86MCAdaptorPtr *adaptorXvMC = RADEONCreateAdaptor(pScreen);
+ XF86MCAdaptorPtr adaptorXvMC = RADEONCreateAdaptor(pScreen);
if (adaptorXvMC)
{
- RADEONInitHwmc(pScreen, 1, adaptorXvMC);
+ RADEONInitHwmc(pScreen, 1, &adaptorXvMC);
RADEONDestroyAdaptor(adaptorXvMC);
}
}