lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f82856a4-5841-0656-e9a5-68b035ca91df@roeck-us.net>
Date:   Sat, 12 May 2018 14:42:47 -0700
From:   Guenter Roeck <linux@...ck-us.net>
To:     Heikki Krogerus <heikki.krogerus@...ux.intel.com>,
        Hans de Goede <hdegoede@...hat.com>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:     Jun Li <jun.li@....com>, Mats Karrman <mats.dev.list@...il.com>,
        linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [RFC PATCH v3 0/5] usb: typec: Support for Alternate Modes

On 05/11/2018 06:18 AM, Heikki Krogerus wrote:
> Hi,
> 
> This is the third version of my proposal for more complete alternate
> mode support. In this version I'm including a proposal for the mux
> handling. Basically, I'm proposing that every supported alternate will
> have its own mux handle. That should allow us to support multiple
> alternate modes at the same time. There is also a small change to how
> I handled enter/exit mode commands. Now the alternate mode drivers
> will need to check if Enter Mode command ACK/NAK. The ->enter callback
> is not called in those cases separately. The typec_altmode_enter/exit
> functions are used only when the command is initiated. Other than
> that, only minor tuning.
> 

I like the both the idea and the approach. I browsed through the code,
but I don't see anything obviously wrong with it. Too bad I wont have
the time for an actual alternate mode implementation. Are you working
on one, by any chance ? I would like to see this move forward, and an
actual implementation would help to get there.

Thanks,
Guenter

> 
> v2 commit message:
> 
> This is second version of my proposal for more complete USB Type-C
> Alternate Mode support. The original proposal can be read from here:
> https://www.spinics.net/lists/linux-usb/msg161098.html
> 
> These patches now depend on series from Hans where he is introducing
> mux handling support for USB Type-C and USB in general:
> https://lkml.org/lkml/2018/3/2/340
> 
> The major difference compared to v1 is that I'm proposing change to
> the sysfs ABI we have for the alternate mode devices. The files are
> not changed, but they are moved to the parent directory from the
> mode<index> folder. Since the alternate mode devices are not yet used
> and in practice not supported in mainline, I felt brave enough to
> propose that.
> 
> The reason for removing the mode<index> folder is because as in patch
> 1/3 I now create a device for every mode of every SVID, there will
> never be more then one mode folder. I.e. the folder serves no purpose.
> The mode<index> is still kept for now, but it's just deprecated.
> 
> There are no alternate mode drivers included yet in this version.
> 
> 
> Original commit message (subject was "usb: typec: alternate mode
> bus"):
> 
> The bus allows SVID specific communication with the partners to be
> handled in separate drivers for each alternate mode.
> 
> Alternate mode handling happens with two separate logical devices:
> 1. Partner alternate mode devices which represent the alternate modes
>     on the partner. The driver for them will handle the alternate mode
>     specific communication with the partner using VDMs.
> 2. Port alternate mode devices which represent connections from the
>     USB Type-C port to devices on the platform.
> 
> The drivers will be bind to the partner alternate modes. The alternate
> mode drivers will need to deliver the result of the negotiated pin
> configurations to the rest of the platform (towards the port alternate
> mode devices). This series includes API for that, however, not the
> final implementation yet.
> 
> The connections to the other devices on the platform the ports have
> can be described by using the remote endpoint concept [1][2] on ACPI
> and DT platforms, but I have no solution for the "platform data" case
> where we have neither DT nor ACPI to describe the connections for us.
> 
> [1] Documentation/devicetree/bindings/graph.txt
> [2] Documentation/acpi/dsd/graph.txt
> 
> 
> Heikki Krogerus (5):
>    usb: typec: mux: Get the mux identifier from function parameter
>    usb: typec: Register a device for every mode
>    usb: typec: Bus type for alternate modes
>    usb: typec: pi3usb30532: Start using generic state values
>    usb: typec: tcpm: Support for Alternate Modes
> 
>   Documentation/ABI/obsolete/sysfs-class-typec |  48 ++
>   Documentation/ABI/testing/sysfs-bus-typec    |  51 ++
>   Documentation/ABI/testing/sysfs-class-typec  |  62 +--
>   Documentation/driver-api/usb/typec_bus.rst   | 136 ++++++
>   drivers/usb/typec/Makefile                   |   2 +-
>   drivers/usb/typec/bus.c                      | 423 +++++++++++++++++
>   drivers/usb/typec/bus.h                      |  38 ++
>   drivers/usb/typec/class.c                    | 472 ++++++++++++-------
>   drivers/usb/typec/mux.c                      |   6 +-
>   drivers/usb/typec/mux/pi3usb30532.c          |  11 +-
>   drivers/usb/typec/tcpm.c                     | 179 +++++--
>   include/linux/mod_devicetable.h              |  15 +
>   include/linux/usb/tcpm.h                     |   9 -
>   include/linux/usb/typec.h                    |  51 +-
>   include/linux/usb/typec_altmode.h            | 142 ++++++
>   include/linux/usb/typec_mux.h                |   2 +-
>   scripts/mod/devicetable-offsets.c            |   4 +
>   scripts/mod/file2alias.c                     |  13 +
>   18 files changed, 1347 insertions(+), 317 deletions(-)
>   create mode 100644 Documentation/ABI/obsolete/sysfs-class-typec
>   create mode 100644 Documentation/ABI/testing/sysfs-bus-typec
>   create mode 100644 Documentation/driver-api/usb/typec_bus.rst
>   create mode 100644 drivers/usb/typec/bus.c
>   create mode 100644 drivers/usb/typec/bus.h
>   create mode 100644 include/linux/usb/typec_altmode.h
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ