Skip to content
This repository has been archived by the owner on Apr 23, 2019. It is now read-only.

Commit

Permalink
Add latest VXD DRM APIs.
Browse files Browse the repository at this point in the history
Signed-off-by: Sean V Kelley <[email protected]>
  • Loading branch information
seanvk committed Feb 12, 2014
1 parent 770c41a commit c12372d
Show file tree
Hide file tree
Showing 10 changed files with 769 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/pnw_cmdbuf.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
#include <ttm/ttm_placement.h>
#include <linux/psb_drm.h>
#else
#include <linux/vxd_drm.h>
#include "vxd_drm.h"
#endif

#include <stdint.h>
Expand Down
2 changes: 1 addition & 1 deletion src/psb_buffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
#include <wsbm/wsbm_manager.h>

#ifdef BAYTRAIL
#include <linux/vxd_drm.h>
#include "vxd_drm.h"
#else
#include <ttm/ttm_placement.h>
#include <linux/psb_drm.h>
Expand Down
2 changes: 1 addition & 1 deletion src/psb_drv_video.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
//#include "psb_drv_debug.h"
#include "xf86drm.h"
#ifdef BAYTRAIL
#include <linux/vxd_drm.h>
#include "vxd_drm.h"
#else
#include <linux/psb_drm.h>
#endif
Expand Down
140 changes: 140 additions & 0 deletions src/psb_ttm_fence_user.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
/**************************************************************************
*
* Copyright 2006-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
* All Rights Reserved.
* Copyright (c) 2009 VMware, Inc., Palo Alto, CA., USA
* All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
*
**************************************************************************/
/*
* Authors
* Thomas Hellström <thomas-at-tungstengraphics-dot-com>
*/

#ifndef TTM_FENCE_USER_H
#define TTM_FENCE_USER_H

#if !defined(__KERNEL__) && !defined(_KERNEL)
#include <stdint.h>
#endif

#define TTM_FENCE_MAJOR 0
#define TTM_FENCE_MINOR 1
#define TTM_FENCE_PL 0
#define TTM_FENCE_DATE "080819"

/**
* struct ttm_fence_signaled_req
*
* @handle: Handle to the fence object. Input.
*
* @fence_type: Fence types we want to flush. Input.
*
* @flush: Boolean. Flush the indicated fence_types. Input.
*
* Argument to the TTM_FENCE_SIGNALED ioctl.
*/

struct ttm_fence_signaled_req {
uint32_t handle;
uint32_t fence_type;
int32_t flush;
uint32_t pad64;
};

/**
* struct ttm_fence_rep
*
* @signaled_types: Fence type that has signaled.
*
* @fence_error: Command execution error.
* Hardware errors that are consequences of the execution
* of the command stream preceding the fence are reported
* here.
*
* Output argument to the TTM_FENCE_SIGNALED and
* TTM_FENCE_FINISH ioctls.
*/

struct ttm_fence_rep {
uint32_t signaled_types;
uint32_t fence_error;
};

union ttm_fence_signaled_arg {
struct ttm_fence_signaled_req req;
struct ttm_fence_rep rep;
};

/*
* Waiting mode flags for the TTM_FENCE_FINISH ioctl.
*
* TTM_FENCE_FINISH_MODE_LAZY: Allow for sleeps during polling
* wait.
*
* TTM_FENCE_FINISH_MODE_NO_BLOCK: Don't block waiting for GPU,
* but return -EBUSY if the buffer is busy.
*/

#define TTM_FENCE_FINISH_MODE_LAZY (1 << 0)
#define TTM_FENCE_FINISH_MODE_NO_BLOCK (1 << 1)

/**
* struct ttm_fence_finish_req
*
* @handle: Handle to the fence object. Input.
*
* @fence_type: Fence types we want to finish.
*
* @mode: Wait mode.
*
* Input to the TTM_FENCE_FINISH ioctl.
*/

struct ttm_fence_finish_req {
uint32_t handle;
uint32_t fence_type;
uint32_t mode;
uint32_t pad64;
};

union ttm_fence_finish_arg {
struct ttm_fence_finish_req req;
struct ttm_fence_rep rep;
};

/**
* struct ttm_fence_unref_arg
*
* @handle: Handle to the fence object.
*
* Argument to the TTM_FENCE_UNREF ioctl.
*/

struct ttm_fence_unref_arg {
uint32_t handle;
uint32_t pad64;
};

/*
* Ioctl offsets frome extenstion start.
*/

#define TTM_FENCE_SIGNALED 0x01
#define TTM_FENCE_FINISH 0x02
#define TTM_FENCE_UNREF 0x03

#endif
Loading

0 comments on commit c12372d

Please sign in to comment.