From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754758AbcKUPdu (ORCPT ); Mon, 21 Nov 2016 10:33:50 -0500 Received: from bh-25.webhostbox.net ([208.91.199.152]:56561 "EHLO bh-25.webhostbox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752988AbcKUPdr (ORCPT ); Mon, 21 Nov 2016 10:33:47 -0500 Subject: Re: [PATCHv11 2/3] usb: USB Type-C connector class To: Heikki Krogerus , Greg KH References: <20161117105036.133406-1-heikki.krogerus@linux.intel.com> <20161117105036.133406-3-heikki.krogerus@linux.intel.com> <20161121103528.GB2233@kroah.com> <20161121131103.GA18501@kuha.fi.intel.com> <20161121142306.GC18501@kuha.fi.intel.com> Cc: Badhri Jagan Sridharan , Oliver Neukum , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org From: Guenter Roeck Message-ID: <5b2590bb-bae6-6765-f5e0-175f3471d43d@roeck-us.net> Date: Mon, 21 Nov 2016 07:33:45 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <20161121142306.GC18501@kuha.fi.intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Authenticated_sender: linux@roeck-us.net X-OutGoing-Spam-Status: No, score=-1.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - bh-25.webhostbox.net X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - roeck-us.net X-Get-Message-Sender-Via: bh-25.webhostbox.net: authenticated_id: linux@roeck-us.net X-Authenticated-Sender: bh-25.webhostbox.net: linux@roeck-us.net X-Source: X-Source-Args: X-Source-Dir: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/21/2016 06:23 AM, Heikki Krogerus wrote: > On Mon, Nov 21, 2016 at 03:11:03PM +0200, Heikki Krogerus wrote: >> Hi Greg, >> >> On Mon, Nov 21, 2016 at 11:35:28AM +0100, Greg KH wrote: >>>> +static void typec_partner_release(struct device *dev) >>>> +{ >>>> + struct typec_port *port = to_typec_port(dev->parent); >>>> + >>>> + typec_unregister_altmodes(dev); >>>> + port->partner = NULL; >>>> +} >>> >>> This doesn't feel right, why are you both exporting >>> typec_unregister_altmodes() and also calling it from release callbacks? >>> That implies there is two way to clean stuff up, so what is a driver >>> writer to use? Please simplify and force it to be one way or the other. >> >> OK. > > Guenter did you need to also remove the alternate modes in drivers, or > can we just do it here? > It is currently called explicitly on a data role change, when executing a hard reset, on detach, and during error recovery. Most of those would also unregister the partner, so I should be able to drop those calls (or maybe I'll have to - I will see when testing), but I am not sure how to handle data role changes. Guenter