On Mon, 7 May 2018, Mark Knibbs wrote: > Some devices have a non-BCD value in bcdDevice. For example some card > readers based on an ICSI chip have bcdDevice 0x016F. (They put "1.6F" > in bytes 32-35 of their INQUIRY data.) > > For devices which need US_FL_FIX_INQUIRY, fill_inquiry_response() > doesn't appear to handle non-BCD values correctly since it just adds > 0x30 to each 4-bit value: > data[32] = 0x30 + ((bcdDevice>>12) & 0x0F); > data[33] = 0x30 + ((bcdDevice>>8) & 0x0F); > data[34] = 0x30 + ((bcdDevice>>4) & 0x0F); > data[35] = 0x30 + ((bcdDevice) & 0x0F); > > Thus hex 0xA to 0xF correspond to : ; < = > ? characters. For the > 0x016F example, that would appear as "016?" in the generated INQUIRY > data. > > Is it worth submitting a patch to fix that? Do any devices which need > US_FL_FIX_INQUIRY have non-BCD bcdDevice values? In answer to your second question: I have no idea. In answer to your first question: Nobody has complained about it so far. Unless someone does, there's probably not much reason to change the code. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html