Lines Matching refs:scale
2022 static unsigned int usb3_bw_to_mbps(u32 bw, u8 scale)
2026 uframes = bw * 512UL << scale;
2030 static u32 mbps_to_usb3_bw(unsigned int mbps, u8 scale)
2036 return DIV_ROUND_UP(uframes, 512UL << scale);
2043 u32 val, bw, scale;
2051 ret = tb_port_read(port, &scale, TB_CFG_PORT,
2056 scale &= ADP_USB3_CS_3_SCALE_MASK;
2059 *upstream_bw = usb3_bw_to_mbps(bw, scale);
2062 *downstream_bw = usb3_bw_to_mbps(bw, scale);
2097 u32 val, bw, scale;
2105 ret = tb_port_read(port, &scale, TB_CFG_PORT,
2110 scale &= ADP_USB3_CS_3_SCALE_MASK;
2113 *upstream_bw = usb3_bw_to_mbps(bw, scale);
2116 *downstream_bw = usb3_bw_to_mbps(bw, scale);
2125 u32 val, ubw, dbw, scale;
2128 /* Figure out suitable scale */
2129 scale = 0;
2131 while (scale < 64) {
2132 if (mbps_to_usb3_bw(max_bw, scale) < 4096)
2134 scale++;
2137 if (WARN_ON(scale >= 64))
2140 ret = tb_port_write(port, &scale, TB_CFG_PORT,
2145 ubw = mbps_to_usb3_bw(upstream_bw, scale);
2146 dbw = mbps_to_usb3_bw(downstream_bw, scale);
2148 tb_port_dbg(port, "scaled bandwidth %u/%u, scale %u\n", ubw, dbw, scale);