From patchwork Fri Mar 5 19:22:49 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= X-Patchwork-Id: 83826 Received: from lists.sourceforge.net (lists.sourceforge.net [216.34.181.88]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o25JOC6I018937 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 5 Mar 2010 19:24:48 GMT Received: from localhost ([127.0.0.1] helo=sfs-ml-2.v29.ch3.sourceforge.com) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.69) (envelope-from ) id 1Nnd74-000763-PA; Fri, 05 Mar 2010 19:23:06 +0000 Received: from sfi-mx-1.v28.ch3.sourceforge.com ([172.29.28.121] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.69) (envelope-from ) id 1Nnd74-00075y-45 for dri-devel@lists.sourceforge.net; Fri, 05 Mar 2010 19:23:06 +0000 Received-SPF: pass (sfi-mx-1.v28.ch3.sourceforge.com: domain of gmail.com designates 209.85.220.214 as permitted sender) client-ip=209.85.220.214; envelope-from=zajec5@gmail.com; helo=mail-fx0-f214.google.com; Received: from mail-fx0-f214.google.com ([209.85.220.214]) by sfi-mx-1.v28.ch3.sourceforge.com with esmtp (Exim 4.69) id 1Nnd72-0008U2-5i for dri-devel@lists.sourceforge.net; Fri, 05 Mar 2010 19:23:06 +0000 Received: by fxm6 with SMTP id 6so4715285fxm.2 for ; Fri, 05 Mar 2010 11:22:57 -0800 (PST) Received: by 10.102.15.6 with SMTP id 6mr629228muo.43.1267816975954; Fri, 05 Mar 2010 11:22:55 -0800 (PST) Received: from localhost.localdomain (aqu96.neoplus.adsl.tpnet.pl [83.26.180.96]) by mx.google.com with ESMTPS id e10sm3856597muf.38.2010.03.05.11.22.54 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 05 Mar 2010 11:22:55 -0800 (PST) From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= To: dri-devel@lists.sourceforge.net, Dave Airlie Subject: [PATCH] drm/radeon/kms: add PM quirk for Asus Radeon HD 3200 Date: Fri, 5 Mar 2010 20:22:49 +0100 Message-Id: <1267816969-30572-1-git-send-email-zajec5@gmail.com> X-Mailer: git-send-email 1.6.4.2 MIME-Version: 1.0 X-Spam-Score: -1.5 (-) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain -0.0 SPF_PASS SPF: sender matches SPF record -0.0 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.0 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Headers-End: 1Nnd72-0008U2-5i X-BeenThere: dri-devel@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.sourceforge.net X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Fri, 05 Mar 2010 19:24:48 +0000 (UTC) diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c index 6b65f15..a2ea0be 100644 --- a/drivers/gpu/drm/radeon/radeon_pm.c +++ b/drivers/gpu/drm/radeon/radeon_pm.c @@ -79,6 +79,23 @@ static void radeon_print_power_mode_info(struct radeon_device *rdev) } } +static void radeon_apply_pm_quirks(struct radeon_device *rdev) +{ + /* Asus Radeon HD 3200 contains power states with reversed types */ + /* We received single report like this so far. See FDO bug #26347. + In case of more reports we may consider some detecting algorithm */ + if ((rdev->pdev->device == 0x9610) && + (rdev->pdev->subsystem_vendor == 0x1043) && + (rdev->pdev->subsystem_device == 0x82f1)) { + rdev->pm.power_state[0].type = POWER_STATE_TYPE_PERFORMANCE; + rdev->pm.power_state[1].type = POWER_STATE_TYPE_DEFAULT; + rdev->pm.default_power_state = &rdev->pm.power_state[1]; + rdev->pm.current_power_state = rdev->pm.default_power_state; + rdev->pm.current_clock_mode = + rdev->pm.default_power_state->default_clock_mode; + } +} + static struct radeon_power_state * radeon_pick_power_state(struct radeon_device *rdev, enum radeon_pm_state_type type) { @@ -235,6 +252,7 @@ int radeon_pm_init(struct radeon_device *rdev) radeon_atombios_get_power_modes(rdev); else radeon_combios_get_power_modes(rdev); + radeon_apply_pm_quirks(rdev); radeon_print_power_mode_info(rdev); }