Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp2186156iof; Tue, 7 Jun 2022 22:33:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzfmVJr4T+bk/b1cxn9Q3ZlUFjXWLsZcbdSsRKHqp63b6QbGZ3mV7e1BD+GUElHctze3Rae X-Received: by 2002:a17:902:f791:b0:167:8f4d:a13b with SMTP id q17-20020a170902f79100b001678f4da13bmr8222069pln.34.1654666384159; Tue, 07 Jun 2022 22:33:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654666384; cv=none; d=google.com; s=arc-20160816; b=yn/oLVY61G9mdnNT9Y7Gu9TARtKogyeDoALYq4vPykmQgrATRxton0iA2QKSeRKK0w R3BM0CDYSUtN2UuTywZPxxyYw1GIHf/z0ZZSbdXGWhdt9VziIwTvPtK2nD9FLLxsOWDW Ci/bF+QwOdnvmaoAoE502kRbQXt7waeygowh8qhK1I277IkdPslEewkE8xlhI1GyOzLo hp3h7Jy+Hyec9gg17oMV6NBvJ2gTksOUaV+HRaflocOd9IaVrRIvETitztsN0KNAB3tL JLpXxsemfCaTYic0IhDWxIWMKaRT4k6RB+IzWSojqAPXHlsw700j5wSScx+WCxFWqbnn 7aag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=uUYDSDvKcd6wct28C5qdbJLVhdisrInr0I6LaNHhwGA=; b=1HTyI4S2Bae37Bwvr4zkFz5Fex7E/3RheTiszFqdbzORcNNsjlZbvn1gxDi7cktyjo f5kfCtBftOC/hdU+f9ZyCbx2Yi+zXphv0bUEKXx20D15KfvGwXv/y4jq+m6aaxCKxSBT IEsONgGqO51XINct0CDPHz41TgQfPf0aZLaDNBEWhGdZRO7TRJHHQIIWW/Hlqt2/GNu1 ftE+BABzNrsDwk7/zjSmrnPL4hxy8H4BSHT1suaTIz+Kaq7pWMoK+mylMSNx4ehZ0PPz yA068QwkDDrlWQo3rsGYjVS4uxYTv+qbm0ab3q3Sy4HoNdAXsoIvws58QL3U+18ctoZh 3Oyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=GcnfYyo0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id bg5-20020a1709028e8500b00163e9849d54si24445769plb.214.2022.06.07.22.33.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jun 2022 22:33:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=GcnfYyo0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 0A843491E39; Tue, 7 Jun 2022 22:00:30 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245006AbiFGU6Q (ORCPT + 99 others); Tue, 7 Jun 2022 16:58:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50218 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358715AbiFGTxG (ORCPT ); Tue, 7 Jun 2022 15:53:06 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED54EDEB6; Tue, 7 Jun 2022 11:22:12 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8358660DB7; Tue, 7 Jun 2022 18:22:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8EB17C385A2; Tue, 7 Jun 2022 18:22:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1654626131; bh=l3IeLQWJmXD1c4kbwl4mQlW04SePitIAJdcnKbrrRVs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GcnfYyo07ZrwK9XvPo48kbc3R8a/JxMy5WKjYKTkpBhfPzWsWOmOfqYX3GFDWikl+ 7MKFfBiTe52I1Fe/gQFfSg1VKMp/FUJQmAaTJSUzomCEMImwAZMsvbCPnFn6jbfbDf 9M2oP7uRj9571g0r9GTOvaVvd2/3RrEjgjNCZfBU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, "=?UTF-8?q?N=C3=ADcolas=20F . =20R . =20A . =20Prado?=" , AngeloGioacchino Del Regno , Robert Foss , Sasha Levin Subject: [PATCH 5.17 270/772] drm/bridge: anx7625: Use uint8 for lane-swing arrays Date: Tue, 7 Jun 2022 18:57:42 +0200 Message-Id: <20220607164956.980847268@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220607164948.980838585@linuxfoundation.org> References: <20220607164948.980838585@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3.1 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: NĂ­colas F. R. A. Prado [ Upstream commit fb8da7f3111ab500606960bef1bb32450c664750 ] As defined in the anx7625 dt-binding, the analogix,lane0-swing and analogix,lane1-swing properties are uint8 arrays. Yet, the driver was reading the array as if it were of uint32 and masking to 8-bit before writing to the registers. This means that a devicetree written in accordance to the dt-binding would have its values incorrectly parsed. Fix the issue by reading the array as uint8 and storing them as uint8 internally, so that we can also drop the masking when writing the registers. Fixes: fd0310b6fe7d ("drm/bridge: anx7625: add MIPI DPI input feature") Signed-off-by: NĂ­colas F. R. A. Prado Reviewed-by: AngeloGioacchino Del Regno Signed-off-by: Robert Foss Link: https://patchwork.freedesktop.org/patch/msgid/20220408013034.673418-1-nfraprado@collabora.com Signed-off-by: Sasha Levin --- drivers/gpu/drm/bridge/analogix/anx7625.c | 12 ++++++------ drivers/gpu/drm/bridge/analogix/anx7625.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c index e596cacce9e3..ce04b17c0d3a 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.c +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c @@ -1201,12 +1201,12 @@ static void anx7625_dp_adjust_swing(struct anx7625_data *ctx) for (i = 0; i < ctx->pdata.dp_lane0_swing_reg_cnt; i++) anx7625_reg_write(ctx, ctx->i2c.tx_p1_client, DP_TX_LANE0_SWING_REG0 + i, - ctx->pdata.lane0_reg_data[i] & 0xFF); + ctx->pdata.lane0_reg_data[i]); for (i = 0; i < ctx->pdata.dp_lane1_swing_reg_cnt; i++) anx7625_reg_write(ctx, ctx->i2c.tx_p1_client, DP_TX_LANE1_SWING_REG0 + i, - ctx->pdata.lane1_reg_data[i] & 0xFF); + ctx->pdata.lane1_reg_data[i]); } static void dp_hpd_change_handler(struct anx7625_data *ctx, bool on) @@ -1313,8 +1313,8 @@ static int anx7625_get_swing_setting(struct device *dev, num_regs = DP_TX_SWING_REG_CNT; pdata->dp_lane0_swing_reg_cnt = num_regs; - of_property_read_u32_array(dev->of_node, "analogix,lane0-swing", - pdata->lane0_reg_data, num_regs); + of_property_read_u8_array(dev->of_node, "analogix,lane0-swing", + pdata->lane0_reg_data, num_regs); } if (of_get_property(dev->of_node, @@ -1323,8 +1323,8 @@ static int anx7625_get_swing_setting(struct device *dev, num_regs = DP_TX_SWING_REG_CNT; pdata->dp_lane1_swing_reg_cnt = num_regs; - of_property_read_u32_array(dev->of_node, "analogix,lane1-swing", - pdata->lane1_reg_data, num_regs); + of_property_read_u8_array(dev->of_node, "analogix,lane1-swing", + pdata->lane1_reg_data, num_regs); } return 0; diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.h b/drivers/gpu/drm/bridge/analogix/anx7625.h index 3d79b6fb13c8..8759d9441f4e 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.h +++ b/drivers/gpu/drm/bridge/analogix/anx7625.h @@ -370,9 +370,9 @@ struct anx7625_platform_data { int mipi_lanes; int audio_en; int dp_lane0_swing_reg_cnt; - int lane0_reg_data[DP_TX_SWING_REG_CNT]; + u8 lane0_reg_data[DP_TX_SWING_REG_CNT]; int dp_lane1_swing_reg_cnt; - int lane1_reg_data[DP_TX_SWING_REG_CNT]; + u8 lane1_reg_data[DP_TX_SWING_REG_CNT]; u32 low_power_mode; struct device_node *mipi_host_node; }; -- 2.35.1