From patchwork Wed Mar 2 17:12:03 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Deucher X-Patchwork-Id: 8483961 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 06F589F2F0 for ; Wed, 2 Mar 2016 17:12:24 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 2310220383 for ; Wed, 2 Mar 2016 17:12:23 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 5057C20148 for ; Wed, 2 Mar 2016 17:12:22 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id ADC916E922; Wed, 2 Mar 2016 17:12:18 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-qg0-x22b.google.com (mail-qg0-x22b.google.com [IPv6:2607:f8b0:400d:c04::22b]) by gabe.freedesktop.org (Postfix) with ESMTPS id C1B9D6E920 for ; Wed, 2 Mar 2016 17:12:11 +0000 (UTC) Received: by mail-qg0-x22b.google.com with SMTP id t4so17622537qge.0 for ; Wed, 02 Mar 2016 09:12:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=oRayd8ToINVt+9xwPLO4hO4ydvOjmPBukLlecW6ipYM=; b=O7bvOAYr3lEp32M0rRUdyJuE8i8b6uLwfFoSolDYIAWNQSnuEsF1IWCSxfj/rLyz3L xcfMKFGQNBtqTnAc2umdj5aRx4kHzC0W5yGXqTNdLXqiLY5jky4llTRjQF/+AuQiMA+N DIBhB6cSpe3/lduUkF+rNqdwrr9Z/eO8i4zC+t9K+J5IDFrocbRAO72rd73qz2lPhWDD kVi8QOxMgq7GKAxm7mFxH4hhiV7Wk2KUMMqP8KwGmUwCBKflzncWV4C0fJxiFY5c/MuD 4S+3MhUxwlwq/DCYen77Uk/95dR9nddrDP4wnfQWyYqJtJwjIIN9l1aBzpVdVnI6w4oz 4/Gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=oRayd8ToINVt+9xwPLO4hO4ydvOjmPBukLlecW6ipYM=; b=SEldnfW6FHye2fXipbLGhS+AQv6GWv1ai+J+Gi4A2JnAkp2pJff8UWMZtfjHAwTKfx 0DpAAQF/kejfda4/Mf4yQIZMV6z8eqgRG1O380DiVJBCKc9/98NdhPlKjSIVRcUwZJBl fY4i/Wxy1VJfW7PA8XWWbSufSPHx+XK2bqMdK8vxYX0m6wTkprqRIQjo9/wQ/bY7XhoZ C+lnYYFpcBQVyp6Ov1Z/8UFJt4os2vv8/Kd70Em8IsoK6defS/rvKcfaBlMyuhlPXB3h BVehmk6VO6qU3Tc4piVshbnPmqso2CKDxaputLF7HNDhRr5nAMte71kqxc1aPX0E00Qp +xbw== X-Gm-Message-State: AD7BkJK8n5Fu4KjPQgwDKaSlEoW/Shh5dGCYukwJKSxCh2mixAEuebTRhsPI8g7Jv4AaqQ== X-Received: by 10.140.232.211 with SMTP id d202mr36986921qhc.27.1456938730690; Wed, 02 Mar 2016 09:12:10 -0800 (PST) Received: from cm.localdomain (static-74-96-105-49.washdc.fios.verizon.net. [74.96.105.49]) by smtp.gmail.com with ESMTPSA id f83sm15310068qkb.25.2016.03.02.09.12.10 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 02 Mar 2016 09:12:10 -0800 (PST) From: Alex Deucher X-Google-Original-From: Alex Deucher To: dri-devel@lists.freedesktop.org Subject: [PATCH 1/2] drm/radeon: disable runtime pm on PX laptops without dGPU power control Date: Wed, 2 Mar 2016 12:12:03 -0500 Message-Id: <1456938724-10213-1-git-send-email-alexander.deucher@amd.com> X-Mailer: git-send-email 2.5.0 Cc: Alex Deucher , stable@vger.kernel.org X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Some PX laptops don't provide an ACPI method to control dGPU power. On those systems, the driver is responsible for handling the dGPU power state. Disable runtime PM on them until support for this is implemented. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org --- drivers/gpu/drm/radeon/radeon_atpx_handler.c | 8 ++++---- drivers/gpu/drm/radeon/radeon_device.c | 8 +++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_atpx_handler.c b/drivers/gpu/drm/radeon/radeon_atpx_handler.c index c4b4f29..9bc408c 100644 --- a/drivers/gpu/drm/radeon/radeon_atpx_handler.c +++ b/drivers/gpu/drm/radeon/radeon_atpx_handler.c @@ -62,6 +62,10 @@ bool radeon_has_atpx(void) { return radeon_atpx_priv.atpx_detected; } +bool radeon_has_atpx_dgpu_power_cntl(void) { + return radeon_atpx_priv.atpx.functions.power_cntl; +} + /** * radeon_atpx_call - call an ATPX method * @@ -141,10 +145,6 @@ static void radeon_atpx_parse_functions(struct radeon_atpx_functions *f, u32 mas */ static int radeon_atpx_validate(struct radeon_atpx *atpx) { - /* make sure required functions are enabled */ - /* dGPU power control is required */ - atpx->functions.power_cntl = true; - if (atpx->functions.px_params) { union acpi_object *info; struct atpx_px_params output; diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c index 902b59c..4de23ae 100644 --- a/drivers/gpu/drm/radeon/radeon_device.c +++ b/drivers/gpu/drm/radeon/radeon_device.c @@ -103,6 +103,12 @@ static const char radeon_family_name[][16] = { "LAST", }; +#if defined(CONFIG_VGA_SWITCHEROO) +bool radeon_has_atpx_dgpu_power_cntl(void); +#else +static inline bool radeon_has_atpx_dgpu_power_cntl(void) { return false; } +#endif + #define RADEON_PX_QUIRK_DISABLE_PX (1 << 0) #define RADEON_PX_QUIRK_LONG_WAKEUP (1 << 1) @@ -1433,7 +1439,7 @@ int radeon_device_init(struct radeon_device *rdev, * ignore it */ vga_client_register(rdev->pdev, rdev, NULL, radeon_vga_set_decode); - if (rdev->flags & RADEON_IS_PX) + if ((rdev->flags & RADEON_IS_PX) && radeon_has_atpx_dgpu_power_cntl()) runtime = true; vga_switcheroo_register_client(rdev->pdev, &radeon_switcheroo_ops, runtime); if (runtime)