@@ -86,6 +86,49 @@ void sdw_compute_slave_ports(struct sdw_master_runtime *m_rt,
86
86
}
87
87
EXPORT_SYMBOL (sdw_compute_slave_ports );
88
88
89
+ static void sdw_compute_dp0_slave_ports (struct sdw_master_runtime * m_rt )
90
+ {
91
+ struct sdw_bus * bus = m_rt -> bus ;
92
+ struct sdw_slave_runtime * s_rt ;
93
+ struct sdw_port_runtime * p_rt ;
94
+
95
+ list_for_each_entry (s_rt , & m_rt -> slave_rt_list , m_rt_node ) {
96
+ list_for_each_entry (p_rt , & s_rt -> port_list , port_node ) {
97
+ sdw_fill_xport_params (& p_rt -> transport_params , p_rt -> num , false,
98
+ SDW_BLK_GRP_CNT_1 , bus -> params .col , 0 , 0 , 1 ,
99
+ bus -> params .col - 1 , SDW_BLK_PKG_PER_PORT , 0x0 );
100
+
101
+ sdw_fill_port_params (& p_rt -> port_params , p_rt -> num , bus -> params .col - 1 ,
102
+ SDW_PORT_FLOW_MODE_ISOCH , SDW_PORT_DATA_MODE_NORMAL );
103
+ }
104
+ }
105
+ }
106
+
107
+ static void sdw_compute_dp0_master_ports (struct sdw_master_runtime * m_rt )
108
+ {
109
+ struct sdw_port_runtime * p_rt ;
110
+ struct sdw_bus * bus = m_rt -> bus ;
111
+
112
+ list_for_each_entry (p_rt , & m_rt -> port_list , port_node ) {
113
+ sdw_fill_xport_params (& p_rt -> transport_params , p_rt -> num , false,
114
+ SDW_BLK_GRP_CNT_1 , bus -> params .col , 0 , 0 , 1 ,
115
+ bus -> params .col - 1 , SDW_BLK_PKG_PER_PORT , 0x0 );
116
+
117
+ sdw_fill_port_params (& p_rt -> port_params , p_rt -> num , bus -> params .col - 1 ,
118
+ SDW_PORT_FLOW_MODE_ISOCH , SDW_PORT_DATA_MODE_NORMAL );
119
+ }
120
+ }
121
+
122
+ static void sdw_compute_dp0_port_params (struct sdw_bus * bus )
123
+ {
124
+ struct sdw_master_runtime * m_rt ;
125
+
126
+ list_for_each_entry (m_rt , & bus -> m_rt_list , bus_node ) {
127
+ sdw_compute_dp0_master_ports (m_rt );
128
+ sdw_compute_dp0_slave_ports (m_rt );
129
+ }
130
+ }
131
+
89
132
static void sdw_compute_master_ports (struct sdw_master_runtime * m_rt ,
90
133
struct sdw_group_params * params ,
91
134
int * port_bo , int hstop )
@@ -618,6 +661,11 @@ int sdw_compute_params(struct sdw_bus *bus, struct sdw_stream_runtime *stream)
618
661
if (ret < 0 )
619
662
return ret ;
620
663
664
+ if (stream -> type == SDW_STREAM_BPT ) {
665
+ sdw_compute_dp0_port_params (bus );
666
+ return 0 ;
667
+ }
668
+
621
669
/* Compute transport and port params */
622
670
ret = sdw_compute_port_params (bus , stream );
623
671
if (ret < 0 ) {
0 commit comments