| .. | .. |
|---|
| 129 | 129 | * @frontend_ctrl: called to power on/off active frontend. |
|---|
| 130 | 130 | * @streaming_ctrl: called to start and stop the MPEG2-TS streaming of the |
|---|
| 131 | 131 | * device (not URB submitting/killing). |
|---|
| 132 | + * This callback will be called without data URBs being active - data URBs |
|---|
| 133 | + * will be submitted only after streaming_ctrl(1) returns successfully and |
|---|
| 134 | + * they will be killed before streaming_ctrl(0) gets called. |
|---|
| 132 | 135 | * @pid_filter_ctrl: called to en/disable the PID filter, if any. |
|---|
| 133 | 136 | * @pid_filter: called to set/unset a PID for filtering. |
|---|
| 134 | 137 | * @frontend_attach: called to attach the possible frontends (fill fe-field |
|---|
| .. | .. |
|---|
| 234 | 237 | * |
|---|
| 235 | 238 | * @size_of_priv: how many bytes shall be allocated for the private field |
|---|
| 236 | 239 | * of struct dvb_usb_device. |
|---|
| 240 | + * @priv_init: optional callback to initialize the variable that private field |
|---|
| 241 | + * of struct dvb_usb_device has pointer to just after it had been allocated and |
|---|
| 242 | + * zeroed. |
|---|
| 243 | + * @priv_destroy: just like priv_init, only called before deallocating |
|---|
| 244 | + * the memory pointed by private field of struct dvb_usb_device. |
|---|
| 237 | 245 | * |
|---|
| 238 | 246 | * @power_ctrl: called to enable/disable power of the device. |
|---|
| 239 | 247 | * @read_mac_address: called to read the MAC address of the device. |
|---|
| .. | .. |
|---|
| 275 | 283 | int no_reconnect; |
|---|
| 276 | 284 | |
|---|
| 277 | 285 | int size_of_priv; |
|---|
| 286 | + int (*priv_init)(struct dvb_usb_device *); |
|---|
| 287 | + void (*priv_destroy)(struct dvb_usb_device *); |
|---|
| 278 | 288 | |
|---|
| 279 | 289 | int num_adapters; |
|---|
| 280 | 290 | struct dvb_usb_adapter_properties adapter[MAX_NO_OF_ADAPTER_PER_DEVICE]; |
|---|
| 281 | 291 | |
|---|
| 282 | 292 | int (*power_ctrl) (struct dvb_usb_device *, int); |
|---|
| 283 | 293 | int (*read_mac_address) (struct dvb_usb_device *, u8 []); |
|---|
| 284 | | - int (*identify_state) (struct usb_device *, struct dvb_usb_device_properties *, |
|---|
| 285 | | - struct dvb_usb_device_description **, int *); |
|---|
| 294 | + int (*identify_state)(struct usb_device *udev, |
|---|
| 295 | + const struct dvb_usb_device_properties *props, |
|---|
| 296 | + const struct dvb_usb_device_description **desc, |
|---|
| 297 | + int *cold); |
|---|
| 286 | 298 | |
|---|
| 287 | 299 | struct { |
|---|
| 288 | 300 | enum dvb_usb_mode mode; /* Drivers shouldn't touch on it */ |
|---|
| .. | .. |
|---|
| 336 | 348 | * struct dvb_usb_adapter - a DVB adapter on a USB device |
|---|
| 337 | 349 | * @id: index of this adapter (starting with 0). |
|---|
| 338 | 350 | * |
|---|
| 339 | | - * @feedcount: number of reqested feeds (used for streaming-activation) |
|---|
| 351 | + * @feedcount: number of requested feeds (used for streaming-activation) |
|---|
| 340 | 352 | * @pid_filtering: is hardware pid_filtering used or not. |
|---|
| 341 | 353 | * |
|---|
| 342 | 354 | * @pll_addr: I2C address of the tuner for programming |
|---|
| .. | .. |
|---|
| 426 | 438 | */ |
|---|
| 427 | 439 | struct dvb_usb_device { |
|---|
| 428 | 440 | struct dvb_usb_device_properties props; |
|---|
| 429 | | - struct dvb_usb_device_description *desc; |
|---|
| 441 | + const struct dvb_usb_device_description *desc; |
|---|
| 430 | 442 | |
|---|
| 431 | 443 | struct usb_device *udev; |
|---|
| 432 | 444 | |
|---|
| .. | .. |
|---|
| 463 | 475 | }; |
|---|
| 464 | 476 | |
|---|
| 465 | 477 | extern int dvb_usb_device_init(struct usb_interface *, |
|---|
| 466 | | - struct dvb_usb_device_properties *, |
|---|
| 478 | + const struct dvb_usb_device_properties *, |
|---|
| 467 | 479 | struct module *, struct dvb_usb_device **, |
|---|
| 468 | 480 | short *adapter_nums); |
|---|
| 469 | 481 | extern void dvb_usb_device_exit(struct usb_interface *); |
|---|