diff linux-patch/README @ 83:d7a1e7a6d6ba

linux-patch: current best offering of minpatch-*
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 06 Dec 2020 02:55:40 +0000
parents
children 95c2a67e1219
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linux-patch/README	Sun Dec 06 02:55:40 2020 +0000
@@ -0,0 +1,57 @@
+This directory contains several versions of the Linux kernel ftdi_sio driver
+patch that adds support for FreeCalypso DUART28C adapter, i.e., the optional
+configuration of DUART28 with boot control outputs.
+
+The version in the orig-202007 directory was produced at the end of 2020-07,
+when DUART28 hardware was still being designed; this original version of the
+patch was created to test the idea and to prove it working (using a generic
+FT2232D board and an oscilloscope), and it was created with the mindset of a
+hardware engineer, rather than that of Linux kernel maintainers.  This original
+patch version was made against kernel version 4.4.14 (the version used by the
+Mother), and it predates all later mainline submission and integration attempts.
+
+A patch series against then-current mainline was submitted to ftdi_sio driver
+maintainer Johan Hovold in 2020-09 for inclusion in mainline Linux.  The
+preliminary patch adding support for FreeCalypso JTAG+UART USB ID codes was
+readily accepted and has since been propagated to several stable kernel branches
+(4.4.240, 4.9.240, 4.14.202, 4.19.152, 5.4.72, 5.8.16, 5.9.1 and mainline 5.10),
+but this patch by itself does not help in any way with DUART28C support.  The
+remaining two patches from the original 2020-09 patch series (a preliminary
+patch fixing an oversight in the quirk interface and then the main patch of
+interest) were met with resistance, however, and the goal of bringing DUART28C
+support into mainline Linux is still in limbo as of 2020-12.
+
+Johan (the ftdi_sio driver maintainer who was the target of our initial pressure
+campaign to get the needed driver quirk accepted) has now proposed a generalized
+version of Mother Mychaela's original idea; this generalized version is just as
+good for our purposes because in the end it still recognizes our custom USB ID
+and sets the quirk flag which we require, but it also helps other potential
+users who may have similar needs, but who work with "any" serial port rather
+than a custom USB ID.  The current version as of this writing of Johan's patch
+series implementing his proposed generalized solution is this one:
+
+https://lore.kernel.org/linux-serial/X8iuCXYhOBVMGvXv@localhost/T/
+
+However, the comments in that thread indicate that the maintainers seem intent
+on delaying this integration until 5.12 merge window if not even later, thus we
+are still months away from any hope of resolution.  Because We The End Users
+cannot be expected to put our lives on hold and just sit and wait for kernel
+maintainers to get their act together, we need some immediate solution for our
+use right now - and the minpatch-* series presented here is our current best
+offering for end user purposes.
+
+3 end user patch series versions are presented in minpatch-4.4.14,
+minpatch-4.4.240 and minpatch-4.9.240.  4.4.240 and 4.9.240 already include the
+preliminary JTAG+UART USB ID code support patch (which serves mainly as an
+anchor marking the place where the new DUART28C USB ID code needs to go in
+ftdi_sio_ids.h and in the ftdi_sio.c ID code table), but 4.4.14 predates this
+patch by a few years, thus minpatch-4.4.14 includes a backport of this
+preliminary patch as well.  After this preliminary patch, each minpatch-*
+version includes the quirk port_probe patch and the main patch adding DUART28C
+support with the needed quirk.  These latter patches are the closest version we
+have to what we are hoping to see eventually merged into mainline, and they have
+already undergone rounds of revision in response to maintainer Johan's criticism
+- but this "minimal patch" version is limited to just the ftdi_sio driver, not
+extending into more generic layers, hence the actual quirk flag is implemented
+inside ftdi_sio, not fully generalized like it is in the version which we are
+hoping to see merged into mainline in future months/years.