Lines Matching refs:data

66 	struct bcm203x_data *data = urb->context;
74 data->state = BCM203X_ERROR;
78 switch (data->state) {
80 memcpy(data->buffer, "#", 1);
83 data->buffer, 1, bcm203x_complete, data);
85 data->state = BCM203X_SELECT_MEMORY;
88 schedule_work(&data->work);
93 data->buffer, 32, bcm203x_complete, data, 1);
95 data->state = BCM203X_CHECK_MEMORY;
97 if (usb_submit_urb(data->urb, GFP_ATOMIC) < 0)
102 if (data->buffer[0] != '#') {
104 data->state = BCM203X_ERROR;
108 data->state = BCM203X_LOAD_FIRMWARE;
111 if (data->fw_sent == data->fw_size) {
113 data->buffer, 32, bcm203x_complete, data, 1);
115 data->state = BCM203X_CHECK_FIRMWARE;
117 len = min_t(uint, data->fw_size - data->fw_sent, 4096);
120 data->fw_data + data->fw_sent, len, bcm203x_complete, data);
122 data->fw_sent += len;
125 if (usb_submit_urb(data->urb, GFP_ATOMIC) < 0)
130 if (data->buffer[0] != '.') {
132 data->state = BCM203X_ERROR;
136 data->state = BCM203X_RESET;
143 struct bcm203x_data *data =
146 if (atomic_read(&data->shutdown))
149 if (usb_submit_urb(data->urb, GFP_KERNEL) < 0)
157 struct bcm203x_data *data;
165 data = devm_kzalloc(&intf->dev, sizeof(*data), GFP_KERNEL);
166 if (!data)
169 data->udev = udev;
170 data->state = BCM203X_LOAD_MINIDRV;
172 data->urb = usb_alloc_urb(0, GFP_KERNEL);
173 if (!data->urb)
178 usb_free_urb(data->urb);
182 BT_DBG("minidrv data %p size %zu", firmware->data, firmware->size);
186 data->buffer = kmalloc(size, GFP_KERNEL);
187 if (!data->buffer) {
190 usb_free_urb(data->urb);
194 memcpy(data->buffer, firmware->data, firmware->size);
196 usb_fill_bulk_urb(data->urb, udev, usb_sndbulkpipe(udev, BCM203X_OUT_EP),
197 data->buffer, firmware->size, bcm203x_complete, data);
203 usb_free_urb(data->urb);
204 kfree(data->buffer);
208 BT_DBG("firmware data %p size %zu", firmware->data, firmware->size);
210 data->fw_data = kmemdup(firmware->data, firmware->size, GFP_KERNEL);
211 if (!data->fw_data) {
214 usb_free_urb(data->urb);
215 kfree(data->buffer);
219 data->fw_size = firmware->size;
220 data->fw_sent = 0;
224 INIT_WORK(&data->work, bcm203x_work);
226 usb_set_intfdata(intf, data);
229 schedule_work(&data->work);
236 struct bcm203x_data *data = usb_get_intfdata(intf);
240 atomic_inc(&data->shutdown);
241 cancel_work_sync(&data->work);
243 usb_kill_urb(data->urb);
247 usb_free_urb(data->urb);
248 kfree(data->fw_data);
249 kfree(data->buffer);