Deleted Added
full compact
radeon_state.c (189499) radeon_state.c (196470)
1/*-
2 * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
3 * All Rights Reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,

--- 13 unchanged lines hidden (view full) ---

22 * DEALINGS IN THE SOFTWARE.
23 *
24 * Authors:
25 * Gareth Hughes <gareth@valinux.com>
26 * Kevin E. Martin <martin@valinux.com>
27 */
28
29#include <sys/cdefs.h>
1/*-
2 * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
3 * All Rights Reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,

--- 13 unchanged lines hidden (view full) ---

22 * DEALINGS IN THE SOFTWARE.
23 *
24 * Authors:
25 * Gareth Hughes <gareth@valinux.com>
26 * Kevin E. Martin <martin@valinux.com>
27 */
28
29#include <sys/cdefs.h>
30__FBSDID("$FreeBSD: head/sys/dev/drm/radeon_state.c 189499 2009-03-07 21:36:57Z rnoland $");
30__FBSDID("$FreeBSD: head/sys/dev/drm/radeon_state.c 196470 2009-08-23 14:55:57Z rnoland $");
31
32#include "dev/drm/drmP.h"
33#include "dev/drm/drm.h"
34#include "dev/drm/drm_sarea.h"
35#include "dev/drm/radeon_drm.h"
36#include "dev/drm/radeon_drv.h"
37
38/* ================================================================

--- 1497 unchanged lines hidden (view full) ---

1536 (numverts << RADEON_NUM_VERTICES_SHIFT));
1537
1538 ADVANCE_RING();
1539
1540 i++;
1541 } while (i < nbox);
1542}
1543
31
32#include "dev/drm/drmP.h"
33#include "dev/drm/drm.h"
34#include "dev/drm/drm_sarea.h"
35#include "dev/drm/radeon_drm.h"
36#include "dev/drm/radeon_drv.h"
37
38/* ================================================================

--- 1497 unchanged lines hidden (view full) ---

1536 (numverts << RADEON_NUM_VERTICES_SHIFT));
1537
1538 ADVANCE_RING();
1539
1540 i++;
1541 } while (i < nbox);
1542}
1543
1544static void radeon_cp_discard_buffer(struct drm_device *dev, struct drm_buf *buf)
1544void radeon_cp_discard_buffer(struct drm_device *dev, struct drm_buf *buf)
1545{
1546 drm_radeon_private_t *dev_priv = dev->dev_private;
1547 drm_radeon_buf_priv_t *buf_priv = buf->dev_private;
1548 RING_LOCALS;
1549
1550 buf_priv->age = ++dev_priv->sarea_priv->last_dispatch;
1551
1552 /* Emit the vertex buffer age */

--- 644 unchanged lines hidden (view full) ---

2197
2198 LOCK_TEST_WITH_RETURN(dev, file_priv);
2199
2200 RING_SPACE_TEST_WITH_RETURN(dev_priv);
2201
2202 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS)
2203 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS;
2204
1545{
1546 drm_radeon_private_t *dev_priv = dev->dev_private;
1547 drm_radeon_buf_priv_t *buf_priv = buf->dev_private;
1548 RING_LOCALS;
1549
1550 buf_priv->age = ++dev_priv->sarea_priv->last_dispatch;
1551
1552 /* Emit the vertex buffer age */

--- 644 unchanged lines hidden (view full) ---

2197
2198 LOCK_TEST_WITH_RETURN(dev, file_priv);
2199
2200 RING_SPACE_TEST_WITH_RETURN(dev_priv);
2201
2202 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS)
2203 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS;
2204
2205 radeon_cp_dispatch_swap(dev);
2205 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600)
2206 r600_cp_dispatch_swap(dev);
2207 else
2208 radeon_cp_dispatch_swap(dev);
2206 sarea_priv->ctx_owner = 0;
2207
2208 COMMIT_RING();
2209 return 0;
2210}
2211
2212static int radeon_cp_vertex(struct drm_device *dev, void *data, struct drm_file *file_priv)
2213{

--- 180 unchanged lines hidden (view full) ---

2394 if (DRM_COPY_FROM_USER(&image,
2395 (drm_radeon_tex_image_t __user *) tex->image,
2396 sizeof(image)))
2397 return -EFAULT;
2398
2399 RING_SPACE_TEST_WITH_RETURN(dev_priv);
2400 VB_AGE_TEST_WITH_RETURN(dev_priv);
2401
2209 sarea_priv->ctx_owner = 0;
2210
2211 COMMIT_RING();
2212 return 0;
2213}
2214
2215static int radeon_cp_vertex(struct drm_device *dev, void *data, struct drm_file *file_priv)
2216{

--- 180 unchanged lines hidden (view full) ---

2397 if (DRM_COPY_FROM_USER(&image,
2398 (drm_radeon_tex_image_t __user *) tex->image,
2399 sizeof(image)))
2400 return -EFAULT;
2401
2402 RING_SPACE_TEST_WITH_RETURN(dev_priv);
2403 VB_AGE_TEST_WITH_RETURN(dev_priv);
2404
2402 ret = radeon_cp_dispatch_texture(dev, file_priv, tex, &image);
2405 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600)
2406 ret = r600_cp_dispatch_texture(dev, file_priv, tex, &image);
2407 else
2408 ret = radeon_cp_dispatch_texture(dev, file_priv, tex, &image);
2403
2404 return ret;
2405}
2406
2407static int radeon_cp_stipple(struct drm_device *dev, void *data, struct drm_file *file_priv)
2408{
2409 drm_radeon_private_t *dev_priv = dev->dev_private;
2410 drm_radeon_stipple_t *stipple = data;

--- 740 unchanged lines hidden (view full) ---

3151 radeon_mem_release(file_priv, dev_priv->fb_heap);
3152 radeon_surfaces_release(file_priv, dev_priv);
3153 }
3154}
3155
3156void radeon_driver_lastclose(struct drm_device *dev)
3157{
3158 radeon_surfaces_release(PCIGART_FILE_PRIV, dev->dev_private);
2409
2410 return ret;
2411}
2412
2413static int radeon_cp_stipple(struct drm_device *dev, void *data, struct drm_file *file_priv)
2414{
2415 drm_radeon_private_t *dev_priv = dev->dev_private;
2416 drm_radeon_stipple_t *stipple = data;

--- 740 unchanged lines hidden (view full) ---

3157 radeon_mem_release(file_priv, dev_priv->fb_heap);
3158 radeon_surfaces_release(file_priv, dev_priv);
3159 }
3160}
3161
3162void radeon_driver_lastclose(struct drm_device *dev)
3163{
3164 radeon_surfaces_release(PCIGART_FILE_PRIV, dev->dev_private);
3165 if (dev->dev_private) {
3166 drm_radeon_private_t *dev_priv = dev->dev_private;
3167
3168 if (dev_priv->sarea_priv &&
3169 dev_priv->sarea_priv->pfCurrentPage != 0)
3170 radeon_cp_dispatch_flip(dev);
3171 }
3172
3159 radeon_do_release(dev);
3160}
3161
3162int radeon_driver_open(struct drm_device *dev, struct drm_file *file_priv)
3163{
3164 drm_radeon_private_t *dev_priv = dev->dev_private;
3165 struct drm_radeon_driver_file_fields *radeon_priv;
3166

--- 44 unchanged lines hidden (view full) ---

3211 DRM_IOCTL_DEF(DRM_RADEON_FLIP, radeon_cp_flip, DRM_AUTH),
3212 DRM_IOCTL_DEF(DRM_RADEON_ALLOC, radeon_mem_alloc, DRM_AUTH),
3213 DRM_IOCTL_DEF(DRM_RADEON_FREE, radeon_mem_free, DRM_AUTH),
3214 DRM_IOCTL_DEF(DRM_RADEON_INIT_HEAP, radeon_mem_init_heap, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
3215 DRM_IOCTL_DEF(DRM_RADEON_IRQ_EMIT, radeon_irq_emit, DRM_AUTH),
3216 DRM_IOCTL_DEF(DRM_RADEON_IRQ_WAIT, radeon_irq_wait, DRM_AUTH),
3217 DRM_IOCTL_DEF(DRM_RADEON_SETPARAM, radeon_cp_setparam, DRM_AUTH),
3218 DRM_IOCTL_DEF(DRM_RADEON_SURF_ALLOC, radeon_surface_alloc, DRM_AUTH),
3173 radeon_do_release(dev);
3174}
3175
3176int radeon_driver_open(struct drm_device *dev, struct drm_file *file_priv)
3177{
3178 drm_radeon_private_t *dev_priv = dev->dev_private;
3179 struct drm_radeon_driver_file_fields *radeon_priv;
3180

--- 44 unchanged lines hidden (view full) ---

3225 DRM_IOCTL_DEF(DRM_RADEON_FLIP, radeon_cp_flip, DRM_AUTH),
3226 DRM_IOCTL_DEF(DRM_RADEON_ALLOC, radeon_mem_alloc, DRM_AUTH),
3227 DRM_IOCTL_DEF(DRM_RADEON_FREE, radeon_mem_free, DRM_AUTH),
3228 DRM_IOCTL_DEF(DRM_RADEON_INIT_HEAP, radeon_mem_init_heap, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
3229 DRM_IOCTL_DEF(DRM_RADEON_IRQ_EMIT, radeon_irq_emit, DRM_AUTH),
3230 DRM_IOCTL_DEF(DRM_RADEON_IRQ_WAIT, radeon_irq_wait, DRM_AUTH),
3231 DRM_IOCTL_DEF(DRM_RADEON_SETPARAM, radeon_cp_setparam, DRM_AUTH),
3232 DRM_IOCTL_DEF(DRM_RADEON_SURF_ALLOC, radeon_surface_alloc, DRM_AUTH),
3219 DRM_IOCTL_DEF(DRM_RADEON_SURF_FREE, radeon_surface_free, DRM_AUTH)
3233 DRM_IOCTL_DEF(DRM_RADEON_SURF_FREE, radeon_surface_free, DRM_AUTH),
3234 DRM_IOCTL_DEF(DRM_RADEON_CS, radeon_cs_ioctl, DRM_AUTH)
3220};
3221
3222int radeon_max_ioctl = DRM_ARRAY_SIZE(radeon_ioctls);
3235};
3236
3237int radeon_max_ioctl = DRM_ARRAY_SIZE(radeon_ioctls);