Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp491541pxf; Thu, 18 Mar 2021 05:42:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy829Af6uY2diemIBfW43XKHVPcI7WtJ4E7Xggm/mono+y7u0ZXCZABeKIDovByrffcEl5b X-Received: by 2002:a17:906:9501:: with SMTP id u1mr41147633ejx.324.1616071372706; Thu, 18 Mar 2021 05:42:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616071372; cv=none; d=google.com; s=arc-20160816; b=NbqjsFoRRDS+uEFZ2Ff63Lo2IeM/UUnrNuyiKeS5fz/eTIjBb1b6Qux1Uc2w51wyKY xAj6rrRQYCYnzm1zsmlDCdpOcWBsdBVP61LOuaRcpkq9pNym0RJTuPwz8za9Yx+Yqocm xlsCeXL4y2Ew8wykXeJaqYpXsOYd9Ub7t0NI3ZHlrS3bP8exCIz/CoeD/WCkOdj/6m0j I3wA+Pou90rDIac8JE296ilV7wy3f82B4XPPE7oB5hgTQ9Yu1xGzmJCY+QlgbceibJoC LO9ZdyUa2mfJMAaXbmZxzSlXKaEc/kYp/Mvb7dUbtDbm9VkzoQxMFRA/v15vwRRZO+bR DyUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dmarc-filter:sender:dkim-signature; bh=zMH4KZLVuj26V2WKbkO37kkmJ5LZVxtii7JpvkmoOp0=; b=1JwDKxeyzVhC3batqL3sOlmwWYJDTn0gQ5+EwIe0af8KZv5TCoSfur1/Q019fG7J1F XSJwkv6Dkr5a2tguWkgX70GBeGjrrCsUhlXj/lWBM1WjdAa0tUEJQrMFANBzuNVXJ7gI B41ZTAA6yQJzqyjfx4ZC3S2v573Pen/qtKDXvWrOpMecX9256l3No0FTQt/3ZmmMQml4 4MoUcbrlwyJOVpQB6TNqhnesNDLRGdr8WbKAOvVNRgzkytIWJLJkFnuIUmJOh52IeSAa i5BOkdUT0DJ6ZBLCmITM4auBAESzuTau50Wf4CTqLSppi7FaYVYf5+y+w4sAEtJfxueq cZDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=qkgY0HpK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b25si1384959ejv.506.2021.03.18.05.42.28; Thu, 18 Mar 2021 05:42:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=qkgY0HpK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230171AbhCRMki (ORCPT + 99 others); Thu, 18 Mar 2021 08:40:38 -0400 Received: from m42-10.mailgun.net ([69.72.42.10]:51511 "EHLO m42-10.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231281AbhCRMk0 (ORCPT ); Thu, 18 Mar 2021 08:40:26 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1616071226; h=References: In-Reply-To: Message-Id: Date: Subject: Cc: To: From: Sender; bh=zMH4KZLVuj26V2WKbkO37kkmJ5LZVxtii7JpvkmoOp0=; b=qkgY0HpKyEM+BTQG0WKM6ON7A4sH3Zb8WvlQM+CM5y14LDBaG8BWuLxQ2K6f0WU1T7tVTgtB lPaZMzm0OaI7z9SVwBNssPVQ5kM/9g4mY5f5tdJ18stLTyYQqdKud8e7fbXwmL3BQ0jW8pFl 1MFmw72LK9Q62qYPPTlSsV0Hvws= X-Mailgun-Sending-Ip: 69.72.42.10 X-Mailgun-Sid: WyI0MWYwYSIsICJsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n07.prod.us-east-1.postgun.com with SMTP id 60534a301de5dd7b99bc56e3 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Thu, 18 Mar 2021 12:40:16 GMT Sender: kgunda=codeaurora.org@mg.codeaurora.org Received: by smtp.codeaurora.org (Postfix, from userid 1001) id EA1D7C433C6; Thu, 18 Mar 2021 12:40:15 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-caf-mail-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00,SPF_FAIL, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from kgunda-linux.qualcomm.com (unknown [202.46.22.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: kgunda) by smtp.codeaurora.org (Postfix) with ESMTPSA id BCBE5C43469; Thu, 18 Mar 2021 12:40:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org BCBE5C43469 Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=fail smtp.mailfrom=kgunda@codeaurora.org From: Kiran Gunda To: bjorn.andersson@linaro.org, jingoohan1@gmail.com, lee.jones@linaro.org, b.zolnierkie@samsung.com, dri-devel@lists.freedesktop.org, daniel.thompson@linaro.org, jacek.anaszewski@gmail.com, pavel@ucw.cz, robh+dt@kernel.org, mark.rutland@arm.com, linux-leds@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, Andy Gross , linux-arm-msm@vger.kernel.org, linux-fbdev@vger.kernel.org Cc: Kiran Gunda Subject: [PATCH V5 1/2] backlight: qcom-wled: Fix FSC update issue for WLED5 Date: Thu, 18 Mar 2021 18:09:39 +0530 Message-Id: <1616071180-24493-2-git-send-email-kgunda@codeaurora.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1616071180-24493-1-git-send-email-kgunda@codeaurora.org> References: <1616071180-24493-1-git-send-email-kgunda@codeaurora.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently, for WLED5, the FSC (Full scale current) setting is not updated properly due to driver toggling the wrong register after an FSC update. On WLED5 we should only toggle the MOD_SYNC bit after a brightness update. For an FSC update we need to toggle the SYNC bits instead. Fix it by adopting the common wled3_sync_toggle() for WLED5 and introducing new code to the brightness update path to compensate. Signed-off-by: Kiran Gunda Reviewed-by: Daniel Thompson --- drivers/video/backlight/qcom-wled.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/drivers/video/backlight/qcom-wled.c b/drivers/video/backlight/qcom-wled.c index fc8b443..e9fbe24 100644 --- a/drivers/video/backlight/qcom-wled.c +++ b/drivers/video/backlight/qcom-wled.c @@ -348,7 +348,7 @@ static int wled3_sync_toggle(struct wled *wled) return rc; } -static int wled5_sync_toggle(struct wled *wled) +static int wled5_mod_sync_toggle(struct wled *wled) { int rc; u8 val; @@ -445,10 +445,23 @@ static int wled_update_status(struct backlight_device *bl) goto unlock_mutex; } - rc = wled->wled_sync_toggle(wled); - if (rc < 0) { - dev_err(wled->dev, "wled sync failed rc:%d\n", rc); - goto unlock_mutex; + if (wled->version < 5) { + rc = wled->wled_sync_toggle(wled); + if (rc < 0) { + dev_err(wled->dev, "wled sync failed rc:%d\n", rc); + goto unlock_mutex; + } + } else { + /* + * For WLED5 toggling the MOD_SYNC_BIT updates the + * brightness + */ + rc = wled5_mod_sync_toggle(wled); + if (rc < 0) { + dev_err(wled->dev, "wled mod sync failed rc:%d\n", + rc); + goto unlock_mutex; + } } } @@ -1459,7 +1472,7 @@ static int wled_configure(struct wled *wled) size = ARRAY_SIZE(wled5_opts); *cfg = wled5_config_defaults; wled->wled_set_brightness = wled5_set_brightness; - wled->wled_sync_toggle = wled5_sync_toggle; + wled->wled_sync_toggle = wled3_sync_toggle; wled->wled_cabc_config = wled5_cabc_config; wled->wled_ovp_delay = wled5_ovp_delay; wled->wled_auto_detection_required = -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project