summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCooper Yuan <cooperyuan@gmail.com>2009-09-14 14:59:44 +0800
committerCooper Yuan <cooperyuan@gmail.com>2009-09-14 14:59:44 +0800
commit770351d4592c3ed5f8bb3dcd862a6397cd09e934 (patch)
treeed40e461cb6c27d92719eceae30e7490924eb543
parent96b0dd79581806248ae2bff3bc322b1e9c1802df (diff)
xvmc: fix register failure because of unmatched name with texture adaptor
-rw-r--r--src/radeon_hwmc.c55
-rw-r--r--src/radeon_hwmc.h2
2 files changed, 21 insertions, 36 deletions
diff --git a/src/radeon_hwmc.c b/src/radeon_hwmc.c
index 997b095..7dcf09d 100644
--- a/src/radeon_hwmc.c
+++ b/src/radeon_hwmc.c
@@ -103,24 +103,9 @@ static XF86ImagePtr SubPictures[] =
(XF86ImagePtr) &radeon_subpicture
};
-static XF86MCAdaptorRec R100Adapt =
-{
- .name = "AMD(R) R100 XvMC Video",
- .num_surfaces = ARRAY_SIZE(Surfaces),
- .surfaces = Surfaces,
- .num_subpictures = ARRAY_SIZE(SubPictures),
- .subpictures = SubPictures,
- .CreateContext = NULL,
- .DestroyContext = NULL,
- .CreateSurface = NULL,
- .DestroySurface = NULL,
- .CreateSubpicture = NULL,
- .DestroySubpicture = NULL,
-};
-
static XF86MCAdaptorRec R300Adapt =
{
- .name = "AMD(R) R300 XvMC Video",
+ .name = "",
.num_surfaces = ARRAY_SIZE(Surfaces),
.surfaces = Surfaces,
.num_subpictures = ARRAY_SIZE(SubPictures),
@@ -133,7 +118,7 @@ static XF86MCAdaptorRec R300Adapt =
.DestroySubpicture = NULL,
};
-XF86MCAdaptorPtr RADEONCreateAdaptor(ScreenPtr pScreen)
+XF86MCAdaptorPtr RADEONCreateAdaptor(ScreenPtr pScreen, char *adaptor_name)
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
RADEONInfoPtr info = RADEONPTR(pScrn);
@@ -148,19 +133,11 @@ XF86MCAdaptorPtr RADEONCreateAdaptor(ScreenPtr pScreen)
return NULL;
}
- if (info->ChipFamily >= CHIP_FAMILY_RV100 &&
- info->ChipFamily < CHIP_FAMILY_R300)
- {
- *xv_adaptor = R100Adapt;
- }
- else if (info->ChipFamily >= CHIP_FAMILY_R300 &&
- info->ChipFamily < CHIP_FAMILY_RS600)
- {
- *xv_adaptor = R300Adapt;
- }
+ *xv_adaptor = R300Adapt;
+ xv_adaptor->name = adaptor_name;
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[XvMC] Create adaptor for %s\n", xv_adaptor->name);
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[XvMC] Create adaptor for %s\n",
+ xv_adaptor->name);
return xv_adaptor;
}
@@ -168,7 +145,7 @@ XF86MCAdaptorPtr RADEONCreateAdaptor(ScreenPtr pScreen)
void RADEONDestroyAdaptor(XF86MCAdaptorPtr xv_adaptor)
{
assert(xv_adaptor);
- xf86XvMCDestoryAdaptorRec(xv_adaptor);
+ xf86XvMCDestroyAdaptorRec(xv_adaptor);
}
Bool RADEONInitHwmc(ScreenPtr pScreen, unsigned int num_adaptors,
@@ -199,11 +176,19 @@ Bool RADEONInitHwmc(ScreenPtr pScreen, unsigned int num_adaptors,
info->PciInfo->dev,
info->PciInfo->func);
- xf86XvMCRegisterDRInfo(pScreen, RADEON_XVMC_LIBNAME,
- buf,
- RADEON_XVMC_MAJOR,
- RADEON_XVMC_MINOR,
- RADEON_XVMC_PATCHLEVEL);
+ if (xf86XvMCRegisterDRInfo(pScreen, RADEON_XVMC_LIBNAME,
+ buf,
+ RADEON_XVMC_MAJOR,
+ RADEON_XVMC_MINOR,
+ RADEON_XVMC_PATCHLEVEL) != Success)
+ {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[XvMC] Failed to register lib\n");
+ }
+ else
+ {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[XvMC] Client lib registered\n");
+ }
+
return status;
}
diff --git a/src/radeon_hwmc.h b/src/radeon_hwmc.h
index 9bebd39..6d52120 100644
--- a/src/radeon_hwmc.h
+++ b/src/radeon_hwmc.h
@@ -29,7 +29,7 @@
#include <xf86xvmc.h>
-extern XF86MCAdaptorPtr RADEONCreateAdaptor(ScreenPtr pScreen);
+extern XF86MCAdaptorPtr RADEONCreateAdaptor(ScreenPtr pScreen, char *adaptor_name);
extern void RADEONInitHwmc(ScreenPtr pScreen, unsigned int num_adaptors,
XF86MCAdaptorPtr *pAdaptor);
extern void RADEONDestroyAdaptor(XF86MCAdaptorPtr xv_adaptor);