From mboxrd@z Thu Jan 1 00:00:00 1970 From: Phillip Susi Subject: Re: [Bug 29842] Radeon runs very hot Date: Fri, 25 Feb 2011 12:11:26 -0500 Message-ID: <4D67E2BE.1060007@cfl.rr.com> References: <201102251454.p1PEs2sZ024354@demeter1.kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from cdptpa-omtalb.mail.rr.com (cdptpa-omtalb.mail.rr.com [75.180.132.123]) by gabe.freedesktop.org (Postfix) with ESMTP id 3499F9E7A7 for ; Fri, 25 Feb 2011 09:11:29 -0800 (PST) In-Reply-To: <201102251454.p1PEs2sZ024354@demeter1.kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org So I have been looking over the source code in drivers/gpu/drm/radeon. I see various functions to start/stop/resume/initialize "mc" and "cp". I assume those stand for microcode and control program? What exactly is the difference? It seems like the GPU is executing a few different microcode kernels that process commands placed into ring buffers. When the ring buffers are empty and the gui is idle, it seems like the GPU is still busily executing an infinite loop checking for work in the ring buffers. Shouldn't the driver detect the idle condition and issue an r600_cp_stop() to halt execution and stop wasting power?