/drivers/video/drm/radeon/atombios_crtc.c |
---|
478,10 → 478,6 |
if (!crtc->fb) |
return -EINVAL; |
dbgprintf("x = %d y = %d width = %d height = %d\n", |
x, y, crtc->fb->width, crtc->fb->height); |
dbgprintf("hdisplay = %d\n", crtc->mode.hdisplay); |
radeon_fb = to_radeon_framebuffer(crtc->fb); |
obj = radeon_fb->obj; |
493,8 → 489,6 |
fb_location = 0; //rdev->mc.vram_location; |
dbgprintf("fb_location %x\n", fb_location); |
dbgprintf("bpp %d\n", crtc->fb->bits_per_pixel); |
switch (crtc->fb->bits_per_pixel) { |
case 8: |
/drivers/video/drm/radeon/makefile |
---|
5,7 → 5,7 |
LDFLAGS = -nostdlib -shared -s -Map atikms.map --image-base 0 --file-alignment 512 --section-alignment 4096 |
DRM_TOPDIR = $(CURDIR)/.. |
DRM_INCLUDES = $(DRM_TOPDIR)/include |
DRM_INCLUDES = $(DRM_TOPDIR)/includes |
LIBPATH:= . |
23,7 → 23,7 |
$(DRM_INCLUDES)/drm_edid.h \ |
$(DRM_INCLUDES)/drm/drm_crtc.h \ |
$(DRM_INCLUDES)/drm/drm_mode.h \ |
$(DRM_INCLUDES)/drm_mm.h \ |
$(DRM_INCLUDES)/drm/drm_mm.h \ |
atom.h \ |
radeon.h \ |
radeon_asic.h |
68,7 → 68,8 |
rs400.c \ |
rs600.c \ |
rs690.c \ |
radeon_fb.c |
radeon_fb.c \ |
rdisplay.c |
SRC_DEP:= |
/drivers/video/drm/radeon/radeon_device.c |
---|
658,7 → 658,6 |
return 0; |
#endif |
rdev->accel_working = true; |
r = radeon_modeset_init(rdev); |
} |
DRM_INFO("radeon: kernel modesetting successfully initialized.\n"); |
// if (radeon_testing) { |
789,7 → 788,7 |
struct radeon_device *rdev; |
int r; |
dbgprintf("%s\n",__FUNCTION__); |
ENTER(); |
rdev = kzalloc(sizeof(struct radeon_device), GFP_KERNEL); |
if (rdev == NULL) { |
807,12 → 806,25 |
// flags |= RADEON_IS_PCI; |
// } |
/* radeon_device_init should report only fatal error |
* like memory allocation failure or iomapping failure, |
* or memory manager initialization failure, it must |
* properly initialize the GPU MC controller and permit |
* VRAM allocation |
*/ |
r = radeon_device_init(rdev, dev, dev->pdev, flags); |
if (r) { |
dbgprintf("Failed to initialize Radeon, disabling IOCTL\n"); |
// radeon_device_fini(rdev); |
DRM_ERROR("Fatal error while trying to initialize radeon.\n"); |
return r; |
} |
/* Again modeset_init should fail only on fatal error |
* otherwise it should provide enough functionalities |
* for shadowfb to run |
*/ |
r = radeon_modeset_init(rdev); |
if (r) { |
return r; |
} |
return 0; |
} |
868,7 → 880,7 |
// driver->name, driver->major, driver->minor, driver->patchlevel, |
// driver->date, pci_name(pdev), dev->primary->index); |
set_mode(dev, 1024, 768); |
set_mode(dev, 1280, 1024); |
return 0; |
/drivers/video/drm/radeon/radeon_display.c |
---|
759,6 → 759,8 |
struct radeon_encoder *radeon_encoder; |
bool first = true; |
ENTER(); |
list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { |
radeon_encoder = to_radeon_encoder(encoder); |
if (encoder->crtc != crtc) |
783,6 → 785,11 |
} |
} |
if (radeon_crtc->rmx_type != RMX_OFF) { |
dbgprintf("\nset scaler panel_xres %d panel_yres %d\n", |
radeon_crtc->native_mode.panel_xres, |
radeon_crtc->native_mode.panel_yres); |
fixed20_12 a, b; |
a.full = rfixed_const(crtc->mode.vdisplay); |
b.full = rfixed_const(radeon_crtc->native_mode.panel_xres); |
794,5 → 801,8 |
radeon_crtc->vsc.full = rfixed_const(1); |
radeon_crtc->hsc.full = rfixed_const(1); |
} |
LEAVE(); |
return true; |
} |
/drivers/video/drm/radeon/radeon_encoders.c |
---|
213,6 → 213,7 |
} |
} |
static bool radeon_atom_mode_fixup(struct drm_encoder *encoder, |
struct drm_display_mode *mode, |
struct drm_display_mode *adjusted_mode) |
/drivers/video/drm/radeon/radeon_fb.c |
---|
444,7 → 444,7 |
{ |
struct drm_connector *connector; |
bool ret; |
bool ret = false; |
list_for_each_entry(connector, &dev->mode_config.connector_list, head) |
{ |
465,8 → 465,31 |
if(crtc == NULL) |
continue; |
list_for_each_entry(mode, &connector->modes, head) |
{ |
if (mode->type & DRM_MODE_TYPE_PREFERRED); |
break; |
}; |
/* |
struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); |
struct radeon_native_mode *native_mode = &radeon_encoder->native_mode; |
native_mode->panel_xres = mode->hdisplay; |
native_mode->panel_yres = mode->vdisplay; |
native_mode->hblank = mode->htotal - mode->hdisplay; |
native_mode->hoverplus = mode->hsync_start - mode->hdisplay; |
native_mode->hsync_width = mode->hsync_end - mode->hsync_start; |
native_mode->vblank = mode->vtotal - mode->vdisplay; |
native_mode->voverplus = mode->vsync_start - mode->vdisplay; |
native_mode->vsync_width = mode->vsync_end - mode->vsync_start; |
native_mode->dotclock = mode->clock; |
native_mode->flags = mode->flags; |
*/ |
list_for_each_entry(mode, &connector->modes, head) |
{ |
char *con_name, *enc_name; |
struct drm_framebuffer *fb; |
502,24 → 525,22 |
ret = drm_crtc_helper_set_mode(crtc, mode, 0, 0, fb); |
sysSetScreen(width, height, fb->pitch); |
sysSetScreen(fb->width, fb->height, fb->pitch); |
if (ret == true) |
{ |
dbgprintf("new mode %d %d pitch %d\n", width, height, fb->pitch); |
dbgprintf("new mode %d %d pitch %d\n",fb->width, fb->height, fb->pitch); |
} |
else |
{ |
DRM_ERROR("failed to set mode %d_%d on crtc %p\n", |
width, height, crtc); |
fb->width, fb->height, crtc); |
}; |
return ret; |
}; |
} |
}; |
return false; |
return ret; |
}; |
/drivers/video/drm/radeon/radeon_fence.c |
---|
207,7 → 207,6 |
bool expired = false; |
int r; |
if (fence == NULL) { |
WARN(1, "Querying an invalid fence : %p !\n", fence); |
return 0; |
230,6 → 229,7 |
if (time_after(fence->timeout, cur_jiffies)) { |
timeout = fence->timeout - cur_jiffies; |
} |
if (intr) { |
r = wait_event_interruptible_timeout(rdev->fence_drv.queue, |
radeon_fence_signaled(fence), timeout); |
/drivers/video/drm/radeon/radeon_object.c |
---|
50,7 → 50,7 |
{ |
int r = 0; |
dbgprintf("%s\n",__FUNCTION__); |
ENTER(); |
r = drm_mm_init(&mm_vram, 0x800000 >> PAGE_SHIFT, |
((rdev->mc.aper_size - 0x800000) >> PAGE_SHIFT)); |
101,8 → 101,6 |
uint32_t flags; |
int r; |
dbgprintf("%s\n",__FUNCTION__); |
if (kernel) { |
type = ttm_bo_type_kernel; |
} else { |
121,8 → 119,6 |
robj->flags = flags; |
dbgprintf("robj flags %x\n", robj->flags); |
if( flags & TTM_PL_FLAG_VRAM) |
{ |
size_t num_pages; |
132,7 → 128,7 |
num_pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; |
if (num_pages == 0) { |
printk("Illegal buffer object size.\n"); |
dbgprintf("Illegal buffer object size.\n"); |
return -EINVAL; |
} |
retry_pre_get: |
170,7 → 166,7 |
num_pages = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; |
if (num_pages == 0) { |
printk("Illegal buffer object size.\n"); |
dbgprintf("Illegal buffer object size.\n"); |
return -EINVAL; |
} |
retry_pre_get1: |
223,8 → 219,6 |
uint32_t tmp; |
int r = 0; |
dbgprintf("%s\n",__FUNCTION__); |
// flags = radeon_object_flags_from_domain(domain); |
// spin_lock(&robj->tobj.lock); |
if (robj->pin_count) { |
280,8 → 274,6 |
DRM_ERROR("radeon: failed to pin object.\n"); |
} |
dbgprintf("done %s\n",__FUNCTION__); |
return r; |
} |
289,8 → 281,6 |
{ |
int r = 0; |
dbgprintf("%s\n",__FUNCTION__); |
// spin_lock(&robj->tobj.lock); |
if (robj->kptr) { |
if (ptr) { |
319,12 → 309,25 |
*ptr = robj->kptr; |
} |
dbgprintf("done %s\n",__FUNCTION__); |
return 0; |
} |
void radeon_object_kunmap(struct radeon_object *robj) |
{ |
// spin_lock(&robj->tobj.lock); |
if (robj->kptr == NULL) { |
// spin_unlock(&robj->tobj.lock); |
return; |
} |
if (robj->flags & TTM_PL_FLAG_VRAM) |
{ |
FreeKernelSpace(robj->kptr); |
robj->kptr = NULL; |
} |
// spin_unlock(&robj->tobj.lock); |
} |
#if 0 |
void radeon_object_unpin(struct radeon_object *robj) |