From patchwork Mon Jun 13 12:34:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879427 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 27CB4CCA47F for ; Mon, 13 Jun 2022 12:34:45 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1F67F10E5B1; Mon, 13 Jun 2022 12:34:44 +0000 (UTC) Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com [IPv6:2a00:1450:4864:20::22b]) by gabe.freedesktop.org (Postfix) with ESMTPS id E47CA10E522 for ; Mon, 13 Jun 2022 12:34:41 +0000 (UTC) Received: by mail-lj1-x22b.google.com with SMTP id g2so6020741ljk.5 for ; Mon, 13 Jun 2022 05:34:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iyv5ZvifsqAe/gdbT3W8e1VxPY2dWsn2sLzsBfR2yq8=; b=h7kvaqO/dwRbsWsx6EyKGqEF2WaOG3B3G9gjnaBVNP6qCcuR6Vkuo9WdxcJOSVodWq RQ7vNQzw0mzB5hxD994PbQzqNK6tXlGdymmVz2im1kZAtIn6BTGAz/EwvSM61EbINZ6P 3o/akAF8sQcnwsZ4Z2csguHt7vVByaO5ETBJEMtha9cNdWqo6guEtMfJSNP0VyqtdBXs cabmnczqIqJzVw/tmSZ3MHx4x8pttky6BSOdodGVwKMb7mG+SOtdZi5Hwed6pGu7Ixrh wRsOavWp98z570KrRb4dVg6cqMLGvG+g8GSmZKs9GNfDQVumbZlgGzN1MmJgU8hnsTQv Y8aQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iyv5ZvifsqAe/gdbT3W8e1VxPY2dWsn2sLzsBfR2yq8=; b=UiCJdyNyN/vq7yUeIOCx9GW5IeHtaUxK258iiZMRV09nmFt7IA7UOgAuSmwQiXtNZO Nxqhdv9Axp4jf1vhbWDC/Ylyu2qdsQd7Y8jKt9bZKz+jQuH/dPZSGG6/PVaC/JxsMTiF IZ5jfHuy3HHuHGAPHUyBvEahQM3ioWkUEfAQInNpByNhURWaIMhvcLruiK+La5//6rbx Vy/QPfFIp2EMtB2FY0sZcCLWgaoTZLo/zSBQ1BE/1STVIBzkIz+b0X+wDKF07mRBGcrd NIkcEB2QO1XsQneG153NJMJ+3VlELn2f9bV1fJAPUKF3F57moKgyddtNy00RQxkejXV+ mC3w== X-Gm-Message-State: AOAM533ov5Xvl9dgnIzB6SkZHvHJC0SmsS8EdkbO+xLAUFNRoCC7ohTP vvJ+AuYkna5wIXHQ17HPx8ADGVSGrVA= X-Google-Smtp-Source: ABdhPJzBtsyStIvJqidVjZu1l4cJGohIUdjUgmeeYOJBUJ2ediXT3CBERUDkI3RA2o/6jfKSb2S5Qw== X-Received: by 2002:a2e:8805:0:b0:255:6e73:9a67 with SMTP id x5-20020a2e8805000000b002556e739a67mr31696637ljh.426.1655123679803; Mon, 13 Jun 2022 05:34:39 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:39 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 01/19] drm/gma500: Unify *_lvds_get_max_backlight() Date: Mon, 13 Jun 2022 14:34:18 +0200 Message-Id: <20220613123436.15185-2-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These functions mostly do the same thing so unify them into one. All unified lvds code will live in gma_lvds.c. Signed-off-by: Patrik Jakobsson Reviewed-by: Sam Ravnborg --- drivers/gpu/drm/gma500/Makefile | 1 + drivers/gpu/drm/gma500/cdv_intel_lvds.c | 27 +++---------------- drivers/gpu/drm/gma500/gma_lvds.c | 34 +++++++++++++++++++++++ drivers/gpu/drm/gma500/gma_lvds.h | 12 +++++++++ drivers/gpu/drm/gma500/oaktrail_lvds.c | 23 ++-------------- drivers/gpu/drm/gma500/psb_intel_lvds.c | 36 ++++--------------------- 6 files changed, 57 insertions(+), 76 deletions(-) create mode 100644 drivers/gpu/drm/gma500/gma_lvds.c create mode 100644 drivers/gpu/drm/gma500/gma_lvds.h diff --git a/drivers/gpu/drm/gma500/Makefile b/drivers/gpu/drm/gma500/Makefile index 63012bf2485a..6c707b5d29dc 100644 --- a/drivers/gpu/drm/gma500/Makefile +++ b/drivers/gpu/drm/gma500/Makefile @@ -15,6 +15,7 @@ gma500_gfx-y += \ gem.o \ gma_device.o \ gma_display.o \ + gma_lvds.o \ gtt.o \ intel_bios.o \ intel_gmbus.o \ diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index be6efcaaa3b3..0c7c4a539e50 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -20,6 +20,7 @@ #include "psb_drv.h" #include "psb_intel_drv.h" #include "psb_intel_reg.h" +#include "gma_lvds.h" /* * LVDS I2C backlight control macros @@ -52,32 +53,10 @@ struct cdv_intel_lvds_priv { uint32_t saveBLC_PWM_CTL; }; -/* - * Returns the maximum level of the backlight duty cycle field. - */ -static u32 cdv_intel_lvds_get_max_backlight(struct drm_device *dev) -{ - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - u32 retval; - - if (gma_power_begin(dev, false)) { - retval = ((REG_READ(BLC_PWM_CTL) & - BACKLIGHT_MODULATION_FREQ_MASK) >> - BACKLIGHT_MODULATION_FREQ_SHIFT) * 2; - - gma_power_end(dev); - } else - retval = ((dev_priv->regs.saveBLC_PWM_CTL & - BACKLIGHT_MODULATION_FREQ_MASK) >> - BACKLIGHT_MODULATION_FREQ_SHIFT) * 2; - - return retval; -} - /* * Sets the backlight level. * - * level backlight level, from 0 to cdv_intel_lvds_get_max_backlight(). + * level backlight level, from 0 to gma_lvds_get_max_backlight(). */ static void cdv_intel_lvds_set_backlight(struct drm_device *dev, int level) { @@ -250,7 +229,7 @@ static void cdv_intel_lvds_commit(struct drm_encoder *encoder) if (mode_dev->backlight_duty_cycle == 0) mode_dev->backlight_duty_cycle = - cdv_intel_lvds_get_max_backlight(dev); + gma_lvds_get_max_backlight(dev); cdv_intel_lvds_set_power(dev, encoder, true); } diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c new file mode 100644 index 000000000000..0b646c7c7432 --- /dev/null +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-2.0-only + +/* + * Copyright © 2006-2011 Intel Corporation + */ + +#include "psb_drv.h" +#include "psb_intel_drv.h" +#include "power.h" +#include "psb_intel_reg.h" + +/* + * Returns the maximum level of the backlight duty cycle field. + */ +u32 gma_lvds_get_max_backlight(struct drm_device *dev) +{ + struct drm_psb_private *dev_priv = to_drm_psb_private(dev); + u32 retval; + + if (gma_power_begin(dev, false)) { + retval = ((REG_READ(BLC_PWM_CTL) & + BACKLIGHT_MODULATION_FREQ_MASK) >> + BACKLIGHT_MODULATION_FREQ_SHIFT) * 2; + + gma_power_end(dev); + } else + retval = ((dev_priv->regs.saveBLC_PWM_CTL & + BACKLIGHT_MODULATION_FREQ_MASK) >> + BACKLIGHT_MODULATION_FREQ_SHIFT) * 2; + + return retval; +} + + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h new file mode 100644 index 000000000000..2a9ce8ee3fa7 --- /dev/null +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +/* + * Copyright © 2006-2011 Intel Corporation + */ + +#ifndef _GMA_LVDS_H +#define _GMA_LVDS_H + +u32 gma_lvds_get_max_backlight(struct drm_device *dev); + +#endif diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c b/drivers/gpu/drm/gma500/oaktrail_lvds.c index 9c9ebf8e29c4..4913baca7ae2 100644 --- a/drivers/gpu/drm/gma500/oaktrail_lvds.c +++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c @@ -20,6 +20,7 @@ #include "psb_drv.h" #include "psb_intel_drv.h" #include "psb_intel_reg.h" +#include "gma_lvds.h" /* The max/min PWM frequency in BPCR[31:17] - */ /* The smallest number is 1 (not 0) that can fit in the @@ -170,25 +171,6 @@ static void oaktrail_lvds_prepare(struct drm_encoder *encoder) gma_power_end(dev); } -static u32 oaktrail_lvds_get_max_backlight(struct drm_device *dev) -{ - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - u32 ret; - - if (gma_power_begin(dev, false)) { - ret = ((REG_READ(BLC_PWM_CTL) & - BACKLIGHT_MODULATION_FREQ_MASK) >> - BACKLIGHT_MODULATION_FREQ_SHIFT) * 2; - - gma_power_end(dev); - } else - ret = ((dev_priv->regs.saveBLC_PWM_CTL & - BACKLIGHT_MODULATION_FREQ_MASK) >> - BACKLIGHT_MODULATION_FREQ_SHIFT) * 2; - - return ret; -} - static void oaktrail_lvds_commit(struct drm_encoder *encoder) { struct drm_device *dev = encoder->dev; @@ -197,8 +179,7 @@ static void oaktrail_lvds_commit(struct drm_encoder *encoder) struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; if (mode_dev->backlight_duty_cycle == 0) - mode_dev->backlight_duty_cycle = - oaktrail_lvds_get_max_backlight(dev); + mode_dev->backlight_duty_cycle = gma_lvds_get_max_backlight(dev); oaktrail_lvds_set_power(dev, gma_encoder, true); } diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index 7ee6c8ce103b..371c202a15ce 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -18,6 +18,7 @@ #include "psb_drv.h" #include "psb_intel_drv.h" #include "psb_intel_reg.h" +#include "gma_lvds.h" /* * LVDS I2C backlight control macros @@ -52,32 +53,6 @@ struct psb_intel_lvds_priv { struct gma_i2c_chan *i2c_bus; }; - -/* - * Returns the maximum level of the backlight duty cycle field. - */ -static u32 psb_intel_lvds_get_max_backlight(struct drm_device *dev) -{ - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - u32 ret; - - if (gma_power_begin(dev, false)) { - ret = REG_READ(BLC_PWM_CTL); - gma_power_end(dev); - } else /* Powered off, use the saved value */ - ret = dev_priv->regs.saveBLC_PWM_CTL; - - /* Top 15bits hold the frequency mask */ - ret = (ret & BACKLIGHT_MODULATION_FREQ_MASK) >> - BACKLIGHT_MODULATION_FREQ_SHIFT; - - ret *= 2; /* Return a 16bit range as needed for setting */ - if (ret == 0) - dev_err(dev->dev, "BL bug: Reg %08x save %08X\n", - REG_READ(BLC_PWM_CTL), dev_priv->regs.saveBLC_PWM_CTL); - return ret; -} - /* * Set LVDS backlight level by I2C command * @@ -131,7 +106,7 @@ static int psb_lvds_pwm_set_brightness(struct drm_device *dev, int level) u32 max_pwm_blc; u32 blc_pwm_duty_cycle; - max_pwm_blc = psb_intel_lvds_get_max_backlight(dev); + max_pwm_blc = gma_lvds_get_max_backlight(dev); /*BLC_PWM_CTL Should be initiated while backlight device init*/ BUG_ON(max_pwm_blc == 0); @@ -176,7 +151,7 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) /* * Sets the backlight level. * - * level: backlight level, from 0 to psb_intel_lvds_get_max_backlight(). + * level: backlight level, from 0 to gma_lvds_get_max_backlight(). */ static void psb_intel_lvds_set_backlight(struct drm_device *dev, int level) { @@ -275,8 +250,7 @@ static void psb_intel_lvds_save(struct drm_connector *connector) * just make it full brightness */ if (dev_priv->backlight_duty_cycle == 0) - dev_priv->backlight_duty_cycle = - psb_intel_lvds_get_max_backlight(dev); + dev_priv->backlight_duty_cycle = gma_lvds_get_max_backlight(dev); dev_dbg(dev->dev, "(0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x)\n", lvds_priv->savePP_ON, @@ -445,7 +419,7 @@ static void psb_intel_lvds_commit(struct drm_encoder *encoder) if (mode_dev->backlight_duty_cycle == 0) mode_dev->backlight_duty_cycle = - psb_intel_lvds_get_max_backlight(dev); + gma_lvds_get_max_backlight(dev); psb_intel_lvds_set_power(dev, true); } From patchwork Mon Jun 13 12:34:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879428 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 957BFC433EF for ; Mon, 13 Jun 2022 12:34:47 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C405110E74E; Mon, 13 Jun 2022 12:34:44 +0000 (UTC) Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3C19F10E5B1 for ; Mon, 13 Jun 2022 12:34:43 +0000 (UTC) Received: by mail-lf1-x132.google.com with SMTP id c4so8579085lfj.12 for ; Mon, 13 Jun 2022 05:34:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=H0Hs6FIqWUsS7vDhYFUng4jyhlhhWA72qY81jnPeFY4=; b=U5TNgffjFyBsX/B+8aVty85waldZHZ6ge7JlblqCg+W/lXO4HEGTuOiwAEhJISKVK2 OhgxtzVwwrK4y+srNIlyUvCqhw7/HtaDY49tAK0U0q6C0PaysTGb/aGd8ri5hamfBmD+ teAYKnwWlKySnPO3k6Syfb1/3+C2jQx+NJ9cJnbx+KPhG+AqheeBjzyDnrLheDK1tEHY Qip4wk8tUqOdrIIJ5iidRpF01a1cThzh5W0/JRhxtA7LtcXegI7SdfLJMhziASnA1Udo cjkAfww0CKPM8ZrBmoscvS5KUvwl5FtYqlJmiNfTw7qVWltPvvIiiizPi4KLyd2/uhO4 nOTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=H0Hs6FIqWUsS7vDhYFUng4jyhlhhWA72qY81jnPeFY4=; b=4SW1YTJmG/rGyijNvqAVD9Z9DIeM0ZAPOAb1+hnYR0+i0IsXRy8hRmAcumGWAjMPxF WYDYofzL05eXWyLExwVXl8B1lE3UN2WV26KwWNAZY3Buc07WpYORBXI3F25eYRhWiZIa 8Y+3BdnBGTvtEvyartME/RdMXv3eLb5SJpOmMlP9/epQ6yZbiMrO2bC3wvoE6a6lReFz Gz3gXeLzi0SshuXrrtZqU5gRNpN++sF61s/3/cM6TkuhnLGMVeQftP16c6tJKOTm6hmn 94tdk2BDCReNbuVukNSlBK+hwvQNPLVHc1D4cxa/proszuUsBB4LsPCkYb8O/iBxZf1S Qijw== X-Gm-Message-State: AOAM530DWafqdrGXRTfWDJ9JWXU3ue6zEs2HZKClTRzMevScbeVIu8QL nX0/iAl8oEbOISoc9erACXGsE+gUy04= X-Google-Smtp-Source: ABdhPJyPv6BdKxC7Sujx5u8nHl5GsLKDq+dY9BRGEJKKRNs58rcyX1p4EY7CsO/eDzij2EBt4jMYBg== X-Received: by 2002:ac2:58d6:0:b0:479:5b9:74a with SMTP id u22-20020ac258d6000000b0047905b9074amr36471481lfo.551.1655123681103; Mon, 13 Jun 2022 05:34:41 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:40 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 02/19] drm/gma500: Unify *_lvds_set_backlight() Date: Mon, 13 Jun 2022 14:34:19 +0200 Message-Id: <20220613123436.15185-3-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These functions do the same thing so unify them into one. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 29 ++-------------------- drivers/gpu/drm/gma500/gma_lvds.c | 26 ++++++++++++++++++++ drivers/gpu/drm/gma500/gma_lvds.h | 1 + drivers/gpu/drm/gma500/psb_intel_lvds.c | 32 ++----------------------- 4 files changed, 31 insertions(+), 57 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index 0c7c4a539e50..615570de82b0 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -53,31 +53,6 @@ struct cdv_intel_lvds_priv { uint32_t saveBLC_PWM_CTL; }; -/* - * Sets the backlight level. - * - * level backlight level, from 0 to gma_lvds_get_max_backlight(). - */ -static void cdv_intel_lvds_set_backlight(struct drm_device *dev, int level) -{ - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - u32 blc_pwm_ctl; - - if (gma_power_begin(dev, false)) { - blc_pwm_ctl = - REG_READ(BLC_PWM_CTL) & ~BACKLIGHT_DUTY_CYCLE_MASK; - REG_WRITE(BLC_PWM_CTL, - (blc_pwm_ctl | - (level << BACKLIGHT_DUTY_CYCLE_SHIFT))); - gma_power_end(dev); - } else { - blc_pwm_ctl = dev_priv->regs.saveBLC_PWM_CTL & - ~BACKLIGHT_DUTY_CYCLE_MASK; - dev_priv->regs.saveBLC_PWM_CTL = (blc_pwm_ctl | - (level << BACKLIGHT_DUTY_CYCLE_SHIFT)); - } -} - /* * Sets the power state for the panel. */ @@ -97,10 +72,10 @@ static void cdv_intel_lvds_set_power(struct drm_device *dev, pp_status = REG_READ(PP_STATUS); } while ((pp_status & PP_ON) == 0); - cdv_intel_lvds_set_backlight(dev, + gma_lvds_set_backlight(dev, dev_priv->mode_dev.backlight_duty_cycle); } else { - cdv_intel_lvds_set_backlight(dev, 0); + gma_lvds_set_backlight(dev, 0); REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) & ~POWER_TARGET_ON); diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index 0b646c7c7432..5b041fab82ba 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -31,4 +31,30 @@ u32 gma_lvds_get_max_backlight(struct drm_device *dev) return retval; } +/* + * Sets the backlight level. + * + * level: backlight level, from 0 to gma_lvds_get_max_backlight(). + */ +void gma_lvds_set_backlight(struct drm_device *dev, int level) +{ + struct drm_psb_private *dev_priv = to_drm_psb_private(dev); + u32 blc_pwm_ctl; + + if (gma_power_begin(dev, false)) { + blc_pwm_ctl = REG_READ(BLC_PWM_CTL); + blc_pwm_ctl &= ~BACKLIGHT_DUTY_CYCLE_MASK; + REG_WRITE(BLC_PWM_CTL, + (blc_pwm_ctl | + (level << BACKLIGHT_DUTY_CYCLE_SHIFT))); + dev_priv->regs.saveBLC_PWM_CTL = (blc_pwm_ctl | + (level << BACKLIGHT_DUTY_CYCLE_SHIFT)); + gma_power_end(dev); + } else { + blc_pwm_ctl = dev_priv->regs.saveBLC_PWM_CTL & + ~BACKLIGHT_DUTY_CYCLE_MASK; + dev_priv->regs.saveBLC_PWM_CTL = (blc_pwm_ctl | + (level << BACKLIGHT_DUTY_CYCLE_SHIFT)); + } +} diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index 2a9ce8ee3fa7..f26cc69b6caa 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -8,5 +8,6 @@ #define _GMA_LVDS_H u32 gma_lvds_get_max_backlight(struct drm_device *dev); +void gma_lvds_set_backlight(struct drm_device *dev, int level); #endif diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index 371c202a15ce..a304f840b127 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -148,33 +148,6 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -/* - * Sets the backlight level. - * - * level: backlight level, from 0 to gma_lvds_get_max_backlight(). - */ -static void psb_intel_lvds_set_backlight(struct drm_device *dev, int level) -{ - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - u32 blc_pwm_ctl; - - if (gma_power_begin(dev, false)) { - blc_pwm_ctl = REG_READ(BLC_PWM_CTL); - blc_pwm_ctl &= ~BACKLIGHT_DUTY_CYCLE_MASK; - REG_WRITE(BLC_PWM_CTL, - (blc_pwm_ctl | - (level << BACKLIGHT_DUTY_CYCLE_SHIFT))); - dev_priv->regs.saveBLC_PWM_CTL = (blc_pwm_ctl | - (level << BACKLIGHT_DUTY_CYCLE_SHIFT)); - gma_power_end(dev); - } else { - blc_pwm_ctl = dev_priv->regs.saveBLC_PWM_CTL & - ~BACKLIGHT_DUTY_CYCLE_MASK; - dev_priv->regs.saveBLC_PWM_CTL = (blc_pwm_ctl | - (level << BACKLIGHT_DUTY_CYCLE_SHIFT)); - } -} - /* * Sets the power state for the panel. */ @@ -196,10 +169,9 @@ static void psb_intel_lvds_set_power(struct drm_device *dev, bool on) pp_status = REG_READ(PP_STATUS); } while ((pp_status & PP_ON) == 0); - psb_intel_lvds_set_backlight(dev, - mode_dev->backlight_duty_cycle); + gma_lvds_set_backlight(dev, mode_dev->backlight_duty_cycle); } else { - psb_intel_lvds_set_backlight(dev, 0); + gma_lvds_set_backlight(dev, 0); REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) & ~POWER_TARGET_ON); From patchwork Mon Jun 13 12:34:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879432 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 46435CCA47B for ; Mon, 13 Jun 2022 12:34:57 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 94E7D10E75D; Mon, 13 Jun 2022 12:34:54 +0000 (UTC) Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) by gabe.freedesktop.org (Postfix) with ESMTPS id BEBC010E5CD for ; Mon, 13 Jun 2022 12:34:44 +0000 (UTC) Received: by mail-lj1-x229.google.com with SMTP id y15so6068713ljc.0 for ; Mon, 13 Jun 2022 05:34:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=A536hY9YQsFyBovKDZMrUH1rXszN8Ez6MfyfQ8rxnxE=; b=iIRQ3BH4RLLFUab7GVtiI+FiPzfIrjnSIOfQOFzcx2w8yBo93ZX/G9C+FBs9iPhZTN 7Jy/HHa6bOM6AYb9OM2v47Ybo4dRXoOx415KHSq73ySBSmUPajzWo8PNzUeSsv7xX1qa dAdhjaqxK/JkXYRsK6aH9CH8bVS8P0FgS7oJtQfFxKKlnYVUYHQJrkO3quGWg6PMmY/r iZuzshqOfWm/BgsZaonbpA2aue12HpgTSJcVb73vz+FC1jkIZiUGVCCZZlnJ0pwhEE0m DwBPkmtq1k8mExbBKzuUFmqMdBv/qCBvL8yVwGXJboTAogEojSZS9y1w3rfukbzq1tdR hnSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=A536hY9YQsFyBovKDZMrUH1rXszN8Ez6MfyfQ8rxnxE=; b=QbUN2obHP98gRiJFNObLZPWrHMwdM7pJSHme5i+SopMZR3YDz05nMEo4HOnE+xhF1O WRKBrAZCJUXnQmUfT1PBf+pO4ZNMO6YbE19ZkcwMK0MJl8arqtq+p1qW/sL3dUHuKzax kkacDRm5gTAE4DvOqGL66Iyeix2JOVqZJHztKq56lD0xWgg0I8adJ8VgZSA+10RzXa1W cR0/XZMP9QTbYbYfnHBjrhnpWpKT0RlPfnWHR0GP0jj7g+YYI1F71sS/LEZbUMbco6Nx ao8urYPpevowUTtnM6iEEF4MNW5R0aEJ7YFxOCvmcZTmWn6/yc+g2ME14/ziSYPiwqIr G+DQ== X-Gm-Message-State: AOAM53177zkeJHBiES81c2YFYqiEHbBKIJuD0MmF8fUTADtsx64sSt1s W4Gt/Jejfv4JJ/IkdIHVAPwezqQwkBA= X-Google-Smtp-Source: ABdhPJwHdwHdgYIMr/LjyyZiOh0wlgb7LZhZ7pdo6X8FnVo/3w0Zc/FiP82arGjiOl8bk6j0gXl0JA== X-Received: by 2002:a2e:8919:0:b0:255:5b60:e8b7 with SMTP id d25-20020a2e8919000000b002555b60e8b7mr36327100lji.294.1655123682591; Mon, 13 Jun 2022 05:34:42 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:42 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 03/19] drm/gma500: Unify *_lvds_set_power() Date: Mon, 13 Jun 2022 14:34:20 +0200 Message-Id: <20220613123436.15185-4-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These functions mostly do the same thing so unify them into one. Oaktrail doesn't power on/off the backlight so don't touch that. Ignore runtime-pm stuff since runtime-pm is broken anyways. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 41 +++------------------ drivers/gpu/drm/gma500/gma_lvds.c | 37 ++++++++++++++++++- drivers/gpu/drm/gma500/gma_lvds.h | 2 +- drivers/gpu/drm/gma500/oaktrail_lvds.c | 47 +++---------------------- drivers/gpu/drm/gma500/psb_drv.h | 1 - drivers/gpu/drm/gma500/psb_intel_lvds.c | 43 +++------------------- 6 files changed, 49 insertions(+), 122 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index 615570de82b0..7bf883bb8104 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -53,46 +53,13 @@ struct cdv_intel_lvds_priv { uint32_t saveBLC_PWM_CTL; }; -/* - * Sets the power state for the panel. - */ -static void cdv_intel_lvds_set_power(struct drm_device *dev, - struct drm_encoder *encoder, bool on) -{ - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - u32 pp_status; - - if (!gma_power_begin(dev, true)) - return; - - if (on) { - REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) | - POWER_TARGET_ON); - do { - pp_status = REG_READ(PP_STATUS); - } while ((pp_status & PP_ON) == 0); - - gma_lvds_set_backlight(dev, - dev_priv->mode_dev.backlight_duty_cycle); - } else { - gma_lvds_set_backlight(dev, 0); - - REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) & - ~POWER_TARGET_ON); - do { - pp_status = REG_READ(PP_STATUS); - } while (pp_status & PP_ON); - } - gma_power_end(dev); -} - static void cdv_intel_lvds_encoder_dpms(struct drm_encoder *encoder, int mode) { struct drm_device *dev = encoder->dev; if (mode == DRM_MODE_DPMS_ON) - cdv_intel_lvds_set_power(dev, encoder, true); + gma_lvds_set_power(dev, true); else - cdv_intel_lvds_set_power(dev, encoder, false); + gma_lvds_set_power(dev, false); /* XXX: We never power down the LVDS pairs. */ } @@ -191,7 +158,7 @@ static void cdv_intel_lvds_prepare(struct drm_encoder *encoder) mode_dev->backlight_duty_cycle = (mode_dev->saveBLC_PWM_CTL & BACKLIGHT_DUTY_CYCLE_MASK); - cdv_intel_lvds_set_power(dev, encoder, false); + gma_lvds_set_power(dev, false); gma_power_end(dev); } @@ -206,7 +173,7 @@ static void cdv_intel_lvds_commit(struct drm_encoder *encoder) mode_dev->backlight_duty_cycle = gma_lvds_get_max_backlight(dev); - cdv_intel_lvds_set_power(dev, encoder, true); + gma_lvds_set_power(dev, true); } static void cdv_intel_lvds_mode_set(struct drm_encoder *encoder, diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index 5b041fab82ba..11efbb14b55c 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -36,7 +36,7 @@ u32 gma_lvds_get_max_backlight(struct drm_device *dev) * * level: backlight level, from 0 to gma_lvds_get_max_backlight(). */ -void gma_lvds_set_backlight(struct drm_device *dev, int level) +static void gma_lvds_set_backlight(struct drm_device *dev, int level) { struct drm_psb_private *dev_priv = to_drm_psb_private(dev); u32 blc_pwm_ctl; @@ -58,3 +58,38 @@ void gma_lvds_set_backlight(struct drm_device *dev, int level) } } +/* + * Sets the power state for the panel. + */ +void gma_lvds_set_power(struct drm_device *dev, bool on) +{ + struct drm_psb_private *dev_priv = to_drm_psb_private(dev); + u32 pp_status; + + if (!gma_power_begin(dev, true)) + return; + + if (on) { + REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) | + POWER_TARGET_ON); + do { + pp_status = REG_READ(PP_STATUS); + } while ((pp_status & PP_ON) == 0); + + if (!IS_MRST(dev)) { + gma_lvds_set_backlight(dev, + dev_priv->mode_dev.backlight_duty_cycle); + } + } else { + if (!IS_MRST(dev)) + gma_lvds_set_backlight(dev, 0); + + REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) & + ~POWER_TARGET_ON); + do { + pp_status = REG_READ(PP_STATUS); + } while (pp_status & PP_ON); + } + gma_power_end(dev); +} + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index f26cc69b6caa..477d3b5005f7 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -8,6 +8,6 @@ #define _GMA_LVDS_H u32 gma_lvds_get_max_backlight(struct drm_device *dev); -void gma_lvds_set_backlight(struct drm_device *dev, int level); +void gma_lvds_set_power(struct drm_device *dev, bool on); #endif diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c b/drivers/gpu/drm/gma500/oaktrail_lvds.c index 4913baca7ae2..9634807e4d8c 100644 --- a/drivers/gpu/drm/gma500/oaktrail_lvds.c +++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c @@ -30,51 +30,14 @@ #define MRST_BLC_MAX_PWM_REG_FREQ 0xFFFF #define BRIGHTNESS_MAX_LEVEL 100 -/* - * Sets the power state for the panel. - */ -static void oaktrail_lvds_set_power(struct drm_device *dev, - struct gma_encoder *gma_encoder, - bool on) -{ - u32 pp_status; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - - if (!gma_power_begin(dev, true)) - return; - - if (on) { - REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) | - POWER_TARGET_ON); - do { - pp_status = REG_READ(PP_STATUS); - } while ((pp_status & (PP_ON | PP_READY)) == PP_READY); - dev_priv->is_lvds_on = true; - if (dev_priv->ops->lvds_bl_power) - dev_priv->ops->lvds_bl_power(dev, true); - } else { - if (dev_priv->ops->lvds_bl_power) - dev_priv->ops->lvds_bl_power(dev, false); - REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) & - ~POWER_TARGET_ON); - do { - pp_status = REG_READ(PP_STATUS); - } while (pp_status & PP_ON); - dev_priv->is_lvds_on = false; - pm_request_idle(dev->dev); - } - gma_power_end(dev); -} - static void oaktrail_lvds_dpms(struct drm_encoder *encoder, int mode) { struct drm_device *dev = encoder->dev; - struct gma_encoder *gma_encoder = to_gma_encoder(encoder); if (mode == DRM_MODE_DPMS_ON) - oaktrail_lvds_set_power(dev, gma_encoder, true); + gma_lvds_set_power(dev, true); else - oaktrail_lvds_set_power(dev, gma_encoder, false); + gma_lvds_set_power(dev, false); /* XXX: We never power down the LVDS pairs. */ } @@ -158,7 +121,6 @@ static void oaktrail_lvds_prepare(struct drm_encoder *encoder) { struct drm_device *dev = encoder->dev; struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct gma_encoder *gma_encoder = to_gma_encoder(encoder); struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; if (!gma_power_begin(dev, true)) @@ -167,7 +129,7 @@ static void oaktrail_lvds_prepare(struct drm_encoder *encoder) mode_dev->saveBLC_PWM_CTL = REG_READ(BLC_PWM_CTL); mode_dev->backlight_duty_cycle = (mode_dev->saveBLC_PWM_CTL & BACKLIGHT_DUTY_CYCLE_MASK); - oaktrail_lvds_set_power(dev, gma_encoder, false); + gma_lvds_set_power(dev, false); gma_power_end(dev); } @@ -175,12 +137,11 @@ static void oaktrail_lvds_commit(struct drm_encoder *encoder) { struct drm_device *dev = encoder->dev; struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct gma_encoder *gma_encoder = to_gma_encoder(encoder); struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; if (mode_dev->backlight_duty_cycle == 0) mode_dev->backlight_duty_cycle = gma_lvds_get_max_backlight(dev); - oaktrail_lvds_set_power(dev, gma_encoder, true); + gma_lvds_set_power(dev, true); } static const struct drm_encoder_helper_funcs oaktrail_lvds_helper_funcs = { diff --git a/drivers/gpu/drm/gma500/psb_drv.h b/drivers/gpu/drm/gma500/psb_drv.h index 0ea3d23575f3..2789ae9efe3c 100644 --- a/drivers/gpu/drm/gma500/psb_drv.h +++ b/drivers/gpu/drm/gma500/psb_drv.h @@ -601,7 +601,6 @@ struct psb_ops { void (*update_wm)(struct drm_device *dev, struct drm_crtc *crtc); void (*disable_sr)(struct drm_device *dev); - void (*lvds_bl_power)(struct drm_device *dev, bool on); #ifdef CONFIG_BACKLIGHT_CLASS_DEVICE /* Backlight */ int (*backlight_init)(struct drm_device *dev); diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index a304f840b127..06f1bd2250dd 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -148,49 +148,14 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -/* - * Sets the power state for the panel. - */ -static void psb_intel_lvds_set_power(struct drm_device *dev, bool on) -{ - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; - u32 pp_status; - - if (!gma_power_begin(dev, true)) { - dev_err(dev->dev, "set power, chip off!\n"); - return; - } - - if (on) { - REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) | - POWER_TARGET_ON); - do { - pp_status = REG_READ(PP_STATUS); - } while ((pp_status & PP_ON) == 0); - - gma_lvds_set_backlight(dev, mode_dev->backlight_duty_cycle); - } else { - gma_lvds_set_backlight(dev, 0); - - REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) & - ~POWER_TARGET_ON); - do { - pp_status = REG_READ(PP_STATUS); - } while (pp_status & PP_ON); - } - - gma_power_end(dev); -} - static void psb_intel_lvds_encoder_dpms(struct drm_encoder *encoder, int mode) { struct drm_device *dev = encoder->dev; if (mode == DRM_MODE_DPMS_ON) - psb_intel_lvds_set_power(dev, true); + gma_lvds_set_power(dev, true); else - psb_intel_lvds_set_power(dev, false); + gma_lvds_set_power(dev, false); /* XXX: We never power down the LVDS pairs. */ } @@ -378,7 +343,7 @@ static void psb_intel_lvds_prepare(struct drm_encoder *encoder) mode_dev->backlight_duty_cycle = (mode_dev->saveBLC_PWM_CTL & BACKLIGHT_DUTY_CYCLE_MASK); - psb_intel_lvds_set_power(dev, false); + gma_lvds_set_power(dev, false); gma_power_end(dev); } @@ -393,7 +358,7 @@ static void psb_intel_lvds_commit(struct drm_encoder *encoder) mode_dev->backlight_duty_cycle = gma_lvds_get_max_backlight(dev); - psb_intel_lvds_set_power(dev, true); + gma_lvds_set_power(dev, true); } static void psb_intel_lvds_mode_set(struct drm_encoder *encoder, From patchwork Mon Jun 13 12:34:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879429 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2503FCCA47B for ; Mon, 13 Jun 2022 12:34:51 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8DFA410E74F; Mon, 13 Jun 2022 12:34:49 +0000 (UTC) Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com [IPv6:2a00:1450:4864:20::234]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9CF0610E5CD for ; Mon, 13 Jun 2022 12:34:45 +0000 (UTC) Received: by mail-lj1-x234.google.com with SMTP id e4so6044776ljl.1 for ; Mon, 13 Jun 2022 05:34:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=z/NsnDAreuXQ5Iu2HGVJ9pVIrEvXlPFZYRu4M8bK+lE=; b=ETKxjP4YzsCukzs5vgmGMix80Q6vD/6nKukveV1iM/H+o66nTNwtCvKwEquoPlXUp4 BoG+vGz5hMNUoeTCms7yZLgxheRcbdlVl8CjDSSEQR9HokX2hVqNHgYi1pKWe98WfLFy jvxeoLdnFy6SRrHXfLpRQeoIioMFJLLl5p4eO2MiMcdvGWj07nm6A7ZzUKz+hhBdCZ7D INldoQD4CeqvtIEPgpnWy3hDq/KEwmVyhhFv0UPpIA+Z+JYj2/CVWHvGW5DRKydMRFy9 N3FJxDQC4rw3/VgtdqnCi/zyTTNwPUoO7IkmCO89WUlJ6NUuIDOWCdLKAtL7qf6jeaFl x19Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=z/NsnDAreuXQ5Iu2HGVJ9pVIrEvXlPFZYRu4M8bK+lE=; b=PADVcfcdmKOSIxhrgtaozBDuFeKQNtZRVHxGo6TkLg1tL1AZFXYDLzWADVB3bHLyqZ jhZ82DX+GNxWFzTB1j9MxD+MtF0fhfaKqMXYu+zaL/ZmEskGw/LJPj5q9oDf16qhuaPO xrW6Kt8I9Op/eV7iI1fMasHjuJ8SciqtHQL4WDpC5lVuqcIHGlgv1I9AjTAE1gOBggC7 NGwJDcLX1mh/gQbWp3JE33PaLoRWqirrYfDDCQG5HtoXsqsQL8weiMH9v8fz7YSoZRN6 3UwPhtvdDzSIa9RP3JTdKkbrsup50R+nrEJct0OKgJA0tNjXYWVz41+bHedg+B4AiBzJ bB8w== X-Gm-Message-State: AOAM533wB3OZ06QyvultI+i+CqhS59Dz5gduyjLN1QyHFq/zxP1SpyON RsNeOjmaHNGU3CewdzEdno0gIdJibgY= X-Google-Smtp-Source: ABdhPJwSb5LgVwthoAeAM3BO2EgqoZcTkzlHls9Y9M6+ZTeHFdO96r1i/nHCpylopJp/tkAShoWOxg== X-Received: by 2002:a2e:968c:0:b0:258:fd7b:43ae with SMTP id q12-20020a2e968c000000b00258fd7b43aemr4563774lji.35.1655123683594; Mon, 13 Jun 2022 05:34:43 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:43 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 04/19] drm/gma500: Unify *_lvds_mode_valid() Date: Mon, 13 Jun 2022 14:34:21 +0200 Message-Id: <20220613123436.15185-5-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These functions mostly do the same thing so unify them into one. Skip the INTEL_OUTPUT_MIPI2 code since we don't have that output type. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 27 +--------------------- drivers/gpu/drm/gma500/gma_lvds.c | 25 +++++++++++++++++++++ drivers/gpu/drm/gma500/gma_lvds.h | 2 ++ drivers/gpu/drm/gma500/psb_intel_drv.h | 2 -- drivers/gpu/drm/gma500/psb_intel_lvds.c | 30 +------------------------ 5 files changed, 29 insertions(+), 57 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index 7bf883bb8104..968d627e23d1 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -71,31 +71,6 @@ static void cdv_intel_lvds_restore(struct drm_connector *connector) { } -static enum drm_mode_status cdv_intel_lvds_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode) -{ - struct drm_device *dev = connector->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct drm_display_mode *fixed_mode = - dev_priv->mode_dev.panel_fixed_mode; - - /* just in case */ - if (mode->flags & DRM_MODE_FLAG_DBLSCAN) - return MODE_NO_DBLESCAN; - - /* just in case */ - if (mode->flags & DRM_MODE_FLAG_INTERLACE) - return MODE_NO_INTERLACE; - - if (fixed_mode) { - if (mode->hdisplay > fixed_mode->hdisplay) - return MODE_PANEL; - if (mode->vdisplay > fixed_mode->vdisplay) - return MODE_PANEL; - } - return MODE_OK; -} - static bool cdv_intel_lvds_mode_fixup(struct drm_encoder *encoder, const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) @@ -321,7 +296,7 @@ static const struct drm_encoder_helper_funcs static const struct drm_connector_helper_funcs cdv_intel_lvds_connector_helper_funcs = { .get_modes = cdv_intel_lvds_get_modes, - .mode_valid = cdv_intel_lvds_mode_valid, + .mode_valid = gma_lvds_mode_valid, .best_encoder = gma_best_encoder, }; diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index 11efbb14b55c..c36815493366 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -93,3 +93,28 @@ void gma_lvds_set_power(struct drm_device *dev, bool on) gma_power_end(dev); } +enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) +{ + struct drm_device *dev = connector->dev; + struct drm_psb_private *dev_priv = to_drm_psb_private(dev); + struct drm_display_mode *fixed_mode = + dev_priv->mode_dev.panel_fixed_mode; + + /* just in case */ + if (mode->flags & DRM_MODE_FLAG_DBLSCAN) + return MODE_NO_DBLESCAN; + + /* just in case */ + if (mode->flags & DRM_MODE_FLAG_INTERLACE) + return MODE_NO_INTERLACE; + + if (fixed_mode) { + if (mode->hdisplay > fixed_mode->hdisplay) + return MODE_PANEL; + if (mode->vdisplay > fixed_mode->vdisplay) + return MODE_PANEL; + } + return MODE_OK; +} + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index 477d3b5005f7..6b4d8a024da1 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -9,5 +9,7 @@ u32 gma_lvds_get_max_backlight(struct drm_device *dev); void gma_lvds_set_power(struct drm_device *dev, bool on); +enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode); #endif diff --git a/drivers/gpu/drm/gma500/psb_intel_drv.h b/drivers/gpu/drm/gma500/psb_intel_drv.h index 8ccba116821b..db824aa6b589 100644 --- a/drivers/gpu/drm/gma500/psb_intel_drv.h +++ b/drivers/gpu/drm/gma500/psb_intel_drv.h @@ -228,8 +228,6 @@ extern int intelfb_remove(struct drm_device *dev, extern bool psb_intel_lvds_mode_fixup(struct drm_encoder *encoder, const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode); -extern enum drm_mode_status psb_intel_lvds_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode); extern int psb_intel_lvds_set_property(struct drm_connector *connector, struct drm_property *property, uint64_t value); diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index 06f1bd2250dd..c88697a805e0 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -239,34 +239,6 @@ static void psb_intel_lvds_restore(struct drm_connector *connector) } } -enum drm_mode_status psb_intel_lvds_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode) -{ - struct drm_psb_private *dev_priv = to_drm_psb_private(connector->dev); - struct gma_encoder *gma_encoder = gma_attached_encoder(connector); - struct drm_display_mode *fixed_mode = - dev_priv->mode_dev.panel_fixed_mode; - - if (gma_encoder->type == INTEL_OUTPUT_MIPI2) - fixed_mode = dev_priv->mode_dev.panel_fixed_mode2; - - /* just in case */ - if (mode->flags & DRM_MODE_FLAG_DBLSCAN) - return MODE_NO_DBLESCAN; - - /* just in case */ - if (mode->flags & DRM_MODE_FLAG_INTERLACE) - return MODE_NO_INTERLACE; - - if (fixed_mode) { - if (mode->hdisplay > fixed_mode->hdisplay) - return MODE_PANEL; - if (mode->vdisplay > fixed_mode->vdisplay) - return MODE_PANEL; - } - return MODE_OK; -} - bool psb_intel_lvds_mode_fixup(struct drm_encoder *encoder, const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) @@ -509,7 +481,7 @@ static const struct drm_encoder_helper_funcs psb_intel_lvds_helper_funcs = { const struct drm_connector_helper_funcs psb_intel_lvds_connector_helper_funcs = { .get_modes = psb_intel_lvds_get_modes, - .mode_valid = psb_intel_lvds_mode_valid, + .mode_valid = gma_lvds_mode_valid, .best_encoder = gma_best_encoder, }; From patchwork Mon Jun 13 12:34:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879431 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6DB55C433EF for ; Mon, 13 Jun 2022 12:34:55 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EFE3310E5CD; Mon, 13 Jun 2022 12:34:53 +0000 (UTC) Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com [IPv6:2a00:1450:4864:20::22b]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9DC3510E5CD for ; Mon, 13 Jun 2022 12:34:47 +0000 (UTC) Received: by mail-lj1-x22b.google.com with SMTP id h23so6029549ljl.3 for ; Mon, 13 Jun 2022 05:34:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6GSNzCiLffYRBANekLEJ1I/GkIfJ+45nbu4qh096sNQ=; b=MIJezlnLISiXMgdpuAkyEKFzWxrIcnd3lXY6WGibovEdK+7bISNIjFHhl3+VV6HkO/ MVRpHqXvOZVn5Cvm/fVyaEUpU9zGG7/wHaIrg17/parOgD22pmXeAIE+xIA+xYCuBx/I rAp2RjUTn/fWHApVgzQ5K51KF50oUDMOnTp2vA2V8tWn1jHzXA7gMmB806XTnYVyfcgf /zgcUBfbiwVla/PMG8LtO9Axpm3lDplSZWLQsZCu4HiixBP4CB5Pz0Ej5k/UvcJuz/8D w4pyocsUfDzZ3wvc4KzpVfZfYBEUhJypyyo6cJokbfhVSUgD2H+YyxINfr/D0jUrTDTX UtCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6GSNzCiLffYRBANekLEJ1I/GkIfJ+45nbu4qh096sNQ=; b=G/Bjxen6dhZDAFdqFtm8ouEfOYCN69lzkifYFbmHG99Yb6/bV5u+ltCqF9lWcg1s/r F2rrySJKYTAhRFYhjwzRZyRdTBusZY6RV2JcOxqVwaqpY6Pq+hqemETb9i/IVQVpezSk YtL/RNUp+/Z7zwGnkGpO8HiiB6Q477yTxOndpTCBgidlziHIn5STgVepU0VBrmHBtmWJ WgDOn/4NSoef6cwhPnd9RIhVfpOaGqj+18LnvzfztrIE0Y3pCOggoJR1i/j301UjrC7v 9drA9zi0el1/SXj9tzhm1rLyD/ucj9h4B4p0AeyiuPH8pFS+WslKIkPr/o93pK5ZXNCh Kx1g== X-Gm-Message-State: AOAM530g38J7pW7XeOQO/WFWukBm7/re8KOqi5oWgEDEHV1jmVqtzbak VvJD0dki3NnIKonmJWFxvAFc1ERoJ4w= X-Google-Smtp-Source: ABdhPJwoy34enJMhj5bHgnAD0mB1+BkcIQKg3UjstmfBEALb4jTbc4Ssz0oNOiaHK6w3eih93lawjg== X-Received: by 2002:a05:651c:513:b0:257:c12:b93b with SMTP id o19-20020a05651c051300b002570c12b93bmr12521758ljp.88.1655123685477; Mon, 13 Jun 2022 05:34:45 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:44 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 05/19] drm/gma500: Unify *_lvds_encoder_dpms() Date: Mon, 13 Jun 2022 14:34:22 +0200 Message-Id: <20220613123436.15185-6-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These functions are identical so unify them into one. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 12 +----------- drivers/gpu/drm/gma500/gma_lvds.c | 11 +++++++++++ drivers/gpu/drm/gma500/gma_lvds.h | 1 + drivers/gpu/drm/gma500/oaktrail_lvds.c | 14 +------------- drivers/gpu/drm/gma500/psb_intel_lvds.c | 14 +------------- 5 files changed, 15 insertions(+), 37 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index 968d627e23d1..59d30fa0eb53 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -53,16 +53,6 @@ struct cdv_intel_lvds_priv { uint32_t saveBLC_PWM_CTL; }; -static void cdv_intel_lvds_encoder_dpms(struct drm_encoder *encoder, int mode) -{ - struct drm_device *dev = encoder->dev; - if (mode == DRM_MODE_DPMS_ON) - gma_lvds_set_power(dev, true); - else - gma_lvds_set_power(dev, false); - /* XXX: We never power down the LVDS pairs. */ -} - static void cdv_intel_lvds_save(struct drm_connector *connector) { } @@ -286,7 +276,7 @@ static int cdv_intel_lvds_set_property(struct drm_connector *connector, static const struct drm_encoder_helper_funcs cdv_intel_lvds_helper_funcs = { - .dpms = cdv_intel_lvds_encoder_dpms, + .dpms = gma_lvds_encoder_dpms, .mode_fixup = cdv_intel_lvds_mode_fixup, .prepare = cdv_intel_lvds_prepare, .mode_set = cdv_intel_lvds_mode_set, diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index c36815493366..fb8f8bb599eb 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -118,3 +118,14 @@ enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector, return MODE_OK; } +void gma_lvds_encoder_dpms(struct drm_encoder *encoder, int mode) +{ + struct drm_device *dev = encoder->dev; + + if (mode == DRM_MODE_DPMS_ON) + gma_lvds_set_power(dev, true); + else + gma_lvds_set_power(dev, false); + /* XXX: We never power down the LVDS pairs. */ +} + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index 6b4d8a024da1..3babb522ee84 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -11,5 +11,6 @@ u32 gma_lvds_get_max_backlight(struct drm_device *dev); void gma_lvds_set_power(struct drm_device *dev, bool on); enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode); +void gma_lvds_encoder_dpms(struct drm_encoder *encoder, int mode); #endif diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c b/drivers/gpu/drm/gma500/oaktrail_lvds.c index 9634807e4d8c..00ec4fea4c12 100644 --- a/drivers/gpu/drm/gma500/oaktrail_lvds.c +++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c @@ -30,18 +30,6 @@ #define MRST_BLC_MAX_PWM_REG_FREQ 0xFFFF #define BRIGHTNESS_MAX_LEVEL 100 -static void oaktrail_lvds_dpms(struct drm_encoder *encoder, int mode) -{ - struct drm_device *dev = encoder->dev; - - if (mode == DRM_MODE_DPMS_ON) - gma_lvds_set_power(dev, true); - else - gma_lvds_set_power(dev, false); - - /* XXX: We never power down the LVDS pairs. */ -} - static void oaktrail_lvds_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) @@ -145,7 +133,7 @@ static void oaktrail_lvds_commit(struct drm_encoder *encoder) } static const struct drm_encoder_helper_funcs oaktrail_lvds_helper_funcs = { - .dpms = oaktrail_lvds_dpms, + .dpms = gma_lvds_encoder_dpms, .mode_fixup = psb_intel_lvds_mode_fixup, .prepare = oaktrail_lvds_prepare, .mode_set = oaktrail_lvds_mode_set, diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index c88697a805e0..2470ab0e1e0e 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -148,18 +148,6 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -static void psb_intel_lvds_encoder_dpms(struct drm_encoder *encoder, int mode) -{ - struct drm_device *dev = encoder->dev; - - if (mode == DRM_MODE_DPMS_ON) - gma_lvds_set_power(dev, true); - else - gma_lvds_set_power(dev, false); - - /* XXX: We never power down the LVDS pairs. */ -} - static void psb_intel_lvds_save(struct drm_connector *connector) { struct drm_device *dev = connector->dev; @@ -471,7 +459,7 @@ int psb_intel_lvds_set_property(struct drm_connector *connector, } static const struct drm_encoder_helper_funcs psb_intel_lvds_helper_funcs = { - .dpms = psb_intel_lvds_encoder_dpms, + .dpms = gma_lvds_encoder_dpms, .mode_fixup = psb_intel_lvds_mode_fixup, .prepare = psb_intel_lvds_prepare, .mode_set = psb_intel_lvds_mode_set, From patchwork Mon Jun 13 12:34:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879430 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D079FC43334 for ; Mon, 13 Jun 2022 12:34:52 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C921510E752; Mon, 13 Jun 2022 12:34:49 +0000 (UTC) Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8A30610E5CD for ; Mon, 13 Jun 2022 12:34:48 +0000 (UTC) Received: by mail-lf1-x130.google.com with SMTP id t25so8591106lfg.7 for ; Mon, 13 Jun 2022 05:34:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=P94lshXWehyxnVEtahyQ4jexFcrvEQPySe8lL7qMBNQ=; b=CeBb5/98aD7vTiw8RyvpqrWC7kZ5IlcxDNs6dU6xQWaPHu8IB5dlpQoB8rcwyHv077 UmBTfvqG6VSdsmYRTw40UkFwBePXxH4qv1IMJqQ20PkUaw9TQXWoqrpACZYPiD5XYMW5 vq+1/1oGwDD180gBKUF9QqmA7bf+M4udqsnahclL8F2oImflFmE2GNGVH6jLE4ePGmnw Rn03sTuhuFa2szoUa+Czv4Vsoc3ucxBth2hyP0Nrg7fxzhU+Xh4ZfpePy9zz4J1Mf99O 0J7E51380Qzp9PtDgc4uy4R9uEXW+jSxPpBrwLrS6odFSCzTl1UdJ8dHQjLPKjfsGMX2 MprA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=P94lshXWehyxnVEtahyQ4jexFcrvEQPySe8lL7qMBNQ=; b=SKABOsWMEH4KCjwUnAZUCq0OUTNIoais04Swov+9br6O1Yutr/khZbiTz8cTEoz9V9 KLRrkBfPxw0fVXhB8n41yFjtARfwEROaHirgC0Aj2iErNYtXz+kKRmbcT7npgcztAaHH 91hq5glJ0EZMj/oHHUSTHDkZoMqVkmm71YjOMj4wqwjukzBJ8nQxcTy5sNTIvQfZQ01G MoEDA8YkT6aafE4de2/U97WjvpntMVltdb5H0pwLFi0jbf4pWOXalsel2PT8iJS7BJCH J7DxrIcvwgN5K0Qb+aGlSIX8mV/ud5b1GDQWr3CzHaE6PPHLKYOAMP8KdYMK/8SQy50M ztSQ== X-Gm-Message-State: AOAM5327WFiV/Nf4M5z8x7kgnI9ZrBaoSj+3S8kwUFtWYs173fI6z1sH Pat6MReE9J8xS3s5epJ4uROO7qJmZGE= X-Google-Smtp-Source: ABdhPJz69m3snq560VWdZrdG02iqZCJ6zdVNr1e/QlTSUZHfdkI8ndD/Hcnl7KLdYdevT5tKskynmQ== X-Received: by 2002:a05:6512:b95:b0:479:65bd:ac2f with SMTP id b21-20020a0565120b9500b0047965bdac2fmr18734870lfv.445.1655123686400; Mon, 13 Jun 2022 05:34:46 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:45 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 06/19] drm/gma500: Unify *_intel_lvds_save() Date: Mon, 13 Jun 2022 14:34:23 +0200 Message-Id: <20220613123436.15185-7-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Cedarview never implemented this so use the Poulsbo version for both. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 6 +--- drivers/gpu/drm/gma500/gma_lvds.c | 38 +++++++++++++++++++++++ drivers/gpu/drm/gma500/gma_lvds.h | 1 + drivers/gpu/drm/gma500/psb_intel_lvds.c | 40 +------------------------ 4 files changed, 41 insertions(+), 44 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index 59d30fa0eb53..777eb7cf7d7f 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -53,10 +53,6 @@ struct cdv_intel_lvds_priv { uint32_t saveBLC_PWM_CTL; }; -static void cdv_intel_lvds_save(struct drm_connector *connector) -{ -} - static void cdv_intel_lvds_restore(struct drm_connector *connector) { } @@ -398,7 +394,7 @@ void cdv_intel_lvds_init(struct drm_device *dev, gma_encoder->dev_priv = lvds_priv; connector = &gma_connector->base; - gma_connector->save = cdv_intel_lvds_save; + gma_connector->save = gma_lvds_save; gma_connector->restore = cdv_intel_lvds_restore; encoder = &gma_encoder->base; diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index fb8f8bb599eb..bd08ed049c5e 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -129,3 +129,41 @@ void gma_lvds_encoder_dpms(struct drm_encoder *encoder, int mode) /* XXX: We never power down the LVDS pairs. */ } +void gma_lvds_save(struct drm_connector *connector) +{ + struct drm_device *dev = connector->dev; + struct drm_psb_private *dev_priv = to_drm_psb_private(dev); + struct gma_encoder *gma_encoder = gma_attached_encoder(connector); + struct psb_intel_lvds_priv *lvds_priv = + (struct psb_intel_lvds_priv *)gma_encoder->dev_priv; + + lvds_priv->savePP_ON = REG_READ(LVDSPP_ON); + lvds_priv->savePP_OFF = REG_READ(LVDSPP_OFF); + lvds_priv->saveLVDS = REG_READ(LVDS); + lvds_priv->savePP_CONTROL = REG_READ(PP_CONTROL); + lvds_priv->savePP_CYCLE = REG_READ(PP_CYCLE); + /*lvds_priv->savePP_DIVISOR = REG_READ(PP_DIVISOR);*/ + lvds_priv->saveBLC_PWM_CTL = REG_READ(BLC_PWM_CTL); + lvds_priv->savePFIT_CONTROL = REG_READ(PFIT_CONTROL); + lvds_priv->savePFIT_PGM_RATIOS = REG_READ(PFIT_PGM_RATIOS); + + /*TODO: move backlight_duty_cycle to psb_intel_lvds_priv*/ + dev_priv->backlight_duty_cycle = (dev_priv->regs.saveBLC_PWM_CTL & + BACKLIGHT_DUTY_CYCLE_MASK); + + /* + * If the light is off at server startup, + * just make it full brightness + */ + if (dev_priv->backlight_duty_cycle == 0) + dev_priv->backlight_duty_cycle = gma_lvds_get_max_backlight(dev); + + dev_dbg(dev->dev, "(0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x)\n", + lvds_priv->savePP_ON, + lvds_priv->savePP_OFF, + lvds_priv->saveLVDS, + lvds_priv->savePP_CONTROL, + lvds_priv->savePP_CYCLE, + lvds_priv->saveBLC_PWM_CTL); +} + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index 3babb522ee84..52422986be1e 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -12,5 +12,6 @@ void gma_lvds_set_power(struct drm_device *dev, bool on); enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode); void gma_lvds_encoder_dpms(struct drm_encoder *encoder, int mode); +void gma_lvds_save(struct drm_connector *connector); #endif diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index 2470ab0e1e0e..c00b00d70a30 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -148,44 +148,6 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -static void psb_intel_lvds_save(struct drm_connector *connector) -{ - struct drm_device *dev = connector->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct gma_encoder *gma_encoder = gma_attached_encoder(connector); - struct psb_intel_lvds_priv *lvds_priv = - (struct psb_intel_lvds_priv *)gma_encoder->dev_priv; - - lvds_priv->savePP_ON = REG_READ(LVDSPP_ON); - lvds_priv->savePP_OFF = REG_READ(LVDSPP_OFF); - lvds_priv->saveLVDS = REG_READ(LVDS); - lvds_priv->savePP_CONTROL = REG_READ(PP_CONTROL); - lvds_priv->savePP_CYCLE = REG_READ(PP_CYCLE); - /*lvds_priv->savePP_DIVISOR = REG_READ(PP_DIVISOR);*/ - lvds_priv->saveBLC_PWM_CTL = REG_READ(BLC_PWM_CTL); - lvds_priv->savePFIT_CONTROL = REG_READ(PFIT_CONTROL); - lvds_priv->savePFIT_PGM_RATIOS = REG_READ(PFIT_PGM_RATIOS); - - /*TODO: move backlight_duty_cycle to psb_intel_lvds_priv*/ - dev_priv->backlight_duty_cycle = (dev_priv->regs.saveBLC_PWM_CTL & - BACKLIGHT_DUTY_CYCLE_MASK); - - /* - * If the light is off at server startup, - * just make it full brightness - */ - if (dev_priv->backlight_duty_cycle == 0) - dev_priv->backlight_duty_cycle = gma_lvds_get_max_backlight(dev); - - dev_dbg(dev->dev, "(0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x)\n", - lvds_priv->savePP_ON, - lvds_priv->savePP_OFF, - lvds_priv->saveLVDS, - lvds_priv->savePP_CONTROL, - lvds_priv->savePP_CYCLE, - lvds_priv->saveBLC_PWM_CTL); -} - static void psb_intel_lvds_restore(struct drm_connector *connector) { struct drm_device *dev = connector->dev; @@ -526,7 +488,7 @@ void psb_intel_lvds_init(struct drm_device *dev, gma_encoder->dev_priv = lvds_priv; connector = &gma_connector->base; - gma_connector->save = psb_intel_lvds_save; + gma_connector->save = gma_lvds_save; gma_connector->restore = psb_intel_lvds_restore; /* Set up the DDC bus. */ From patchwork Mon Jun 13 12:34:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879435 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8D47EC43334 for ; Mon, 13 Jun 2022 12:35:02 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D55BC10E765; Mon, 13 Jun 2022 12:34:54 +0000 (UTC) Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com [IPv6:2a00:1450:4864:20::22a]) by gabe.freedesktop.org (Postfix) with ESMTPS id EF1BE10E75C for ; Mon, 13 Jun 2022 12:34:50 +0000 (UTC) Received: by mail-lj1-x22a.google.com with SMTP id s10so5982778ljh.12 for ; Mon, 13 Jun 2022 05:34:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tMby9LBRj3OoFVfpfOF/v48SBQIdpuQZE3MuX9kabgU=; b=LnmtaLaRyky4WXSnoAXP7yID0yWsJS5g8yuyXAFbFGxF9ZCCvDNzegZucBK5fBqkfY +Y7ABpue5eC4XG2zmde853RUerL1VUoiv6ojPVTe/4oouNqa/qvKD76L8ywDfSwmXTkH 1pdXOY8sxcBASmcVlDzhhUl47ug/8J6bFegb53Dr/aJip1cKZlanhQr4HeYAopjAps7m qDuuli4bZcvWBHPcq/7bZYyPD1kfInowMHYF0G7hAyJYVJGCquiwMbNcoxfRC6VI4d6o Ac0l0XWLDeWozkj4R3wSTY0Ko2/y6ceht9Byftd3YRQtJTSw3cSwpu+2Snhyu+grS8fI 7tjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tMby9LBRj3OoFVfpfOF/v48SBQIdpuQZE3MuX9kabgU=; b=CoPhbJDuBaUqOJJgYSeSB4pbXLjJ08Bzq9x52fMlC80rjEFC0MMgzVTEL73LZl1kVS ruWzKlJEeMI2bpNi5ccxAEtTkeW4pzqeTAl4/Dz0Vk0+6+2Rj4ww38XwPkFFIk5nABB2 wC+V+vInqJ9i9tWU65zP7AknYg/6XPZqQU3IxiyJ0mrlOcvPJexRxxTGy5GaLpdR0+zH cdGOTVEV3/66dHsdWZ/aqQplg85fvK+AuDoQQExeuOc4f12a5mkvrwpRDj2QTYfJcD+w iCz1g4bXjrzb+Lpo1z/16XhynUcTaUcNSf8zzpry7ruLItwamf1pR4UOAKq+wCUWZGMW NkGw== X-Gm-Message-State: AOAM532xZ9Oxg9tXyWTDfLlKMjcyVf2yo09ebT62UH24ON7DxTbFXcsA 7A8ewwa3L9hCpb0Do162X5Wjofyy40I= X-Google-Smtp-Source: ABdhPJxn0geumypZMTGOUJkfV49Fj5Ua/bACpirmHUsYTjee8Zhn38f02SwaS63lIcoYpcmkj63H4w== X-Received: by 2002:a2e:908a:0:b0:255:6799:c8d8 with SMTP id l10-20020a2e908a000000b002556799c8d8mr33185603ljg.147.1655123687704; Mon, 13 Jun 2022 05:34:47 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:47 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 07/19] drm/gma500: Unify struct *_intel_lvds_priv Date: Mon, 13 Jun 2022 14:34:24 +0200 Message-Id: <20220613123436.15185-8-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These structs are similar enough to be unified. This will allow unifying the lvds functions that access the lvds encoder private. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 18 ++---------------- drivers/gpu/drm/gma500/gma_lvds.c | 5 +++-- drivers/gpu/drm/gma500/gma_lvds.h | 16 ++++++++++++++++ drivers/gpu/drm/gma500/psb_intel_lvds.c | 24 ++++-------------------- 4 files changed, 25 insertions(+), 38 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index 777eb7cf7d7f..b0e7b680f02b 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -39,20 +39,6 @@ #define PSB_BACKLIGHT_PWM_CTL_SHIFT (16) #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE) -struct cdv_intel_lvds_priv { - /** - * Saved LVDO output states - */ - uint32_t savePP_ON; - uint32_t savePP_OFF; - uint32_t saveLVDS; - uint32_t savePP_CONTROL; - uint32_t savePP_CYCLE; - uint32_t savePFIT_CONTROL; - uint32_t savePFIT_PGM_RATIOS; - uint32_t saveBLC_PWM_CTL; -}; - static void cdv_intel_lvds_restore(struct drm_connector *connector) { } @@ -356,7 +342,7 @@ void cdv_intel_lvds_init(struct drm_device *dev, { struct gma_encoder *gma_encoder; struct gma_connector *gma_connector; - struct cdv_intel_lvds_priv *lvds_priv; + struct gma_lvds_priv *lvds_priv; struct drm_connector *connector; struct drm_encoder *encoder; struct drm_display_mode *scan; @@ -387,7 +373,7 @@ void cdv_intel_lvds_init(struct drm_device *dev, if (!gma_connector) goto err_free_encoder; - lvds_priv = kzalloc(sizeof(struct cdv_intel_lvds_priv), GFP_KERNEL); + lvds_priv = kzalloc(sizeof(*lvds_priv), GFP_KERNEL); if (!lvds_priv) goto err_free_connector; diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index bd08ed049c5e..7a81f44a40bd 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -8,6 +8,7 @@ #include "psb_intel_drv.h" #include "power.h" #include "psb_intel_reg.h" +#include "gma_lvds.h" /* * Returns the maximum level of the backlight duty cycle field. @@ -134,8 +135,8 @@ void gma_lvds_save(struct drm_connector *connector) struct drm_device *dev = connector->dev; struct drm_psb_private *dev_priv = to_drm_psb_private(dev); struct gma_encoder *gma_encoder = gma_attached_encoder(connector); - struct psb_intel_lvds_priv *lvds_priv = - (struct psb_intel_lvds_priv *)gma_encoder->dev_priv; + struct gma_lvds_priv *lvds_priv = + (struct gma_lvds_priv *)gma_encoder->dev_priv; lvds_priv->savePP_ON = REG_READ(LVDSPP_ON); lvds_priv->savePP_OFF = REG_READ(LVDSPP_OFF); diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index 52422986be1e..98ad9bc878b7 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -7,6 +7,22 @@ #ifndef _GMA_LVDS_H #define _GMA_LVDS_H +struct gma_lvds_priv { + /* + * Saved LVDO output states + */ + uint32_t savePP_ON; + uint32_t savePP_OFF; + uint32_t saveLVDS; + uint32_t savePP_CONTROL; + uint32_t savePP_CYCLE; + uint32_t savePFIT_CONTROL; + uint32_t savePFIT_PGM_RATIOS; + uint32_t saveBLC_PWM_CTL; + + struct gma_i2c_chan *i2c_bus; +}; + u32 gma_lvds_get_max_backlight(struct drm_device *dev); void gma_lvds_set_power(struct drm_device *dev, bool on); enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector, diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index c00b00d70a30..995e7aac53b9 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -37,22 +37,6 @@ #define PSB_BACKLIGHT_PWM_CTL_SHIFT (16) #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE) -struct psb_intel_lvds_priv { - /* - * Saved LVDO output states - */ - uint32_t savePP_ON; - uint32_t savePP_OFF; - uint32_t saveLVDS; - uint32_t savePP_CONTROL; - uint32_t savePP_CYCLE; - uint32_t savePFIT_CONTROL; - uint32_t savePFIT_PGM_RATIOS; - uint32_t saveBLC_PWM_CTL; - - struct gma_i2c_chan *i2c_bus; -}; - /* * Set LVDS backlight level by I2C command * @@ -153,8 +137,8 @@ static void psb_intel_lvds_restore(struct drm_connector *connector) struct drm_device *dev = connector->dev; u32 pp_status; struct gma_encoder *gma_encoder = gma_attached_encoder(connector); - struct psb_intel_lvds_priv *lvds_priv = - (struct psb_intel_lvds_priv *)gma_encoder->dev_priv; + struct gma_lvds_priv *lvds_priv = + (struct gma_lvds_priv *)gma_encoder->dev_priv; dev_dbg(dev->dev, "(0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x)\n", lvds_priv->savePP_ON, @@ -455,7 +439,7 @@ void psb_intel_lvds_init(struct drm_device *dev, { struct gma_encoder *gma_encoder; struct gma_connector *gma_connector; - struct psb_intel_lvds_priv *lvds_priv; + struct gma_lvds_priv *lvds_priv; struct drm_connector *connector; struct drm_encoder *encoder; struct drm_display_mode *scan; /* *modes, *bios_mode; */ @@ -479,7 +463,7 @@ void psb_intel_lvds_init(struct drm_device *dev, goto err_free_encoder; } - lvds_priv = kzalloc(sizeof(struct psb_intel_lvds_priv), GFP_KERNEL); + lvds_priv = kzalloc(sizeof(*lvds_priv), GFP_KERNEL); if (!lvds_priv) { dev_err(dev->dev, "LVDS private allocation error\n"); goto err_free_connector; From patchwork Mon Jun 13 12:34:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879433 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 04F20C43334 for ; Mon, 13 Jun 2022 12:34:59 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6603E10E75B; Mon, 13 Jun 2022 12:34:54 +0000 (UTC) Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com [IPv6:2a00:1450:4864:20::22c]) by gabe.freedesktop.org (Postfix) with ESMTPS id 17E3F10E75A for ; Mon, 13 Jun 2022 12:34:52 +0000 (UTC) Received: by mail-lj1-x22c.google.com with SMTP id g25so6046899ljm.2 for ; Mon, 13 Jun 2022 05:34:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nK1csNomReO7CagJqV6em1da0WscC0SyD8Abju5z3Hk=; b=iVz0wSteJ7EhrfvSAyqUEC+5ZQqGW/JCcim18FC2j7p4hL5EeHvAE8Z01xSFv28ay7 rBRPMEm45q/KXrBuJz3UdVSQocWcU8sNb8jyIoLWp6PH/4/sNVdf69uzKOT3sTyBarBu enZhlI5vSZvUL31xp15L48szpNSTcXfL6gCd27bTaVdjpbIfVEvOzRiPGY+n6VLjiSln 7dIQZZum0XVIns2ImatAgIuj7xNmv1e/lbfT9V0GHn4BJ+vylyEs1ZiVEMkxUAAE7tA3 1VmEDjetf2keF/JFXSjQ7dQzT9X2rmu/YLmrxQspdIIA/gfKh659+QDhATBHDiJSubZh VUAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nK1csNomReO7CagJqV6em1da0WscC0SyD8Abju5z3Hk=; b=tuqf2oflaK17x+SyifnkdWoqcRct5ASYzQPXCO0plpjpzlWty6BZmdW8LyVSBGEZsy a6oFTWXym4CGq4hiyza27ekP3aCcgXfhJNisYiRCa1MwR3gneGzyU1iIf/1c1uO6JTGh HUa4vM0zAqB6a92c8gtY94XAs3nkJ1F8iVM0MheXJ3x7qFJl9cfymIZcHChsQJpqlwqV +cw6aUR9zFSOC0tK8abUcX+8L4Di481OFjr1Bwj77/z/uV5OSKcRPxpHuXi2nSvnn2HJ fjASTNfK28YsFaXIO646BT7mn3PL4NZ8N55gkKWnSrxcB/P+xhr1MStD7Tz3IzWXA2b5 QHSw== X-Gm-Message-State: AOAM530SJdQ9xS6VBVA5hrjW9ogAe2eFF5MQd+qgQc7pHEsbTywl9mT6 YilURZDkzTkNoqQJ81270ZHOLUGr+4U= X-Google-Smtp-Source: ABdhPJyACaM0J1PpyuZhKHlolFAdvZQUIaNIp/9M/Kycv+eHWYub2MUhLL9h/dE48Uz77nYfdQv6lA== X-Received: by 2002:a2e:944a:0:b0:24f:10bd:b7e8 with SMTP id o10-20020a2e944a000000b0024f10bdb7e8mr70412612ljh.238.1655123690008; Mon, 13 Jun 2022 05:34:50 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:49 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 08/19] drm/gma500: Unify *_intel_lvds_restore() Date: Mon, 13 Jun 2022 14:34:25 +0200 Message-Id: <20220613123436.15185-9-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Cedarview never implemented this so use the Poulsbo version for both. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 6 +--- drivers/gpu/drm/gma500/gma_lvds.c | 41 +++++++++++++++++++++++ drivers/gpu/drm/gma500/gma_lvds.h | 1 + drivers/gpu/drm/gma500/psb_intel_lvds.c | 43 +------------------------ 4 files changed, 44 insertions(+), 47 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index b0e7b680f02b..61dc65964e21 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -39,10 +39,6 @@ #define PSB_BACKLIGHT_PWM_CTL_SHIFT (16) #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE) -static void cdv_intel_lvds_restore(struct drm_connector *connector) -{ -} - static bool cdv_intel_lvds_mode_fixup(struct drm_encoder *encoder, const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) @@ -381,7 +377,7 @@ void cdv_intel_lvds_init(struct drm_device *dev, connector = &gma_connector->base; gma_connector->save = gma_lvds_save; - gma_connector->restore = cdv_intel_lvds_restore; + gma_connector->restore = gma_lvds_restore; encoder = &gma_encoder->base; /* Set up the DDC bus. */ diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index 7a81f44a40bd..19679ee36062 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -168,3 +168,44 @@ void gma_lvds_save(struct drm_connector *connector) lvds_priv->saveBLC_PWM_CTL); } +void gma_lvds_restore(struct drm_connector *connector) +{ + struct drm_device *dev = connector->dev; + u32 pp_status; + struct gma_encoder *gma_encoder = gma_attached_encoder(connector); + struct gma_lvds_priv *lvds_priv = + (struct gma_lvds_priv *)gma_encoder->dev_priv; + + dev_dbg(dev->dev, "(0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x)\n", + lvds_priv->savePP_ON, + lvds_priv->savePP_OFF, + lvds_priv->saveLVDS, + lvds_priv->savePP_CONTROL, + lvds_priv->savePP_CYCLE, + lvds_priv->saveBLC_PWM_CTL); + + REG_WRITE(BLC_PWM_CTL, lvds_priv->saveBLC_PWM_CTL); + REG_WRITE(PFIT_CONTROL, lvds_priv->savePFIT_CONTROL); + REG_WRITE(PFIT_PGM_RATIOS, lvds_priv->savePFIT_PGM_RATIOS); + REG_WRITE(LVDSPP_ON, lvds_priv->savePP_ON); + REG_WRITE(LVDSPP_OFF, lvds_priv->savePP_OFF); + /*REG_WRITE(PP_DIVISOR, lvds_priv->savePP_DIVISOR);*/ + REG_WRITE(PP_CYCLE, lvds_priv->savePP_CYCLE); + REG_WRITE(PP_CONTROL, lvds_priv->savePP_CONTROL); + REG_WRITE(LVDS, lvds_priv->saveLVDS); + + if (lvds_priv->savePP_CONTROL & POWER_TARGET_ON) { + REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) | + POWER_TARGET_ON); + do { + pp_status = REG_READ(PP_STATUS); + } while ((pp_status & PP_ON) == 0); + } else { + REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) & + ~POWER_TARGET_ON); + do { + pp_status = REG_READ(PP_STATUS); + } while (pp_status & PP_ON); + } +} + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index 98ad9bc878b7..eee0da00a0cf 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -29,5 +29,6 @@ enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode); void gma_lvds_encoder_dpms(struct drm_encoder *encoder, int mode); void gma_lvds_save(struct drm_connector *connector); +void gma_lvds_restore(struct drm_connector *connector); #endif diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index 995e7aac53b9..6e5abb670bff 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -132,47 +132,6 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -static void psb_intel_lvds_restore(struct drm_connector *connector) -{ - struct drm_device *dev = connector->dev; - u32 pp_status; - struct gma_encoder *gma_encoder = gma_attached_encoder(connector); - struct gma_lvds_priv *lvds_priv = - (struct gma_lvds_priv *)gma_encoder->dev_priv; - - dev_dbg(dev->dev, "(0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x)\n", - lvds_priv->savePP_ON, - lvds_priv->savePP_OFF, - lvds_priv->saveLVDS, - lvds_priv->savePP_CONTROL, - lvds_priv->savePP_CYCLE, - lvds_priv->saveBLC_PWM_CTL); - - REG_WRITE(BLC_PWM_CTL, lvds_priv->saveBLC_PWM_CTL); - REG_WRITE(PFIT_CONTROL, lvds_priv->savePFIT_CONTROL); - REG_WRITE(PFIT_PGM_RATIOS, lvds_priv->savePFIT_PGM_RATIOS); - REG_WRITE(LVDSPP_ON, lvds_priv->savePP_ON); - REG_WRITE(LVDSPP_OFF, lvds_priv->savePP_OFF); - /*REG_WRITE(PP_DIVISOR, lvds_priv->savePP_DIVISOR);*/ - REG_WRITE(PP_CYCLE, lvds_priv->savePP_CYCLE); - REG_WRITE(PP_CONTROL, lvds_priv->savePP_CONTROL); - REG_WRITE(LVDS, lvds_priv->saveLVDS); - - if (lvds_priv->savePP_CONTROL & POWER_TARGET_ON) { - REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) | - POWER_TARGET_ON); - do { - pp_status = REG_READ(PP_STATUS); - } while ((pp_status & PP_ON) == 0); - } else { - REG_WRITE(PP_CONTROL, REG_READ(PP_CONTROL) & - ~POWER_TARGET_ON); - do { - pp_status = REG_READ(PP_STATUS); - } while (pp_status & PP_ON); - } -} - bool psb_intel_lvds_mode_fixup(struct drm_encoder *encoder, const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) @@ -473,7 +432,7 @@ void psb_intel_lvds_init(struct drm_device *dev, connector = &gma_connector->base; gma_connector->save = gma_lvds_save; - gma_connector->restore = psb_intel_lvds_restore; + gma_connector->restore = gma_lvds_restore; /* Set up the DDC bus. */ ddc_bus = gma_i2c_create(dev, GPIOC, "LVDSDDC_C"); From patchwork Mon Jun 13 12:34:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879434 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9FCA4C43334 for ; Mon, 13 Jun 2022 12:35:00 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0D12310E766; Mon, 13 Jun 2022 12:34:55 +0000 (UTC) Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com [IPv6:2a00:1450:4864:20::22c]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6AF1B10E5CD for ; Mon, 13 Jun 2022 12:34:53 +0000 (UTC) Received: by mail-lj1-x22c.google.com with SMTP id d19so6004319lji.10 for ; Mon, 13 Jun 2022 05:34:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hRS2IS2T9yQ8Rk51V5tCvIdVW3c/kMSg4WAyUn9Wcp4=; b=dHu8YILEe7yqgMlmLkCix9yaMMDvz9anui4i3OnFdThWT5BM3H2HvIfMNdFRQ8UCWw GClF1T+Tz1Ek8tVwCdBVGbmGmlFL3aA74Kyjqaw8bPns3LygRttWqAzNuc/9VRz2hiIl U3beFKeJ2cNTKf4xiC6V/NfxD1cqxuWyENpyKiLxdjIkfBx5NmTnVDABDYb4n9PJUlbK UGiH9rhAiwqfK2DsULohCeFPfAOHu8uSjaW1veyd7fhSPK6/mryY3Gyqil8stvIALKPe DszChrCG+Ga+hJEWkAGGuYOvYmcuy9sMcjt2HU/oGxCaS1hddLsH3n6QwkcymLGAEnZ1 AzMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hRS2IS2T9yQ8Rk51V5tCvIdVW3c/kMSg4WAyUn9Wcp4=; b=qGmAFAyryMM15GSVD9HP3XOmTVmHRo1f76T3vw0Efj53oSgxoBnPIzQiOgAILAc40j hm0VzwzADLFWE5AOoyz6CwliruqnF4r4rI8per9ZhW3ee5yWhTMl5yHHembYJhtCCPx1 J1nep6tQRtVsGrauupvGgH1CrVo/OaHj7y+O9RV2ghisK32K2YoGxm9bbszZs1MhjZfz 9p/kl1tFf3cubguF5cHCqq0VdUpzkxIDTSc9XssxHKzW4j8/1PnoaNYPn3DUmYEDozGJ LRZjBq7frdcIXPOnUm6QgmbXnE16HmK99Mi6TxpTehv0PpITaFrxQW7HjdETSJYx6G33 hQ+w== X-Gm-Message-State: AOAM532dTZifNMbpjfaF23SUPIhThSo9xAumzHVIGXgtlUIC4r1mC82f s+7Mu742F6tyzz5L64d1SguLwvo5B00= X-Google-Smtp-Source: ABdhPJwM41jZAYCgBJ3Um23y5/yYJywqyoF7f03tqKjVq7qDL/qRhLDILf9fogaR1hgXDCv5tPHTag== X-Received: by 2002:a2e:905a:0:b0:255:7fa2:4117 with SMTP id n26-20020a2e905a000000b002557fa24117mr27139560ljg.291.1655123691207; Mon, 13 Jun 2022 05:34:51 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:50 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 09/19] drm/gma500: Unify *_intel_lvds_mode_fixup() Date: Mon, 13 Jun 2022 14:34:26 +0200 Message-Id: <20220613123436.15185-10-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These functions mostly do the same thing so unify them. Change a check of !IS_MRST() to IS_PSB() to not change the behaviour for CDV. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 51 +------------------ drivers/gpu/drm/gma500/gma_lvds.c | 59 ++++++++++++++++++++++ drivers/gpu/drm/gma500/gma_lvds.h | 3 ++ drivers/gpu/drm/gma500/oaktrail_lvds.c | 2 +- drivers/gpu/drm/gma500/psb_intel_lvds.c | 65 +------------------------ 5 files changed, 65 insertions(+), 115 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index 61dc65964e21..65532308f1e7 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -39,55 +39,6 @@ #define PSB_BACKLIGHT_PWM_CTL_SHIFT (16) #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE) -static bool cdv_intel_lvds_mode_fixup(struct drm_encoder *encoder, - const struct drm_display_mode *mode, - struct drm_display_mode *adjusted_mode) -{ - struct drm_device *dev = encoder->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; - struct drm_encoder *tmp_encoder; - struct drm_display_mode *panel_fixed_mode = mode_dev->panel_fixed_mode; - - /* Should never happen!! */ - list_for_each_entry(tmp_encoder, &dev->mode_config.encoder_list, - head) { - if (tmp_encoder != encoder - && tmp_encoder->crtc == encoder->crtc) { - pr_err("Can't enable LVDS and another encoder on the same pipe\n"); - return false; - } - } - - /* - * If we have timings from the BIOS for the panel, put them in - * to the adjusted mode. The CRTC will be set up for this mode, - * with the panel scaling set up to source from the H/VDisplay - * of the original mode. - */ - if (panel_fixed_mode != NULL) { - adjusted_mode->hdisplay = panel_fixed_mode->hdisplay; - adjusted_mode->hsync_start = panel_fixed_mode->hsync_start; - adjusted_mode->hsync_end = panel_fixed_mode->hsync_end; - adjusted_mode->htotal = panel_fixed_mode->htotal; - adjusted_mode->vdisplay = panel_fixed_mode->vdisplay; - adjusted_mode->vsync_start = panel_fixed_mode->vsync_start; - adjusted_mode->vsync_end = panel_fixed_mode->vsync_end; - adjusted_mode->vtotal = panel_fixed_mode->vtotal; - adjusted_mode->clock = panel_fixed_mode->clock; - drm_mode_set_crtcinfo(adjusted_mode, - CRTC_INTERLACE_HALVE_V); - } - - /* - * XXX: It would be nice to support lower refresh rates on the - * panels to reduce power consumption, and perhaps match the - * user's requested refresh rate. - */ - - return true; -} - static void cdv_intel_lvds_prepare(struct drm_encoder *encoder) { struct drm_device *dev = encoder->dev; @@ -255,7 +206,7 @@ static int cdv_intel_lvds_set_property(struct drm_connector *connector, static const struct drm_encoder_helper_funcs cdv_intel_lvds_helper_funcs = { .dpms = gma_lvds_encoder_dpms, - .mode_fixup = cdv_intel_lvds_mode_fixup, + .mode_fixup = gma_lvds_mode_fixup, .prepare = cdv_intel_lvds_prepare, .mode_set = cdv_intel_lvds_mode_set, .commit = cdv_intel_lvds_commit, diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index 19679ee36062..32ecf5835828 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -209,3 +209,62 @@ void gma_lvds_restore(struct drm_connector *connector) } } +bool gma_lvds_mode_fixup(struct drm_encoder *encoder, + const struct drm_display_mode *mode, + struct drm_display_mode *adjusted_mode) +{ + struct drm_device *dev = encoder->dev; + struct drm_psb_private *dev_priv = to_drm_psb_private(dev); + struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; + struct gma_crtc *gma_crtc = to_gma_crtc(encoder->crtc); + struct drm_encoder *tmp_encoder; + struct drm_display_mode *panel_fixed_mode = mode_dev->panel_fixed_mode; + + /* PSB requires the LVDS is on pipe B, MRST has only one pipe anyway */ + if (IS_PSB(dev) && gma_crtc->pipe == 0) { + pr_err("Can't support LVDS on pipe A\n"); + return false; + } + if (IS_MRST(dev) && gma_crtc->pipe != 0) { + pr_err("Must use PIPE A\n"); + return false; + } + /* Should never happen!! */ + list_for_each_entry(tmp_encoder, &dev->mode_config.encoder_list, + head) { + if (tmp_encoder != encoder + && tmp_encoder->crtc == encoder->crtc) { + pr_err("Can't enable LVDS and another encoder on the same pipe\n"); + return false; + } + } + + /* + * If we have timings from the BIOS for the panel, put them in + * to the adjusted mode. The CRTC will be set up for this mode, + * with the panel scaling set up to source from the H/VDisplay + * of the original mode. + */ + if (panel_fixed_mode != NULL) { + adjusted_mode->hdisplay = panel_fixed_mode->hdisplay; + adjusted_mode->hsync_start = panel_fixed_mode->hsync_start; + adjusted_mode->hsync_end = panel_fixed_mode->hsync_end; + adjusted_mode->htotal = panel_fixed_mode->htotal; + adjusted_mode->vdisplay = panel_fixed_mode->vdisplay; + adjusted_mode->vsync_start = panel_fixed_mode->vsync_start; + adjusted_mode->vsync_end = panel_fixed_mode->vsync_end; + adjusted_mode->vtotal = panel_fixed_mode->vtotal; + adjusted_mode->clock = panel_fixed_mode->clock; + drm_mode_set_crtcinfo(adjusted_mode, + CRTC_INTERLACE_HALVE_V); + } + + /* + * XXX: It would be nice to support lower refresh rates on the + * panels to reduce power consumption, and perhaps match the + * user's requested refresh rate. + */ + + return true; +} + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index eee0da00a0cf..950ab7b88ad6 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -30,5 +30,8 @@ enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector, void gma_lvds_encoder_dpms(struct drm_encoder *encoder, int mode); void gma_lvds_save(struct drm_connector *connector); void gma_lvds_restore(struct drm_connector *connector); +bool gma_lvds_mode_fixup(struct drm_encoder *encoder, + const struct drm_display_mode *mode, + struct drm_display_mode *adjusted_mode); #endif diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c b/drivers/gpu/drm/gma500/oaktrail_lvds.c index 00ec4fea4c12..16699b0fbbc9 100644 --- a/drivers/gpu/drm/gma500/oaktrail_lvds.c +++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c @@ -134,7 +134,7 @@ static void oaktrail_lvds_commit(struct drm_encoder *encoder) static const struct drm_encoder_helper_funcs oaktrail_lvds_helper_funcs = { .dpms = gma_lvds_encoder_dpms, - .mode_fixup = psb_intel_lvds_mode_fixup, + .mode_fixup = gma_lvds_mode_fixup, .prepare = oaktrail_lvds_prepare, .mode_set = oaktrail_lvds_mode_set, .commit = oaktrail_lvds_commit, diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index 6e5abb670bff..317bd1fcfa2a 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -132,69 +132,6 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -bool psb_intel_lvds_mode_fixup(struct drm_encoder *encoder, - const struct drm_display_mode *mode, - struct drm_display_mode *adjusted_mode) -{ - struct drm_device *dev = encoder->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; - struct gma_crtc *gma_crtc = to_gma_crtc(encoder->crtc); - struct drm_encoder *tmp_encoder; - struct drm_display_mode *panel_fixed_mode = mode_dev->panel_fixed_mode; - struct gma_encoder *gma_encoder = to_gma_encoder(encoder); - - if (gma_encoder->type == INTEL_OUTPUT_MIPI2) - panel_fixed_mode = mode_dev->panel_fixed_mode2; - - /* PSB requires the LVDS is on pipe B, MRST has only one pipe anyway */ - if (!IS_MRST(dev) && gma_crtc->pipe == 0) { - pr_err("Can't support LVDS on pipe A\n"); - return false; - } - if (IS_MRST(dev) && gma_crtc->pipe != 0) { - pr_err("Must use PIPE A\n"); - return false; - } - /* Should never happen!! */ - list_for_each_entry(tmp_encoder, &dev->mode_config.encoder_list, - head) { - if (tmp_encoder != encoder - && tmp_encoder->crtc == encoder->crtc) { - pr_err("Can't enable LVDS and another encoder on the same pipe\n"); - return false; - } - } - - /* - * If we have timings from the BIOS for the panel, put them in - * to the adjusted mode. The CRTC will be set up for this mode, - * with the panel scaling set up to source from the H/VDisplay - * of the original mode. - */ - if (panel_fixed_mode != NULL) { - adjusted_mode->hdisplay = panel_fixed_mode->hdisplay; - adjusted_mode->hsync_start = panel_fixed_mode->hsync_start; - adjusted_mode->hsync_end = panel_fixed_mode->hsync_end; - adjusted_mode->htotal = panel_fixed_mode->htotal; - adjusted_mode->vdisplay = panel_fixed_mode->vdisplay; - adjusted_mode->vsync_start = panel_fixed_mode->vsync_start; - adjusted_mode->vsync_end = panel_fixed_mode->vsync_end; - adjusted_mode->vtotal = panel_fixed_mode->vtotal; - adjusted_mode->clock = panel_fixed_mode->clock; - drm_mode_set_crtcinfo(adjusted_mode, - CRTC_INTERLACE_HALVE_V); - } - - /* - * XXX: It would be nice to support lower refresh rates on the - * panels to reduce power consumption, and perhaps match the - * user's requested refresh rate. - */ - - return true; -} - static void psb_intel_lvds_prepare(struct drm_encoder *encoder) { struct drm_device *dev = encoder->dev; @@ -365,7 +302,7 @@ int psb_intel_lvds_set_property(struct drm_connector *connector, static const struct drm_encoder_helper_funcs psb_intel_lvds_helper_funcs = { .dpms = gma_lvds_encoder_dpms, - .mode_fixup = psb_intel_lvds_mode_fixup, + .mode_fixup = gma_lvds_mode_fixup, .prepare = psb_intel_lvds_prepare, .mode_set = psb_intel_lvds_mode_set, .commit = psb_intel_lvds_commit, From patchwork Mon Jun 13 12:34:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879442 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BA16FC433EF for ; Mon, 13 Jun 2022 12:35:17 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2864C10E768; Mon, 13 Jun 2022 12:35:08 +0000 (UTC) Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by gabe.freedesktop.org (Postfix) with ESMTPS id C2E6410E762 for ; Mon, 13 Jun 2022 12:34:54 +0000 (UTC) Received: by mail-lf1-x132.google.com with SMTP id w20so8576117lfa.11 for ; Mon, 13 Jun 2022 05:34:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UYZm28xWzq+aYP1iUVZJKgTaXiuOf6AR4hbfVKH3QKw=; b=VZPtVjXPGloO8fISjIC8pa1V9Za1jV/9dVmEzABgRNMTwYueo51AZlvWwl+rN35Ph+ BF0qf00wgJf513pT2depe8OJXXURni/KiWqFhcXOKRF9wHC3gJj/E5f7FYhUqV+tAQHZ EuWE+j1Y3fWg7T7cNvN4HenIV1Q5tvl7paYhtnV5sNgebY77HY48sN8WBp+ua9nUa/Km KLWl4QbftsmdRODA7XBJU28rLuVHOvJGlsvyL8vss1mfx5QIF3LarbFG7X5UWILRD44I h1oa7FPdEpojt5zz9t42+dBXPdKJZ4CPXAnt7/2x6kOXG3MJoUS2QO6jqM9EShsuntBZ G3AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UYZm28xWzq+aYP1iUVZJKgTaXiuOf6AR4hbfVKH3QKw=; b=eWh6UEMmVCbPWdZ8LplV0R1b3Tk7WCEQZNagsfAKGyzjbH3Zr1FOQnmj0NtxaxN1aq XeNPnYR86QiUqwsAjX4L6ZOFLluZralFYZPzYR545ctbBE1wF80s0DtSDIalgHKwS+40 NQVdbLAnt/bTEnBdnwBwhfo+91vpn2gnF1T0UXS7LW+2Sx5LEuncNcDj18TF+zxQjhgu jvZWxHNr4y38TRE2Bt7IIXXxmbc6/eFc/tWXZ113fZbF/JF8Clpys1CBIVaXhL7AfPut pEIBHRNM4RdJxIjWPRILEpDqdmdpxGTIlKLMHvmrbcvb9NHERMtkvnAmxiOfYC3hTgbN oESg== X-Gm-Message-State: AOAM532HjA4IDmkFVarJB71JLAPr+xDPW2zb0eeRfGTvWVDIT6kpoVYN lRi5T6jnSPRDQphNfc8MN4OhddNDH8c= X-Google-Smtp-Source: ABdhPJxHh/8SXHX00pCllOKTvjvJraComgKrVwsFqJGshY+6DCJRwk1N5cr5sNUv21oCqggyGs5zLQ== X-Received: by 2002:a05:6512:22c4:b0:47d:aab8:8ba4 with SMTP id g4-20020a05651222c400b0047daab88ba4mr10816764lfu.212.1655123692638; Mon, 13 Jun 2022 05:34:52 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:51 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 10/19] drm/gma500: Unify *_intel_lvds_prepare() Date: Mon, 13 Jun 2022 14:34:27 +0200 Message-Id: <20220613123436.15185-11-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" The functions are identical so unify them. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 20 +------------------- drivers/gpu/drm/gma500/gma_lvds.c | 18 ++++++++++++++++++ drivers/gpu/drm/gma500/gma_lvds.h | 1 + drivers/gpu/drm/gma500/oaktrail_lvds.c | 18 +----------------- drivers/gpu/drm/gma500/psb_intel_lvds.c | 20 +------------------- 5 files changed, 22 insertions(+), 55 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index 65532308f1e7..4f0754b8c0b0 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -39,24 +39,6 @@ #define PSB_BACKLIGHT_PWM_CTL_SHIFT (16) #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE) -static void cdv_intel_lvds_prepare(struct drm_encoder *encoder) -{ - struct drm_device *dev = encoder->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; - - if (!gma_power_begin(dev, true)) - return; - - mode_dev->saveBLC_PWM_CTL = REG_READ(BLC_PWM_CTL); - mode_dev->backlight_duty_cycle = (mode_dev->saveBLC_PWM_CTL & - BACKLIGHT_DUTY_CYCLE_MASK); - - gma_lvds_set_power(dev, false); - - gma_power_end(dev); -} - static void cdv_intel_lvds_commit(struct drm_encoder *encoder) { struct drm_device *dev = encoder->dev; @@ -207,7 +189,7 @@ static const struct drm_encoder_helper_funcs cdv_intel_lvds_helper_funcs = { .dpms = gma_lvds_encoder_dpms, .mode_fixup = gma_lvds_mode_fixup, - .prepare = cdv_intel_lvds_prepare, + .prepare = gma_lvds_prepare, .mode_set = cdv_intel_lvds_mode_set, .commit = cdv_intel_lvds_commit, }; diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index 32ecf5835828..d0a97eeac38b 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -268,3 +268,21 @@ bool gma_lvds_mode_fixup(struct drm_encoder *encoder, return true; } +void gma_lvds_prepare(struct drm_encoder *encoder) +{ + struct drm_device *dev = encoder->dev; + struct drm_psb_private *dev_priv = to_drm_psb_private(dev); + struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; + + if (!gma_power_begin(dev, true)) + return; + + mode_dev->saveBLC_PWM_CTL = REG_READ(BLC_PWM_CTL); + mode_dev->backlight_duty_cycle = (mode_dev->saveBLC_PWM_CTL & + BACKLIGHT_DUTY_CYCLE_MASK); + + gma_lvds_set_power(dev, false); + + gma_power_end(dev); +} + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index 950ab7b88ad6..c1a7b3611d27 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -33,5 +33,6 @@ void gma_lvds_restore(struct drm_connector *connector); bool gma_lvds_mode_fixup(struct drm_encoder *encoder, const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode); +void gma_lvds_prepare(struct drm_encoder *encoder); #endif diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c b/drivers/gpu/drm/gma500/oaktrail_lvds.c index 16699b0fbbc9..dba0ca4b73a0 100644 --- a/drivers/gpu/drm/gma500/oaktrail_lvds.c +++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c @@ -105,22 +105,6 @@ static void oaktrail_lvds_mode_set(struct drm_encoder *encoder, gma_power_end(dev); } -static void oaktrail_lvds_prepare(struct drm_encoder *encoder) -{ - struct drm_device *dev = encoder->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; - - if (!gma_power_begin(dev, true)) - return; - - mode_dev->saveBLC_PWM_CTL = REG_READ(BLC_PWM_CTL); - mode_dev->backlight_duty_cycle = (mode_dev->saveBLC_PWM_CTL & - BACKLIGHT_DUTY_CYCLE_MASK); - gma_lvds_set_power(dev, false); - gma_power_end(dev); -} - static void oaktrail_lvds_commit(struct drm_encoder *encoder) { struct drm_device *dev = encoder->dev; @@ -135,7 +119,7 @@ static void oaktrail_lvds_commit(struct drm_encoder *encoder) static const struct drm_encoder_helper_funcs oaktrail_lvds_helper_funcs = { .dpms = gma_lvds_encoder_dpms, .mode_fixup = gma_lvds_mode_fixup, - .prepare = oaktrail_lvds_prepare, + .prepare = gma_lvds_prepare, .mode_set = oaktrail_lvds_mode_set, .commit = oaktrail_lvds_commit, }; diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index 317bd1fcfa2a..e4258205a262 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -132,24 +132,6 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -static void psb_intel_lvds_prepare(struct drm_encoder *encoder) -{ - struct drm_device *dev = encoder->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; - - if (!gma_power_begin(dev, true)) - return; - - mode_dev->saveBLC_PWM_CTL = REG_READ(BLC_PWM_CTL); - mode_dev->backlight_duty_cycle = (mode_dev->saveBLC_PWM_CTL & - BACKLIGHT_DUTY_CYCLE_MASK); - - gma_lvds_set_power(dev, false); - - gma_power_end(dev); -} - static void psb_intel_lvds_commit(struct drm_encoder *encoder) { struct drm_device *dev = encoder->dev; @@ -303,7 +285,7 @@ int psb_intel_lvds_set_property(struct drm_connector *connector, static const struct drm_encoder_helper_funcs psb_intel_lvds_helper_funcs = { .dpms = gma_lvds_encoder_dpms, .mode_fixup = gma_lvds_mode_fixup, - .prepare = psb_intel_lvds_prepare, + .prepare = gma_lvds_prepare, .mode_set = psb_intel_lvds_mode_set, .commit = psb_intel_lvds_commit, }; From patchwork Mon Jun 13 12:34:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879438 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9BAC4C433EF for ; Mon, 13 Jun 2022 12:35:11 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A861910E763; Mon, 13 Jun 2022 12:35:07 +0000 (UTC) Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by gabe.freedesktop.org (Postfix) with ESMTPS id 239BC10E75A for ; Mon, 13 Jun 2022 12:34:56 +0000 (UTC) Received: by mail-lf1-x12d.google.com with SMTP id be31so8586036lfb.10 for ; Mon, 13 Jun 2022 05:34:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JWCXEyjzg2pysk8ShcRPJc2kdw6w7ZsTAW93SlAzev0=; b=IWXUMAXagqtqTcFYIQoVjq2KpxARxvI90qf3Tv3bM//KCad0WvHEGp7LXwn88OVqB5 llS4VjY+LbBjDCiT9yod7g78hX1zvKBQ7sqwqfd0oK9qKUHneNnMTtAV1WQMy8MwmkSZ AwPoIafKKbk2L/lVuSdVK23pP3QJTqybieqZ1DfHE0Dpn4L6o4wbaxfembBePmMre5QJ vRXFZD3C1CHpQHk/CQrN8uaL0ZsY+TXRLEewO7sPokPPwIbsxjAZlhRd88058fU22bZ6 qGS5wLIHbHGb78sHA4ugvDXDVPRQ+tdN3JpvjlaFMcNg6xTpXbmAPB/TolZzVR/BbmHT lD1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JWCXEyjzg2pysk8ShcRPJc2kdw6w7ZsTAW93SlAzev0=; b=Lh9C/dfsb9wi2zB2LhwhTDJU/0HWajWIWXBeinDtgz8bKRHbOcptjHj/ICKFL7kK8u chjQ3WxxBaiTO/FNAKICFPpLzFeV1Ca0y1vPhEHc8ydiRLj1oC/0EJckis5Kj/ZY0y0q ntnx5TKEjp5YUzXfNa8WiSbrXRipfxtFJzS0auiWgcH8IUC+VpjVzd82Qsr747f3QM/i Wt/egxSdzv2uL0NqA4pf0IBVP7YItYdSeMFR9pW+CqacXhitEz8SXbWAOBIrSyEd5FCQ GuLg/e2GqdDVspXiqX03PqRTGvP/CRs0IgAdmh1rLcpqUbkKeh7PGOp6M83575Jpv1A2 a1Xg== X-Gm-Message-State: AOAM532J4VbKNVXEzPxz5gyDsrH8hZuBl03DpWD/sIrX935xoUsp3VR6 Cd6PxWanFwZaKvJeFRdSFE1ioZZJDWk= X-Google-Smtp-Source: ABdhPJxqm2MQ3MbDHxET6HBXw1UIBCQVgedDwQiwukHsCSDQn4g3/w6zE7pop9FpIxTMPA3tDONUEg== X-Received: by 2002:a05:6512:3b97:b0:479:1a44:f60e with SMTP id g23-20020a0565123b9700b004791a44f60emr33133736lfv.72.1655123693868; Mon, 13 Jun 2022 05:34:53 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:53 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 11/19] drm/gma500: Unify *_intel_lvds_commit() Date: Mon, 13 Jun 2022 14:34:28 +0200 Message-Id: <20220613123436.15185-12-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These functions are identical so unify them Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 15 +-------------- drivers/gpu/drm/gma500/gma_lvds.c | 15 ++++++++++++++- drivers/gpu/drm/gma500/gma_lvds.h | 2 +- drivers/gpu/drm/gma500/oaktrail_lvds.c | 13 +------------ drivers/gpu/drm/gma500/psb_intel_lvds.c | 15 +-------------- 5 files changed, 18 insertions(+), 42 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index 4f0754b8c0b0..77a5d167c508 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -39,19 +39,6 @@ #define PSB_BACKLIGHT_PWM_CTL_SHIFT (16) #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE) -static void cdv_intel_lvds_commit(struct drm_encoder *encoder) -{ - struct drm_device *dev = encoder->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; - - if (mode_dev->backlight_duty_cycle == 0) - mode_dev->backlight_duty_cycle = - gma_lvds_get_max_backlight(dev); - - gma_lvds_set_power(dev, true); -} - static void cdv_intel_lvds_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) @@ -191,7 +178,7 @@ static const struct drm_encoder_helper_funcs .mode_fixup = gma_lvds_mode_fixup, .prepare = gma_lvds_prepare, .mode_set = cdv_intel_lvds_mode_set, - .commit = cdv_intel_lvds_commit, + .commit = gma_lvds_commit, }; static const struct drm_connector_helper_funcs diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index d0a97eeac38b..6364d3aef064 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -62,7 +62,7 @@ static void gma_lvds_set_backlight(struct drm_device *dev, int level) /* * Sets the power state for the panel. */ -void gma_lvds_set_power(struct drm_device *dev, bool on) +static void gma_lvds_set_power(struct drm_device *dev, bool on) { struct drm_psb_private *dev_priv = to_drm_psb_private(dev); u32 pp_status; @@ -286,3 +286,16 @@ void gma_lvds_prepare(struct drm_encoder *encoder) gma_power_end(dev); } +void gma_lvds_commit(struct drm_encoder *encoder) +{ + struct drm_device *dev = encoder->dev; + struct drm_psb_private *dev_priv = to_drm_psb_private(dev); + struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; + + if (mode_dev->backlight_duty_cycle == 0) + mode_dev->backlight_duty_cycle = + gma_lvds_get_max_backlight(dev); + + gma_lvds_set_power(dev, true); +} + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index c1a7b3611d27..c2c8fe5b5aac 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -24,7 +24,6 @@ struct gma_lvds_priv { }; u32 gma_lvds_get_max_backlight(struct drm_device *dev); -void gma_lvds_set_power(struct drm_device *dev, bool on); enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode); void gma_lvds_encoder_dpms(struct drm_encoder *encoder, int mode); @@ -34,5 +33,6 @@ bool gma_lvds_mode_fixup(struct drm_encoder *encoder, const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode); void gma_lvds_prepare(struct drm_encoder *encoder); +void gma_lvds_commit(struct drm_encoder *encoder); #endif diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c b/drivers/gpu/drm/gma500/oaktrail_lvds.c index dba0ca4b73a0..85cab0f7028a 100644 --- a/drivers/gpu/drm/gma500/oaktrail_lvds.c +++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c @@ -105,23 +105,12 @@ static void oaktrail_lvds_mode_set(struct drm_encoder *encoder, gma_power_end(dev); } -static void oaktrail_lvds_commit(struct drm_encoder *encoder) -{ - struct drm_device *dev = encoder->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; - - if (mode_dev->backlight_duty_cycle == 0) - mode_dev->backlight_duty_cycle = gma_lvds_get_max_backlight(dev); - gma_lvds_set_power(dev, true); -} - static const struct drm_encoder_helper_funcs oaktrail_lvds_helper_funcs = { .dpms = gma_lvds_encoder_dpms, .mode_fixup = gma_lvds_mode_fixup, .prepare = gma_lvds_prepare, .mode_set = oaktrail_lvds_mode_set, - .commit = oaktrail_lvds_commit, + .commit = gma_lvds_commit, }; /* Returns the panel fixed mode from configuration. */ diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index e4258205a262..fbb72be6e017 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -132,19 +132,6 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -static void psb_intel_lvds_commit(struct drm_encoder *encoder) -{ - struct drm_device *dev = encoder->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; - - if (mode_dev->backlight_duty_cycle == 0) - mode_dev->backlight_duty_cycle = - gma_lvds_get_max_backlight(dev); - - gma_lvds_set_power(dev, true); -} - static void psb_intel_lvds_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) @@ -287,7 +274,7 @@ static const struct drm_encoder_helper_funcs psb_intel_lvds_helper_funcs = { .mode_fixup = gma_lvds_mode_fixup, .prepare = gma_lvds_prepare, .mode_set = psb_intel_lvds_mode_set, - .commit = psb_intel_lvds_commit, + .commit = gma_lvds_commit, }; const struct drm_connector_helper_funcs From patchwork Mon Jun 13 12:34:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879445 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7B2C4C433EF for ; Mon, 13 Jun 2022 12:35:26 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 609B510E780; Mon, 13 Jun 2022 12:35:25 +0000 (UTC) Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) by gabe.freedesktop.org (Postfix) with ESMTPS id 61B2610E76B for ; Mon, 13 Jun 2022 12:34:57 +0000 (UTC) Received: by mail-lf1-x12e.google.com with SMTP id 20so8599561lfz.8 for ; Mon, 13 Jun 2022 05:34:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SCrm91gLJk0MFOsre/PgWeLSvVA34lRaSk1noLyxJm0=; b=fxUi9RqztJx5avSbi4cZ0nZslBWIiA42d7jaxvcWWlYYC/PwSAnsJTuQfvKcxOAll2 XPP+ca5l598CTrp02iaLWFkEPm2h5a2FoJdGY9XUGgThOEpqz83FpHUBIvInSRiC15uI NwKVPAmGy7M+hc1bOInfjmh4sCVxZvLLUZu6MT5vLf3ltRQo88A9pKf3E9Ya4wK5pK7+ XHAgDGBTB/7NiFzGuqm1x9GoD0vxAaIwIAIA1sY//iZHZvO67FXhRdGXqDTNCIYkVsdP vvZW7gdYgDeOjRznI10J6dcH86HmY0UkeEKr+BY/wyBsKNdBHNEY+09nVvMX7Bg3nrjN 2I/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SCrm91gLJk0MFOsre/PgWeLSvVA34lRaSk1noLyxJm0=; b=2vrq3+pw+gDmSobmdIih2+zrf/a6vGmKrlDnVSPYJXQbxcCq/uzqJuZD6ssiRUGBtF jMDfwSoWkGxH1M/WaB1S0+mewj6sULbwKCsUxmZLArO42kaVEYyFEiy6FPAggyGBduqG dp61MD3TpK76wucE6k9nQwS9BiZFhlcpIhwCF+Xj4pzDXUIDeEG68HD+I29U5k4QGd9Y RqtrNOWH72Oix9RyUlLinQ+QkzSuxVgpJjYoG1fY7jRgb593V1q5nfjbGBGnZVAvgfyN 7EGHgQjuogoO3pY01U4ULmxR6fKrUXRnQntZJAFb703GClAdwv9lpiUzNriGYqXoxqsa qJ4A== X-Gm-Message-State: AOAM532yReb19bS55D8m3WkGFOgV1r0IpLmfqWveu/30XuE/hx6ovATE wpTndiiEQTwIQK/fgY3KDZtHPgVaDmA= X-Google-Smtp-Source: ABdhPJwNpPCSd/roZYxvSdJ4y3lCVhm5ONlDL87G8Wb2TW4lG/7YM3DImKjOE4lq6OQATvIqLedlrg== X-Received: by 2002:a05:6512:3fa6:b0:47d:c87e:f8f8 with SMTP id x38-20020a0565123fa600b0047dc87ef8f8mr5449314lfa.159.1655123694814; Mon, 13 Jun 2022 05:34:54 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:54 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 12/19] drm/gma500: Unify *_intel_lvds_mode_set() Date: Mon, 13 Jun 2022 14:34:29 +0200 Message-Id: <20220613123436.15185-13-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These functions mostly do the same thing so unify them. CDV include the pipe select bit in the pfit control register but we can do this on PSB as well since LVDS is always on the same pipe there. Oaktrail lvds modeset sequence is slightly different so is not unified here. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 38 +------------------------ drivers/gpu/drm/gma500/gma_lvds.c | 35 +++++++++++++++++++++++ drivers/gpu/drm/gma500/gma_lvds.h | 3 ++ drivers/gpu/drm/gma500/psb_intel_lvds.c | 35 +---------------------- 4 files changed, 40 insertions(+), 71 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index 77a5d167c508..ddfb976b6059 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -39,42 +39,6 @@ #define PSB_BACKLIGHT_PWM_CTL_SHIFT (16) #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE) -static void cdv_intel_lvds_mode_set(struct drm_encoder *encoder, - struct drm_display_mode *mode, - struct drm_display_mode *adjusted_mode) -{ - struct drm_device *dev = encoder->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct gma_crtc *gma_crtc = to_gma_crtc(encoder->crtc); - u32 pfit_control; - - /* - * The LVDS pin pair will already have been turned on in the - * cdv_intel_crtc_mode_set since it has a large impact on the DPLL - * settings. - */ - - /* - * Enable automatic panel scaling so that non-native modes fill the - * screen. Should be enabled before the pipe is enabled, according to - * register description and PRM. - */ - if (mode->hdisplay != adjusted_mode->hdisplay || - mode->vdisplay != adjusted_mode->vdisplay) - pfit_control = (PFIT_ENABLE | VERT_AUTO_SCALE | - HORIZ_AUTO_SCALE | VERT_INTERP_BILINEAR | - HORIZ_INTERP_BILINEAR); - else - pfit_control = 0; - - pfit_control |= gma_crtc->pipe << PFIT_PIPE_SHIFT; - - if (dev_priv->lvds_dither) - pfit_control |= PANEL_8TO6_DITHER_ENABLE; - - REG_WRITE(PFIT_CONTROL, pfit_control); -} - /* * Return the list of DDC modes if available, or the BIOS fixed mode otherwise. */ @@ -177,7 +141,7 @@ static const struct drm_encoder_helper_funcs .dpms = gma_lvds_encoder_dpms, .mode_fixup = gma_lvds_mode_fixup, .prepare = gma_lvds_prepare, - .mode_set = cdv_intel_lvds_mode_set, + .mode_set = gma_lvds_mode_set, .commit = gma_lvds_commit, }; diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index 6364d3aef064..215bf8f7d41f 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -299,3 +299,38 @@ void gma_lvds_commit(struct drm_encoder *encoder) gma_lvds_set_power(dev, true); } +void gma_lvds_mode_set(struct drm_encoder *encoder, + struct drm_display_mode *mode, + struct drm_display_mode *adjusted_mode) +{ + struct drm_device *dev = encoder->dev; + struct drm_psb_private *dev_priv = to_drm_psb_private(dev); + struct gma_crtc *gma_crtc = to_gma_crtc(encoder->crtc); + u32 pfit_control; + + /* + * The LVDS pin pair will already have been turned on in the + * *_crtc_mode_set since it has a large impact on the DPLL * settings. + */ + + /* + * Enable automatic panel scaling so that non-native modes fill the + * screen. Should be enabled before the pipe is enabled, according to + * register description and PRM. + */ + if (mode->hdisplay != adjusted_mode->hdisplay || + mode->vdisplay != adjusted_mode->vdisplay) + pfit_control = (PFIT_ENABLE | VERT_AUTO_SCALE | + HORIZ_AUTO_SCALE | VERT_INTERP_BILINEAR | + HORIZ_INTERP_BILINEAR); + else + pfit_control = 0; + + pfit_control |= gma_crtc->pipe << PFIT_PIPE_SHIFT; + + if (dev_priv->lvds_dither) + pfit_control |= PANEL_8TO6_DITHER_ENABLE; + + REG_WRITE(PFIT_CONTROL, pfit_control); +} + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index c2c8fe5b5aac..ebba869a25b7 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -34,5 +34,8 @@ bool gma_lvds_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *adjusted_mode); void gma_lvds_prepare(struct drm_encoder *encoder); void gma_lvds_commit(struct drm_encoder *encoder); +void gma_lvds_mode_set(struct drm_encoder *encoder, + struct drm_display_mode *mode, + struct drm_display_mode *adjusted_mode); #endif diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index fbb72be6e017..553f6cb5f322 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -132,39 +132,6 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -static void psb_intel_lvds_mode_set(struct drm_encoder *encoder, - struct drm_display_mode *mode, - struct drm_display_mode *adjusted_mode) -{ - struct drm_device *dev = encoder->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - u32 pfit_control; - - /* - * The LVDS pin pair will already have been turned on in the - * psb_intel_crtc_mode_set since it has a large impact on the DPLL - * settings. - */ - - /* - * Enable automatic panel scaling so that non-native modes fill the - * screen. Should be enabled before the pipe is enabled, according to - * register description and PRM. - */ - if (mode->hdisplay != adjusted_mode->hdisplay || - mode->vdisplay != adjusted_mode->vdisplay) - pfit_control = (PFIT_ENABLE | VERT_AUTO_SCALE | - HORIZ_AUTO_SCALE | VERT_INTERP_BILINEAR | - HORIZ_INTERP_BILINEAR); - else - pfit_control = 0; - - if (dev_priv->lvds_dither) - pfit_control |= PANEL_8TO6_DITHER_ENABLE; - - REG_WRITE(PFIT_CONTROL, pfit_control); -} - /* * Return the list of DDC modes if available, or the BIOS fixed mode otherwise. */ @@ -273,7 +240,7 @@ static const struct drm_encoder_helper_funcs psb_intel_lvds_helper_funcs = { .dpms = gma_lvds_encoder_dpms, .mode_fixup = gma_lvds_mode_fixup, .prepare = gma_lvds_prepare, - .mode_set = psb_intel_lvds_mode_set, + .mode_set = gma_lvds_mode_set, .commit = gma_lvds_commit, }; From patchwork Mon Jun 13 12:34:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879444 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 981C3C433EF for ; Mon, 13 Jun 2022 12:35:21 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B4D1710E76B; Mon, 13 Jun 2022 12:35:20 +0000 (UTC) Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) by gabe.freedesktop.org (Postfix) with ESMTPS id 343A810E75A for ; Mon, 13 Jun 2022 12:34:58 +0000 (UTC) Received: by mail-lf1-x12b.google.com with SMTP id s6so8562525lfo.13 for ; Mon, 13 Jun 2022 05:34:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=HvgBZ/wxFTMRsoozfmjp5r8bkC3aSM+z2+YcZ7FnUIA=; b=RybLK0fOrAEOD+lS5CLeGjqF6OQ3AlmOpnnUTdxUpbhYb5n+IrqT8xm2/e1T0++Kzz UWpcnt33VliZkKsHoSB6A+75H7ICSEJP4o+1+vlpZu+UR2G3I3JdK0ah8ica/6Tjy9zB /2tIm+iN4PbSVXML2UOccVWoJfM+N4a21LL890nXtqeOLWL7bBjJDv6pgzZt7nabICrn hyW64rpakYcPngdhgOluZbl4vApFLWx9BF+52ci7Lugp5Z5uDDc7JnPARbBf2l++uGc+ CNrIzBO+iv4JSt2fcf1p+GLtPjuGIYL6hdu3BWKpTlmxDKFfG5qXvLl77P4pmm8Y+4SS vRdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=HvgBZ/wxFTMRsoozfmjp5r8bkC3aSM+z2+YcZ7FnUIA=; b=Tm+rmW4M8MoCqgRND+0LhV87WlI1MqzqzqlCntNlhp4/Szd9n8MArLlvdYqkbiZg0b kh1M696Y8Qgf2FXUNLa7TRquuJuKZyLZWJB/Qi7uRehd9VUB8athuydwkcT/mH6AUEtq rW/aIXneQGRiJCXCZhMwDPuTQEBnrLY+7zxVnbLQCNh9NEaFoI4xvikaXP5I5TPNxqw8 /x4SGEkz2Usrci2Q9T3WaP1YxY0c6u1UdQBz+Xo30hW/LrIFlS3mfyRwOru0PoEfMFP/ VKYDNUYG6EBOlX5GUJh5A6bnonLyZ55VQ8LTiyU+Cs7it3LVXnXpReCLv1Uh60CF335r mXBg== X-Gm-Message-State: AOAM531qXNrEmboleO6GlmfTJzbqRp65eUkn/myI43/WWldU82G6RU9v E67yOIGIpiRclsQLuM7Jv6na2mZ6Js0= X-Google-Smtp-Source: ABdhPJw+iR7CainHc9HyEk/eEjaEdIKuJDF8zFYnlMmIoSYXAnBONAPEJ45blrIkavmFblV3F2ulnA== X-Received: by 2002:a05:6512:c1b:b0:479:150b:c7c9 with SMTP id z27-20020a0565120c1b00b00479150bc7c9mr31077178lfu.574.1655123696115; Mon, 13 Jun 2022 05:34:56 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:55 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 13/19] drm/gma500: Unify struct *_intel_lvds_helper_funcs Date: Mon, 13 Jun 2022 14:34:30 +0200 Message-Id: <20220613123436.15185-14-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These now only contains generic gma functions so create gma_lvds_helper_funcs that both PSB and CDV can use. Oaktrail still needs the modeset callback refactored to align with PSB and CDV. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 11 +---------- drivers/gpu/drm/gma500/gma_lvds.c | 14 +++++++++++--- drivers/gpu/drm/gma500/gma_lvds.h | 5 ++--- drivers/gpu/drm/gma500/psb_intel_lvds.c | 10 +--------- 4 files changed, 15 insertions(+), 25 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index ddfb976b6059..80ccc00c47e5 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -136,15 +136,6 @@ static int cdv_intel_lvds_set_property(struct drm_connector *connector, return 0; } -static const struct drm_encoder_helper_funcs - cdv_intel_lvds_helper_funcs = { - .dpms = gma_lvds_encoder_dpms, - .mode_fixup = gma_lvds_mode_fixup, - .prepare = gma_lvds_prepare, - .mode_set = gma_lvds_mode_set, - .commit = gma_lvds_commit, -}; - static const struct drm_connector_helper_funcs cdv_intel_lvds_connector_helper_funcs = { .get_modes = cdv_intel_lvds_get_modes, @@ -286,7 +277,7 @@ void cdv_intel_lvds_init(struct drm_device *dev, gma_connector_attach_encoder(gma_connector, gma_encoder); gma_encoder->type = INTEL_OUTPUT_LVDS; - drm_encoder_helper_add(encoder, &cdv_intel_lvds_helper_funcs); + drm_encoder_helper_add(encoder, &gma_lvds_helper_funcs); drm_connector_helper_add(connector, &cdv_intel_lvds_connector_helper_funcs); connector->display_info.subpixel_order = SubPixelHorizontalRGB; diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index 215bf8f7d41f..bf9fa5ebdbd3 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -299,9 +299,9 @@ void gma_lvds_commit(struct drm_encoder *encoder) gma_lvds_set_power(dev, true); } -void gma_lvds_mode_set(struct drm_encoder *encoder, - struct drm_display_mode *mode, - struct drm_display_mode *adjusted_mode) +static void gma_lvds_mode_set(struct drm_encoder *encoder, + struct drm_display_mode *mode, + struct drm_display_mode *adjusted_mode) { struct drm_device *dev = encoder->dev; struct drm_psb_private *dev_priv = to_drm_psb_private(dev); @@ -334,3 +334,11 @@ void gma_lvds_mode_set(struct drm_encoder *encoder, REG_WRITE(PFIT_CONTROL, pfit_control); } +const struct drm_encoder_helper_funcs gma_lvds_helper_funcs = { + .dpms = gma_lvds_encoder_dpms, + .mode_fixup = gma_lvds_mode_fixup, + .prepare = gma_lvds_prepare, + .mode_set = gma_lvds_mode_set, + .commit = gma_lvds_commit, +}; + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index ebba869a25b7..3c47bea859ad 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -34,8 +34,7 @@ bool gma_lvds_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *adjusted_mode); void gma_lvds_prepare(struct drm_encoder *encoder); void gma_lvds_commit(struct drm_encoder *encoder); -void gma_lvds_mode_set(struct drm_encoder *encoder, - struct drm_display_mode *mode, - struct drm_display_mode *adjusted_mode); + +extern const struct drm_encoder_helper_funcs gma_lvds_helper_funcs; #endif diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index 553f6cb5f322..29a9b4ea5803 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -236,14 +236,6 @@ int psb_intel_lvds_set_property(struct drm_connector *connector, return -1; } -static const struct drm_encoder_helper_funcs psb_intel_lvds_helper_funcs = { - .dpms = gma_lvds_encoder_dpms, - .mode_fixup = gma_lvds_mode_fixup, - .prepare = gma_lvds_prepare, - .mode_set = gma_lvds_mode_set, - .commit = gma_lvds_commit, -}; - const struct drm_connector_helper_funcs psb_intel_lvds_connector_helper_funcs = { .get_modes = psb_intel_lvds_get_modes, @@ -329,7 +321,7 @@ void psb_intel_lvds_init(struct drm_device *dev, gma_connector_attach_encoder(gma_connector, gma_encoder); gma_encoder->type = INTEL_OUTPUT_LVDS; - drm_encoder_helper_add(encoder, &psb_intel_lvds_helper_funcs); + drm_encoder_helper_add(encoder, &gma_lvds_helper_funcs); drm_connector_helper_add(connector, &psb_intel_lvds_connector_helper_funcs); connector->display_info.subpixel_order = SubPixelHorizontalRGB; From patchwork Mon Jun 13 12:34:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879441 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 53986C43334 for ; Mon, 13 Jun 2022 12:35:16 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9D67610E76C; Mon, 13 Jun 2022 12:35:08 +0000 (UTC) Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6F0F610E75C for ; Mon, 13 Jun 2022 12:34:58 +0000 (UTC) Received: by mail-lf1-x132.google.com with SMTP id c4so8579085lfj.12 for ; Mon, 13 Jun 2022 05:34:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0JCZnkpg9zCbffeVCB8cOxmJ6vhfU5iJyBCibQBNqMc=; b=TLNnSNnkgWHixno1VA1aROhjtiN8EjPdGp4hZsky3C60iyfSyFQX0bC1kZFV3R7CpW OUHQi6DB/ipwsEhwQmWexOL8TFFCOpuH/Tp9zA1TaLP3wATKibSK/Lo853+Q1kclTM67 fRSvhDibEvt3OPCmCQpGKqZcAehZTkice1ocrdoLTuYMEIazUQFPxjjCw/BOLyY8jjpo iZPYD0k+vAOAaZWSN7VAZqfP0L/iV60El9vd5GdjCLnj06nao9AS0wbvrhyZFrltNa7a njXxCniQDK0jn0l56rGCfawwkF/R8WWNU7wXy9fKDvoo82qy4c2YzGYBRHfx3l+VBQXR aJ4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0JCZnkpg9zCbffeVCB8cOxmJ6vhfU5iJyBCibQBNqMc=; b=UqYcgNW7+ahsOxRnQ5jTZZcfxZ5dHGqMG2+LV+CwviqRt6yLYPCjAqfvTOQcfM8alH UaHG0A5BDdWXFZViVrE9sKvl0d4t2yZP4jQ5UUxv4xLd+twn4PUmmlr1uEHvWtI+BC93 lFid5AucbAK+WOgHDmGQnteUXXQaicM/vXZLo3GnCFxqJHOp0c3mGgKKzNmSXp/pQuI7 APfbzoCjdotVHk8aUsX2awJLm2weYjZNv1iU36vwMQrFFpg0Ryn7h/B1fPBxNcO/Gd1j ywUW8gf9sU19ec2EhAZ8FN3Iw4h8Ql1t92qC2k/VvEM4fAnO12it58Z7Sz60Y33Lfb4a kQQg== X-Gm-Message-State: AOAM532HEWtWESVXZm3WxL15srW9J5/4FHMxkAVZfwPBRfwHNwpOvz7h YEMMod1mFg2kgZOgF8EQWmMZSDUzcls= X-Google-Smtp-Source: ABdhPJzaIG/oOaTvK4xKg8/7FF5ECDVCQ1P5QdTgcA7v1sX6PRA7e6AQY/YZo+PqmkOVeLwRz8EY3w== X-Received: by 2002:a19:ca13:0:b0:478:f667:11fd with SMTP id a19-20020a19ca13000000b00478f66711fdmr35530578lfg.174.1655123697576; Mon, 13 Jun 2022 05:34:57 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:56 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 14/19] drm/gma500: Unify *_intel_lvds_get_modes() Date: Mon, 13 Jun 2022 14:34:31 +0200 Message-Id: <20220613123436.15185-15-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These functions mostly do the same thing so unify them. Oaktrail already uses the PSB connector helpers so it is already handled. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 27 +----------------------- drivers/gpu/drm/gma500/gma_lvds.c | 26 +++++++++++++++++++++++ drivers/gpu/drm/gma500/gma_lvds.h | 1 + drivers/gpu/drm/gma500/psb_intel_lvds.c | 28 +------------------------ 4 files changed, 29 insertions(+), 53 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index 80ccc00c47e5..a6f94572baaf 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -39,31 +39,6 @@ #define PSB_BACKLIGHT_PWM_CTL_SHIFT (16) #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE) -/* - * Return the list of DDC modes if available, or the BIOS fixed mode otherwise. - */ -static int cdv_intel_lvds_get_modes(struct drm_connector *connector) -{ - struct drm_device *dev = connector->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; - int ret; - - ret = psb_intel_ddc_get_modes(connector, connector->ddc); - - if (ret) - return ret; - - if (mode_dev->panel_fixed_mode != NULL) { - struct drm_display_mode *mode = - drm_mode_duplicate(dev, mode_dev->panel_fixed_mode); - drm_mode_probed_add(connector, mode); - return 1; - } - - return 0; -} - static void cdv_intel_lvds_destroy(struct drm_connector *connector) { struct gma_connector *gma_connector = to_gma_connector(connector); @@ -138,7 +113,7 @@ static int cdv_intel_lvds_set_property(struct drm_connector *connector, static const struct drm_connector_helper_funcs cdv_intel_lvds_connector_helper_funcs = { - .get_modes = cdv_intel_lvds_get_modes, + .get_modes = gma_lvds_get_modes, .mode_valid = gma_lvds_mode_valid, .best_encoder = gma_best_encoder, }; diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index bf9fa5ebdbd3..49c11b5337cb 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -342,3 +342,29 @@ const struct drm_encoder_helper_funcs gma_lvds_helper_funcs = { .commit = gma_lvds_commit, }; +/* + * Return the list of DDC modes if available, or the BIOS fixed mode otherwise. + */ +int gma_lvds_get_modes(struct drm_connector *connector) +{ + struct drm_device *dev = connector->dev; + struct drm_psb_private *dev_priv = to_drm_psb_private(dev); + struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; + int ret = 0; + + if (!IS_MRST(dev)) + ret = psb_intel_ddc_get_modes(connector, connector->ddc); + + if (ret) + return ret; + + if (mode_dev->panel_fixed_mode != NULL) { + struct drm_display_mode *mode = + drm_mode_duplicate(dev, mode_dev->panel_fixed_mode); + drm_mode_probed_add(connector, mode); + return 1; + } + + return 0; +} + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index 3c47bea859ad..70c416d8b7a7 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -34,6 +34,7 @@ bool gma_lvds_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *adjusted_mode); void gma_lvds_prepare(struct drm_encoder *encoder); void gma_lvds_commit(struct drm_encoder *encoder); +int gma_lvds_get_modes(struct drm_connector *connector); extern const struct drm_encoder_helper_funcs gma_lvds_helper_funcs; diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index 29a9b4ea5803..4ef0150c6a03 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -132,32 +132,6 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -/* - * Return the list of DDC modes if available, or the BIOS fixed mode otherwise. - */ -static int psb_intel_lvds_get_modes(struct drm_connector *connector) -{ - struct drm_device *dev = connector->dev; - struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct psb_intel_mode_device *mode_dev = &dev_priv->mode_dev; - int ret = 0; - - if (!IS_MRST(dev)) - ret = psb_intel_ddc_get_modes(connector, connector->ddc); - - if (ret) - return ret; - - if (mode_dev->panel_fixed_mode != NULL) { - struct drm_display_mode *mode = - drm_mode_duplicate(dev, mode_dev->panel_fixed_mode); - drm_mode_probed_add(connector, mode); - return 1; - } - - return 0; -} - void psb_intel_lvds_destroy(struct drm_connector *connector) { struct gma_connector *gma_connector = to_gma_connector(connector); @@ -238,7 +212,7 @@ int psb_intel_lvds_set_property(struct drm_connector *connector, const struct drm_connector_helper_funcs psb_intel_lvds_connector_helper_funcs = { - .get_modes = psb_intel_lvds_get_modes, + .get_modes = gma_lvds_get_modes, .mode_valid = gma_lvds_mode_valid, .best_encoder = gma_best_encoder, }; From patchwork Mon Jun 13 12:34:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879443 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6901FC43334 for ; Mon, 13 Jun 2022 12:35:19 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 16DDF10E771; Mon, 13 Jun 2022 12:35:09 +0000 (UTC) Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by gabe.freedesktop.org (Postfix) with ESMTPS id BF86210E75A for ; Mon, 13 Jun 2022 12:34:59 +0000 (UTC) Received: by mail-lf1-x12d.google.com with SMTP id be31so8586036lfb.10 for ; Mon, 13 Jun 2022 05:34:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=q3DP4FwykHC1KRxxon4hPWqgxyZqCTbKsM3OsMeS/jg=; b=danrjCZR/Y8aA+S7RQWJWN65FHJBbqdyhHP/v2w0c3CQG5nwsbM1/d7tuKInCgV3ab wkVOUDoOob/fVgTcGipvQ996NAQA6KuT/xNdo6OLNAn7SqLS7OY1FvVdRFccMAMVRvpV 9xFzxuLKLi8AWvH+ztUR+05BBRrBL7O8YyZx0vNww+72dJRuKOZcw1cxR/qQ+mbt92xR 8/s/Q0v3WGXs8XFO/xpkDRkKr9L6J93WmqJJW8xnLs/sH3U3T1rmQ9Cw37YwpjaY1/ST GMaP1YTJsOZ3LTVYQvcdbAp0zYTolZpVqjKPyy62USs+6YIjLoK3KNMSmW4L2NrDbCBn AHlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=q3DP4FwykHC1KRxxon4hPWqgxyZqCTbKsM3OsMeS/jg=; b=x7irgNBqGvGFrm0r+/CFDCxgASrGFYe5zDS79YPr5vA38I/opD+1x0v2Uov17rireY hgB3tkPED6dQzzPjt58++G3jssLDwZSuO45E6WglGa5Saj5MaWj4sxWA9pLMsoe6fjRI D9C4ORyNvUZU65X7LD3zutbrevWe7czCNFcSRO84Zp7aAAH+dvDBnrNDfXSf6jqfdSms zrffD6wwg6kUzWOpu+7J5AY8Abbr07MSqS9V0XkgYdf858nK4EuAcd1QmvKfBDvlNF9D r23a5msT3z3zu/mGUd+ie7IWjJEMRz280VVB15o3uAT1Ro5I7uuJ7DDlHk9p4KjW9Wi/ ccNw== X-Gm-Message-State: AOAM530EcjNb/+pc8fKqanqE4ZySHe4FHT2ZbIWiYfceuDqWhrROiPCS dqf10mZaWSgZFAvGvg4dgmS5zgiAQUw= X-Google-Smtp-Source: ABdhPJwEq0N3ZEgHPn/2lDOmwOCk+V5/HCadU9pn9Ro077u3X60qWuDM5Fp8Xgc2hLCrXUjsiErzhQ== X-Received: by 2002:a05:6512:b14:b0:479:626e:f13f with SMTP id w20-20020a0565120b1400b00479626ef13fmr19353903lfu.607.1655123698890; Mon, 13 Jun 2022 05:34:58 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:58 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 15/19] drm/gma500: Unify struct *_intel_lvds_connector_helper_funcs Date: Mon, 13 Jun 2022 14:34:32 +0200 Message-Id: <20220613123436.15185-16-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These now only contains generic gma functions so create gma_lvds_connector_helper_funcs that all chips can use. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 10 +--------- drivers/gpu/drm/gma500/gma_lvds.c | 12 +++++++++--- drivers/gpu/drm/gma500/gma_lvds.h | 4 +--- drivers/gpu/drm/gma500/oaktrail_lvds.c | 3 +-- drivers/gpu/drm/gma500/psb_intel_lvds.c | 10 +--------- 5 files changed, 13 insertions(+), 26 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index a6f94572baaf..2ba635513401 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -111,13 +111,6 @@ static int cdv_intel_lvds_set_property(struct drm_connector *connector, return 0; } -static const struct drm_connector_helper_funcs - cdv_intel_lvds_connector_helper_funcs = { - .get_modes = gma_lvds_get_modes, - .mode_valid = gma_lvds_mode_valid, - .best_encoder = gma_best_encoder, -}; - static const struct drm_connector_funcs cdv_intel_lvds_connector_funcs = { .dpms = drm_helper_connector_dpms, .fill_modes = drm_helper_probe_single_connector_modes, @@ -253,8 +246,7 @@ void cdv_intel_lvds_init(struct drm_device *dev, gma_encoder->type = INTEL_OUTPUT_LVDS; drm_encoder_helper_add(encoder, &gma_lvds_helper_funcs); - drm_connector_helper_add(connector, - &cdv_intel_lvds_connector_helper_funcs); + drm_connector_helper_add(connector, &gma_lvds_connector_helper_funcs); connector->display_info.subpixel_order = SubPixelHorizontalRGB; connector->interlace_allowed = false; connector->doublescan_allowed = false; diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index 49c11b5337cb..3b48999105d1 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -94,8 +94,8 @@ static void gma_lvds_set_power(struct drm_device *dev, bool on) gma_power_end(dev); } -enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode) +static enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) { struct drm_device *dev = connector->dev; struct drm_psb_private *dev_priv = to_drm_psb_private(dev); @@ -345,7 +345,7 @@ const struct drm_encoder_helper_funcs gma_lvds_helper_funcs = { /* * Return the list of DDC modes if available, or the BIOS fixed mode otherwise. */ -int gma_lvds_get_modes(struct drm_connector *connector) +static int gma_lvds_get_modes(struct drm_connector *connector) { struct drm_device *dev = connector->dev; struct drm_psb_private *dev_priv = to_drm_psb_private(dev); @@ -368,3 +368,9 @@ int gma_lvds_get_modes(struct drm_connector *connector) return 0; } +const struct drm_connector_helper_funcs gma_lvds_connector_helper_funcs = { + .get_modes = gma_lvds_get_modes, + .mode_valid = gma_lvds_mode_valid, + .best_encoder = gma_best_encoder, +}; + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index 70c416d8b7a7..5c7da22400fb 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -24,8 +24,6 @@ struct gma_lvds_priv { }; u32 gma_lvds_get_max_backlight(struct drm_device *dev); -enum drm_mode_status gma_lvds_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode); void gma_lvds_encoder_dpms(struct drm_encoder *encoder, int mode); void gma_lvds_save(struct drm_connector *connector); void gma_lvds_restore(struct drm_connector *connector); @@ -34,8 +32,8 @@ bool gma_lvds_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *adjusted_mode); void gma_lvds_prepare(struct drm_encoder *encoder); void gma_lvds_commit(struct drm_encoder *encoder); -int gma_lvds_get_modes(struct drm_connector *connector); extern const struct drm_encoder_helper_funcs gma_lvds_helper_funcs; +extern const struct drm_connector_helper_funcs gma_lvds_connector_helper_funcs; #endif diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c b/drivers/gpu/drm/gma500/oaktrail_lvds.c index 85cab0f7028a..7724ebd71aa8 100644 --- a/drivers/gpu/drm/gma500/oaktrail_lvds.c +++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c @@ -230,8 +230,7 @@ void oaktrail_lvds_init(struct drm_device *dev, gma_encoder->type = INTEL_OUTPUT_LVDS; drm_encoder_helper_add(encoder, &oaktrail_lvds_helper_funcs); - drm_connector_helper_add(connector, - &psb_intel_lvds_connector_helper_funcs); + drm_connector_helper_add(connector, &gma_lvds_connector_helper_funcs); connector->display_info.subpixel_order = SubPixelHorizontalRGB; connector->interlace_allowed = false; connector->doublescan_allowed = false; diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index 4ef0150c6a03..f129e53f0233 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -210,13 +210,6 @@ int psb_intel_lvds_set_property(struct drm_connector *connector, return -1; } -const struct drm_connector_helper_funcs - psb_intel_lvds_connector_helper_funcs = { - .get_modes = gma_lvds_get_modes, - .mode_valid = gma_lvds_mode_valid, - .best_encoder = gma_best_encoder, -}; - const struct drm_connector_funcs psb_intel_lvds_connector_funcs = { .dpms = drm_helper_connector_dpms, .fill_modes = drm_helper_probe_single_connector_modes, @@ -296,8 +289,7 @@ void psb_intel_lvds_init(struct drm_device *dev, gma_encoder->type = INTEL_OUTPUT_LVDS; drm_encoder_helper_add(encoder, &gma_lvds_helper_funcs); - drm_connector_helper_add(connector, - &psb_intel_lvds_connector_helper_funcs); + drm_connector_helper_add(connector, &gma_lvds_connector_helper_funcs); connector->display_info.subpixel_order = SubPixelHorizontalRGB; connector->interlace_allowed = false; connector->doublescan_allowed = false; From patchwork Mon Jun 13 12:34:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879436 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DA34BC433EF for ; Mon, 13 Jun 2022 12:35:05 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AA8A610E75A; Mon, 13 Jun 2022 12:35:04 +0000 (UTC) Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com [IPv6:2a00:1450:4864:20::233]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3229010E75A for ; Mon, 13 Jun 2022 12:35:02 +0000 (UTC) Received: by mail-lj1-x233.google.com with SMTP id y29so6011159ljd.7 for ; Mon, 13 Jun 2022 05:35:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=g2qph4nC9r6Yu7EsMy5d/ZtimwMDZrD7L9NUry9ikIc=; b=hSeR8bsRWKEjB5SrJ9TjCl94fgc2BAl9oxEPxPwIiaGN1YBt3Pk4WQPREzOGE368GX oKMuu0a82OjBFe+aDJomEk/Tfch5xyADWAXZvnn2QLSsB4XNC/hjIQAy4s2meUhafTda 7yes5YeoR5qXuomIJ7/lS2iLJduJD1hAEhkv194YulhssCrHHJ3JRuIIW6gwzVRl5qsh OjtNitkMYTr9sV1KLIOXjXRGtfuLTmjjE8+sqntT4bg9RzmrA0yondjfdrmZW6oQGAUM nxqD+M49jXYrYouCeRXGKDEnHsC/RfHu/jkL9CbLMQZ7JKinMkthVIHvTNAkFq6R2zLm mU/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=g2qph4nC9r6Yu7EsMy5d/ZtimwMDZrD7L9NUry9ikIc=; b=URrp29zevzV8sJf4Hl0gr6uK2IICJpDjyw3sg4Sdpf/uqXQX3yhB8f3vsC25UY9WbW nDdSO1YjTLi5h2nuDE93uoE/zFogA9wWknm8pyT4v0WRX16aEbIuHRFC78AGuViNu3yE Y4xqqcztdW5y/9mFw8sbGE5+ddqWi1y18qarUQ/fkq4gpk9/ockciLTvNuk06kOx/6GI +xoSLqpodRfO7Ddv6Rse6u1pgLLlEHWpEcqMQC0zl/T6PzYrJxyANOvVTmgfoAEt1KL0 CkD5UMYbqlWNdfX8d38G58XqARXRFTsovGhOvtPNtUQsob8Z8OVHW6ffwdQz3EEbyeX+ jNpQ== X-Gm-Message-State: AOAM533SNdaBMekGcNFy0eCJuOfo7hh5onkVgl474GWzqWzt8lpO0XJj U7SuFgSIC4yFKFxE14cYSwKiMyMUcd4= X-Google-Smtp-Source: ABdhPJyb1t5xc5P3V0v3BcsCxzUJT1WEjCSpDIg3k09ZhPWrYE6aKM6ULGrBQTTpQaRZHsktnl3dUg== X-Received: by 2002:a05:651c:1029:b0:255:7038:f7e8 with SMTP id w9-20020a05651c102900b002557038f7e8mr30708779ljm.377.1655123700088; Mon, 13 Jun 2022 05:35:00 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.34.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:34:59 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 16/19] drm/gma500: Use i2c_bus in gma_encoder for PSB Date: Mon, 13 Jun 2022 14:34:33 +0200 Message-Id: <20220613123436.15185-17-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" PSB stores the backlight i2c adapter in lvds_priv. CDV stores it in gma_encoder. Neither place is perfect but lets pick gma_encoder to make life simple. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/gma_lvds.h | 2 -- drivers/gpu/drm/gma500/psb_intel_lvds.c | 10 +++++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index 5c7da22400fb..dcba810dc470 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -19,8 +19,6 @@ struct gma_lvds_priv { uint32_t savePFIT_CONTROL; uint32_t savePFIT_PGM_RATIOS; uint32_t saveBLC_PWM_CTL; - - struct gma_i2c_chan *i2c_bus; }; u32 gma_lvds_get_max_backlight(struct drm_device *dev); diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index f129e53f0233..ea5f2f078a7f 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -306,14 +306,14 @@ void psb_intel_lvds_init(struct drm_device *dev, * Set up I2C bus * FIXME: distroy i2c_bus when exit */ - lvds_priv->i2c_bus = gma_i2c_create(dev, GPIOB, "LVDSBLC_B"); - if (!lvds_priv->i2c_bus) { + gma_encoder->i2c_bus = gma_i2c_create(dev, GPIOB, "LVDSBLC_B"); + if (!gma_encoder->i2c_bus) { dev_printk(KERN_ERR, dev->dev, "I2C bus registration failed.\n"); goto err_encoder_cleanup; } - lvds_priv->i2c_bus->slave_addr = 0x2C; - dev_priv->lvds_i2c_bus = lvds_priv->i2c_bus; + gma_encoder->i2c_bus->slave_addr = 0x2C; + dev_priv->lvds_i2c_bus = gma_encoder->i2c_bus; /* * LVDS discovery: @@ -390,7 +390,7 @@ void psb_intel_lvds_init(struct drm_device *dev, err_unlock: mutex_unlock(&dev->mode_config.mutex); - gma_i2c_destroy(lvds_priv->i2c_bus); + gma_i2c_destroy(gma_encoder->i2c_bus); err_encoder_cleanup: drm_encoder_cleanup(encoder); err_connector_cleanup: From patchwork Mon Jun 13 12:34:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879440 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D2D61CCA47C for ; Mon, 13 Jun 2022 12:35:14 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BBA9110E76D; Mon, 13 Jun 2022 12:35:08 +0000 (UTC) Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4ADD410E762 for ; Mon, 13 Jun 2022 12:35:03 +0000 (UTC) Received: by mail-lf1-x133.google.com with SMTP id y32so8612838lfa.6 for ; Mon, 13 Jun 2022 05:35:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bP5AsGmP9M86M1+ichu1OQiFmxnyp6NNzkk4H3UFckE=; b=gCortfoSKfyDaxFacd3kKMWYVDxaUzpaL079w4PctA3vi23PR+e+cbxcTUUw2AmMyT KOYQTae2kLiAK0jpUF1hGW3l5tgZNhYs124woXs/JSq7yWZfVhWv2Ca4BuBZCAwLl85h 6Ptn5LSz3vlN3Tp2l0hLe034GEWf0zpmbOzr9SRx7tWn2tIEJv9uL5uEkk2h7nIDbK1V 4GZksKrACycOl5Nv069ZJwFDu7Ku6AbnMO32LfEtqhNG5aEzWjxkL8cQVu5QSJyREpyx IrIRJIxveD9pbvxQ0IS94p9WYSOgtGQ8Lm2ADKH4En6uQ4ZO9vXtCQ6i6H5DqmUZDFwB i1nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=bP5AsGmP9M86M1+ichu1OQiFmxnyp6NNzkk4H3UFckE=; b=T91P6tRR/9fNp+XGONCRoxEJuo77Kzbz1CIOJedUgrZM7WE/JFrNsQCkgC6smPPx/P eYd9vJ9mbJRL3ICV1ijJNUnTbpstoOOCqI02c+6Ofv3kzHMe1PpGmx8skSyyqtlXXK87 l/S+PcsYulTLwrJKtD9e6xMgn0Jyg5HfccaMKdr6YHQ8NrEtIuzxq7SzfjzPHRCl/NX6 NfMyjQWjt0Yj66v8bf7NG8HyHj92xeqILoLZ53zFIdhkGX8D9Z6efWeveWOmLaZLvlrV I2MgK/odQDYbGdP1QbiktN6H3q5A5Jmq5/Ckc3OLDsdxvkOWmm88C8qIgaFI3AATehBJ nTxA== X-Gm-Message-State: AOAM533jUXOFtT3riloab0930w4bk3mUrrBYf+/xRGJ9Qan2TbTWa+il D27MoMaP3X2E2quu8dMLCnMvclFf1n0= X-Google-Smtp-Source: ABdhPJyBu0LYe0etQZIRrMhlWjfFCJd1fzcTEqn4fSAvZpfZRuK96kpdi8/NJU/A5bGzv6lgJPq9cQ== X-Received: by 2002:a05:6512:2814:b0:47d:cbbe:33f8 with SMTP id cf20-20020a056512281400b0047dcbbe33f8mr4851534lfb.601.1655123701200; Mon, 13 Jun 2022 05:35:01 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.35.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:35:00 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 17/19] drm/gma500: Unify *_intel_lvds_destroy() Date: Mon, 13 Jun 2022 14:34:34 +0200 Message-Id: <20220613123436.15185-18-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These functions mostly do the same thing so unify them into one. Only destroy i2c adapters that have actually been created. gma_i2c_destroy() is now also called for PSB. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 14 +------------- drivers/gpu/drm/gma500/gma_lvds.c | 15 +++++++++++++++ drivers/gpu/drm/gma500/gma_lvds.h | 1 + drivers/gpu/drm/gma500/psb_intel_lvds.c | 13 +------------ 4 files changed, 18 insertions(+), 25 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index 2ba635513401..c492f1b3c8ea 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -39,17 +39,6 @@ #define PSB_BACKLIGHT_PWM_CTL_SHIFT (16) #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE) -static void cdv_intel_lvds_destroy(struct drm_connector *connector) -{ - struct gma_connector *gma_connector = to_gma_connector(connector); - struct gma_encoder *gma_encoder = gma_attached_encoder(connector); - - gma_i2c_destroy(to_gma_i2c_chan(connector->ddc)); - gma_i2c_destroy(gma_encoder->i2c_bus); - drm_connector_cleanup(connector); - kfree(gma_connector); -} - static int cdv_intel_lvds_set_property(struct drm_connector *connector, struct drm_property *property, uint64_t value) @@ -115,7 +104,7 @@ static const struct drm_connector_funcs cdv_intel_lvds_connector_funcs = { .dpms = drm_helper_connector_dpms, .fill_modes = drm_helper_probe_single_connector_modes, .set_property = cdv_intel_lvds_set_property, - .destroy = cdv_intel_lvds_destroy, + .destroy = gma_lvds_destroy, }; /* @@ -261,7 +250,6 @@ void cdv_intel_lvds_init(struct drm_device *dev, /** * Set up I2C bus - * FIXME: distroy i2c_bus when exit */ gma_encoder->i2c_bus = gma_i2c_create(dev, GPIOB, "LVDSBLC_B"); if (!gma_encoder->i2c_bus) { diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index 3b48999105d1..9238cad5fac8 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -374,3 +374,18 @@ const struct drm_connector_helper_funcs gma_lvds_connector_helper_funcs = { .best_encoder = gma_best_encoder, }; +void gma_lvds_destroy(struct drm_connector *connector) +{ + struct gma_connector *gma_connector = to_gma_connector(connector); + struct gma_encoder *gma_encoder = gma_attached_encoder(connector); + + if (connector->ddc) + gma_i2c_destroy(to_gma_i2c_chan(connector->ddc)); + + if (gma_encoder->i2c_bus) + gma_i2c_destroy(gma_encoder->i2c_bus); + + drm_connector_cleanup(connector); + kfree(gma_connector); +} + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index dcba810dc470..835305c900d8 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -30,6 +30,7 @@ bool gma_lvds_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *adjusted_mode); void gma_lvds_prepare(struct drm_encoder *encoder); void gma_lvds_commit(struct drm_encoder *encoder); +void gma_lvds_destroy(struct drm_connector *connector); extern const struct drm_encoder_helper_funcs gma_lvds_helper_funcs; extern const struct drm_connector_helper_funcs gma_lvds_connector_helper_funcs; diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index ea5f2f078a7f..76742925b760 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -132,16 +132,6 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -void psb_intel_lvds_destroy(struct drm_connector *connector) -{ - struct gma_connector *gma_connector = to_gma_connector(connector); - struct gma_i2c_chan *ddc_bus = to_gma_i2c_chan(connector->ddc); - - gma_i2c_destroy(ddc_bus); - drm_connector_cleanup(connector); - kfree(gma_connector); -} - int psb_intel_lvds_set_property(struct drm_connector *connector, struct drm_property *property, uint64_t value) @@ -214,7 +204,7 @@ const struct drm_connector_funcs psb_intel_lvds_connector_funcs = { .dpms = drm_helper_connector_dpms, .fill_modes = drm_helper_probe_single_connector_modes, .set_property = psb_intel_lvds_set_property, - .destroy = psb_intel_lvds_destroy, + .destroy = gma_lvds_destroy, }; /** @@ -304,7 +294,6 @@ void psb_intel_lvds_init(struct drm_device *dev, /* * Set up I2C bus - * FIXME: distroy i2c_bus when exit */ gma_encoder->i2c_bus = gma_i2c_create(dev, GPIOB, "LVDSBLC_B"); if (!gma_encoder->i2c_bus) { From patchwork Mon Jun 13 12:34:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879437 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B5E43C43334 for ; Mon, 13 Jun 2022 12:35:10 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 998F810E762; Mon, 13 Jun 2022 12:35:07 +0000 (UTC) Received: from mail-lj1-x234.google.com (mail-lj1-x234.google.com [IPv6:2a00:1450:4864:20::234]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4967B10E75C for ; Mon, 13 Jun 2022 12:35:03 +0000 (UTC) Received: by mail-lj1-x234.google.com with SMTP id e4so6044776ljl.1 for ; Mon, 13 Jun 2022 05:35:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=X932hBcrpAC64COzY/oY5XI3TXUVTSwpHB0vw4+QUQs=; b=Gz5z+ihuPKPTybuR84dXCuYJ+fdD61YEtySfax/HYhrYQLZ47BsBvMnag4UYn+7HV/ mZYw7GKgF0lcIVuDD15hlilckp9gLjO5qLMITCERR2EiTUvxHt6ihfFbiSxpiz+01MAo H1eRpBQfhlYVdPU7hsdUakl2RaRk9HCZXCBR6kFg5cAfXvutGb7K/dAT+dyPjp+7cIsB SGoL5BkC0UQatRA9HO5t7YAhKHqa4IARurhB74xSQaz9aQ79Riw61JD2OXIy8yDt9xb6 XvUOs/uHsR3hIWxY9j8KR2El27MCD3qIVjt7yTfBQiZkGkOFqiOdNQlsgog3QZVX6Bn4 FPBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=X932hBcrpAC64COzY/oY5XI3TXUVTSwpHB0vw4+QUQs=; b=t+RZXBm6D/blWlN4Z7EHkDmk+THT17wq1B9MiG4v883ZLrUgg5aq+ih7wZ9Ic2b9pY /AlnPUG9w64XTvWob786XqB9O3rO+s9/E9RmXse4TM2pQkpAazJUpxevfe+7RojPxQ4g h/ruXbQe0aOWwbOLH+0R+Ii4XeTXXMn8vQOHS9Bk2RUl/3sTEBr8jh/lCOSxqn3GGwsV smsfebFMHjLJE+09NGItQdhVwSmOpdAf4nI1QkTZekMDXx9gdf+mL4zAfqNbtQhEkmwo zmN1zn2Ig1qvjo/EKNW1/Typ1bzFCpaGvHos9IgKYCbpJRXfZRwYSBm9+WFLDyHL6yY+ wKFg== X-Gm-Message-State: AOAM5311BM9mugol1Iz2MZcNlnI7CdDiKDnWVrfOvBGzukRNAlxZNsBb 9z1hsTgq3b7WxGAAPXJTF3vjEPyfhmM= X-Google-Smtp-Source: ABdhPJyNRgblPnbKDOgT2NBZdSXVum8FWaPLfSqgwzZFJ2fA2d95W716qOfBpJooz6W9fIZKyI7OdA== X-Received: by 2002:a2e:9893:0:b0:255:951f:9694 with SMTP id b19-20020a2e9893000000b00255951f9694mr21619704ljj.283.1655123702378; Mon, 13 Jun 2022 05:35:02 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.35.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:35:01 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 18/19] drm/gma500: Unify *_intel_lvds_set_property() Date: Mon, 13 Jun 2022 14:34:35 +0200 Message-Id: <20220613123436.15185-19-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These functions mostly do the same thing so unify them into one. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 63 +--------------------- drivers/gpu/drm/gma500/gma_lvds.c | 64 ++++++++++++++++++++++ drivers/gpu/drm/gma500/gma_lvds.h | 2 + drivers/gpu/drm/gma500/psb_intel_lvds.c | 70 +------------------------ 4 files changed, 68 insertions(+), 131 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index c492f1b3c8ea..ccb489d6795b 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -39,71 +39,10 @@ #define PSB_BACKLIGHT_PWM_CTL_SHIFT (16) #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE) -static int cdv_intel_lvds_set_property(struct drm_connector *connector, - struct drm_property *property, - uint64_t value) -{ - struct drm_encoder *encoder = connector->encoder; - - if (!strcmp(property->name, "scaling mode") && encoder) { - struct gma_crtc *crtc = to_gma_crtc(encoder->crtc); - uint64_t curValue; - - if (!crtc) - return -1; - - switch (value) { - case DRM_MODE_SCALE_FULLSCREEN: - break; - case DRM_MODE_SCALE_NO_SCALE: - break; - case DRM_MODE_SCALE_ASPECT: - break; - default: - return -1; - } - - if (drm_object_property_get_value(&connector->base, - property, - &curValue)) - return -1; - - if (curValue == value) - return 0; - - if (drm_object_property_set_value(&connector->base, - property, - value)) - return -1; - - if (crtc->saved_mode.hdisplay != 0 && - crtc->saved_mode.vdisplay != 0) { - if (!drm_crtc_helper_set_mode(encoder->crtc, - &crtc->saved_mode, - encoder->crtc->x, - encoder->crtc->y, - encoder->crtc->primary->fb)) - return -1; - } - } else if (!strcmp(property->name, "backlight") && encoder) { - if (drm_object_property_set_value(&connector->base, - property, - value)) - return -1; - else - gma_backlight_set(encoder->dev, value); - } else if (!strcmp(property->name, "DPMS") && encoder) { - const struct drm_encoder_helper_funcs *helpers = - encoder->helper_private; - helpers->dpms(encoder, value); - } - return 0; -} - static const struct drm_connector_funcs cdv_intel_lvds_connector_funcs = { .dpms = drm_helper_connector_dpms, .fill_modes = drm_helper_probe_single_connector_modes, - .set_property = cdv_intel_lvds_set_property, + .set_property = gma_lvds_set_property, .destroy = gma_lvds_destroy, }; diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index 9238cad5fac8..e4278d26f811 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -389,3 +389,67 @@ void gma_lvds_destroy(struct drm_connector *connector) kfree(gma_connector); } +int gma_lvds_set_property(struct drm_connector *connector, + struct drm_property *property, + uint64_t value) +{ + struct drm_encoder *encoder = connector->encoder; + + if (!encoder) + return -1; + + if (!strcmp(property->name, "scaling mode") && encoder) { + struct gma_crtc *crtc = to_gma_crtc(encoder->crtc); + uint64_t curValue; + + if (!crtc) + return -1; + + switch (value) { + case DRM_MODE_SCALE_FULLSCREEN: + break; + case DRM_MODE_SCALE_NO_SCALE: + break; + case DRM_MODE_SCALE_ASPECT: + break; + default: + return -1; + } + + if (drm_object_property_get_value(&connector->base, + property, + &curValue)) + return -1; + + if (curValue == value) + return 0; + + if (drm_object_property_set_value(&connector->base, + property, + value)) + return -1; + + if (crtc->saved_mode.hdisplay != 0 && + crtc->saved_mode.vdisplay != 0) { + if (!drm_crtc_helper_set_mode(encoder->crtc, + &crtc->saved_mode, + encoder->crtc->x, + encoder->crtc->y, + encoder->crtc->primary->fb)) + return -1; + } + } else if (!strcmp(property->name, "backlight") && encoder) { + if (drm_object_property_set_value(&connector->base, + property, + value)) + return -1; + else + gma_backlight_set(encoder->dev, value); + } else if (!strcmp(property->name, "DPMS") && encoder) { + const struct drm_encoder_helper_funcs *helpers = + encoder->helper_private; + helpers->dpms(encoder, value); + } + return 0; +} + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index 835305c900d8..ea261a60e9ff 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -31,6 +31,8 @@ bool gma_lvds_mode_fixup(struct drm_encoder *encoder, void gma_lvds_prepare(struct drm_encoder *encoder); void gma_lvds_commit(struct drm_encoder *encoder); void gma_lvds_destroy(struct drm_connector *connector); +int gma_lvds_set_property(struct drm_connector *connector, + struct drm_property *property, uint64_t value); extern const struct drm_encoder_helper_funcs gma_lvds_helper_funcs; extern const struct drm_connector_helper_funcs gma_lvds_connector_helper_funcs; diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index 76742925b760..df2e770c660a 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -132,78 +132,10 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -int psb_intel_lvds_set_property(struct drm_connector *connector, - struct drm_property *property, - uint64_t value) -{ - struct drm_encoder *encoder = connector->encoder; - - if (!encoder) - return -1; - - if (!strcmp(property->name, "scaling mode")) { - struct gma_crtc *crtc = to_gma_crtc(encoder->crtc); - uint64_t curval; - - if (!crtc) - goto set_prop_error; - - switch (value) { - case DRM_MODE_SCALE_FULLSCREEN: - break; - case DRM_MODE_SCALE_NO_SCALE: - break; - case DRM_MODE_SCALE_ASPECT: - break; - default: - goto set_prop_error; - } - - if (drm_object_property_get_value(&connector->base, - property, - &curval)) - goto set_prop_error; - - if (curval == value) - goto set_prop_done; - - if (drm_object_property_set_value(&connector->base, - property, - value)) - goto set_prop_error; - - if (crtc->saved_mode.hdisplay != 0 && - crtc->saved_mode.vdisplay != 0) { - if (!drm_crtc_helper_set_mode(encoder->crtc, - &crtc->saved_mode, - encoder->crtc->x, - encoder->crtc->y, - encoder->crtc->primary->fb)) - goto set_prop_error; - } - } else if (!strcmp(property->name, "backlight")) { - if (drm_object_property_set_value(&connector->base, - property, - value)) - goto set_prop_error; - else - gma_backlight_set(encoder->dev, value); - } else if (!strcmp(property->name, "DPMS")) { - const struct drm_encoder_helper_funcs *hfuncs - = encoder->helper_private; - hfuncs->dpms(encoder, value); - } - -set_prop_done: - return 0; -set_prop_error: - return -1; -} - const struct drm_connector_funcs psb_intel_lvds_connector_funcs = { .dpms = drm_helper_connector_dpms, .fill_modes = drm_helper_probe_single_connector_modes, - .set_property = psb_intel_lvds_set_property, + .set_property = gma_lvds_set_property, .destroy = gma_lvds_destroy, }; From patchwork Mon Jun 13 12:34:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrik Jakobsson X-Patchwork-Id: 12879439 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 538A1C433EF for ; Mon, 13 Jun 2022 12:35:13 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E8E4C10E764; Mon, 13 Jun 2022 12:35:07 +0000 (UTC) Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) by gabe.freedesktop.org (Postfix) with ESMTPS id A9FA810E763 for ; Mon, 13 Jun 2022 12:35:05 +0000 (UTC) Received: by mail-lf1-x134.google.com with SMTP id a15so8590984lfb.9 for ; Mon, 13 Jun 2022 05:35:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kc18N6sC9vauDfcbGnI0rx0nsvG5/mJiSzeQmZ0Y8yg=; b=MU2vm9C8BcOeqyZzbW/lZ3DNDIV9tqA033Btd7iuqBUmEBzoeFh1acNKewBobNLeVL Q55U5lU7ntsLsKJIJXTqLrvOpgkvbNygpvl3/Zzlpd9Uem0547ZhCHfmB7sw/4Nj/2/q C7D46r2U8l7iEJq1smGSblCTpPhcf/BXR25Fq7Fh5Kv4C3HRbspOWGjxjZIu+GUiBRkQ 7ZJ0YqgUcLDJp4UgnGhrt3umttL1HAPS9vYuboQLnqM0F5pOvSrJNK9kvTmyOB1sO6Q9 A6zzk+4+EMtJ4UW3HzkovLjXFU6ZUVt8YX0YTrJ9vb/sDxpLZLQIbDpJuMmT8l+087K7 LLjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kc18N6sC9vauDfcbGnI0rx0nsvG5/mJiSzeQmZ0Y8yg=; b=MDM8EwQC9nFRd67WCfKkjINBV8NgwxgPi7ocKQBZtNm/3TaczmkD++TD2x8W/FdtYZ onWgPJse+BcARrbBtBitdhFA4fG9NMU8ZTbOV6GP4H+K5Gfrg47GWZkhlAWmOQ+f9Fwl FwJsQVigPd3nW6sxAyl7PyoQTuWU1JlnpqPeQwRvVYYkYk0aUbmQsasjtKa/mqMvLdcg e9FDMzdiCUcQ5CgUGz1syeXVK966LuFHhI/KCWO/3fOWgYxq2xz8x7DEqE6uMIXYgUwB tKPhBkZR3tJhR1QXGLqRMGRm5YGn7YnzCLrhpNR6Pm8BgchaH8LY89vcdghebCorcBi1 m4XA== X-Gm-Message-State: AOAM532ihyUxK+2MYfJ4BoUm06X8RmfFAhy0egnsxZwFuT5JzxeIRtyf uMSgzKYFmATlpMtVlx8gV6FpQFe0J+Y= X-Google-Smtp-Source: ABdhPJzwxHJIwGZ7DilKxbfObtLwDFA2afHQPHeKodYpjc82SXhtCKJGzwCZsmWSf39E1Da62O90xA== X-Received: by 2002:a05:6512:c07:b0:479:2e0f:9a06 with SMTP id z7-20020a0565120c0700b004792e0f9a06mr26607628lfu.687.1655123703519; Mon, 13 Jun 2022 05:35:03 -0700 (PDT) Received: from localhost.localdomain (81-226-149-122-no518.tbcn.telia.com. [81.226.149.122]) by smtp.gmail.com with ESMTPSA id j12-20020a056512344c00b004791232dd6fsm973261lfr.257.2022.06.13.05.35.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jun 2022 05:35:02 -0700 (PDT) From: Patrik Jakobsson To: dri-devel@lists.freedesktop.org Subject: [PATCH 19/19] drm/gma500: Unify struct *_intel_lvds_connector_funcs Date: Mon, 13 Jun 2022 14:34:36 +0200 Message-Id: <20220613123436.15185-20-patrik.r.jakobsson@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> References: <20220613123436.15185-1-patrik.r.jakobsson@gmail.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: daniel.vetter@ffwll.ch, sam@ravnborg.org, tzimmermann@suse.de Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" These now only contains generic drm/gma functions so create gma_lvds_connector_funcs that all chips can use. Signed-off-by: Patrik Jakobsson --- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 9 +-------- drivers/gpu/drm/gma500/gma_lvds.c | 15 +++++++++++---- drivers/gpu/drm/gma500/gma_lvds.h | 4 +--- drivers/gpu/drm/gma500/oaktrail_lvds.c | 2 +- drivers/gpu/drm/gma500/psb_intel_lvds.c | 9 +-------- 5 files changed, 15 insertions(+), 24 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index ccb489d6795b..0b8f818ca9b5 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -39,13 +39,6 @@ #define PSB_BACKLIGHT_PWM_CTL_SHIFT (16) #define PSB_BACKLIGHT_PWM_POLARITY_BIT_CLEAR (0xFFFE) -static const struct drm_connector_funcs cdv_intel_lvds_connector_funcs = { - .dpms = drm_helper_connector_dpms, - .fill_modes = drm_helper_probe_single_connector_modes, - .set_property = gma_lvds_set_property, - .destroy = gma_lvds_destroy, -}; - /* * Enumerate the child dev array parsed from VBT to check whether * the LVDS is present. @@ -160,7 +153,7 @@ void cdv_intel_lvds_init(struct drm_device *dev, } ret = drm_connector_init_with_ddc(dev, connector, - &cdv_intel_lvds_connector_funcs, + &gma_lvds_connector_funcs, DRM_MODE_CONNECTOR_LVDS, &ddc_bus->base); if (ret) diff --git a/drivers/gpu/drm/gma500/gma_lvds.c b/drivers/gpu/drm/gma500/gma_lvds.c index e4278d26f811..612013baf7ad 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.c +++ b/drivers/gpu/drm/gma500/gma_lvds.c @@ -374,7 +374,7 @@ const struct drm_connector_helper_funcs gma_lvds_connector_helper_funcs = { .best_encoder = gma_best_encoder, }; -void gma_lvds_destroy(struct drm_connector *connector) +static void gma_lvds_destroy(struct drm_connector *connector) { struct gma_connector *gma_connector = to_gma_connector(connector); struct gma_encoder *gma_encoder = gma_attached_encoder(connector); @@ -389,9 +389,9 @@ void gma_lvds_destroy(struct drm_connector *connector) kfree(gma_connector); } -int gma_lvds_set_property(struct drm_connector *connector, - struct drm_property *property, - uint64_t value) +static int gma_lvds_set_property(struct drm_connector *connector, + struct drm_property *property, + uint64_t value) { struct drm_encoder *encoder = connector->encoder; @@ -453,3 +453,10 @@ int gma_lvds_set_property(struct drm_connector *connector, return 0; } +const struct drm_connector_funcs gma_lvds_connector_funcs = { + .dpms = drm_helper_connector_dpms, + .fill_modes = drm_helper_probe_single_connector_modes, + .set_property = gma_lvds_set_property, + .destroy = gma_lvds_destroy, +}; + diff --git a/drivers/gpu/drm/gma500/gma_lvds.h b/drivers/gpu/drm/gma500/gma_lvds.h index ea261a60e9ff..bcb2efa7a1b5 100644 --- a/drivers/gpu/drm/gma500/gma_lvds.h +++ b/drivers/gpu/drm/gma500/gma_lvds.h @@ -30,11 +30,9 @@ bool gma_lvds_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *adjusted_mode); void gma_lvds_prepare(struct drm_encoder *encoder); void gma_lvds_commit(struct drm_encoder *encoder); -void gma_lvds_destroy(struct drm_connector *connector); -int gma_lvds_set_property(struct drm_connector *connector, - struct drm_property *property, uint64_t value); extern const struct drm_encoder_helper_funcs gma_lvds_helper_funcs; extern const struct drm_connector_helper_funcs gma_lvds_connector_helper_funcs; +extern const struct drm_connector_funcs gma_lvds_connector_funcs; #endif diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c b/drivers/gpu/drm/gma500/oaktrail_lvds.c index 7724ebd71aa8..ea2745116f92 100644 --- a/drivers/gpu/drm/gma500/oaktrail_lvds.c +++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c @@ -217,7 +217,7 @@ void oaktrail_lvds_init(struct drm_device *dev, encoder = &gma_encoder->base; dev_priv->is_lvds_on = true; ret = drm_connector_init(dev, connector, - &psb_intel_lvds_connector_funcs, + &gma_lvds_connector_funcs, DRM_MODE_CONNECTOR_LVDS); if (ret) goto err_free_connector; diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index df2e770c660a..4d9b9b45525f 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -132,13 +132,6 @@ void psb_intel_lvds_set_brightness(struct drm_device *dev, int level) psb_lvds_pwm_set_brightness(dev, level); } -const struct drm_connector_funcs psb_intel_lvds_connector_funcs = { - .dpms = drm_helper_connector_dpms, - .fill_modes = drm_helper_probe_single_connector_modes, - .set_property = gma_lvds_set_property, - .destroy = gma_lvds_destroy, -}; - /** * psb_intel_lvds_init - setup LVDS connectors on this device * @dev: drm device @@ -197,7 +190,7 @@ void psb_intel_lvds_init(struct drm_device *dev, } ret = drm_connector_init_with_ddc(dev, connector, - &psb_intel_lvds_connector_funcs, + &gma_lvds_connector_funcs, DRM_MODE_CONNECTOR_LVDS, &ddc_bus->base); if (ret)