.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | /* |
---|
2 | 3 | * Linux driver for digital TV devices equipped with B2C2 FlexcopII(b)/III |
---|
3 | 4 | * flexcop-usb.c - covers the USB part |
---|
.. | .. |
---|
418 | 419 | usb_free_urb(fc_usb->iso_urb[i]); |
---|
419 | 420 | } |
---|
420 | 421 | |
---|
421 | | - if (fc_usb->iso_buffer != NULL) |
---|
422 | | - usb_free_coherent(fc_usb->udev, |
---|
423 | | - fc_usb->buffer_size, fc_usb->iso_buffer, |
---|
424 | | - fc_usb->dma_addr); |
---|
| 422 | + usb_free_coherent(fc_usb->udev, fc_usb->buffer_size, |
---|
| 423 | + fc_usb->iso_buffer, fc_usb->dma_addr); |
---|
| 424 | + |
---|
425 | 425 | } |
---|
426 | 426 | |
---|
427 | 427 | static int flexcop_usb_transfer_init(struct flexcop_usb *fc_usb) |
---|
.. | .. |
---|
512 | 512 | |
---|
513 | 513 | if (fc_usb->uintf->cur_altsetting->desc.bNumEndpoints < 1) |
---|
514 | 514 | return -ENODEV; |
---|
| 515 | + if (!usb_endpoint_is_isoc_in(&fc_usb->uintf->cur_altsetting->endpoint[0].desc)) |
---|
| 516 | + return -ENODEV; |
---|
515 | 517 | |
---|
516 | 518 | switch (fc_usb->udev->speed) { |
---|
517 | 519 | case USB_SPEED_LOW: |
---|
.. | .. |
---|
524 | 526 | case USB_SPEED_HIGH: |
---|
525 | 527 | info("running at HIGH speed."); |
---|
526 | 528 | break; |
---|
527 | | - case USB_SPEED_UNKNOWN: /* fall through */ |
---|
| 529 | + case USB_SPEED_UNKNOWN: |
---|
528 | 530 | default: |
---|
529 | 531 | err("cannot handle USB speed because it is unknown."); |
---|
530 | 532 | return -ENODEV; |
---|