From patchwork Thu Mar 2 14:54:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rob Clark X-Patchwork-Id: 9600341 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 33B3360453 for ; Thu, 2 Mar 2017 14:55:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 24ED527F10 for ; Thu, 2 Mar 2017 14:55:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 193EB2858B; Thu, 2 Mar 2017 14:55:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1E9CA27F10 for ; Thu, 2 Mar 2017 14:55:11 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 47C8A6EB68; Thu, 2 Mar 2017 14:55:10 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-qk0-x243.google.com (mail-qk0-x243.google.com [IPv6:2607:f8b0:400d:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0AA836EB68 for ; Thu, 2 Mar 2017 14:55:09 +0000 (UTC) Received: by mail-qk0-x243.google.com with SMTP id n127so19458805qkf.2 for ; Thu, 02 Mar 2017 06:55:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=9q+25q2uF4dfqlVUqKnmWYSvz7W36CaWFeXAKc2DRn4=; b=N9/LBsS9knDZcGcQVG0p/q5EhUYuzmxdzt6ZIW67Z7XUlTt4m8NigV9SEd7pYut+bG D58grrOPR5CVymXExCJyCLmVsztSXZmq5X+OT1VKRh1q5gW029neWCF30WLYBL74z70Z ACeeoUcSbma/HrCCJjh2ndpV+4Iiix5dlkajX/jflrdgrcKiXbCXG/zcA707eDyqHOgp ZCf5ZZ5cxomVKJgsGa4WHDSuesLk6CQod3iTgvKwJUA/k32g83SrYcqPrmjhio3QcqtS J5V03yDTedwgAZ+n+UGgWp9FKdu9yL3NEip6uJEYiN7Pc0wcjALEc+7jhZIFcHkwuTuf AykA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=9q+25q2uF4dfqlVUqKnmWYSvz7W36CaWFeXAKc2DRn4=; b=fFsVoTdNGGBZFPxlWvMcCFbi4XOXPsoi5cPoYmzMHAHHZTXN/s8tHKJm5TVGEnknm9 wN5x1AC59hxiTRIJQqkuu5e+N5uTUBomwaLyiKTzEuY79GlB3jVoJZx/veS3n3x94QRF BQb72++rIkA38ZORDDZOe6dr4IZmlfiVj23ducXPKGbEmJP8hCs3eWrJiBdDN13J5RDL ERbAOFh4Y36hkwvZV4GkQycBG5bhSEiiM63MeOn0fEgCPSXY8DbLq0HcyhI/ZgzRPjGD 4qkuMvMHYHcxI4VUjScVEHEdFAALK/R0Big4qMlk6/sbkdBM7wg80WJhEnyrn7bywmK2 uHPw== X-Gm-Message-State: AMke39nGn2E+Yh8It3E3J2cz+gqWwIeeJyPbMxkpz+RO2mGKBLhKaUukxFBeGZASy6X1+w== X-Received: by 10.55.50.11 with SMTP id y11mr10527212qky.154.1488466508114; Thu, 02 Mar 2017 06:55:08 -0800 (PST) Received: from localhost (nat-pool-bos-t.redhat.com. [66.187.233.206]) by smtp.gmail.com with ESMTPSA id 143sm5486558qki.59.2017.03.02.06.55.07 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 02 Mar 2017 06:55:07 -0800 (PST) From: Rob Clark To: dri-devel@lists.freedesktop.org Subject: [PATCH] drm/mgag200: Add command line option to specify preferred depth Date: Thu, 2 Mar 2017 09:54:59 -0500 Message-Id: <20170302145459.6717-1-robdclark@gmail.com> X-Mailer: git-send-email 2.9.3 Cc: Egbert Eich 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-Virus-Scanned: ClamAV using ClamSMTP From: Egbert Eich This adds a command line parameter to override the preferred bpp on mga g200 server chips, so you can run some servers with low VRAM at a higher resolution but at 16bpp. Signed-off-by: Rob Clark --- An old patch from Egbert that never seemed to land upstream. I've rebased it since it seems useful. drivers/gpu/drm/mgag200/mgag200_drv.c | 11 +++++++++++ drivers/gpu/drm/mgag200/mgag200_main.c | 14 ++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.c b/drivers/gpu/drm/mgag200/mgag200_drv.c index 9ac0078..97166a8 100644 --- a/drivers/gpu/drm/mgag200/mgag200_drv.c +++ b/drivers/gpu/drm/mgag200/mgag200_drv.c @@ -22,9 +22,12 @@ * functions */ int mgag200_modeset = -1; +int mgag200_preferred_depth __read_mostly = 0; MODULE_PARM_DESC(modeset, "Disable/Enable modesetting"); module_param_named(modeset, mgag200_modeset, int, 0400); +MODULE_PARM_DESC(preferreddepth, "Set preferred bpp"); +module_param_named(preferreddepth, mgag200_preferred_depth, int, 0400); static struct drm_driver driver; @@ -120,6 +123,14 @@ static int __init mgag200_init(void) if (mgag200_modeset == 0) return -EINVAL; + switch (mgag200_preferred_depth) { + case 0: /* driver default */ + case 16: + case 24: + break; + default: + return -EINVAL; + } return drm_pci_init(&driver, &mgag200_pci_driver); } diff --git a/drivers/gpu/drm/mgag200/mgag200_main.c b/drivers/gpu/drm/mgag200/mgag200_main.c index dce8a3e..6411268 100644 --- a/drivers/gpu/drm/mgag200/mgag200_main.c +++ b/drivers/gpu/drm/mgag200/mgag200_main.c @@ -14,6 +14,8 @@ #include #include "mgag200_drv.h" +extern int mgag200_preferred_depth __read_mostly; + static void mga_user_framebuffer_destroy(struct drm_framebuffer *fb) { struct mga_framebuffer *mga_fb = to_mga_framebuffer(fb); @@ -226,10 +228,14 @@ int mgag200_driver_load(struct drm_device *dev, unsigned long flags) drm_mode_config_init(dev); dev->mode_config.funcs = (void *)&mga_mode_funcs; - if (IS_G200_SE(mdev) && mdev->mc.vram_size < (2048*1024)) - dev->mode_config.preferred_depth = 16; - else - dev->mode_config.preferred_depth = 24; + if (mgag200_preferred_depth == 0) { + if (IS_G200_SE(mdev) && mdev->mc.vram_size < (2048*1024)) + dev->mode_config.preferred_depth = 16; + else + dev->mode_config.preferred_depth = 24; + } else { + dev->mode_config.preferred_depth = mgag200_preferred_depth; + } dev->mode_config.prefer_shadow = 1; r = mgag200_modeset_init(mdev);