From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 73338] Fan speed in idle at 40% with radeonsi and at 18% with catalyst Date: Sun, 31 Aug 2014 15:26:37 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1290743740==" Return-path: Received: from culpepper.freedesktop.org (unknown [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id 93872895F5 for ; Sun, 31 Aug 2014 08:26:37 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============1290743740== Content-Type: multipart/alternative; boundary="1409498797.17805274.31784"; charset="us-ascii" --1409498797.17805274.31784 Date: Sun, 31 Aug 2014 15:26:37 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" https://bugs.freedesktop.org/show_bug.cgi?id=73338 --- Comment #19 from Chernovsky Oleg --- So I'm starting to implement fan speed control, at least partially. Since I haven't found any related docs, this work is basically reverse-engineering. Here's my mmiotrace for BONAIRE R7 260X on 3.17-rc2 so far MARK 560.042950 R 4 580.364585 2 0xf0808010 0x3028 0x0 0 // read GRBM STATUS R 4 580.364590 2 0xf080d034 0x76ceed57 0x0 0 // read SDMA0_STATUS_REG R 4 580.364593 2 0xf080d834 0x46cee557 0x0 0 // read R_00D834_DMA_STATUS_REG R 4 580.364629 2 0xf0808010 0x3028 0x0 0 // read GRBM STATUS R 4 580.364632 2 0xf080d034 0x76ceed57 0x0 0 // read SDMA0_STATUS_REG R 4 580.364634 2 0xf080d834 0x46cee557 0x0 0 // read R_00D834_DMA_STATUS_REG W 4 580.364639 2 0xf0800200 0x80000004 0x0 0 // write to SMC_IND_INDEX_0 a 0x80000004 R 4 580.364641 2 0xf0800204 0x1000000 0x0 0 // read from SMC_IND_DATA_0 W 4 580.364643 2 0xf0800200 0x80000370 0x0 0 // write to SMC_IND_INDEX_0 R 4 580.364645 2 0xf0800204 0x23730 0x0 0 // read from SMC_IND_DATA_0 W 4 580.364646 2 0xf0800250 0x5c 0x0 0 // write to SMC_MESSAGE_0 (!) R 4 580.364649 2 0xf0800254 0x0 0x0 0 // wait for SMC_RESP R 4 580.364652 2 0xf0800254 0x0 0x0 0 // ... R 4 580.364655 2 0xf0800254 0x0 0x0 0 // ... R 4 580.364659 2 0xf0800254 0x1 0x0 0 // got it! R 4 580.364661 2 0xf0800254 0x1 0x0 0 W 4 580.364662 2 0xf0800200 0xc0300068 0x0 0 // write to SMC_IND_INDEX_0 R 4 580.364665 2 0xf0800204 0x40252f87 0x0 0 // read from SMC_IND_DATA_0 W 4 580.364666 2 0xf0800200 0xc0300064 0x0 0 // write to SMC_IND_INDEX_0 R 4 580.364668 2 0xf0800204 0x181431b 0x0 0 // read from SMC_IND_DATA_0 W 4 580.364670 2 0xf0800200 0xc0300064 0x0 0 // write to SMC_IND_INDEX_0 W 4 580.364671 2 0xf0800204 0x1814351 0x0 0 // read from SMC_IND_DATA_0 - this is the speed! W 4 580.364672 2 0xf0800200 0xc030006c 0x0 0 // write to SMC_IND_INDEX_0 R 4 580.364674 2 0xf0800204 0x50cb0c00 0x0 0 // read from SMC_IND_DATA_0 W 4 580.364676 2 0xf0800200 0xc030006c 0x0 0 // write to SMC_IND_INDEX_0 W 4 580.364677 2 0xf0800204 0x50cb0c00 0x0 0 // read from SMC_IND_DATA_0 W 4 580.364678 2 0xf0800200 0xc030006c 0x0 0 // write to SMC_IND_INDEX_0 R 4 580.364681 2 0xf0800204 0x50cb0c00 0x0 0 // read from SMC_IND_DATA_0 W 4 580.364682 2 0xf0800200 0xc030006c 0x0 0 // write to SMC_IND_INDEX_0 W 4 580.364683 2 0xf0800204 0x50cb0c00 0x0 0 // read from SMC_IND_DATA_0 I've almost clearly understand the register keys here but I don't understand some values that are written and read in the process. -- You are receiving this mail because: You are the assignee for the bug. --1409498797.17805274.31784 Date: Sun, 31 Aug 2014 15:26:37 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8"

Comment # 19 on bug 73338 from
So I'm starting to implement fan speed control, at least partially. Since I
haven't found any related docs, this work is basically reverse-engineering.

Here's my mmiotrace for BONAIRE R7 260X on 3.17-rc2 so far

MARK 560.042950
R 4 580.364585 2 0xf0808010 0x3028 0x0 0         // read GRBM STATUS
R 4 580.364590 2 0xf080d034 0x76ceed57 0x0 0        // read SDMA0_STATUS_REG
R 4 580.364593 2 0xf080d834 0x46cee557 0x0 0        // read
R_00D834_DMA_STATUS_REG
R 4 580.364629 2 0xf0808010 0x3028 0x0 0          // read GRBM STATUS
R 4 580.364632 2 0xf080d034 0x76ceed57 0x0 0        // read SDMA0_STATUS_REG
R 4 580.364634 2 0xf080d834 0x46cee557 0x0 0        // read
R_00D834_DMA_STATUS_REG
W 4 580.364639 2 0xf0800200 0x80000004 0x0 0        // write to SMC_IND_INDEX_0
a 0x80000004
R 4 580.364641 2 0xf0800204 0x1000000 0x0 0        // read from SMC_IND_DATA_0
W 4 580.364643 2 0xf0800200 0x80000370 0x0 0        // write to SMC_IND_INDEX_0 
R 4 580.364645 2 0xf0800204 0x23730 0x0 0        // read from SMC_IND_DATA_0
W 4 580.364646 2 0xf0800250 0x5c 0x0 0            // write to SMC_MESSAGE_0 (!)
R 4 580.364649 2 0xf0800254 0x0 0x0 0            // wait for SMC_RESP
R 4 580.364652 2 0xf0800254 0x0 0x0 0            // ...
R 4 580.364655 2 0xf0800254 0x0 0x0 0            // ...
R 4 580.364659 2 0xf0800254 0x1 0x0 0            // got it!
R 4 580.364661 2 0xf0800254 0x1 0x0 0
W 4 580.364662 2 0xf0800200 0xc0300068 0x0 0        // write to SMC_IND_INDEX_0
R 4 580.364665 2 0xf0800204 0x40252f87 0x0 0        // read from SMC_IND_DATA_0
W 4 580.364666 2 0xf0800200 0xc0300064 0x0 0        // write to SMC_IND_INDEX_0
R 4 580.364668 2 0xf0800204 0x181431b 0x0 0        // read from SMC_IND_DATA_0
W 4 580.364670 2 0xf0800200 0xc0300064 0x0 0        // write to SMC_IND_INDEX_0
W 4 580.364671 2 0xf0800204 0x1814351 0x0 0        // read from SMC_IND_DATA_0
- this is the speed!
W 4 580.364672 2 0xf0800200 0xc030006c 0x0 0        // write to SMC_IND_INDEX_0
R 4 580.364674 2 0xf0800204 0x50cb0c00 0x0 0        // read from SMC_IND_DATA_0
W 4 580.364676 2 0xf0800200 0xc030006c 0x0 0        // write to SMC_IND_INDEX_0
W 4 580.364677 2 0xf0800204 0x50cb0c00 0x0 0        // read from SMC_IND_DATA_0
W 4 580.364678 2 0xf0800200 0xc030006c 0x0 0        // write to SMC_IND_INDEX_0
R 4 580.364681 2 0xf0800204 0x50cb0c00 0x0 0        // read from SMC_IND_DATA_0
W 4 580.364682 2 0xf0800200 0xc030006c 0x0 0        // write to SMC_IND_INDEX_0
W 4 580.364683 2 0xf0800204 0x50cb0c00 0x0 0        // read from SMC_IND_DATA_0

I've almost clearly understand the register keys here but I don't understand
some values that are written and read in the process.


You are receiving this mail because:
  • You are the assignee for the bug.
--1409498797.17805274.31784-- --===============1290743740== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel --===============1290743740==--