summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
72ff64b)
* Use a dynamically allocated major device number.
* Use the tty name of /dev/ttyVIZx so it doesn't conflict with other devices.
* Create a udev rule which makes sure the device is bound to the vizzini
module. This is needed if the vizzini module is loaded *after* the cdc-acm
module as drivers are checked in the order they have been loaded and the
cdc-acm registers for the device class exported by the device.
* Adding slightly better debug messages.
--- /dev/null
+SUBSYSTEM=="usb", ATTR{idVendor}=="04e2", RUN+="/bin/sh -c 'echo -n %k:1.0 >/sys/bus/usb/drivers/cdc_acm/unbind; echo -n %k:1.0 >/sys/bus/usb/drivers/vizzini/bind'"
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions vtty
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions vtty
+
+install-rules: 99-vizzini.rules
+ cp $< "/etc/udev/rules.d/99-vizzini.rules"
+ udevadm control --reload-rules
+ udevadm trigger --attr-match=idVendor=04e2 --verbose
+vizzini (1.0.0-3) unstable; urgency=low
+
+ * Now can be loaded side-by-side with the cdc-acm module.
+
+ -- Tim 'mithro' Ansell <mithro@mithis.com> Thu, 02 Jul 2015 01:34:00 +1030
+
vizzini (1.0.0-2) unstable; urgency=low
* Now based on https://github.com/shenki/exar-uart-driver instead of https://github.com/ardje/vizzini
vizzini (1.0.0-2) unstable; urgency=low
* Now based on https://github.com/shenki/exar-uart-driver instead of https://github.com/ardje/vizzini
dh_installdocs
dh_installchangelogs
dh_installmodules
dh_installdocs
dh_installchangelogs
dh_installmodules
+ cp debian/vizzini.udev debian/$(PKGNAME).udev
+ dh_installudev --priority=99
dh_compress
dh_fixperms
dh_installdeb
dh_compress
dh_fixperms
dh_installdeb
dh_installdirs -p$(psource) usr/src/modules/$(sname)/debian
cp Makefile README* vizzini.c vizzini.h vzioctl.h $(DESTDIR)
cp debian/*modules.in* debian/control debian/rules debian/changelog debian/copyright debian/compat $(DESTDIR)/debian
dh_installdirs -p$(psource) usr/src/modules/$(sname)/debian
cp Makefile README* vizzini.c vizzini.h vzioctl.h $(DESTDIR)
cp debian/*modules.in* debian/control debian/rules debian/changelog debian/copyright debian/compat $(DESTDIR)/debian
+ cp 99-vizzini.rules $(DESTDIR)/debian/vizzini.udev
cd debian/$(psource)/usr/src && tar c modules | bzip2 -9 > $(sname).tar.bz2 && rm -rf modules
dh_install
cd debian/$(psource)/usr/src && tar c modules | bzip2 -9 > $(sname).tar.bz2 && rm -rf modules
dh_install
{
int retval;
xr21v141x_tty_driver = alloc_tty_driver(XR21V141X_TTY_MINORS);
{
int retval;
xr21v141x_tty_driver = alloc_tty_driver(XR21V141X_TTY_MINORS);
- if (!xr21v141x_tty_driver)
+ if (!xr21v141x_tty_driver) {
+ printk(KERN_INFO KBUILD_MODNAME ": alloc_tty_driver(%d) failed\n", XR21V141X_TTY_MINORS);
xr21v141x_tty_driver->driver_name = "vizzini",
xr21v141x_tty_driver->driver_name = "vizzini",
- xr21v141x_tty_driver->name = "ttyUSB",
- xr21v141x_tty_driver->major = XR21V141X_TTY_MAJOR,
+ xr21v141x_tty_driver->name = "ttyVIZ",
+ xr21v141x_tty_driver->major = 0, // Dynamically allocate the major number
xr21v141x_tty_driver->minor_start = 0,
xr21v141x_tty_driver->type = TTY_DRIVER_TYPE_SERIAL,
xr21v141x_tty_driver->subtype = SERIAL_TYPE_NORMAL,
xr21v141x_tty_driver->minor_start = 0,
xr21v141x_tty_driver->type = TTY_DRIVER_TYPE_SERIAL,
xr21v141x_tty_driver->subtype = SERIAL_TYPE_NORMAL,
retval = tty_register_driver(xr21v141x_tty_driver);
if (retval) {
retval = tty_register_driver(xr21v141x_tty_driver);
if (retval) {
+ printk(KERN_INFO KBUILD_MODNAME ": tty_register_driver failed\n");
put_tty_driver(xr21v141x_tty_driver);
return retval;
}
retval = usb_register(&xr21v141x_driver);
if (retval) {
put_tty_driver(xr21v141x_tty_driver);
return retval;
}
retval = usb_register(&xr21v141x_driver);
if (retval) {
+ printk(KERN_INFO KBUILD_MODNAME ": usb_register failed\n");
tty_unregister_driver(xr21v141x_tty_driver);
put_tty_driver(xr21v141x_tty_driver);
return retval;
tty_unregister_driver(xr21v141x_tty_driver);
put_tty_driver(xr21v141x_tty_driver);
return retval;
MODULE_AUTHOR(DRIVER_AUTHOR);
MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_LICENSE("GPL");
MODULE_AUTHOR(DRIVER_AUTHOR);
MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_LICENSE("GPL");
-MODULE_ALIAS_CHARDEV_MAJOR(ACM_TTY_MAJOR);
* Major and minor numbers.
*/
* Major and minor numbers.
*/
-#define XR21V141X_TTY_MAJOR 166
#define XR21V141X_TTY_MINORS 32
#define USB_RT_ACM (USB_TYPE_CLASS | USB_RECIP_INTERFACE)
#define XR21V141X_TTY_MINORS 32
#define USB_RT_ACM (USB_TYPE_CLASS | USB_RECIP_INTERFACE)