Deleted Added
full compact
radeon_cp.c (194969) radeon_cp.c (196470)
1/*-
2 * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
3 * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
4 * Copyright 2007 Advanced Micro Devices, Inc.
5 * All Rights Reserved.
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a
8 * copy of this software and associated documentation files (the "Software"),

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

24 * DEALINGS IN THE SOFTWARE.
25 *
26 * Authors:
27 * Kevin E. Martin <martin@valinux.com>
28 * Gareth Hughes <gareth@valinux.com>
29 */
30
31#include <sys/cdefs.h>
1/*-
2 * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
3 * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
4 * Copyright 2007 Advanced Micro Devices, Inc.
5 * All Rights Reserved.
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a
8 * copy of this software and associated documentation files (the "Software"),

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

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

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

2055
2056 if (drm_device_is_agp(dev))
2057 dev_priv->flags |= RADEON_IS_AGP;
2058 else if (drm_device_is_pcie(dev))
2059 dev_priv->flags |= RADEON_IS_PCIE;
2060 else
2061 dev_priv->flags |= RADEON_IS_PCI;
2062
33
34#include "dev/drm/drmP.h"
35#include "dev/drm/drm.h"
36#include "dev/drm/drm_sarea.h"
37#include "dev/drm/radeon_drm.h"
38#include "dev/drm/radeon_drv.h"
39#include "dev/drm/r300_reg.h"
40

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

2055
2056 if (drm_device_is_agp(dev))
2057 dev_priv->flags |= RADEON_IS_AGP;
2058 else if (drm_device_is_pcie(dev))
2059 dev_priv->flags |= RADEON_IS_PCIE;
2060 else
2061 dev_priv->flags |= RADEON_IS_PCI;
2062
2063 mtx_init(&dev_priv->cs.cs_mutex, "cs_mtx", NULL, MTX_DEF);
2064
2063 ret = drm_addmap(dev, drm_get_resource_start(dev, 2),
2064 drm_get_resource_len(dev, 2), _DRM_REGISTERS,
2065 _DRM_READ_ONLY | _DRM_DRIVER, &dev_priv->mmio);
2066 if (ret != 0)
2067 goto error;
2068
2069 ret = drm_vblank_init(dev, 2);
2070 if (ret != 0)

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

2107int radeon_driver_unload(struct drm_device *dev)
2108{
2109 drm_radeon_private_t *dev_priv = dev->dev_private;
2110
2111 DRM_DEBUG("\n");
2112
2113 drm_rmmap(dev, dev_priv->mmio);
2114
2065 ret = drm_addmap(dev, drm_get_resource_start(dev, 2),
2066 drm_get_resource_len(dev, 2), _DRM_REGISTERS,
2067 _DRM_READ_ONLY | _DRM_DRIVER, &dev_priv->mmio);
2068 if (ret != 0)
2069 goto error;
2070
2071 ret = drm_vblank_init(dev, 2);
2072 if (ret != 0)

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

2109int radeon_driver_unload(struct drm_device *dev)
2110{
2111 drm_radeon_private_t *dev_priv = dev->dev_private;
2112
2113 DRM_DEBUG("\n");
2114
2115 drm_rmmap(dev, dev_priv->mmio);
2116
2117 mtx_destroy(&dev_priv->cs.cs_mutex);
2118
2115 drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER);
2116
2117 dev->dev_private = NULL;
2118 return 0;
2119}
2120
2121void radeon_commit_ring(drm_radeon_private_t *dev_priv)
2122{
2123 int i;
2124 u32 *ring;
2125 int tail_aligned;
2126
2127 /* check if the ring is padded out to 16-dword alignment */
2128
2119 drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER);
2120
2121 dev->dev_private = NULL;
2122 return 0;
2123}
2124
2125void radeon_commit_ring(drm_radeon_private_t *dev_priv)
2126{
2127 int i;
2128 u32 *ring;
2129 int tail_aligned;
2130
2131 /* check if the ring is padded out to 16-dword alignment */
2132
2129 tail_aligned = dev_priv->ring.tail & 0xf;
2133 tail_aligned = dev_priv->ring.tail & (RADEON_RING_ALIGN - 1);
2130 if (tail_aligned) {
2134 if (tail_aligned) {
2131 int num_p2 = 16 - tail_aligned;
2135 int num_p2 = RADEON_RING_ALIGN - tail_aligned;
2132
2133 ring = dev_priv->ring.start;
2134 /* pad with some CP_PACKET2 */
2135 for (i = 0; i < num_p2; i++)
2136 ring[dev_priv->ring.tail + i] = CP_PACKET2();
2137
2138 dev_priv->ring.tail += i;
2139

--- 18 unchanged lines hidden ---
2136
2137 ring = dev_priv->ring.start;
2138 /* pad with some CP_PACKET2 */
2139 for (i = 0; i < num_p2; i++)
2140 ring[dev_priv->ring.tail + i] = CP_PACKET2();
2141
2142 dev_priv->ring.tail += i;
2143

--- 18 unchanged lines hidden ---