diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/firewire-cdev.h | 39 | ||||
| -rw-r--r-- | include/linux/firewire.h | 3 |
2 files changed, 34 insertions, 8 deletions
diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h index 5bc051b9a013..b87409160794 100644 --- a/include/linux/firewire-cdev.h +++ b/include/linux/firewire-cdev.h | |||
| @@ -35,6 +35,7 @@ | |||
| 35 | /* available since kernel version 2.6.36 */ | 35 | /* available since kernel version 2.6.36 */ |
| 36 | #define FW_CDEV_EVENT_REQUEST2 0x06 | 36 | #define FW_CDEV_EVENT_REQUEST2 0x06 |
| 37 | #define FW_CDEV_EVENT_PHY_PACKET_SENT 0x07 | 37 | #define FW_CDEV_EVENT_PHY_PACKET_SENT 0x07 |
| 38 | #define FW_CDEV_EVENT_PHY_PACKET_RECEIVED 0x08 | ||
| 38 | 39 | ||
| 39 | /** | 40 | /** |
| 40 | * struct fw_cdev_event_common - Common part of all fw_cdev_event_ types | 41 | * struct fw_cdev_event_common - Common part of all fw_cdev_event_ types |
| @@ -285,16 +286,24 @@ struct fw_cdev_event_iso_resource { | |||
| 285 | }; | 286 | }; |
| 286 | 287 | ||
| 287 | /** | 288 | /** |
| 288 | * struct fw_cdev_event_phy_packet - A PHY packet was transmitted | 289 | * struct fw_cdev_event_phy_packet - A PHY packet was transmitted or received |
| 289 | * @closure: See &fw_cdev_event_common; | 290 | * @closure: See &fw_cdev_event_common; set by %FW_CDEV_IOC_SEND_PHY_PACKET |
| 290 | * set by %FW_CDEV_IOC_SEND_PHY_PACKET ioctl | 291 | * or %FW_CDEV_IOC_RECEIVE_PHY_PACKETS ioctl |
| 291 | * @type: %FW_CDEV_EVENT_PHY_PACKET_SENT | 292 | * @type: %FW_CDEV_EVENT_PHY_PACKET_SENT or %..._RECEIVED |
| 292 | * @rcode: %RCODE_..., indicates success or failure of transmission | 293 | * @rcode: %RCODE_..., indicates success or failure of transmission |
| 294 | * @length: Data length in bytes | ||
| 295 | * @data: Incoming data | ||
| 296 | * | ||
| 297 | * If @type is %FW_CDEV_EVENT_PHY_PACKET_SENT, @length is 0 and @data empty. | ||
| 298 | * If @type is %FW_CDEV_EVENT_PHY_PACKET_RECEIVED, @length is 8 and @data | ||
| 299 | * consists of the two PHY packet quadlets, in host byte order. | ||
| 293 | */ | 300 | */ |
| 294 | struct fw_cdev_event_phy_packet { | 301 | struct fw_cdev_event_phy_packet { |
| 295 | __u64 closure; | 302 | __u64 closure; |
| 296 | __u32 type; | 303 | __u32 type; |
| 297 | __u32 rcode; | 304 | __u32 rcode; |
| 305 | __u32 length; | ||
| 306 | __u32 data[0]; | ||
| 298 | }; | 307 | }; |
| 299 | 308 | ||
| 300 | /** | 309 | /** |
| @@ -308,7 +317,9 @@ struct fw_cdev_event_phy_packet { | |||
| 308 | * @iso_resource: Valid if @common.type == | 317 | * @iso_resource: Valid if @common.type == |
| 309 | * %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED or | 318 | * %FW_CDEV_EVENT_ISO_RESOURCE_ALLOCATED or |
| 310 | * %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED | 319 | * %FW_CDEV_EVENT_ISO_RESOURCE_DEALLOCATED |
| 311 | * @phy_packet: Valid if @common.type == %FW_CDEV_EVENT_PHY_PACKET_SENT | 320 | * @phy_packet: Valid if @common.type == |
| 321 | * %FW_CDEV_EVENT_PHY_PACKET_SENT or | ||
| 322 | * %FW_CDEV_EVENT_PHY_PACKET_RECEIVED | ||
| 312 | * | 323 | * |
| 313 | * Convenience union for userspace use. Events could be read(2) into an | 324 | * Convenience union for userspace use. Events could be read(2) into an |
| 314 | * appropriately aligned char buffer and then cast to this union for further | 325 | * appropriately aligned char buffer and then cast to this union for further |
| @@ -360,6 +371,7 @@ union fw_cdev_event { | |||
| 360 | 371 | ||
| 361 | /* available since kernel version 2.6.36 */ | 372 | /* available since kernel version 2.6.36 */ |
| 362 | #define FW_CDEV_IOC_SEND_PHY_PACKET _IOWR('#', 0x15, struct fw_cdev_send_phy_packet) | 373 | #define FW_CDEV_IOC_SEND_PHY_PACKET _IOWR('#', 0x15, struct fw_cdev_send_phy_packet) |
| 374 | #define FW_CDEV_IOC_RECEIVE_PHY_PACKETS _IOW('#', 0x16, struct fw_cdev_receive_phy_packets) | ||
| 363 | 375 | ||
| 364 | /* | 376 | /* |
| 365 | * ABI version history | 377 | * ABI version history |
| @@ -376,9 +388,9 @@ union fw_cdev_event { | |||
| 376 | * - shared use and auto-response for FCP registers | 388 | * - shared use and auto-response for FCP registers |
| 377 | * 3 (2.6.34) - made &fw_cdev_get_cycle_timer reliable | 389 | * 3 (2.6.34) - made &fw_cdev_get_cycle_timer reliable |
| 378 | * - added %FW_CDEV_IOC_GET_CYCLE_TIMER2 | 390 | * - added %FW_CDEV_IOC_GET_CYCLE_TIMER2 |
| 379 | * 4 (2.6.36) - added %FW_CDEV_EVENT_REQUEST2, %FW_CDEV_EVENT_PHY_PACKET_SENT | 391 | * 4 (2.6.36) - added %FW_CDEV_EVENT_REQUEST2, %FW_CDEV_EVENT_PHY_PACKET_* |
| 380 | * - implemented &fw_cdev_event_bus_reset.bm_node_id | 392 | * - implemented &fw_cdev_event_bus_reset.bm_node_id |
| 381 | * - added %FW_CDEV_IOC_SEND_PHY_PACKET | 393 | * - added %FW_CDEV_IOC_SEND_PHY_PACKET, _RECEIVE_PHY_PACKETS |
| 382 | */ | 394 | */ |
| 383 | #define FW_CDEV_VERSION 3 /* Meaningless; don't use this macro. */ | 395 | #define FW_CDEV_VERSION 3 /* Meaningless; don't use this macro. */ |
| 384 | 396 | ||
| @@ -850,4 +862,17 @@ struct fw_cdev_send_phy_packet { | |||
| 850 | __u32 generation; | 862 | __u32 generation; |
| 851 | }; | 863 | }; |
| 852 | 864 | ||
| 865 | /** | ||
| 866 | * struct fw_cdev_receive_phy_packets - start reception of PHY packets | ||
| 867 | * @closure: Passed back to userspace in phy packet events | ||
| 868 | * | ||
| 869 | * This ioctl activates issuing of %FW_CDEV_EVENT_PHY_PACKET_RECEIVED due to | ||
| 870 | * incoming PHY packets from any node on the same bus as the device. | ||
| 871 | * | ||
| 872 | * The ioctl is only permitted on device files which represent a local node. | ||
| 873 | */ | ||
| 874 | struct fw_cdev_receive_phy_packets { | ||
| 875 | __u64 closure; | ||
| 876 | }; | ||
| 877 | |||
| 853 | #endif /* _LINUX_FIREWIRE_CDEV_H */ | 878 | #endif /* _LINUX_FIREWIRE_CDEV_H */ |
diff --git a/include/linux/firewire.h b/include/linux/firewire.h index 0c38b8e97722..d974aa4a24c9 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h | |||
| @@ -111,9 +111,10 @@ struct fw_card { | |||
| 111 | bool beta_repeaters_present; | 111 | bool beta_repeaters_present; |
| 112 | 112 | ||
| 113 | int index; | 113 | int index; |
| 114 | |||
| 115 | struct list_head link; | 114 | struct list_head link; |
| 116 | 115 | ||
| 116 | struct list_head phy_receiver_list; | ||
| 117 | |||
| 117 | struct delayed_work br_work; /* bus reset job */ | 118 | struct delayed_work br_work; /* bus reset job */ |
| 118 | bool br_short; | 119 | bool br_short; |
| 119 | 120 | ||
