| .. | .. |
|---|
| 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; |
|---|