https://bugzilla.kernel.org/show_bug.cgi?id=117131 --- Comment #4 from Jason Vas Dias <jason.vas.dias@xxxxxxxxx> --- Aha, so this ACPI call failure looks very fatal to any vga_switcheroo : /** * radeon_atpx_switch_start - notify the sbios of a GPU switch * * @atpx: atpx info struct * @mux_id: mux state (0 = integrated GPU, 1 = discrete GPU) * * Execute the ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_START_NOTIFICATION ATPX * function to notify the sbios that a switch between the discrete GPU and * integrated GPU has begun (all asics). * Returns 0 on success, error on failure. */ static int radeon_atpx_switch_start(struct radeon_atpx *atpx, u16 mux_id) { struct acpi_buffer params; union acpi_object *info; struct atpx_mux input; if (atpx->functions.switch_start) { input.size = 4; input.mux = mux_id; params.length = input.size; params.pointer = &input; info = radeon_atpx_call(atpx->handle, ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_START_NOTIFICATION, ¶ms); if (!info) return -EIO; kfree(info); } return 0; } /** * radeon_atpx_switch_end - notify the sbios of a GPU switch * * @atpx: atpx info struct * @mux_id: mux state (0 = integrated GPU, 1 = discrete GPU) * * Execute the ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_END_NOTIFICATION ATPX * function to notify the sbios that a switch between the discrete GPU and * integrated GPU has ended (all asics). * Returns 0 on success, error on failure. */ static int radeon_atpx_switch_end(struct radeon_atpx *atpx, u16 mux_id) { struct acpi_buffer params; union acpi_object *info; struct atpx_mux input; if (atpx->functions.switch_end) { input.size = 4; input.mux = mux_id; params.length = input.size; params.pointer = &input; info = radeon_atpx_call(atpx->handle, ATPX_FUNCTION_GRAPHICS_DEVICE_SWITCH_END_NOTIFICATION, ¶ms); if (!info) return -EIO; kfree(info); } return 0; } So if any of these ACPI calls fail, the entire switch fails . There is obviously some way that the closed source FGLRX driver is able to make these calls successfully ; the card goes into graphics mode OK with fglrx under Linux 3.10 (EL7) . But it appears that the new open source radeon driver 8970M support is not working correctly in Linux 4.5.0 . I guess this bug should more properly be raised directly against the drivers/gpu/drm/radeon driver then . Maybe I should try running the EL7 partition OS in a VM and tracing how FGLRX is calling these ACPI calls & modifying radeon_atpx_handler to make them the same way ? a rather cumbersome way to get to the bottom of it ... I will also try various combinations of the above kernel parameters and radeon.dpm=1 or radeon.dpm=0 . -- You are receiving this mail because: You are watching the assignee of the bug. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel