Received: by 2002:a05:7412:bb8d:b0:d7:7d3a:4fe2 with SMTP id js13csp80553rdb; Mon, 14 Aug 2023 10:02:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGqAmMOhV1lm4pVmibfYxtjcmYcV9yVqKllEY0wqu1LzT+XSyJIuXCF9iSksXtg91VsSKQu X-Received: by 2002:a19:c211:0:b0:4f9:cd02:4aec with SMTP id l17-20020a19c211000000b004f9cd024aecmr6046682lfc.29.1692032569219; Mon, 14 Aug 2023 10:02:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1692032569; cv=none; d=google.com; s=arc-20160816; b=k2Id0u1TvSVmsjGlbb2OqmlQQxW+vEowZLiPJh/tjEGpXeq9iisTlBs+I6bHAedDua QjrHkygUvwip97Eva9dWpT9hHqEr3vdEw+1+/ebrWGK+BTHFxer98ePmshCEj54MnfN0 MLhXUkdSh8YvEaKXDRQMeu4/FfBczZBEmcAgPhdbcQOCcUZnMyKsowp6WVXyQUnyYe6N t/mnmsyssgPlKdipoGlmUiKoFneaX+uROqqov7yt+3c9Xe1aGwGYo5I7BCqja7944WfR AxE3Qg0kdwFR0bXASOM/ST2emrVbkbX/BF+1MxMlkAAY7a+d4SUQ7g4SfFl+L5ww8kDi Q/bw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Tu5wgrby+aWezgOUb3gHoMCl+XR0Y7Fji2fknL0oJ5Q=; fh=zUAAL0oq2+kA0nMRT5WSj9jrme2MlEZTDW5RK2mes1s=; b=QxD7+vgtLpLm8Ej5854BeQrmGhZD5JHFidsJr/bIzJgpZ6Qa9ad5uU3G0QLrhtF4cB MSjDiTsVgRkJSmfvnstCvRLGoG6ZCkbaj/NBwD5r8+p75lP3FmFTanBny1WOsHM1I98A xeKfNx7qs7+BtTnc5kTl5UhRBmMMG5mk89DZORyVWSzAcOz1m0mGGu9ln6HnKHX39XIl 5TLJdlOUcZ0/t7c1Q55HIoT+GMFF9jygEACTCzd+VkWHjikMS7oEVHjDY27L9LT7rJ2S jFFLOqEPTiqSjcc85Ru9FM+//LO87xQrwry4WAJXaIGt6kGgNp4IzWRLGdd/i2zrexth hJeg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OYH+1QHh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m5-20020aa7c485000000b00522d742bc4dsi7723879edq.334.2023.08.14.10.01.57; Mon, 14 Aug 2023 10:02:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=OYH+1QHh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232634AbjHNQ3v (ORCPT + 99 others); Mon, 14 Aug 2023 12:29:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46972 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232039AbjHNQ3Y (ORCPT ); Mon, 14 Aug 2023 12:29:24 -0400 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 30B65A8 for ; Mon, 14 Aug 2023 09:29:20 -0700 (PDT) Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-3fe1a17f983so40968545e9.3 for ; Mon, 14 Aug 2023 09:29:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1692030558; x=1692635358; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Tu5wgrby+aWezgOUb3gHoMCl+XR0Y7Fji2fknL0oJ5Q=; b=OYH+1QHhpiOHsvhfxhZb5PYNfvsgcJdnB0R19DVzZBT//tu5lEc8jPibKrq8pYRime QsSCGcZHo0AHf746qUDg+JQvf1Mc37GJJUat+lMO3WKV+2VEfOzgWfX4MGtl1yXPfMoV klQ9gun+VTrcCPM7TrF3dY4MXP+2agI5yIhQDMDgixdz67OQi6hySOP0nDzVRnFh871D KDjWGNEWmnrpaRXyvza8KMsoMKVEVtYOrSyesD78g/0JYrAOz9n8cnagZwo5rsX0QC1V OPhWwloHSjFjk5CnQmvUGkhRIr0CqRSNX2F0BHOh8YCVYkjoijiK8Wc4Kxog5TzVTsyJ sQVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692030558; x=1692635358; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Tu5wgrby+aWezgOUb3gHoMCl+XR0Y7Fji2fknL0oJ5Q=; b=GDUjirVH4GjnbIBk9eB6F3EDaKTyF5xk+vB4o42kYbqjQRJ1vVSJWsxWCLyEn7WiTg X22yPZz5114SOK8Yui9Y0gi7sKIUef3V9eeGU0JuDFOlVP5zHWFNblRgTVu+OlrXY0kJ jCynNmPSzeeNgXqusU5trmUVteZdAQ3kzrSHKFNAaZRngCggJ6ZNp4XuQFMyMb2X2SYC aekjcb6KlGKHI2yWIo+nemhq+7zj7MJkWol7eap0fil08bzxmnUZQXKabPMG3MXs+WDA FAdIFeXSMmFJSTp8tVgGzDq7xkTOREJJ/UHsaqACreIvvvYc+hXUv4a9fKly5pKnxw6G 9pwQ== X-Gm-Message-State: AOJu0YwBkfOaWzGhkfRoE5jtb2cs3MBlXg1nHBG8sfKCRF2ka7KQQdhF QJPb7CngQpVhTGlARFnkKSjnyA== X-Received: by 2002:a05:600c:2242:b0:3fa:97ad:2ba5 with SMTP id a2-20020a05600c224200b003fa97ad2ba5mr7715214wmm.31.1692030558746; Mon, 14 Aug 2023 09:29:18 -0700 (PDT) Received: from sagittarius-a.chello.ie (188-141-3-169.dynamic.upc.ie. [188.141.3.169]) by smtp.gmail.com with ESMTPSA id l14-20020a1c790e000000b003fc16ee2864sm14743475wme.48.2023.08.14.09.29.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Aug 2023 09:29:18 -0700 (PDT) From: Bryan O'Donoghue To: rfoss@kernel.org, todor.too@gmail.com, bryan.odonoghue@linaro.org, agross@kernel.org, andersson@kernel.org, konrad.dybcio@linaro.org, mchehab@kernel.org, hverkuil-cisco@xs4all.nl, laurent.pinchart@ideasonboard.com, sakari.ailus@linux.intel.com, andrey.konovalov@linaro.org Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 07/14] media: qcom: camss: Assign the correct number of RDIs per VFE Date: Mon, 14 Aug 2023 17:29:00 +0100 Message-ID: <20230814162907.3878421-8-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230814162907.3878421-1-bryan.odonoghue@linaro.org> References: <20230814162907.3878421-1-bryan.odonoghue@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS 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 Each Video Front End - VFE - has a variable number of Raw Data Interfaces - RDIs associated with it. The CAMSS code started from a naive implementation where a fixed define was used as a control in a for(){} loop iterating through RDIs. That model scales badly. An attempt was made with VFE_LINE_NUM_GEN2 and VFE_LINE_NUM_GEN1 to differentiate between SoCs but, the problem with that is "gen1" and "gen2" have no meaning in the silicon. There is no fixed constraint in the silicon between VFE and RDI, it is entirely up to the SoC designers how many VFEs are populated and how many RDIs to associate with each VFE. As an example sdm845 has VFE version 175 and sm8250 VFE version 480. sdm845 has 2 VFEs with 4 RDIs and 1 VFE Lite with 4 RDIs. sm8250 has 2 VFEs with 3 RDIs and 2 VFE Lite with 4 RDIs. Clearly then we need a more granular model to capture the necessary data. The defines have gone away to be replaced with per-SoC data but, we haven't populated the parameter data with the real values. Let's call those values out now msm8916: 1 x VFE 3 x RDI per VFE (not 4) msm8996: 2 x VFE 3 x RDI per VFE (not 4) sdm660: 2 x VFE 3 x RDI per VFE (not 4) sdm845: 2 x VFE 4 x RDI per VFE (not 3) 1 x VFE Lite 4 x RDI per VFE Lite (not 3) sm8250: 2 x VFE 3 x RDI per VFE (not 4) 2 x VFE Lite 4 x RDI per VFE This more complex and correct mapping was not possible prior to passing values via driver data. Now that we have that change in place we can correctly map VFEs to RDIs for each VFE. Signed-off-by: Bryan O'Donoghue --- drivers/media/platform/qcom/camss/camss.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c index 0e39d123a2113..6114ea15fd4a0 100644 --- a/drivers/media/platform/qcom/camss/camss.c +++ b/drivers/media/platform/qcom/camss/camss.c @@ -124,7 +124,7 @@ static const struct resources vfe_res_8x16[] = { { 0 } }, .reg = { "vfe0" }, .interrupt = { "vfe0" }, - .line_num = VFE_LINE_NUM_GEN1, + .line_num = 3, } }; @@ -265,7 +265,7 @@ static const struct resources vfe_res_8x96[] = { { 0 } }, .reg = { "vfe0" }, .interrupt = { "vfe0" }, - .line_num = VFE_LINE_NUM_GEN1, + .line_num = 3, }, /* VFE1 */ @@ -284,7 +284,7 @@ static const struct resources vfe_res_8x96[] = { { 0 } }, .reg = { "vfe1" }, .interrupt = { "vfe1" }, - .line_num = VFE_LINE_NUM_GEN1, + .line_num = 3, } }; @@ -446,7 +446,7 @@ static const struct resources vfe_res_660[] = { { 0 } }, .reg = { "vfe0" }, .interrupt = { "vfe0" }, - .line_num = VFE_LINE_NUM_GEN1, + .line_num = 3, }, /* VFE1 */ @@ -468,7 +468,7 @@ static const struct resources vfe_res_660[] = { { 0 } }, .reg = { "vfe1" }, .interrupt = { "vfe1" }, - .line_num = VFE_LINE_NUM_GEN1, + .line_num = 3, } }; @@ -627,7 +627,7 @@ static const struct resources vfe_res_845[] = { { 384000000 } }, .reg = { "vfe0" }, .interrupt = { "vfe0" }, - .line_num = VFE_LINE_NUM_GEN2, + .line_num = 4, }, /* VFE1 */ @@ -648,7 +648,7 @@ static const struct resources vfe_res_845[] = { { 384000000 } }, .reg = { "vfe1" }, .interrupt = { "vfe1" }, - .line_num = VFE_LINE_NUM_GEN2, + .line_num = 4, }, /* VFE-lite */ @@ -668,7 +668,7 @@ static const struct resources vfe_res_845[] = { { 384000000 } }, .reg = { "vfe_lite" }, .interrupt = { "vfe_lite" }, - .line_num = VFE_LINE_NUM_GEN2, + .line_num = 4, } }; @@ -796,7 +796,7 @@ static const struct resources vfe_res_8250[] = { { 0 } }, .reg = { "vfe0" }, .interrupt = { "vfe0" }, - .line_num = 4, + .line_num = 3, }, /* VFE1 */ { @@ -815,7 +815,7 @@ static const struct resources vfe_res_8250[] = { { 0 } }, .reg = { "vfe1" }, .interrupt = { "vfe1" }, - .line_num = 4, + .line_num = 3, }, /* VFE2 (lite) */ { -- 2.41.0