Commit 8b01e4db authored by Himanshu Madhani's avatar Himanshu Madhani Committed by Martin K. Petersen
Browse files

scsi: qla2xxx: Show correct port speed capabilities for RDP command

This patch correctly displays port speed capability and current speed for
RDP command.

Link: https://lore.kernel.org/r/20200212214436.25532-12-hmadhani@marvell.com


Signed-off-by: default avatarHimanshu Madhani <hmadhani@marvell.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 75666f4a
Loading
Loading
Loading
Loading
+35 −6
Original line number Diff line number Diff line
@@ -5764,13 +5764,39 @@ qla25xx_rdp_port_speed_capability(struct qla_hw_data *ha)
	if (IS_CNA_CAPABLE(ha))
		return RDP_PORT_SPEED_10GB;

	if (IS_QLA27XX(ha)) {
		if (FW_ABILITY_MAX_SPEED(ha) == FW_ABILITY_MAX_SPEED_32G)
			return RDP_PORT_SPEED_32GB|RDP_PORT_SPEED_16GB|
			       RDP_PORT_SPEED_8GB;
	if (IS_QLA27XX(ha) || IS_QLA28XX(ha)) {
		unsigned int speeds = 0;

		return RDP_PORT_SPEED_16GB|RDP_PORT_SPEED_8GB|
		       RDP_PORT_SPEED_4GB;
		if (ha->max_supported_speed == 2) {
			if (ha->min_supported_speed <= 6)
				speeds |= RDP_PORT_SPEED_64GB;
		}

		if (ha->max_supported_speed == 2 ||
		    ha->max_supported_speed == 1) {
			if (ha->min_supported_speed <= 5)
				speeds |= RDP_PORT_SPEED_32GB;
		}

		if (ha->max_supported_speed == 2 ||
		    ha->max_supported_speed == 1 ||
		    ha->max_supported_speed == 0) {
			if (ha->min_supported_speed <= 4)
				speeds |= RDP_PORT_SPEED_16GB;
		}

		if (ha->max_supported_speed == 1 ||
		    ha->max_supported_speed == 0) {
			if (ha->min_supported_speed <= 3)
				speeds |= RDP_PORT_SPEED_8GB;
		}

		if (ha->max_supported_speed == 0) {
			if (ha->min_supported_speed <= 2)
				speeds |= RDP_PORT_SPEED_4GB;
		}

		return speeds;
	}

	if (IS_QLA2031(ha))
@@ -5816,6 +5842,9 @@ qla25xx_rdp_port_speed_currently(struct qla_hw_data *ha)
	case PORT_SPEED_32GB:
		return RDP_PORT_SPEED_32GB;

	case PORT_SPEED_64GB:
		return RDP_PORT_SPEED_64GB;

	default:
		return RDP_PORT_SPEED_UNKNOWN;
	}