On Sun, Aug 17, 2014 at 10:05:36AM +0800, Wang YanQing wrote: > Hi Johan Hovold. > > Another two questions. > > On Tue, Aug 12, 2014 at 04:46:25PM +0200, Johan Hovold wrote: > > > > > + int (*gpio_startup)(struct usb_serial *serial); > > > + void (*gpio_release)(struct usb_serial *serial); > > > > This isn't the right place for this abstraction. Most of the setup code > > would be common for any device type with GPIOs. > > I assume you mean any pl2303 variant, not any device type, because > no device in drivers/gpio has common setup code except many of them > use struct gpio_chip. Yes, pl2303 type/variant. Specifically, much of the setup code will be identical even if say the number of gpio differ (2 or 4) depending on type. > > Just keep the generic gpio_startup and release from v6, and verify that > > ngpio > 0. Any further abstraction should only be added once we know how > > the other types handles GPIOs. > > Instead of assume code works for all situation firstly, test and write > code for only one type device, and make code become generic when we find > it works for others' type. > > I don't known which way is better. Add support for your device type (HXA). We should verify that it also works for the non-end-of-life HXD, or we might need to find a way to detect those two different types of HX and limit it to HXA for now. If and when someone reverse-engineers a device type with a different protocol for dealing with GPIOs, that's when you add further abstraction. > Thanks very much for your patient review !! You're welcome. Johan -- 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