summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2009-12-01 14:32:34 +0100
committerEric Anholt <eric@anholt.net>2010-01-07 10:26:01 -0800
commit229d23fb18d696fb7ad476ce335be14ec9811bd3 (patch)
treee556333067d2957799e01de58774c429d6bb6643
parentce7ba18f577cc9aedddaff303dbc9662a276b4cf (diff)
Xv: don't enable XVMC port on unsupported configs
This just makes it _really_ clear, what's supported. No other changes. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Eric Anholt <eric@anholt.net>
-rw-r--r--src/i830_video.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/i830_video.c b/src/i830_video.c
index 397a2644..964f1e09 100644
--- a/src/i830_video.c
+++ b/src/i830_video.c
@@ -169,7 +169,13 @@ static XF86AttributeRec GammaAttributes[GAMMA_ATTRIBUTES] = {
{XvSettable | XvGettable, 0, 0xffffff, "XV_GAMMA5"}
};
+#ifdef INTEL_XVMC
#define NUM_IMAGES 5
+#define XVMC_IMAGE 1
+#else
+#define NUM_IMAGES 4
+#define XVMC_IMAGE 0
+#endif
static XF86ImageRec Images[NUM_IMAGES] = {
XVIMAGE_YUY2,
@@ -469,7 +475,8 @@ static XF86VideoAdaptorPtr I830SetupImageVideoOverlay(ScreenPtr screen)
sizeof(XF86AttributeRec) * GAMMA_ATTRIBUTES);
att += GAMMA_ATTRIBUTES;
}
- adapt->nImages = NUM_IMAGES;
+ adapt->nImages = NUM_IMAGES - XVMC_IMAGE;
+
adapt->pImages = Images;
adapt->PutVideo = NULL;
adapt->PutStill = NULL;
@@ -528,6 +535,8 @@ static XF86VideoAdaptorPtr I830SetupImageVideoOverlay(ScreenPtr screen)
static XF86VideoAdaptorPtr I830SetupImageVideoTextured(ScreenPtr screen)
{
+ ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ intel_screen_private *intel = intel_get_screen_private(scrn);
XF86VideoAdaptorPtr adapt;
XF86AttributePtr attrs;
intel_adaptor_private *adaptor_privs;
@@ -565,7 +574,11 @@ static XF86VideoAdaptorPtr I830SetupImageVideoTextured(ScreenPtr screen)
adapt->pAttributes = attrs;
memcpy(attrs, TexturedAttributes,
nAttributes * sizeof(XF86AttributeRec));
- adapt->nImages = NUM_IMAGES;
+ if (IS_I915(intel))
+ adapt->nImages = NUM_IMAGES - XVMC_IMAGE;
+ else
+ adapt->nImages = NUM_IMAGES;
+
adapt->pImages = Images;
adapt->PutVideo = NULL;
adapt->PutStill = NULL;