Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934105AbdCJWWc (ORCPT ); Fri, 10 Mar 2017 17:22:32 -0500 Received: from mail-lf0-f68.google.com ([209.85.215.68]:34997 "EHLO mail-lf0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932697AbdCJWWV (ORCPT ); Fri, 10 Mar 2017 17:22:21 -0500 Subject: Re: [PATCH v17 2/3] usb: USB Type-C connector class To: Heikki Krogerus References: <20170221142405.76299-1-heikki.krogerus@linux.intel.com> <20170221142405.76299-3-heikki.krogerus@linux.intel.com> <4b4bbffc-db02-3b54-04bc-e7de79b2d9ed@roeck-us.net> <07618170-d561-e7fe-08e0-91316c53d832@gmail.com> <20170303125940.GA6999@kuha.fi.intel.com> <6ddb2eac-03d5-127e-df1e-ad189968e6b2@gmail.com> <20170306131442.GC6999@kuha.fi.intel.com> <696552a7-c36a-1d73-9517-543907e9da39@gmail.com> <20170308135853.GH6999@kuha.fi.intel.com> Cc: Guenter Roeck , Greg KH , Felipe Balbi , Oliver Neukum , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org From: Mats Karrman Message-ID: <68817c44-d880-581a-e9f5-12845b9215eb@gmail.com> Date: Fri, 10 Mar 2017 23:22:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <20170308135853.GH6999@kuha.fi.intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2427 Lines: 50 On 2017-03-08 14:58, Heikki Krogerus wrote: > On Tue, Mar 07, 2017 at 11:30:54PM +0100, Mats Karrman wrote: >> If I read Heikki's original suggestion I understand it like the DP driver would be >> responsible for AM specific USB PD/VDM communication. But wouldn't that lead >> to a lot of code duplication since the AM protocol is the same for all drivers of >> a kind? > No that's not what I mean. I'm still mixing your PD controller with > something else above, sorry about that. Your PD controller driver > should not ideally even need to be aware of Type-C connector, right? > It definitely does not need to do any USB PD communication. Right. > I would imagine you have on top of the DP controller, a mux (which > could be a DP/USB3 PHY like on Rockchip RK3399, discrete mux like > Pericom PI3USB30532, or something else), and a USB Type-C PHY or USB > PD controller. The bus would be tying the mux to the Type-C port (PHY > or PD controller) and its partner (note that it does not tie the mux > to the DP controller). Please correct me if I'm wrong about your > hardware. No, you're correct, a discrete mux and a fusb302. > Assuming that is how your board roughly looks like, the driver for the > mux would be the driver for the DP altmode devices. That driver would > be the one converting things like the Attention messages notifying > about HPD into toggling of GPIOs, or what ever is needed on your > board, etc. OK. > The actual PD communication with VDMs should be considered as just the > protocol, so we probable should have "protocol drivers". For example > DP alternate mode VDMs and communication will always be the same > despite of the hardware. The DP alternate mode "protocol driver" would > then be tied to the alternate mode device for the partner, and that > driver could have its own hooks for what ever is needed, like HPD > signal handling, configuration changes, whatever. In any case, > hopefully making things easy and straightforward for the "mux driver", > _so that it does not need to care about the actual PD communication_. I'm digesting your and Guenter's replies and patches. I will try getting something up and running too soon and hopefully the foggy parts will dissolve. As for now I find it a lot easier to grok Guenter's drivers than to see the advantages and/or disadvantages of an altmode bus :-) @Guenter: There _is_ interest for your fusb302 driver, thank you BR // Mats