From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.5 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB735C432BE for ; Fri, 23 Jul 2021 08:24:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8E4F760EE6 for ; Fri, 23 Jul 2021 08:24:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234437AbhGWHoY (ORCPT ); Fri, 23 Jul 2021 03:44:24 -0400 Received: from lb1-smtp-cloud8.xs4all.net ([194.109.24.21]:35999 "EHLO lb1-smtp-cloud8.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229907AbhGWHoX (ORCPT ); Fri, 23 Jul 2021 03:44:23 -0400 Received: from cust-b5b5937f ([IPv6:fc0c:c16d:66b8:757f:c639:739b:9d66:799d]) by smtp-cloud8.xs4all.net with ESMTPA id 6qUImWbWFXTlc6qUJmAKUw; Fri, 23 Jul 2021 10:24:56 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xs4all.nl; s=s2; t=1627028696; bh=G/gLVG+vEvPnW/X47dF5+ZZLjjYd169DWpYlduozbnk=; h=Subject:To:From:Message-ID:Date:MIME-Version:Content-Type:From: Subject; b=qx0fsSh4b8Bx9ZALtSJj7P3jqc6Mv+tb5nZttUQoYxl/Bf96l1jm8XHzGuscR9Kfc 2cjbw90oS/gIbnrvHdWAd6daxKUE4LyI1VumopGB+YLzPAdOBRBrxYYgyYLTbDMSgY k8ybhjwJRHNnK/fncQ6BFF3l8pmF4vRcPLQUml5I88A8j/RQSha8Df42lNQ6DIY/Ud g8ubT324NtcMEZiGgWXwg8eO99ogW71pHTeWkQobswbMcBLWLxhiSDtg0DOUyv/ljm ywCbA/eyWp8JrcJOzNvayZEY6kkMWS3oX+hKIMHS9+18OVdxegqJ13ty9+s99BllIb YprgyOe9yIuCA== Subject: Re: [PATCH REPOST] TDA1997x: replace video detection routine To: =?UTF-8?Q?Krzysztof_Ha=c5=82asa?= Cc: Mauro Carvalho Chehab , linux-media@vger.kernel.org, lkml References: <68bd6e41-4c32-240f-aa83-fd2b96929d45@xs4all.nl> From: Hans Verkuil Message-ID: Date: Fri, 23 Jul 2021 10:24:54 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-CMAE-Envelope: MS4xfHhHGfiYtyj8PIqP3pooduSYtcUcgIPrNFBO6nPMztw2MN4qyN4Yt8nNqaXGvWHudh5Jl53ISfpd/M6y5gWkOVlmXB3EWRQyir1GrUjf6EaFE7NGHmEx Mns3fJH/XtJR8Bdu0X+rhSRILjRyQMzSARVWysdbPPWd/PV66exagDVNoykD3tmWBSjkXiO2zMsZO4tBBLLounmChFAP5FQQ+Jtg9l4PgxnrTF4RZwEJ+Wyq O/GJVl1wLvWID6dO9PWBEOUehbknPFVSZ6Ew3IW9exMzV2CIsQ99vm/wFGa94cHvlDJjTcBGQhK+eHu3K+zPem1+SR7oqEwSCyIRj9im4orN+MH5j3nhdLor 5LlFr69VGiONwsjCB70Wxsl+6Zw3LTAkR9d+hWt1v55p3qnyf5A= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Krzysztof, On 22/07/2021 08:43, Krzysztof HaƂasa wrote: > Also, I have spotted an interesting loop condition in > drivers/media/v4l2-core/v4l2-dv-timings.c (dated 2013, > d1c65ad6a44b0ff79d2f0bf726fa6fd9248991f4). > It obviously works (unless the table grows to 600+ entries), but I guess > I should make it "standard", shouldn't I? Thanks for catching this! I've posted a patch fixing it. Luckily it never broke anything, but it definitely had to be fixed. Regards, Hans > > The first case is pretty normal: > @@ -159,10 +161,10 @@ int v4l2_enum_dv_timings_cap(struct v4l2_enum_dv_timings *t, > u32 i, idx; > > memset(t->reserved, 0, sizeof(t->reserved)); > - for (i = idx = 0; i < ARRAY_SIZE(timings); i++) { > - if (v4l2_dv_valid_timings(timings + i, cap) && > + for (i = idx = 0; v4l2_dv_timings_presets[i].bt.width; i++) { > + if (v4l2_dv_valid_timings(v4l2_dv_timings_presets + i, cap) && > idx++ == t->index) { > - t->timings = timings[i]; > + t->timings = v4l2_dv_timings_presets[i]; > return 0; > } > } > > This is the interesting part: > @@ -179,10 +181,10 @@ bool v4l2_find_dv_timings_cap(struct v4l2_dv_timings *t, > if (!v4l2_dv_valid_timings(t, cap)) > return false; > > - for (i = 0; i < ARRAY_SIZE(timings); i++) { > - if (v4l2_dv_valid_timings(timings + i, cap) && > - v4l2_match_dv_timings(t, timings + i, pclock_delta)) { > - *t = timings[i]; > + for (i = 0; i < v4l2_dv_timings_presets[i].bt.width; i++) { > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + if (v4l2_dv_valid_timings(v4l2_dv_timings_presets + i, cap) && > + v4l2_match_dv_timings(t, v4l2_dv_timings_presets + i, pclock_delta)) { > + *t = v4l2_dv_timings_presets[i]; > return true; > } > } >