Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp1154573rwd; Tue, 13 Jun 2023 05:45:18 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7zrG7jEQTiA1pBxh3+GsK/QmmrPSWJEHsVcvSx87KkG8Hf5Zp4eV2JDjMuqzJ16DAGZd+x X-Received: by 2002:a05:6a20:7d9c:b0:104:ad71:f080 with SMTP id v28-20020a056a207d9c00b00104ad71f080mr12458701pzj.34.1686660318348; Tue, 13 Jun 2023 05:45:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686660318; cv=none; d=google.com; s=arc-20160816; b=ZDJsG0fM0fUUEm/k9GiKc8PSvIitDL11cmX+PgIHkdQ24YRgkkPBEmITURTd8wq9d2 opl3mZV4Grm8GdJfo9+gau6rxSJW5RJ92KoNuEyhKsMqxTRX9pPmUj2xdL8EUbA4ma1R BsbnND2qryHii0IMywssnN0Ww4kDmxZKwNW35OUPuEOjer0hM7pwxhnPI6BJwiKERmXx zJy6aUamDsU18AxOWd7I2sMXup8tV7d3KzVkbcxNiwif5G9reIcWHex/AGzc5g8hGa4U T7wT8fjVmfEEtzcqPRxtKwCUacyhxGK4fVoOsjsdUVDDGWwIll6gtVr1UdKZOCdkD0qL vKTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=oJndXkWroyTpMsmMwrk0FuEm0Xo33APqH+fRJ2mjOrU=; b=dMkbnJu8ZnjWuP9HG+zxGshp0YLuwR6LrjoqBlWjx1B3E+ENoPSzTo7DvZ6J6fyGEc sXjVMcKTTdMRNHeJXzcfvpio/otGATGFv+xlaXxooKD7iICpxOqoK2QABabSWv0p2gxG Pmv8Iliq0Z92vSNzzDK3jDA3XrC25qnhXkDhgpPHDfL5jWVhiXEBHVTgOh4XzAFDsqn1 42uH0gjPuWLwx1doGI7oCr2j653fxquCNK1I83rhkUTFaC0xkFIW5guOg6yeKBs8x6K9 tmVwKt/ax9n8d9pxeJFH4fPsjEUSTIYjTKY2hlY/9k26151+e4LwLtANLhCFyCS0GDqB fpfA== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=xs4all.nl Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k14-20020a170902c40e00b001ab20d029e0si9190010plk.582.2023.06.13.05.45.04; Tue, 13 Jun 2023 05:45:18 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=xs4all.nl Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242359AbjFMMTM (ORCPT + 99 others); Tue, 13 Jun 2023 08:19:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57558 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241824AbjFMMTA (ORCPT ); Tue, 13 Jun 2023 08:19:00 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E7DA6171C; Tue, 13 Jun 2023 05:18:36 -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 7D8886358F; Tue, 13 Jun 2023 12:18:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E0977C433D2; Tue, 13 Jun 2023 12:18:34 +0000 (UTC) Message-ID: <72494a61-5be8-033b-5bcd-59699a226002@xs4all.nl> Date: Tue, 13 Jun 2023 14:18:32 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [RESEND PATCH v6 1/1] Added Digiteq Automotive MGB4 driver Content-Language: en-US To: =?UTF-8?Q?Martin_T=c5=afma?= , Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, =?UTF-8?Q?Martin_T=c5=afma?= References: <20230524112126.2242-1-tumic@gpxsee.org> <20230524112126.2242-2-tumic@gpxsee.org> <3a7da3cd-8d03-a2c4-0534-a75565aefc13@xs4all.nl> <7072a8f3-5c9e-1170-e480-6fb57b95110f@gpxsee.org> <6b792de3-bb2c-d2b5-a652-eca6d20dad20@xs4all.nl> <089e728b-0596-d3e3-39a1-651a3ac73e33@xs4all.nl> From: Hans Verkuil In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,NICE_REPLY_A,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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 Hi Martin, On 12/06/2023 13:34, Martin Tůma wrote: > On 12. 06. 23 10:51, Hans Verkuil wrote: >> On 08/06/2023 17:30, Martin Tůma wrote: >>> On 08. 06. 23 12:23, Hans Verkuil wrote: >>> >>>> Can you make a list of which sysfs properties correspond to existing V4L2 >>>> format or timing fields and which are 'new'? >>>> >>> >>> On the left all the current mgb4 sysfs properties (see the admin-guide doc from the patch for description), on the right v4l2 structures where they could be mapped (may not be true for all of them in >>> the patch, I will check it and update the code in v7) >>> >>> >>> --- PCIE CARD --- >>> >>> module_type        - >>> module_version        - >>> fw_type            - >>> fw_version        - >>> serial_number        - >>> temperature        hwmon >>> >>> --- INPUTS --- >>> >>> input_id        - >>> oldi_lane_width        - >>> color_mapping        - >>> link_status        v4l2_input.status (V4L2_IN_ST_NO_SYNC) >>> stream_status        v4l2_input.status (V4L2_IN_ST_NO_SIGNAL) >>> video_width        v4l2_bt_timings.width >>> video_height        v4l2_bt_timings.height >>> vsync_status        v4l2_bt_timings.polarities >>> hsync_status        v4l2_bt_timings.polarities >>> vsync_gap_length    - >>> hsync_gap_length    - >>> pclk_frequency        v4l2_bt_timings.pixelclock >>> hsync_width        v4l2_bt_timings.hsync >>> vsync_width        v4l2_bt_timings.vsync >>> hback_porch        v4l2_bt_timings.hbackporch >>> hfront_porch        v4l2_bt_timings.hfrontporch >>> vback_porch        v4l2_bt_timings.vbackporch >>> vfront_porch        v4l2_bt_timings.vfrontporch >>> frequency_range        - >>> alignment        v4l2_pix_format.bytesperline >>> fpdl3_input_width    - >>> gmsl_mode        - >>> gmsl_stream_id        - >>> gmsl_fec        - >>> >>> --- OUTPUTS --- >>> >>> output_id        - >>> video_source        - >>> display_width        v4l2_bt_timings.width >>> display_height        v4l2_bt_timings.height >>> frame_rate        v4l2_frmivalenum >> >> The frame rate is a property of the width/height+blanking and the >> pixel clock frequency. IMHO it does not make sense to have this as >> a writable property. Read-only is OK. >> >>> hsync_polarity        v4l2_bt_timings.polarities >>> vsync_polarity        v4l2_bt_timings.polarities >>> de_polarity        - >>> pclk_frequency        v4l2_bt_timings.pixelclock >>> hsync_width        v4l2_bt_timings.hsync >>> vsync_width        v4l2_bt_timings.vsync >>> vsync_width        v4l2_bt_timings.vsync >>> hback_porch        v4l2_bt_timings.hbackporch >>> hfront_porch        v4l2_bt_timings.hfrontporch >>> vback_porch        v4l2_bt_timings.vbackporch >>> vfront_porch        v4l2_bt_timings.vfrontporch >>> alignment        v4l2_pix_format.bytesperline >>> fpdl3_output_width    - >>> >>> >>> M. >> >> The property I am most concerned with is alignment (both for input and output). >> But it is not clear to me what the use-case is. >> > > Hi, > The use-case is to provide the alignment required by some video processing chips. We have a product based on NVIDIA Jetson TX2 that uses the mgb4 cards and the HW video encoding needs a specific > alignment to work. OK. I would suggest that for this property it has a default value of 0 (i.e. a 1 byte alignment), and in that case VIDIOC_S_FMT allows userspace to set bytesperline to whatever they want. I.e., this is the normal behavior for DMA engines that can deal with custom padding at the end of each line. If it is > 0, then bytesperline is fixed, based on this value. That way both methods are supported fairly cleanly. BTW, what is missing in the property documentation for writable properties is what the default value is. That must be documented as well. Regards, Hans