Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp4877628ybv; Mon, 17 Feb 2020 07:38:07 -0800 (PST) X-Google-Smtp-Source: APXvYqx3adUnCAW1i084h1eHF+zjWQ3JhosmutHzUjoCa7M4xYc+frCw+fq6vc95CYlhPyQajLAa X-Received: by 2002:a9d:6a06:: with SMTP id g6mr11577748otn.305.1581953887404; Mon, 17 Feb 2020 07:38:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581953887; cv=none; d=google.com; s=arc-20160816; b=Fk+0pOGyqf0TDL4V3WhKdNgBGauuRdIOnov5Nrppm5kzZlGsvhtPOrX9s1w+FpNZG1 K7X21oqhXUvLoFpct26Ier2gr6KfsBGF/+JWXsVeeZYtaVecAV0jZnfwnKW1FkFcvsre hMAinYEPQ2wd/dkd6QXHLNpoUhiGwHaELaAE/q9qMfYE/2EhyW0iYcd22dQ3LAmVFmI3 JgXo0+7E2vfCuuHGFgKAHTuaFz+hm55K7EnoppOWBbX3zwGdhwYz/Ikp6iFYaVdSQQql 4r7S1UfvoPDRfUKfIHd2gZsKAgxu+ELhKzOlYJ1RP8H0INwhUd/0iKGCOu/6ZgjeSZsQ o1dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :organization:references:in-reply-to:message-id:subject:cc:to:from :date; bh=xQldMGfRQHRQ0nIxxUT/HtP+0eZ4xKBSpQc9RobCFGk=; b=aLClJKSSV3iII05rp31c9JqnDD7oPd1M5KsH+5f4Ha/d/Q2KQxggbFtYF9Jgf/qsgh c4kExT21mgN5dW7NK97IjIY0ObSwJQ+/oUTw9V8MRBh1hrNO7UzP5f30w0GbM2bONwIs bQ1joQX1IbDfjwAIZAJg/VcI2ECJ9EQXhKK2A+C2/8f0BmECkZ5YVcS5G2uczldXuhn4 ym3LSsYoFGGheuy/zJrsbXW9GqMvd3pAnViEX2nXjHEwrXGpzfzdX5FlovPqNm+gcWSR 1dyInWvQQd/ih9sSP4FvF0GK+zPg11RrDYhEu32wsVKZCLEKQDQfUaS+uwIZJK8c3lUT OY/w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s7si299747otd.280.2020.02.17.07.37.55; Mon, 17 Feb 2020 07:38:07 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728698AbgBQPg0 (ORCPT + 99 others); Mon, 17 Feb 2020 10:36:26 -0500 Received: from bhuna.collabora.co.uk ([46.235.227.227]:41696 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726847AbgBQPg0 (ORCPT ); Mon, 17 Feb 2020 10:36:26 -0500 Received: from localhost (unknown [IPv6:2a01:e0a:2c:6930:5cf4:84a1:2763:fe0d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: bbrezillon) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id DB9A2293D7D; Mon, 17 Feb 2020 15:36:24 +0000 (GMT) Date: Mon, 17 Feb 2020 16:36:22 +0100 From: Boris Brezillon To: Arnd Bergmann Cc: Vitor Soares , "linux-kernel@vger.kernel.org" , linux-i3c@lists.infradead.org, Jose Abreu , Joao Pinto , Wolfram Sang , gregkh , Boris Brezillon , Mark Brown Subject: Re: [RFC v2 0/4] Introduce i3c device userspace interface Message-ID: <20200217163622.6c78fa3f@collabora.com> In-Reply-To: References: <20200217155141.08e87b3f@collabora.com> Organization: Collabora X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 17 Feb 2020 16:06:45 +0100 Arnd Bergmann wrote: > On Mon, Feb 17, 2020 at 3:51 PM Boris Brezillon > wrote: > > Sorry for taking so long to reply, and thanks for working on that topic. > > > > On Wed, 29 Jan 2020 13:17:31 +0100 > > Vitor Soares wrote: > > > > > For today there is no way to use i3c devices from user space and > > > the introduction of such API will help developers during the i3c device > > > or i3c host controllers development. > > > > > > The i3cdev module is highly based on i2c-dev and yet I tried to address > > > the concerns raised in [1]. > > > > > > NOTES: > > > - The i3cdev dynamically request an unused major number. > > > > > > - The i3c devices are dynamically exposed/removed from dev/ folder based > > > on if they have a device driver bound to it. > > > > May I ask why you need to automatically bind devices to the i3cdev > > driver when they don't have a driver matching the device id > > loaded/compiled-in? If we get the i3c subsystem to generate proper > > uevents we should be able to load the i3cdev module and bind the device > > to this driver using a udev rule. > > I think that would require manual configuration to ensure that the correct > set of devices get bound to either the userspace driver or an in-kernel > driver. Hm, isn't that what udev is supposed to do anyway? Remember that I3C devices expose a manufacturer and part-id (which are similar to the USB vendor and product ids), so deciding when an I3C device should be bound to the i3cdev driver should be fairly easy, and that's a per-device decision anyway. > The method from the current patch series is more complicated, > but it means that any device can be accessed by the user space driver > as long as it's not already owned by a kernel driver. Well, I'm more worried about the extra churn this auto-binding logic might create for the common 'on-demand driver loading' use case. At first, there's no driver matching a specific device, but userspace might load one based on the uevents it receives. With the current approach, that means we'd first have to unbind the device before loading the driver. AFAICT, no other subsystem does that.