diff options
Diffstat (limited to 'shared-core')
| -rw-r--r-- | shared-core/drm.h | 13 | ||||
| -rw-r--r-- | shared-core/i915_dma.c | 4 | ||||
| -rw-r--r-- | shared-core/i915_drv.h | 1 | ||||
| -rw-r--r-- | shared-core/i915_init.c | 4 | 
4 files changed, 17 insertions, 5 deletions
| diff --git a/shared-core/drm.h b/shared-core/drm.h index 49bc41bc..f1afc049 100644 --- a/shared-core/drm.h +++ b/shared-core/drm.h @@ -891,7 +891,7 @@ typedef union drm_mm_init_arg{  /*   * Drm mode setting   */ - +#define DRM_OUTPUT_NAME_LEN 32  #define DRM_DISPLAY_MODE_LEN 32  struct drm_mode_modeinfo { @@ -946,6 +946,7 @@ struct drm_mode_get_output {  	unsigned int output; /**< Id */  	unsigned int crtc; /**< Id of crtc */ +	unsigned char name[DRM_OUTPUT_NAME_LEN];  	unsigned int connection;  	unsigned int mm_width, mm_height; /**< HxW in millimeters */ @@ -962,6 +963,14 @@ struct drm_mode_get_output {  }; +struct drm_mode_fb_cmd { +        unsigned int buffer_id; +        unsigned int width, height; +        unsigned int pitch; +        unsigned int bpp; +        unsigned int handle; +}; +  /**   * \name Ioctls Definitions   */ @@ -1037,6 +1046,8 @@ struct drm_mode_get_output {  #define DRM_IOCTL_MODE_GETCRTC          DRM_IOWR(0xA1, struct drm_mode_crtc)  #define DRM_IOCTL_MODE_GETOUTPUT        DRM_IOWR(0xA2, struct drm_mode_get_output)  #define DRM_IOCTL_MODE_SETCRTC          DRM_IOWR(0xA3, struct drm_mode_crtc) +#define DRM_IOCTL_MODE_ADDFB            DRM_IOWR(0xA4, struct drm_mode_fb_cmd) +#define DRM_IOCTL_MODE_RMFB             DRM_IOWR(0xA5, unsigned int)  /*@}*/  /** diff --git a/shared-core/i915_dma.c b/shared-core/i915_dma.c index 0ba3048a..1c8a0d45 100644 --- a/shared-core/i915_dma.c +++ b/shared-core/i915_dma.c @@ -171,9 +171,7 @@ static int i915_initialize(drm_device_t * dev,  	I915_WRITE(0x02080, dev_priv->dma_status_page);  	DRM_DEBUG("Enabled hardware status page\n"); -	/* this probably doesn't belong here - TODO */ -	drm_framebuffer_set_object(dev, dev_priv->sarea_priv->front_handle); -	drm_set_desired_modes(dev); +//drm_set_desired_modes(dev);  	return 0;  } diff --git a/shared-core/i915_drv.h b/shared-core/i915_drv.h index 6e81f6f8..b1bf0469 100644 --- a/shared-core/i915_drv.h +++ b/shared-core/i915_drv.h @@ -92,6 +92,7 @@ typedef struct drm_i915_private {  	drm_local_map_t *sarea;  	drm_local_map_t *mmio_map; +	unsigned long baseaddr;  	unsigned long mmiobase;  	unsigned long mmiolen; diff --git a/shared-core/i915_init.c b/shared-core/i915_init.c index e03ed429..e454c9fc 100644 --- a/shared-core/i915_init.c +++ b/shared-core/i915_init.c @@ -28,9 +28,11 @@ int i915_driver_load(drm_device_t *dev, unsigned long flags)  	if (IS_I9XX(dev)) {  		dev_priv->mmiobase = drm_get_resource_start(dev, 0);  		dev_priv->mmiolen = drm_get_resource_len(dev, 0); +		dev_priv->baseaddr = drm_get_resource_start(dev, 2) & 0xff000000;  	} else if (drm_get_resource_start(dev, 1)) {  		dev_priv->mmiobase = drm_get_resource_start(dev, 1);  		dev_priv->mmiolen = drm_get_resource_len(dev, 1); +		dev_priv->baseaddr = drm_get_resource_start(dev, 0) & 0xff000000;  	} else {  		DRM_ERROR("Unable to find MMIO registers\n");  		return -ENODEV; @@ -66,7 +68,7 @@ int i915_driver_load(drm_device_t *dev, unsigned long flags)  	drm_bo_driver_init(dev);  	/* this probably doesn't belong here - TODO */ -	drm_framebuffer_set_object(dev, dev_priv->sarea_priv->front_handle); +	//drm_framebuffer_set_object(dev, dev_priv->sarea_priv->front_handle);  	intel_modeset_init(dev);  	drm_set_desired_modes(dev); | 
