RC11 fixup

git-svn-id: svn://kolibrios.org@1987 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge) 2011-06-29 06:49:58 +00:00
parent d2651e92d5
commit 8bbdd68ef8
3 changed files with 40 additions and 83 deletions

View File

@ -130,58 +130,7 @@ extern void drm_ut_debug_printk(unsigned int request_level,
#define dev_info(dev, format, arg...) \ #define dev_info(dev, format, arg...) \
printk("Info %s " format , __func__, ## arg) printk("Info %s " format , __func__, ## arg)
/**
* This structure defines the drm_mm memory object, which will be used by the
* DRM for its buffer objects.
*/
struct drm_gem_object {
/** Reference count of this object */
struct kref refcount;
/** Handle count of this object. Each handle also holds a reference */
struct kref handlecount;
/** Related drm device */
struct drm_device *dev;
/** File representing the shmem storage */
// struct file *filp;
/* Mapping info for this object */
// struct drm_map_list map_list;
/**
* Size of the object, in bytes. Immutable over the object's
* lifetime.
*/
size_t size;
/**
* Global name for this object, starts at 1. 0 means unnamed.
* Access is covered by the object_name_lock in the related drm_device
*/
int name;
/**
* Memory domains. These monitor which caches contain read/write data
* related to the object. When transitioning from one set of domains
* to another, the driver is called to ensure that caches are suitably
* flushed and invalidated
*/
uint32_t read_domains;
uint32_t write_domain;
/**
* While validating an exec operation, the
* new read/write domain values are computed here.
* They will be transferred to the above values
* at the point that any cache flushing occurs
*/
uint32_t pending_read_domains;
uint32_t pending_write_domain;
void *driver_private;
};
static inline int drm_sysfs_connector_add(struct drm_connector *connector) static inline int drm_sysfs_connector_add(struct drm_connector *connector)
{ return 0; }; { return 0; };
@ -668,6 +617,8 @@ struct drm_gem_mm {
struct drm_open_hash offset_hash; /**< User token hash table for maps */ struct drm_open_hash offset_hash; /**< User token hash table for maps */
}; };
#endif
/** /**
* This structure defines the drm_mm memory object, which will be used by the * This structure defines the drm_mm memory object, which will be used by the
* DRM for its buffer objects. * DRM for its buffer objects.
@ -686,7 +637,7 @@ struct drm_gem_object {
struct file *filp; struct file *filp;
/* Mapping info for this object */ /* Mapping info for this object */
struct drm_map_list map_list; // struct drm_map_list map_list;
/** /**
* Size of the object, in bytes. Immutable over the object's * Size of the object, in bytes. Immutable over the object's
@ -721,6 +672,8 @@ struct drm_gem_object {
void *driver_private; void *driver_private;
}; };
#if 0
#include "drm_crtc.h" #include "drm_crtc.h"
/* per-master structure */ /* per-master structure */
@ -1633,12 +1586,13 @@ drm_gem_object_unreference(struct drm_gem_object *obj)
int drm_gem_handle_create(struct drm_file *file_priv, int drm_gem_handle_create(struct drm_file *file_priv,
struct drm_gem_object *obj, struct drm_gem_object *obj,
u32 *handlep); u32 *handlep);
int drm_gem_handle_delete(struct drm_file *filp, u32 handle);
static inline void static inline void
drm_gem_object_handle_reference(struct drm_gem_object *obj) drm_gem_object_handle_reference(struct drm_gem_object *obj)
{ {
drm_gem_object_reference(obj); drm_gem_object_reference(obj);
kref_get(&obj->handlecount); atomic_inc(&obj->handle_count);
} }
static inline void static inline void
@ -1647,6 +1601,8 @@ drm_gem_object_handle_unreference(struct drm_gem_object *obj)
if (obj == NULL) if (obj == NULL)
return; return;
if (atomic_read(&obj->handle_count) == 0)
return;
/* /*
* Must bump handle count first as this may be the last * Must bump handle count first as this may be the last
* ref, in which case the object would disappear before we * ref, in which case the object would disappear before we
@ -1682,7 +1638,6 @@ static __inline__ struct drm_local_map *drm_core_findmap(struct drm_device *dev,
return NULL; return NULL;
} }
static __inline__ void drm_core_dropmap(struct drm_local_map *map) static __inline__ void drm_core_dropmap(struct drm_local_map *map)
{ {
} }

View File

@ -520,6 +520,8 @@ struct drm_connector {
uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER]; uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER];
uint32_t force_encoder_id; uint32_t force_encoder_id;
struct drm_encoder *encoder; /* currently active encoder */ struct drm_encoder *encoder; /* currently active encoder */
int null_edid_counter; /* needed to workaround some HW bugs where we get all 0s */
}; };
/** /**
@ -655,7 +657,7 @@ extern char *drm_get_dvi_i_subconnector_name(int val);
extern char *drm_get_dvi_i_select_name(int val); extern char *drm_get_dvi_i_select_name(int val);
extern char *drm_get_tv_subconnector_name(int val); extern char *drm_get_tv_subconnector_name(int val);
extern char *drm_get_tv_select_name(int val); extern char *drm_get_tv_select_name(int val);
//extern void drm_fb_release(struct drm_file *file_priv); extern void drm_fb_release(struct drm_file *file_priv);
extern int drm_mode_group_init_legacy_group(struct drm_device *dev, struct drm_mode_group *group); extern int drm_mode_group_init_legacy_group(struct drm_device *dev, struct drm_mode_group *group);
extern struct edid *drm_get_edid(struct drm_connector *connector, extern struct edid *drm_get_edid(struct drm_connector *connector,
struct i2c_adapter *adapter); struct i2c_adapter *adapter);

View File

@ -248,93 +248,93 @@ FIRMWARE_JUNIPER_RLC db 'radeon/JUNIPER_rlc.bin',0
align 16 align 16
R100CP_START: R100CP_START:
file 'firmware/r100_cp.bin' file 'firmware/R100_cp.bin'
R100CP_END: R100CP_END:
align 16 align 16
R200CP_START: R200CP_START:
file 'firmware/r200_cp.bin' file 'firmware/R200_cp.bin'
R200CP_END: R200CP_END:
align 16 align 16
R300CP_START: R300CP_START:
file 'firmware/r300_cp.bin' file 'firmware/R300_cp.bin'
R300CP_END: R300CP_END:
align 16 align 16
R420CP_START: R420CP_START:
file 'firmware/r420_cp.bin' file 'firmware/R420_cp.bin'
R420CP_END: R420CP_END:
align 16 align 16
R520CP_START: R520CP_START:
file 'firmware/r520_cp.bin' file 'firmware/R520_cp.bin'
R520CP_END: R520CP_END:
align 16 align 16
RS600CP_START: RS600CP_START:
file 'firmware/rs600_cp.bin' file 'firmware/RS600_cp.bin'
RS600CP_END: RS600CP_END:
align 16 align 16
RS690CP_START: RS690CP_START:
file 'firmware/rs690_cp.bin' file 'firmware/RS690_cp.bin'
RS690CP_END: RS690CP_END:
align 16 align 16
RS780ME_START: RS780ME_START:
file 'firmware/rs780_me.bin' file 'firmware/RS780_me.bin'
RS780ME_END: RS780ME_END:
align 16 align 16
RS780PFP_START: RS780PFP_START:
file 'firmware/rs780_pfp.bin' file 'firmware/RS780_pfp.bin'
RS780PFP_END: RS780PFP_END:
align 16 align 16
R600ME_START: R600ME_START:
file 'firmware/r600_me.bin' file 'firmware/R600_me.bin'
R600ME_END: R600ME_END:
align 16 align 16
RV610ME_START: RV610ME_START:
file 'firmware/rv610_me.bin' file 'firmware/RV610_me.bin'
RV610ME_END: RV610ME_END:
align 16 align 16
RV620ME_START: RV620ME_START:
file 'firmware/rv620_me.bin' file 'firmware/RV620_me.bin'
RV620ME_END: RV620ME_END:
align 16 align 16
RV630ME_START: RV630ME_START:
file 'firmware/rv630_me.bin' file 'firmware/RV630_me.bin'
RV630ME_END: RV630ME_END:
align 16 align 16
RV635ME_START: RV635ME_START:
file 'firmware/rv635_me.bin' file 'firmware/RV635_me.bin'
RV635ME_END: RV635ME_END:
align 16 align 16
RV670ME_START: RV670ME_START:
file 'firmware/rv670_me.bin' file 'firmware/RV670_me.bin'
RV670ME_END: RV670ME_END:
align 16 align 16
RV710ME_START: RV710ME_START:
file 'firmware/rv710_me.bin' file 'firmware/RV710_me.bin'
RV710ME_END: RV710ME_END:
align 16 align 16
RV730ME_START: RV730ME_START:
file 'firmware/rv730_me.bin' file 'firmware/RV730_me.bin'
RV730ME_END: RV730ME_END:
align 16 align 16
RV770ME_START: RV770ME_START:
file 'firmware/rv770_me.bin' file 'firmware/RV770_me.bin'
RV770ME_END: RV770ME_END:
align 16 align 16
@ -365,45 +365,45 @@ PALMME_END:
align 16 align 16
RV610PFP_START: RV610PFP_START:
file 'firmware/rv610_pfp.bin' file 'firmware/RV610_pfp.bin'
RV610PFP_END: RV610PFP_END:
align 16 align 16
RV620PFP_START: RV620PFP_START:
file 'firmware/rv620_pfp.bin' file 'firmware/RV620_pfp.bin'
RV620PFP_END: RV620PFP_END:
align 16 align 16
RV630PFP_START: RV630PFP_START:
file 'firmware/rv630_pfp.bin' file 'firmware/RV630_pfp.bin'
RV630PFP_END: RV630PFP_END:
align 16 align 16
RV635PFP_START: RV635PFP_START:
file 'firmware/rv635_pfp.bin' file 'firmware/RV635_pfp.bin'
RV635PFP_END: RV635PFP_END:
align 16 align 16
RV670PFP_START: RV670PFP_START:
file 'firmware/rv670_pfp.bin' file 'firmware/RV670_pfp.bin'
RV670PFP_END: RV670PFP_END:
align 16 align 16
RV710PFP_START: RV710PFP_START:
file 'firmware/rv710_pfp.bin' file 'firmware/RV710_pfp.bin'
RV710PFP_END: RV710PFP_END:
align 16 align 16
RV730PFP_START: RV730PFP_START:
file 'firmware/rv730_pfp.bin' file 'firmware/RV730_pfp.bin'
RV730PFP_END: RV730PFP_END:
align 16 align 16
RV770PFP_START: RV770PFP_START:
file 'firmware/rv770_pfp.bin' file 'firmware/RV770_pfp.bin'
RV770PFP_END: RV770PFP_END:
@ -435,12 +435,12 @@ PALMPFP_END:
align 16 align 16
R600RLC_START: R600RLC_START:
file 'firmware/r600_rlc.bin' file 'firmware/R600_rlc.bin'
R600RLC_END: R600RLC_END:
align 16 align 16
R700RLC_START: R700RLC_START:
file 'firmware/r700_rlc.bin' file 'firmware/R700_rlc.bin'
R700RLC_END: R700RLC_END:
align 16 align 16