diff options
author | Jakob Bornecrantz <jakob@vmware.com> | 2010-01-23 01:41:49 +0000 |
---|---|---|
committer | Jakob Bornecrantz <jakob@vmware.com> | 2010-01-28 17:32:54 +0100 |
commit | 44a0e0a099eeeb6501359f08449dcaa5e9899398 (patch) | |
tree | 2bf83614ef44ed81cb16060e7601275c306969c1 | |
parent | f2730574f2d204eee62d6f37aa56567bd2d94a26 (diff) |
libkms: Rework interface to not duplicate fields from kms and make formats explic/* radeon_drv.c -- ATI Radeon driver -*- linux-c -*-
* Created: Wed Feb 14 17:10:04 2001 by gareth@valinux.com
*
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
* Authors:
* Gareth Hughes <gareth@valinux.com>
*
*/
#include "radeon.h"
#include "drmP.h"
#include "drm.h"
#include "radeon_drm.h"
#include "radeon_drv.h"
#if __REALLY_HAVE_SG
#include "ati_pcigart.h"
#endif
#include "drm_agpsupport.h"
#include "drm_auth.h"
#include "drm_bufs.h"
#include "drm_context.h"
#include "drm_dma.h"
#include "drm_drawable.h"
#include "drm_drv.h"
#include "drm_fops.h"
#include "drm_ioctl.h"
#include "drm_irq.h"
#include "drm_lock.h"
#include "drm_memory.h"
#include "drm_pci.h"
#include "drm_vm.h"
#include "drm_sysctl.h"
#include "drm_scatter.h"
#ifdef __FreeBSD__a/libkms/intel.c b/libkms/intel.c
index 670494e7..a1914f82 100644
--- a/libkms/intel.c
+++ b/libkms/intel.c
index 670494e7..a1914f82 100644
--- a/libkms/intel.c
+++ b/libkms/intel.c
@@ -53,29 +53,8 @@ static int
intel_get_prop(struct kms_driver *kms, unsigned key, unsigned *out)
{
switch (key) {
- case KMS_MAX_SCANOUT_WIDTH:
- *out = 4096;
- break;
- case KMS_MAX_SCANOUT_HEIGHT:
- *out = 4096;
- break;
- case KMS_MIN_SCANOUT_WIDTH:
- *out = 1;
- break;
- case KMS_MIN_SCANOUT_HEIGHT:
- *out = 1;
- break;
- case KMS_MAX_CURSOR_WIDTH:
- *out = 64;
- break;
- case KMS_MAX_CURSOR_HEIGHT:
- *out = 64;
- break;
- case KMS_MIN_CURSOR_WIDTH:
- *out = 64;
- break;
- case KMS_MIN_CURSOR_HEIGHT:
- *out = 64;
+ case KMS_BO_TYPE:
+ *out = KMS_BO_TYPE_SCANOUT_X8R8G8B8 | KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8;
break;
default:
return -EINVAL;
@@ -116,10 +95,10 @@ intel_bo_create(struct kms_driver *kms,
if (!bo)
return -ENOMEM;
- if (type == KMS_BO_TYPE_CURSOR) {
+ if (type == KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8) {
pitch = 64 * 4;
size = 64 * 64 * 4;
- } else if (type == KMS_BO_TYPE_SCANOUT) {
+ } else if (type == KMS_BO_TYPE_SCANOUT_X8R8G8B8) {
pitch = width * 4;
pitch = (pitch + 512 - 1) & ~(512 - 1);
size = pitch * ((height + 4 - 1) & ~(4 - 1));
@@ -140,7 +119,7 @@ intel_bo_create(struct kms_driver *kms,
bo->base.pitch = pitch;
*out = &bo->base;
- if (type == KMS_BO_TYPE_SCANOUT && pitch > 512) {
+ if (type == KMS_BO_TYPE_SCANOUT_X8R8G8B8 && pitch > 512) {
struct drm_i915_gem_set_tiling tile;
memset(&tile, 0, sizeof(tile));
diff --git a/libkms/libkms.h b/libkms/libkms.h
index eb2ed893..46644429 100644
--- a/libkms/libkms.h
+++ b/libkms/libkms.h
index eb2ed893..46644429 100644
--- a/libkms/libkms.h
+++ b/libkms/libkms.h
@@ -29,31 +29,36 @@
#ifndef _LIBKMS_H_
#define _LIBKMS_H_
+/**
+ * \file
+ *
+ */
+
struct kms_driver;
struct kms_bo;
enum kms_attrib
{
KMS_TERMINATE_PROP_LIST,
+#define KMS_TERMINATE_PROP_LIST KMS_TERMINATE_PROP_LIST
KMS_BO_TYPE,
+#define KMS_BO_TYPE KMS_BO_TYPE
KMS_WIDTH,
+#define KMS_WIDTH KMS_WIDTH
KMS_HEIGHT,
+#define KMS_HEIGHT KMS_HEIGHT
KMS_PITCH,
+#define KMS_PITCH KMS_PITCH
KMS_HANDLE,
- KMS_MAX_SCANOUT_WIDTH,
- KMS_MAX_SCANOUT_HEIGHT,
- KMS_MIN_SCANOUT_WIDTH,
- KMS_MIN_SCANOUT_HEIGHT,
- KMS_MAX_CURSOR_WIDTH,
- KMS_MAX_CURSOR_HEIGHT,
- KMS_MIN_CURSOR_WIDTH,
- KMS_MIN_CURSOR_HEIGHT,
+#define KMS_HANDLE KMS_HANDLE
};
enum kms_bo_type
{
- KMS_BO_TYPE_SCANOUT = (1 << 0),
- KMS_BO_TYPE_CURSOR = (1 << 1),
+ KMS_BO_TYPE_SCANOUT_X8R8G8B8 = (1 << 0),
+#define KMS_BO_TYPE_SCANOUT_X8R8G8B8 KMS_BO_TYPE_SCANOUT_X8R8G8B8
+ KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8 = (1 << 1),
+#define KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8 KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8
};
int kms_create(int fd, struct kms_driver **out);
diff --git a/libkms/vmwgfx.c b/libkms/vmwgfx.c
index 0568d6e0..d594b3bd 100644
--- a/libkms/vmwgfx.c
+++ b/libkms/vmwgfx.c
index 0568d6e0..d594b3bd 100644
--- a/libkms/vmwgfx.c
+++ b/libkms/vmwgfx.c
@@ -49,29 +49,8 @@ static int
vmwgfx_get_prop(struct kms_driver *kms, unsigned key, unsigned *out)
{
switch (key) {
- case KMS_MAX_SCANOUT_WIDTH:
- *out = 2048;
- break;
- case KMS_MAX_SCANOUT_HEIGHT:
- *out = 2048;
- break;
- case KMS_MIN_SCANOUT_WIDTH:
- *out = 1;
- break;
- case KMS_MIN_SCANOUT_HEIGHT:
- *out = 1;
- break;
- case KMS_MAX_CURSOR_WIDTH:
- *out = 64;
- break;
- case KMS_MAX_CURSOR_HEIGHT:
- *out = 64;
- break;
- case KMS_MIN_CURSOR_WIDTH:
- *out = 64;
- break;
- case KMS_MIN_CURSOR_HEIGHT:
- *out = 64;
+ case KMS_BO_TYPE:
+ *out = KMS_BO_TYPE_SCANOUT_X8R8G8B8 | KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8;
break;
default:
return -EINVAL;
diff --git a/tests/kmstest/main.c b/tests/kmstest/main.c
index bd41b065..7aaeb75a 100644
--- a/tests/kmstest/main.c
+++ b/tests/kmstest/main.c
index bd41b065..7aaeb75a 100644
--- a/tests/kmstest/main.c
+++ b/tests/kmstest/main.c
@@ -44,7 +44,7 @@ int test_bo(struct kms_driver *kms)
unsigned attrs[7] = {
KMS_WIDTH, 1024,
KMS_HEIGHT, 768,
- KMS_BO_TYPE, KMS_BO_TYPE_SCANOUT,
+ KMS_BO_TYPE, KMS_BO_TYPE_SCANOUT_X8R8G8B8,
KMS_TERMINATE_PROP_LIST,
};