It's about radeon's KMS and PM of course, sorry for not specifing.
W dniu 9 września 2009 10:50 użytkownik Rafał Miłecki <zaj...@gmail.com> napisał: > I'm thinking of organizing power management in KMS. There are my > ideas, would like to get your opinions. > > First of all we need a few different power modes. I think radeonhd has > nice states for that: > 1) OFF /* DPMS off */ > 2) IDLE /* DPMS on, no activity for some time */ > 3) SLOW_2D /* Simple 2D activity */ > 4) FAST_2D /* Advanced 2D activity, e.g. video playback */ > 5) SLOW_3D /* Simple 3D activity, e.g. compiz (Q: how to select? > indirect rendering only? */ > 6) FAST_3D /*Fast 3D activity, e.g. games. Usually using default > AtomBIOS setting. */ > 7) MAX /* Use theoretical chip maximum, maybe beyond default - not > selected automatically */ > > Filling states with engine/memory/voltage values can be grabbed from radeonhd. > > About setting states I see 3 ways: > > 1) Every part (2D, 3D, DPMS) call generic function radeon_pikcup_pm(). > That function asks 2D engine, 3D engine and DPMS for current state and > pickups the best solution. > Implementation: > We have to introduce radeon_state_of_2d(), radeon_state_of_3d(), > radeon_state_of_dpms(). > > 2) From every part (2D, 3D, DPMS) we call setting function with proper > argument. Examples: > 3D engine calls radeon_set_pm(FAST_3D); > 2D engine calls radeon_set_pm(SLOW_2D); > DPMS calls radeon_set_pm(IDLE); > DPMS calls radeon_set_pm(WAKE_UP); > Implementation: > We have to store each element's state in our power manager. If we get > "SLOW_2D", but FAST_3D is still running, we can not downclock. > > 3) We have some state properties in radeon_device and every patch > calls generic function radeon_pikcup_pm(). > Implementation: > We have to create some rdev->state_of_2d, rdev->state_of_3d, > rdev->state_of_dpms, and use that in radeon_pikcup_pm(). > > Personally I'm for third method. > > Do you have some comments? Preferred method? Suggestions? Dave linked me to http://cvs.fedora.redhat.com/viewvc/rpms/kernel/devel/drm-radeon-pm.patch?revision=1.2.6.2&view=markup This patch uses timer to check if nothing has been rendered for some time. That would be quite close to first solution. -- Rafał Miłecki ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel