X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fw1%2Fdscore.c;h=f0f26a438c97723196680af9b0813e2a663c4cd3;hb=9e1bf581d67d87a1d7fc0ea500729e3a03643a26;hp=887d689e8c4fe4c0c22990f7552d06a0cf4c718f;hpb=8d40237c730b8be87c1b80a5d96b9c603fefa829;p=linux-2.6.git diff --git a/drivers/w1/dscore.c b/drivers/w1/dscore.c index 887d689e8..f0f26a438 100644 --- a/drivers/w1/dscore.c +++ b/drivers/w1/dscore.c @@ -35,26 +35,26 @@ MODULE_DEVICE_TABLE(usb, ds_id_table); int ds_probe(struct usb_interface *, const struct usb_device_id *); void ds_disconnect(struct usb_interface *); -int ds_touch_bit(struct ds_device *, u8, u8 *); -int ds_read_byte(struct ds_device *, u8 *); -int ds_read_bit(struct ds_device *, u8 *); -int ds_write_byte(struct ds_device *, u8); -int ds_write_bit(struct ds_device *, u8); -int ds_start_pulse(struct ds_device *, int); -int ds_set_speed(struct ds_device *, int); -int ds_reset(struct ds_device *, struct ds_status *); -int ds_detect(struct ds_device *, struct ds_status *); -int ds_stop_pulse(struct ds_device *, int); -int ds_send_data(struct ds_device *, unsigned char *, int); -int ds_recv_data(struct ds_device *, unsigned char *, int); -int ds_recv_status(struct ds_device *, struct ds_status *); -struct ds_device * ds_get_device(void); -void ds_put_device(struct ds_device *); +inline int ds_touch_bit(struct ds_device *, u8, u8 *); +inline int ds_read_byte(struct ds_device *, u8 *); +inline int ds_read_bit(struct ds_device *, u8 *); +inline int ds_write_byte(struct ds_device *, u8); +inline int ds_write_bit(struct ds_device *, u8); +inline int ds_start_pulse(struct ds_device *, int); +inline int ds_set_speed(struct ds_device *, int); +inline int ds_reset(struct ds_device *, struct ds_status *); +inline int ds_detect(struct ds_device *, struct ds_status *); +inline int ds_stop_pulse(struct ds_device *, int); +inline int ds_send_data(struct ds_device *, unsigned char *, int); +inline int ds_recv_data(struct ds_device *, unsigned char *, int); +inline int ds_recv_status(struct ds_device *, struct ds_status *); +inline struct ds_device * ds_get_device(void); +inline void ds_put_device(struct ds_device *); static inline void ds_dump_status(unsigned char *, unsigned char *, int); -static int ds_send_control(struct ds_device *, u16, u16); -static int ds_send_control_mode(struct ds_device *, u16, u16); -static int ds_send_control_cmd(struct ds_device *, u16, u16); +static inline int ds_send_control(struct ds_device *, u16, u16); +static inline int ds_send_control_mode(struct ds_device *, u16, u16); +static inline int ds_send_control_cmd(struct ds_device *, u16, u16); static struct usb_driver ds_driver = { @@ -503,7 +503,7 @@ int ds_read_byte(struct ds_device *dev, u8 *byte) return 0; } -int ds_read_block(struct ds_device *dev, u8 *buf, int len) +inline int ds_read_block(struct ds_device *dev, u8 *buf, int len) { struct ds_status st; int err; @@ -529,7 +529,7 @@ int ds_read_block(struct ds_device *dev, u8 *buf, int len) return err; } -int ds_write_block(struct ds_device *dev, u8 *buf, int len) +inline int ds_write_block(struct ds_device *dev, u8 *buf, int len) { int err; struct ds_status st; @@ -727,16 +727,11 @@ void ds_disconnect(struct usb_interface *intf) { struct ds_device *dev; - dev = usb_get_intfdata(intf); - usb_set_intfdata(intf, NULL); + dev = usb_get_intfdata (intf); + usb_set_intfdata (intf, NULL); - while (atomic_read(&dev->refcnt)) { - printk(KERN_INFO "Waiting for DS to become free: refcnt=%d.\n", - atomic_read(&dev->refcnt)); - - if (msleep_interruptible(1000)) - flush_signals(current); - } + while(atomic_read(&dev->refcnt)) + schedule_timeout(HZ); usb_put_dev(dev->udev); kfree(dev);