30
30
31
31
#include "core.h"
32
32
#include "packet-header-definitions.h"
33
+ #include "phy-packet-definitions.h"
33
34
#include <trace/events/firewire.h>
34
35
35
36
#define HEADER_DESTINATION_IS_BROADCAST (header ) \
36
37
((async_header_get_destination(header) & 0x3f) == 0x3f)
37
38
38
- #define PHY_PACKET_CONFIG 0x0
39
- #define PHY_PACKET_LINK_ON 0x1
40
- #define PHY_PACKET_SELF_ID 0x2
41
-
42
- #define PHY_CONFIG_GAP_COUNT (gap_count ) (((gap_count) << 16) | (1 << 22))
43
- #define PHY_CONFIG_ROOT_ID (node_id ) ((((node_id) & 0x3f) << 24) | (1 << 23))
44
- #define PHY_IDENTIFIER (id ) ((id) << 30)
45
-
46
39
/* returns 0 if the split timeout handler is already running */
47
40
static int try_cancel_split_timeout (struct fw_transaction * t )
48
41
{
@@ -481,10 +474,14 @@ void fw_send_phy_config(struct fw_card *card,
481
474
int node_id , int generation , int gap_count )
482
475
{
483
476
long timeout = DIV_ROUND_UP (HZ , 10 );
484
- u32 data = PHY_IDENTIFIER ( PHY_PACKET_CONFIG ) ;
477
+ u32 data = 0 ;
485
478
486
- if (node_id != FW_PHY_CONFIG_NO_NODE_ID )
487
- data |= PHY_CONFIG_ROOT_ID (node_id );
479
+ phy_packet_set_packet_identifier (& data , PHY_PACKET_PACKET_IDENTIFIER_PHY_CONFIG );
480
+
481
+ if (node_id != FW_PHY_CONFIG_NO_NODE_ID ) {
482
+ phy_packet_phy_config_set_root_id (& data , node_id );
483
+ phy_packet_phy_config_set_force_root_node (& data , true);
484
+ }
488
485
489
486
if (gap_count == FW_PHY_CONFIG_CURRENT_GAP_COUNT ) {
490
487
gap_count = card -> driver -> read_phy_reg (card , 1 );
@@ -495,7 +492,8 @@ void fw_send_phy_config(struct fw_card *card,
495
492
if (gap_count == 63 )
496
493
return ;
497
494
}
498
- data |= PHY_CONFIG_GAP_COUNT (gap_count );
495
+ phy_packet_phy_config_set_gap_count (& data , gap_count );
496
+ phy_packet_phy_config_set_gap_count_optimization (& data , true);
499
497
500
498
mutex_lock (& phy_config_mutex );
501
499
0 commit comments