kl5kusb105.c (4d68c05ce11f4cdf6a6392f3a18dc6a985b4d0c4) kl5kusb105.c (4d2a7aff1062048ea59214b49ca1d915586d6d6d)
1/*
2 * KLSI KL5KUSB105 chip RS232 converter driver
3 *
4 * Copyright (C) 2010 Johan Hovold <jhovold@gmail.com>
5 * Copyright (C) 2001 Utz-Uwe Haus <haus@uuhaus.de>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by

--- 77 unchanged lines hidden (view full) ---

86
87MODULE_DEVICE_TABLE(usb, id_table);
88
89static struct usb_driver kl5kusb105d_driver = {
90 .name = "kl5kusb105d",
91 .probe = usb_serial_probe,
92 .disconnect = usb_serial_disconnect,
93 .id_table = id_table,
1/*
2 * KLSI KL5KUSB105 chip RS232 converter driver
3 *
4 * Copyright (C) 2010 Johan Hovold <jhovold@gmail.com>
5 * Copyright (C) 2001 Utz-Uwe Haus <haus@uuhaus.de>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by

--- 77 unchanged lines hidden (view full) ---

86
87MODULE_DEVICE_TABLE(usb, id_table);
88
89static struct usb_driver kl5kusb105d_driver = {
90 .name = "kl5kusb105d",
91 .probe = usb_serial_probe,
92 .disconnect = usb_serial_disconnect,
93 .id_table = id_table,
94 .no_dynamic_id = 1,
95};
96
97static struct usb_serial_driver kl5kusb105d_device = {
98 .driver = {
99 .owner = THIS_MODULE,
100 .name = "kl5kusb105d",
101 },
102 .description = "KL5KUSB105D / PalmConnect",
94};
95
96static struct usb_serial_driver kl5kusb105d_device = {
97 .driver = {
98 .owner = THIS_MODULE,
99 .name = "kl5kusb105d",
100 },
101 .description = "KL5KUSB105D / PalmConnect",
103 .usb_driver = &kl5kusb105d_driver,
104 .id_table = id_table,
105 .num_ports = 1,
106 .bulk_out_size = 64,
107 .open = klsi_105_open,
108 .close = klsi_105_close,
109 .set_termios = klsi_105_set_termios,
110 /*.break_ctl = klsi_105_break_ctl,*/
111 .tiocmget = klsi_105_tiocmget,
112 .tiocmset = klsi_105_tiocmset,
113 .attach = klsi_105_startup,
114 .release = klsi_105_release,
115 .throttle = usb_serial_generic_throttle,
116 .unthrottle = usb_serial_generic_unthrottle,
117 .process_read_urb = klsi_105_process_read_urb,
118 .prepare_write_buffer = klsi_105_prepare_write_buffer,
119};
120
102 .id_table = id_table,
103 .num_ports = 1,
104 .bulk_out_size = 64,
105 .open = klsi_105_open,
106 .close = klsi_105_close,
107 .set_termios = klsi_105_set_termios,
108 /*.break_ctl = klsi_105_break_ctl,*/
109 .tiocmget = klsi_105_tiocmget,
110 .tiocmset = klsi_105_tiocmset,
111 .attach = klsi_105_startup,
112 .release = klsi_105_release,
113 .throttle = usb_serial_generic_throttle,
114 .unthrottle = usb_serial_generic_unthrottle,
115 .process_read_urb = klsi_105_process_read_urb,
116 .prepare_write_buffer = klsi_105_prepare_write_buffer,
117};
118
119static struct usb_serial_driver * const serial_drivers[] = {
120 &kl5kusb105d_device, NULL
121};
122
121struct klsi_105_port_settings {
122 __u8 pktlen; /* always 5, it seems */
123 __u8 baudrate;
124 __u8 databits;
125 __u8 unknown1;
126 __u8 unknown2;
127} __attribute__ ((packed));
128

--- 560 unchanged lines hidden (view full) ---

689*/
690 return retval;
691}
692
693
694static int __init klsi_105_init(void)
695{
696 int retval;
123struct klsi_105_port_settings {
124 __u8 pktlen; /* always 5, it seems */
125 __u8 baudrate;
126 __u8 databits;
127 __u8 unknown1;
128 __u8 unknown2;
129} __attribute__ ((packed));
130

--- 560 unchanged lines hidden (view full) ---

691*/
692 return retval;
693}
694
695
696static int __init klsi_105_init(void)
697{
698 int retval;
697 retval = usb_serial_register(&kl5kusb105d_device);
698 if (retval)
699 goto failed_usb_serial_register;
700 retval = usb_register(&kl5kusb105d_driver);
701 if (retval)
702 goto failed_usb_register;
703
699
704 printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
705 DRIVER_DESC "\n");
706 return 0;
707failed_usb_register:
708 usb_serial_deregister(&kl5kusb105d_device);
709failed_usb_serial_register:
700 retval = usb_serial_register_drivers(&kl5kusb105d_driver,
701 serial_drivers);
702 if (retval == 0)
703 printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
704 DRIVER_DESC "\n");
710 return retval;
711}
712
713static void __exit klsi_105_exit(void)
714{
705 return retval;
706}
707
708static void __exit klsi_105_exit(void)
709{
715 usb_deregister(&kl5kusb105d_driver);
716 usb_serial_deregister(&kl5kusb105d_device);
710 usb_serial_deregister_drivers(&kl5kusb105d_driver, serial_drivers);
717}
718
719
720module_init(klsi_105_init);
721module_exit(klsi_105_exit);
722
723MODULE_AUTHOR(DRIVER_AUTHOR);
724MODULE_DESCRIPTION(DRIVER_DESC);
725MODULE_LICENSE("GPL");
726
727
728module_param(debug, bool, S_IRUGO | S_IWUSR);
729MODULE_PARM_DESC(debug, "enable extensive debugging messages");
711}
712
713
714module_init(klsi_105_init);
715module_exit(klsi_105_exit);
716
717MODULE_AUTHOR(DRIVER_AUTHOR);
718MODULE_DESCRIPTION(DRIVER_DESC);
719MODULE_LICENSE("GPL");
720
721
722module_param(debug, bool, S_IRUGO | S_IWUSR);
723MODULE_PARM_DESC(debug, "enable extensive debugging messages");