Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp1612018ybx; Thu, 7 Nov 2019 14:27:06 -0800 (PST) X-Google-Smtp-Source: APXvYqwl9BM2m4aTumrarYS8eMyMtg0LIoDIRRnQTIs+k7lOi9zoijXG2pJKL7RPWtIJEnyZ80xc X-Received: by 2002:a17:906:3285:: with SMTP id 5mr5371038ejw.143.1573165626757; Thu, 07 Nov 2019 14:27:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573165626; cv=none; d=google.com; s=arc-20160816; b=e1GoIKCA2x70YiCxnwR+2qLmjzC/Iyx+YcI4o8D7DB1O1ghdvHUCQ4zGyoH6iL9P9d ts/m061LjkL0XTk4TepmggYKIReyvvFQOd/ghJ6oemY6R/Z7E8X3NyB7xwnYhSSbsDw/ bu5XaHD6GLFJVnyM2X0q9b9wJZ530UHcs5YZLVm4glskgiXdjtcmPzgdIeiHxSf7YxoK FCSvYiqOCgbhTkCWYr+oHpVBUWlx78eqDLgbSRYjw5kZ1IStV3zMSLrLXz4hfz3cXW58 +nXLXsNtcBgN+ClBgUGicLfH+fr56maoKcKNLGra8YTxTni6BrY/3RA/Zt91TXB+G0D0 GsuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=nZOXu8T4pF3RPpBQKh0YAfX9FS2U6WtIcpqxi844o2o=; b=eMCl1spL9YSDiPYPQp2oNlTfG2DgrQ9DzZtteSEesjYMoqrnQHbKmTsw9m1d7bT4wt C13djsKqS2ys1Y38r6BRYUvVxkYcm5dE1a7lMGz1mJ5CRZs/VRiETTBdGVlHHzRUJ06J QhXt8BRK6FLQAG76BWj36VKbPXXwYcWUuLzJeehOxmpAF8dUjZRGE7qbd+XbZZ8pWVqr 1RNG8jmFGIo1My0qnv0BzcIVdgTMtE4bsrYFxqpHHWSboI3bqAx7oGm9LvzeonPWx8V3 I8q+9aBSegpWbx+tOmXTsjzCZiJ2tGrCJ7viDAf/CmaiKNaQDTYORl3bxRVc8Yvr6Zt7 b9KQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=lc05jcYG; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id ov27si2404507ejb.197.2019.11.07.14.26.43; Thu, 07 Nov 2019 14:27:06 -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; dkim=pass header.i=@linaro.org header.s=google header.b=lc05jcYG; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727744AbfKGWXd (ORCPT + 99 others); Thu, 7 Nov 2019 17:23:33 -0500 Received: from mail-oi1-f195.google.com ([209.85.167.195]:36478 "EHLO mail-oi1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725870AbfKGWXc (ORCPT ); Thu, 7 Nov 2019 17:23:32 -0500 Received: by mail-oi1-f195.google.com with SMTP id j7so3509272oib.3 for ; Thu, 07 Nov 2019 14:23:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=nZOXu8T4pF3RPpBQKh0YAfX9FS2U6WtIcpqxi844o2o=; b=lc05jcYGrXd77mjvFh2st+MfjgbDAvcXo0am0zOpmLekG0wMNHS6UQKK5Fv7ICh9QW lS8XQhqwhCipkOkSk6zhfV7iW657Ug2ftK3XaPoQ4y07t7r41kwJt2CjB2coTxyUhXNY 3T3MDaMPazQIU1CnQXWf2dCvm2vgdzcqfNojMrXHKPV6mnx8ABDe5H/ABYSDepRtGCkw ePk2jg9N6xr+45Jm1fJDgZvg8XrE0tgusPHB8gJ/V8zqb/Ye05WNE0Cibz8rDDKQ6Ojt 2dERKMfhMPDH2/QPqET3sVJJ3WGHAVVwlR6HHrmWR6SWM9bmAQVY41eMP9sH8j0dO3kp MZtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=nZOXu8T4pF3RPpBQKh0YAfX9FS2U6WtIcpqxi844o2o=; b=mZ0pWfx0s3DUwdkq3B/HZijRA05rfSbnddcJ3h1T5MJuOqKxXP215FmW6MREe15Dpi r0d5MY3x+LQ5cQYKQoX+HEpqXZTsaKYo9EXs/fdbo5/H6scJaO9oQ4Yj6HclC+0lodwq IMxme7pUy3D9sH+PGqi/E5tHBrH+zwli9kE++JoAmxtP4Je3PvgVOTwDt3JeUjykdF9a CyPJlAF/kOiqoZ9wSc12OZpgSkZdG8u41Hjk9TS6z2S4kliq7syeoUl5hEW4mWXob1/4 Ixf2x26AN0BtRoRLr9ETbdHJ8SymI/AF3D1xQqHMTKMqQX0fm4HFIVvBMGXl5TV3XOha 0ihw== X-Gm-Message-State: APjAAAXd786HAkFZpz00BNPMSuQXJ9TIN7k5EQznR4xv2oTatcAnnNbQ hr89AScZsbzLbVnxlZm8DW0JPUako6EEcX31sNLovQ== X-Received: by 2002:a05:6808:9bc:: with SMTP id e28mr425347oig.169.1573165411701; Thu, 07 Nov 2019 14:23:31 -0800 (PST) MIME-Version: 1.0 References: <20191028215919.83697-1-john.stultz@linaro.org> <20191028215919.83697-10-john.stultz@linaro.org> <878sp3j42w.fsf@gmail.com> In-Reply-To: <878sp3j42w.fsf@gmail.com> From: John Stultz Date: Thu, 7 Nov 2019 14:23:20 -0800 Message-ID: Subject: Re: [PATCH v4 9/9] usb: dwc3: Add host-mode as default support To: Felipe Balbi Cc: lkml , Greg Kroah-Hartman , Rob Herring , Mark Rutland , ShuFan Lee , Heikki Krogerus , Suzuki K Poulose , Chunfeng Yun , Yu Chen , Hans de Goede , Andy Shevchenko , Jun Li , Valentin Schneider , Jack Pham , Linux USB List , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Oct 29, 2019 at 2:25 AM Felipe Balbi wrote: > John Stultz writes: > > diff --git a/drivers/usb/dwc3/drd.c b/drivers/usb/dwc3/drd.c > > index 61d4fd8aead4..0e3466fe5ac4 100644 > > --- a/drivers/usb/dwc3/drd.c > > +++ b/drivers/usb/dwc3/drd.c > > @@ -489,7 +489,10 @@ static int dwc3_usb_role_switch_set(struct device *dev, enum usb_role role) > > mode = DWC3_GCTL_PRTCAP_DEVICE; > > break; > > default: > > - mode = DWC3_GCTL_PRTCAP_DEVICE; > > + if (dwc->role_switch_default_mode == USB_DR_MODE_HOST) > > + mode = DWC3_GCTL_PRTCAP_HOST; > > + else > > + mode = DWC3_GCTL_PRTCAP_DEVICE; > > break; > > } > > > > @@ -515,7 +518,10 @@ static enum usb_role dwc3_usb_role_switch_get(struct device *dev) > > role = dwc->current_otg_role; > > break; > > default: > > - role = USB_ROLE_DEVICE; > > + if (dwc->role_switch_default_mode == USB_DR_MODE_HOST) > > + role = USB_ROLE_HOST; > > look at this, we now have 3 different encodings for role which DWC3 > needs to understand. One is its own PRTCAP_DIR, then there USB_DR_MODE_* > and now USB_ROLE_*, can we make it so that we only have one private > encoding and one generic encoding? And you left out the DWC3_OTG_ROLE_* set too! So I agree it can be easy to muddle up. The enums are *almost* equivalent: include/linux/usb/role.h: enum usb_role { USB_ROLE_NONE, USB_ROLE_HOST, USB_ROLE_DEVICE, }; include/linux/usb/otg.h: enum usb_dr_mode { USB_DR_MODE_UNKNOWN, USB_DR_MODE_HOST, USB_DR_MODE_PERIPHERAL, USB_DR_MODE_OTG, }; But both are widely used: $ git grep USB_ROLE_ | wc -l 123 $ git grep USB_DR_MODE_ | wc -l 190 So I'm not sure how easy it will be to condense down, since the usage is coming from different usb subsystems (otg and role switching) and I worry assuming them equivalent in just one driver may run into trouble eventually if the values diverge (ie someone adds USB_ROLE_BRICK or something). Heikki/Greg: Any thoughts on this? Does it make sense to try to drop the usb_role enum and users and replace it with usb_dr_mode? thanks -john