Hi! There is a notebook eMashines e442 142G25Mikk Model PEW86 with a video card Radeon HD 4250. Since a kernel 3.7.10 (tested until 3.16.1) it have a problem: screen is a white (not black) when PC is idle. A changes causing problem is:
--- linux-3.6.11/drivers/gpu/drm/radeon/radeon_encoders.c 2012-10-01 03:47:46.000000000 +0400 +++ linux-3.7.10/dribers/gpu/drm/radeon/radeon_encoders.c 2012-12-11 07:30:57.000000000 +0400 @@ -153,6 +161,7 @@ void radeon_link_encoder_connector(struct drm_device *dev) { + struct radeon_device *rdev = dev->dev_private; struct drm_connector *connector; struct radeon_connector *radeon_connector; struct drm_encoder *encoder; @@ -163,8 +172,16 @@ radeon_connector = to_radeon_connector(connector); list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { radeon_encoder = to_radeon_encoder(encoder); - if (radeon_encoder->devices & radeon_connector->devices) + if (radeon_encoder->devices & radeon_connector->devices) {
drm_mode_connector_attach_encoder(connector, encoder); + if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { + if (rdev->is_atom_bios) + radeon_atom_backlight_init(radeon_encoder, connector); + else + radeon_legacy_backlight_init(radeon_encoder, connector); + rdev->mode_info.bl_encoder = radeon_encoder; + } + } } } }
bios is atom. But radeon_atom_backlight_init() do something wrong (I think). Thanks for any suggestions.
Hi! drivers/gpu/drm/radeon/radeon_kns.c: static int radeon_info_ioctl(...) ... value_ptr = (uint32_t *)((unsigned long)info->value); // value_ptr = (uint32_t __user *)(info->value); // looks like more correct for x86_64 ... if (copy_to_user(value_ptr, (char*)value, value_size)) {...
Why value_ptr is assumed to be lower 4 Gb?
Hi! I have problems running android-x86 (32 bit, 4.0-r1) with kernel 3.10 64 bit. Android drivers (binder and ashmem) are modified for this mode (no problems). Problem is with radeon fb. Function radeon_iocl() is failed on line: DRM_ERROR("copy_to_user %s:%u\n", __func__, __LINE__) on request RADEON_INFO_TILING_CONFIG. Looks like pointer to userspace is wrong.
dri-devel@lists.freedesktop.org