diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-03 11:08:44 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-03 11:08:44 -0500 |
| commit | c1dcb4bb1e3e16e9baee578d9bb040e5fba1063e (patch) | |
| tree | 1bba995740aed8ef9a47111c1ee6ceeda84af836 /include/linux | |
| parent | 60f8a8d4c6c46bb080e8e65d30be31b172a39a78 (diff) | |
| parent | 6fdb2ee243404c7cbf530387bf904ad1841ebf5b (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (23 commits)
firewire: ohci: extend initialization log message
firewire: ohci: fix IR/IT context mask mixup
firewire: ohci: add module parameter to activate quirk fixes
firewire: ohci: use an ID table for quirks detection
firewire: ohci: reorder struct fw_ohci for better cache efficiency
firewire: ohci: remove unused dualbuffer IR code
firewire: core: combine a bit of repeated code
firewire: core: change type of a data buffer
firewire: cdev: increment ABI version number
firewire: cdev: add more flexible cycle timer ioctl
firewire: core: rename an internal function
firewire: core: fix an information leak
firewire: core: increase stack size of config ROM reader
firewire: core: don't fail device creation in case of too large config ROM blocks
firewire: core: fix "giving up on config rom" with Panasonic AG-DV2500
firewire: remove incomplete Bus_Time CSR support
firewire: get_cycle_timer optimization and cleanup
firewire: ohci: enable cycle timer fix on ALi and NEC controllers
firewire: ohci: work around cycle timer bugs on VIA controllers
firewire: make PCI device id constant
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/firewire-cdev.h | 40 | ||||
| -rw-r--r-- | include/linux/firewire.h | 11 | ||||
| -rw-r--r-- | include/linux/pci_ids.h | 1 |
3 files changed, 41 insertions, 11 deletions
diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h index 520ecf86cbb3..40b11013408e 100644 --- a/include/linux/firewire-cdev.h +++ b/include/linux/firewire-cdev.h | |||
| @@ -248,13 +248,20 @@ union fw_cdev_event { | |||
| 248 | #define FW_CDEV_IOC_SEND_BROADCAST_REQUEST _IOW('#', 0x12, struct fw_cdev_send_request) | 248 | #define FW_CDEV_IOC_SEND_BROADCAST_REQUEST _IOW('#', 0x12, struct fw_cdev_send_request) |
| 249 | #define FW_CDEV_IOC_SEND_STREAM_PACKET _IOW('#', 0x13, struct fw_cdev_send_stream_packet) | 249 | #define FW_CDEV_IOC_SEND_STREAM_PACKET _IOW('#', 0x13, struct fw_cdev_send_stream_packet) |
| 250 | 250 | ||
| 251 | /* available since kernel version 2.6.34 */ | ||
| 252 | #define FW_CDEV_IOC_GET_CYCLE_TIMER2 _IOWR('#', 0x14, struct fw_cdev_get_cycle_timer2) | ||
| 253 | |||
| 251 | /* | 254 | /* |
| 252 | * FW_CDEV_VERSION History | 255 | * FW_CDEV_VERSION History |
| 253 | * 1 (2.6.22) - initial version | 256 | * 1 (2.6.22) - initial version |
| 254 | * 2 (2.6.30) - changed &fw_cdev_event_iso_interrupt.header if | 257 | * 2 (2.6.30) - changed &fw_cdev_event_iso_interrupt.header if |
| 255 | * &fw_cdev_create_iso_context.header_size is 8 or more | 258 | * &fw_cdev_create_iso_context.header_size is 8 or more |
| 259 | * (2.6.32) - added time stamp to xmit &fw_cdev_event_iso_interrupt | ||
| 260 | * (2.6.33) - IR has always packet-per-buffer semantics now, not one of | ||
| 261 | * dual-buffer or packet-per-buffer depending on hardware | ||
| 262 | * 3 (2.6.34) - made &fw_cdev_get_cycle_timer reliable | ||
| 256 | */ | 263 | */ |
| 257 | #define FW_CDEV_VERSION 2 | 264 | #define FW_CDEV_VERSION 3 |
| 258 | 265 | ||
| 259 | /** | 266 | /** |
| 260 | * struct fw_cdev_get_info - General purpose information ioctl | 267 | * struct fw_cdev_get_info - General purpose information ioctl |
| @@ -544,14 +551,18 @@ struct fw_cdev_stop_iso { | |||
| 544 | /** | 551 | /** |
| 545 | * struct fw_cdev_get_cycle_timer - read cycle timer register | 552 | * struct fw_cdev_get_cycle_timer - read cycle timer register |
| 546 | * @local_time: system time, in microseconds since the Epoch | 553 | * @local_time: system time, in microseconds since the Epoch |
| 547 | * @cycle_timer: isochronous cycle timer, as per OHCI 1.1 clause 5.13 | 554 | * @cycle_timer: Cycle Time register contents |
| 548 | * | 555 | * |
| 549 | * The %FW_CDEV_IOC_GET_CYCLE_TIMER ioctl reads the isochronous cycle timer | 556 | * The %FW_CDEV_IOC_GET_CYCLE_TIMER ioctl reads the isochronous cycle timer |
| 550 | * and also the system clock. This allows to express the receive time of an | 557 | * and also the system clock (%CLOCK_REALTIME). This allows to express the |
| 551 | * isochronous packet as a system time with microsecond accuracy. | 558 | * receive time of an isochronous packet as a system time. |
| 552 | * | 559 | * |
| 553 | * @cycle_timer consists of 7 bits cycleSeconds, 13 bits cycleCount, and | 560 | * @cycle_timer consists of 7 bits cycleSeconds, 13 bits cycleCount, and |
| 554 | * 12 bits cycleOffset, in host byte order. | 561 | * 12 bits cycleOffset, in host byte order. Cf. the Cycle Time register |
| 562 | * per IEEE 1394 or Isochronous Cycle Timer register per OHCI-1394. | ||
| 563 | * | ||
| 564 | * In version 1 and 2 of the ABI, this ioctl returned unreliable (non- | ||
| 565 | * monotonic) @cycle_timer values on certain controllers. | ||
| 555 | */ | 566 | */ |
| 556 | struct fw_cdev_get_cycle_timer { | 567 | struct fw_cdev_get_cycle_timer { |
| 557 | __u64 local_time; | 568 | __u64 local_time; |
| @@ -559,6 +570,25 @@ struct fw_cdev_get_cycle_timer { | |||
| 559 | }; | 570 | }; |
| 560 | 571 | ||
| 561 | /** | 572 | /** |
| 573 | * struct fw_cdev_get_cycle_timer2 - read cycle timer register | ||
| 574 | * @tv_sec: system time, seconds | ||
| 575 | * @tv_nsec: system time, sub-seconds part in nanoseconds | ||
| 576 | * @clk_id: input parameter, clock from which to get the system time | ||
| 577 | * @cycle_timer: Cycle Time register contents | ||
| 578 | * | ||
| 579 | * The %FW_CDEV_IOC_GET_CYCLE_TIMER2 works like | ||
| 580 | * %FW_CDEV_IOC_GET_CYCLE_TIMER but lets you choose a clock like with POSIX' | ||
| 581 | * clock_gettime function. Supported @clk_id values are POSIX' %CLOCK_REALTIME | ||
| 582 | * and %CLOCK_MONOTONIC and Linux' %CLOCK_MONOTONIC_RAW. | ||
| 583 | */ | ||
| 584 | struct fw_cdev_get_cycle_timer2 { | ||
| 585 | __s64 tv_sec; | ||
| 586 | __s32 tv_nsec; | ||
| 587 | __s32 clk_id; | ||
| 588 | __u32 cycle_timer; | ||
| 589 | }; | ||
| 590 | |||
| 591 | /** | ||
| 562 | * struct fw_cdev_allocate_iso_resource - (De)allocate a channel or bandwidth | 592 | * struct fw_cdev_allocate_iso_resource - (De)allocate a channel or bandwidth |
| 563 | * @closure: Passed back to userspace in correponding iso resource events | 593 | * @closure: Passed back to userspace in correponding iso resource events |
| 564 | * @channels: Isochronous channels of which one is to be (de)allocated | 594 | * @channels: Isochronous channels of which one is to be (de)allocated |
diff --git a/include/linux/firewire.h b/include/linux/firewire.h index a0e67150a729..4bd94bf5e739 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h | |||
| @@ -65,12 +65,13 @@ | |||
| 65 | #define CSR_DIRECTORY_ID 0x20 | 65 | #define CSR_DIRECTORY_ID 0x20 |
| 66 | 66 | ||
| 67 | struct fw_csr_iterator { | 67 | struct fw_csr_iterator { |
| 68 | u32 *p; | 68 | const u32 *p; |
| 69 | u32 *end; | 69 | const u32 *end; |
| 70 | }; | 70 | }; |
| 71 | 71 | ||
| 72 | void fw_csr_iterator_init(struct fw_csr_iterator *ci, u32 *p); | 72 | void fw_csr_iterator_init(struct fw_csr_iterator *ci, const u32 *p); |
| 73 | int fw_csr_iterator_next(struct fw_csr_iterator *ci, int *key, int *value); | 73 | int fw_csr_iterator_next(struct fw_csr_iterator *ci, int *key, int *value); |
| 74 | int fw_csr_string(const u32 *directory, int key, char *buf, size_t size); | ||
| 74 | 75 | ||
| 75 | extern struct bus_type fw_bus_type; | 76 | extern struct bus_type fw_bus_type; |
| 76 | 77 | ||
| @@ -162,7 +163,7 @@ struct fw_device { | |||
| 162 | struct mutex client_list_mutex; | 163 | struct mutex client_list_mutex; |
| 163 | struct list_head client_list; | 164 | struct list_head client_list; |
| 164 | 165 | ||
| 165 | u32 *config_rom; | 166 | const u32 *config_rom; |
| 166 | size_t config_rom_length; | 167 | size_t config_rom_length; |
| 167 | int config_rom_retries; | 168 | int config_rom_retries; |
| 168 | unsigned is_local:1; | 169 | unsigned is_local:1; |
| @@ -204,7 +205,7 @@ int fw_device_enable_phys_dma(struct fw_device *device); | |||
| 204 | */ | 205 | */ |
| 205 | struct fw_unit { | 206 | struct fw_unit { |
| 206 | struct device device; | 207 | struct device device; |
| 207 | u32 *directory; | 208 | const u32 *directory; |
| 208 | struct fw_attribute_group attribute_group; | 209 | struct fw_attribute_group attribute_group; |
| 209 | }; | 210 | }; |
| 210 | 211 | ||
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 0be824320580..c0e207c0c45a 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -770,7 +770,6 @@ | |||
| 770 | #define PCI_VENDOR_ID_TI 0x104c | 770 | #define PCI_VENDOR_ID_TI 0x104c |
| 771 | #define PCI_DEVICE_ID_TI_TVP4020 0x3d07 | 771 | #define PCI_DEVICE_ID_TI_TVP4020 0x3d07 |
| 772 | #define PCI_DEVICE_ID_TI_4450 0x8011 | 772 | #define PCI_DEVICE_ID_TI_4450 0x8011 |
| 773 | #define PCI_DEVICE_ID_TI_TSB43AB22 0x8023 | ||
| 774 | #define PCI_DEVICE_ID_TI_XX21_XX11 0x8031 | 773 | #define PCI_DEVICE_ID_TI_XX21_XX11 0x8031 |
| 775 | #define PCI_DEVICE_ID_TI_XX21_XX11_FM 0x8033 | 774 | #define PCI_DEVICE_ID_TI_XX21_XX11_FM 0x8033 |
| 776 | #define PCI_DEVICE_ID_TI_XX21_XX11_SD 0x8034 | 775 | #define PCI_DEVICE_ID_TI_XX21_XX11_SD 0x8034 |
