Received: by 2002:ab2:5d18:0:b0:1ef:7a0f:c32d with SMTP id j24csp135678lqk; Sat, 9 Mar 2024 04:03:37 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCV5eU/N1lievjKjOF38MBfAHrt/eJPUZ2Za7j8cc5n6jmkNtEQgdNJnOtwfJLAUr2jdL4xExv6qGMV7fUbFsbqGxHKNVWXMXUhIsSHZOQ== X-Google-Smtp-Source: AGHT+IFdpCunswGJ4DHGlnzE7HcH1E4+5KVlyie7kkxiHVWMrN3Ki9MLhWcfKT7jpyjEhqBBkj2O X-Received: by 2002:a50:99c3:0:b0:568:1983:4913 with SMTP id n3-20020a5099c3000000b0056819834913mr1235018edb.23.1709985817412; Sat, 09 Mar 2024 04:03:37 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709985817; cv=pass; d=google.com; s=arc-20160816; b=oK++6QFDnqLcA/6j7wgngRJYDu4tJ6R0I72sALP7FhE62wXjrRaSGq8IjOulymLS1C wzgZe3u1C8gdMg9R66b3B706vVV7S5V7BNhnUfl7UFgbUB+Xzj6SqYtxwwgicWvk5P9f TZJJw/ygAJd3Qe/gTOqju/n03Yd6ed2Ag52CCkDjsBxF99f+HknkLVBNOnhS/wm7sU2D RzSBQrYwMeasc6/cqNUcMXfSZZoVmDQjF7V3+m9EHQ2bmPLVuqYTevPVLCANTr6Ol6AD ugYBnakg1GqrlTswr+WtK8kt2++3FvFX1qZ2TSii6Kd/u7ISgbIcLCH0VgaGp9csT3UA iQ4g== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:dkim-signature:message-id; bh=axQl+5LrcSwPQ7Y79L1XQ/DDezVoFDIXlwRR++4w7oE=; fh=c1BgDXGWX5S7/O8494Ewnd/qTbPVyGVw4AXTIM36+r8=; b=WtlLefYM+w2Brwuo2gNOtzl1Lw+GYt7FIg+SIPnAK1pMErO52+mgX7o3NfNR9rN6aS xKyeInbXgQAzA6CE2SnhBt3TgUpnUwp12cHMVshJDU1OZcIxSbluHwIRfTrei6rhc9E3 yZhLEA5114uxkUQBTkH3y2rzRfQXu1INjE0iyf3DzIYKBOSapVIW0ImBQ0PsDb1HJ3O4 jWdMeA2L/pTtp+c66E4mdFgM8C9yUMiTD0Ud7qfH48fEZnisUQHDRmuMF5aXYjUPVYeY Q+PeQVlBUzZcH1fibZomKDHuxZU+YvJku6NBsyoIOMWBHAu4RkhkLGCdPiicJJCTFyXQ M4Qw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=i0E6pVN2; arc=pass (i=1 spf=pass spfdomain=linux.dev dkim=pass dkdomain=linux.dev dmarc=pass fromdomain=linux.dev); spf=pass (google.com: domain of linux-kernel+bounces-97871-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-97871-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id l13-20020aa7c30d000000b005682fd3612esi718111edq.615.2024.03.09.04.03.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Mar 2024 04:03:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-97871-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=i0E6pVN2; arc=pass (i=1 spf=pass spfdomain=linux.dev dkim=pass dkdomain=linux.dev dmarc=pass fromdomain=linux.dev); spf=pass (google.com: domain of linux-kernel+bounces-97871-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-97871-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.dev Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 0B5111F21780 for ; Sat, 9 Mar 2024 12:03:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9D22F38F96; Sat, 9 Mar 2024 12:03:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="i0E6pVN2" Received: from out-173.mta1.migadu.com (out-173.mta1.migadu.com [95.215.58.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 214C5EDD for ; Sat, 9 Mar 2024 12:03:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709985809; cv=none; b=M43cZH4EWvnWWKQ9LcDTos1033KKJUGXqPnhU6U3vkO+aO7eq/JFa68G5gzW1TsRz/3qzeGZgkRKfzsbXfUByUmBOCKxpyGpocKDC5pnOb8+7JYQ8K7tIb1NMoboAMvOd5UrsW94Yxc40eDF/qbXOLtKUvpUK4mhpx8u/3gRZsI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709985809; c=relaxed/simple; bh=+G2vKevHrzC1uEml5HdORxxQr4XVz2gnv97uXrbdLjc=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=DePO+z3FwCbUeswQGjdUVSnoQsfiYoHK89W9amGeUKEsUNj/gFcnnP9xD9rhlRF0XatwWsnHwi3cGwedE+vU26y4Q2FZ9rDLbAMUhfGyL6OWl8eKEB618SH9cGTXzmnhm4m/Q0K7oNYlZ7zk1SFKVs/GrplzRnV09NDLOIbNYk0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=i0E6pVN2; arc=none smtp.client-ip=95.215.58.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Message-ID: <28492cfb-5327-46d5-8c08-233f1786ff44@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1709985804; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=axQl+5LrcSwPQ7Y79L1XQ/DDezVoFDIXlwRR++4w7oE=; b=i0E6pVN2RsKFRkkKlIL4UD3RFZkn0fPIwWzAu9aj89oddtgk9EwIl36OgqpuVwhcHs996e kcfXE839mR/cszn9zYEcFBz6g9CT0p5c4iKVsaD2nTiOhcmv/pRza/V7QrlFr7gduwZhuu JC2wELPl4O9bjqYGSEAYemZpwc0xPF8= Date: Sat, 9 Mar 2024 20:03:14 +0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Subject: Re: [PATCH v2 1/4] drm/bridge: Add fwnode based helpers to get the next bridge Content-Language: en-US To: Dmitry Baryshkov Cc: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Phong LE , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org References: <20240307172334.1753343-1-sui.jingfeng@linux.dev> <20240307172334.1753343-2-sui.jingfeng@linux.dev> <45f59f31-1f03-4a96-adb6-25c7cdd5e8a1@linux.dev> <7535b3ba-6bbb-411c-82a4-cd4ac45de1a6@linux.dev> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Sui Jingfeng In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Migadu-Flow: FLOW_OUT Hi, On 2024/3/9 18:39, Dmitry Baryshkov wrote: >> The code path of "creating a connector" plus the code path of "not creating a connector" >> forms a 'side-by-side' implementation imo. >> >> Besides, I have repeated many times: the DT already speak everything. >> Device drivers can completely know if there is a display connector OF device created and how many >> display bridges in the whole chain. If there are connector device node in the DT, then it should >> has a device driver bound to it(instead of create it manually) for a perfect implementation. As >> you told me we should not*over play* the device-driver model, right? > Please, don't mix the connector node in DT and the drm_connector. If > you check the code, you will see that the driver for hdmi-connector, > dp-connector and other such devices creates a drm_bridge. OK, I'm not mixed them, I'm very clear from the very beginning. I have checked the code years ago. Let's make it clear by iterating one more time: If DT contains one or more HDMI connector node, then there will be one or more display connector platform devices created by OF core, Then, according to your "don't overplay device-driver model" criterion or modern drm bridge standard, we shouldn't create a display connector instance in the drm birdge driver, right? As otherwise we will have two display connector driver (or code) for a single entity, right? Another side effect is that when you create a hdmi display connector instance manually without reference to the DT, then *you made an assumption!*. But there are users who have don't a different need(or different typology), for example, they need to read edid directly from the KMS driver side. This may because the i2c bus is directly connected to the connector part, but the display bridge's I2C slave interface. sii9022, it66121 and tfp410 support this kind of usage. So the real problem is that it is a policy level code when you creating a hdmi display connector instance manually without reference to the DT in a common drm bridge driver, not a mechanism.