diff mbox series

USB: serial: simple-serial: spell out the ordering

Message ID 20230720114406.14587-1-oneukum@suse.com (mailing list archive)
State New, archived
Headers show
Series USB: serial: simple-serial: spell out the ordering | expand

Commit Message

Oliver Neukum July 20, 2023, 11:44 a.m. UTC
keeping a list ordered alphabetically instead
nummerically be vendor/product ID is unusual.
This is so odd that examples do not help.
It needs to be clearly stated with strong words.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
---
 drivers/usb/serial/usb-serial-simple.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

Comments

Johan Hovold July 20, 2023, 12:01 p.m. UTC | #1
On Thu, Jul 20, 2023 at 01:44:06PM +0200, Oliver Neukum wrote:
> keeping a list ordered alphabetically instead
> nummerically be vendor/product ID is unusual.
> This is so odd that examples do not help.
> It needs to be clearly stated with strong words.
> 
> Signed-off-by: Oliver Neukum <oneukum@suse.com>
> ---
>  drivers/usb/serial/usb-serial-simple.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/usb/serial/usb-serial-simple.c b/drivers/usb/serial/usb-serial-simple.c
> index 24b8772a345e..954b3be7403d 100644
> --- a/drivers/usb/serial/usb-serial-simple.c
> +++ b/drivers/usb/serial/usb-serial-simple.c
> @@ -33,6 +33,16 @@ static struct usb_serial_driver vendor##_device = {		\
>  
>  #define DEVICE(vendor, IDS)	DEVICE_N(vendor, IDS, 1)
>  
> +/*
> + * These tables are NOT in order of device id by intention
> + *
> + * Keep them and add new entries sorted by
> + *
> + * 1. Alphabetical order of the vendor name
> + * 2. Alphabetical order of the product name
> + *
> + */

No, this is not correct. The tables are sorted alphabetically based on
the symbol names, but the entries in each table is sorted by VID/PID as
usual.

The table ordering was not there from the start, but I just moved the
offending tables here:

	https://lore.kernel.org/lkml/20230720080049.14032-1-johan@kernel.org/

Guess I should update the sloppy terminology in that commit message,
though.

Johan
Johan Hovold July 20, 2023, 12:11 p.m. UTC | #2
On Thu, Jul 20, 2023 at 02:01:37PM +0200, Johan Hovold wrote:
> On Thu, Jul 20, 2023 at 01:44:06PM +0200, Oliver Neukum wrote:

> No, this is not correct. The tables are sorted alphabetically based on
> the symbol names, but the entries in each table is sorted by VID/PID as
> usual.
> 
> The table ordering was not there from the start, but I just moved the
> offending tables here:
> 
> 	https://lore.kernel.org/lkml/20230720080049.14032-1-johan@kernel.org/
> 
> Guess I should update the sloppy terminology in that commit message,
> though.

This should hopefully be clear enough:

	https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git/commit/?h=usb-linus&id=a1ff1edb9251e1151fb78eb9b226d5e4bc6c2810

Johan
Oliver Neukum July 20, 2023, 12:42 p.m. UTC | #3
On 20.07.23 14:01, Johan Hovold wrote:
> On Thu, Jul 20, 2023 at 01:44:06PM +0200, Oliver Neukum wrote:

>> + * These tables are NOT in order of device id by intention
>> + *
>> + * Keep them and add new entries sorted by
>> + *
>> + * 1. Alphabetical order of the vendor name
>> + * 2. Alphabetical order of the product name
>> + *
>> + */
> 
> No, this is not correct. The tables are sorted alphabetically based on
> the symbol names, but the entries in each table is sorted by VID/PID as
> usual.

OK, I stand corrected. You do understand that this ordering is
extremely peculiar? I am sorry, but deducing that from the example,
which the current order is, will just not work. Nobody gets that
without a clear and present explanation.

This just needs a comment in the text.

	Regards
		Oliver
Johan Hovold July 20, 2023, 1:59 p.m. UTC | #4
On Thu, Jul 20, 2023 at 02:42:49PM +0200, Oliver Neukum wrote:
> On 20.07.23 14:01, Johan Hovold wrote:
> > On Thu, Jul 20, 2023 at 01:44:06PM +0200, Oliver Neukum wrote:
> 
> >> + * These tables are NOT in order of device id by intention
> >> + *
> >> + * Keep them and add new entries sorted by
> >> + *
> >> + * 1. Alphabetical order of the vendor name
> >> + * 2. Alphabetical order of the product name
> >> + *
> >> + */
> > 
> > No, this is not correct. The tables are sorted alphabetically based on
> > the symbol names, but the entries in each table is sorted by VID/PID as
> > usual.
> 
> OK, I stand corrected. You do understand that this ordering is
> extremely peculiar? I am sorry, but deducing that from the example,
> which the current order is, will just not work. Nobody gets that
> without a clear and present explanation.

It's not peculiar. And if this wasn't implemented using macros, I'm
pretty sure you would not think so. Take a look at io_edgeport.c, for
example, where edgeport_2port_device comes before edgeport_4port_device,
etc.

> This just needs a comment in the text.

I disagree, with the last few entries sorted this should be clear
enough.

Johan
diff mbox series

Patch

diff --git a/drivers/usb/serial/usb-serial-simple.c b/drivers/usb/serial/usb-serial-simple.c
index 24b8772a345e..954b3be7403d 100644
--- a/drivers/usb/serial/usb-serial-simple.c
+++ b/drivers/usb/serial/usb-serial-simple.c
@@ -33,6 +33,16 @@  static struct usb_serial_driver vendor##_device = {		\
 
 #define DEVICE(vendor, IDS)	DEVICE_N(vendor, IDS, 1)
 
+/*
+ * These tables are NOT in order of device id by intention
+ *
+ * Keep them and add new entries sorted by
+ *
+ * 1. Alphabetical order of the vendor name
+ * 2. Alphabetical order of the product name
+ *
+ */
+
 /* Medtronic CareLink USB driver */
 #define CARELINK_IDS()			\
 	{ USB_DEVICE(0x0a21, 0x8001) }	/* MMT-7305WW */