Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 832e77bc authored by James Bottomley's avatar James Bottomley
Browse files

Merge branch 'misc' into for-linus

parents e0fd9aff e689cf0c
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -1353,6 +1353,8 @@ config SCSI_LPFC
	tristate "Emulex LightPulse Fibre Channel Support"
	tristate "Emulex LightPulse Fibre Channel Support"
	depends on PCI && SCSI
	depends on PCI && SCSI
	select SCSI_FC_ATTRS
	select SCSI_FC_ATTRS
	select GENERIC_CSUM
	select CRC_T10DIF
	help
	help
          This lpfc driver supports the Emulex LightPulse
          This lpfc driver supports the Emulex LightPulse
          Family of Fibre Channel PCI host adapters.
          Family of Fibre Channel PCI host adapters.
+12 −12
Original line number Original line Diff line number Diff line
@@ -84,7 +84,7 @@ static void asd_set_ddb_type(struct domain_device *dev)
	struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha;
	struct asd_ha_struct *asd_ha = dev->port->ha->lldd_ha;
	int ddb = (int) (unsigned long) dev->lldd_dev;
	int ddb = (int) (unsigned long) dev->lldd_dev;


	if (dev->dev_type == SATA_PM_PORT)
	if (dev->dev_type == SAS_SATA_PM_PORT)
		asd_ddbsite_write_byte(asd_ha,ddb, DDB_TYPE, DDB_TYPE_PM_PORT);
		asd_ddbsite_write_byte(asd_ha,ddb, DDB_TYPE, DDB_TYPE_PM_PORT);
	else if (dev->tproto)
	else if (dev->tproto)
		asd_ddbsite_write_byte(asd_ha,ddb, DDB_TYPE, DDB_TYPE_TARGET);
		asd_ddbsite_write_byte(asd_ha,ddb, DDB_TYPE, DDB_TYPE_TARGET);
@@ -116,7 +116,7 @@ void asd_set_dmamode(struct domain_device *dev)
	int ddb = (int) (unsigned long) dev->lldd_dev;
	int ddb = (int) (unsigned long) dev->lldd_dev;
	u32 qdepth = 0;
	u32 qdepth = 0;


	if (dev->dev_type == SATA_DEV || dev->dev_type == SATA_PM_PORT) {
	if (dev->dev_type == SAS_SATA_DEV || dev->dev_type == SAS_SATA_PM_PORT) {
		if (ata_id_has_ncq(ata_dev->id))
		if (ata_id_has_ncq(ata_dev->id))
			qdepth = ata_id_queue_depth(ata_dev->id);
			qdepth = ata_id_queue_depth(ata_dev->id);
		asd_ddbsite_write_dword(asd_ha, ddb, SATA_TAG_ALLOC_MASK,
		asd_ddbsite_write_dword(asd_ha, ddb, SATA_TAG_ALLOC_MASK,
@@ -140,8 +140,8 @@ static int asd_init_sata(struct domain_device *dev)
	int ddb = (int) (unsigned long) dev->lldd_dev;
	int ddb = (int) (unsigned long) dev->lldd_dev;


	asd_ddbsite_write_word(asd_ha, ddb, ATA_CMD_SCBPTR, 0xFFFF);
	asd_ddbsite_write_word(asd_ha, ddb, ATA_CMD_SCBPTR, 0xFFFF);
	if (dev->dev_type == SATA_DEV || dev->dev_type == SATA_PM ||
	if (dev->dev_type == SAS_SATA_DEV || dev->dev_type == SAS_SATA_PM ||
	    dev->dev_type == SATA_PM_PORT) {
	    dev->dev_type == SAS_SATA_PM_PORT) {
		struct dev_to_host_fis *fis = (struct dev_to_host_fis *)
		struct dev_to_host_fis *fis = (struct dev_to_host_fis *)
			dev->frame_rcvd;
			dev->frame_rcvd;
		asd_ddbsite_write_byte(asd_ha, ddb, SATA_STATUS, fis->status);
		asd_ddbsite_write_byte(asd_ha, ddb, SATA_STATUS, fis->status);
@@ -174,7 +174,7 @@ static int asd_init_target_ddb(struct domain_device *dev)
	asd_ddbsite_write_byte(asd_ha, ddb, CONN_MASK, dev->port->phy_mask);
	asd_ddbsite_write_byte(asd_ha, ddb, CONN_MASK, dev->port->phy_mask);
	if (dev->port->oob_mode != SATA_OOB_MODE) {
	if (dev->port->oob_mode != SATA_OOB_MODE) {
		flags |= OPEN_REQUIRED;
		flags |= OPEN_REQUIRED;
		if ((dev->dev_type == SATA_DEV) ||
		if ((dev->dev_type == SAS_SATA_DEV) ||
		    (dev->tproto & SAS_PROTOCOL_STP)) {
		    (dev->tproto & SAS_PROTOCOL_STP)) {
			struct smp_resp *rps_resp = &dev->sata_dev.rps_resp;
			struct smp_resp *rps_resp = &dev->sata_dev.rps_resp;
			if (rps_resp->frame_type == SMP_RESPONSE &&
			if (rps_resp->frame_type == SMP_RESPONSE &&
@@ -188,8 +188,8 @@ static int asd_init_target_ddb(struct domain_device *dev)
		} else {
		} else {
			flags |= CONCURRENT_CONN_SUPP;
			flags |= CONCURRENT_CONN_SUPP;
			if (!dev->parent &&
			if (!dev->parent &&
			    (dev->dev_type == EDGE_DEV ||
			    (dev->dev_type == SAS_EDGE_EXPANDER_DEVICE ||
			     dev->dev_type == FANOUT_DEV))
			     dev->dev_type == SAS_FANOUT_EXPANDER_DEVICE))
				asd_ddbsite_write_byte(asd_ha, ddb, MAX_CCONN,
				asd_ddbsite_write_byte(asd_ha, ddb, MAX_CCONN,
						       4);
						       4);
			else
			else
@@ -198,7 +198,7 @@ static int asd_init_target_ddb(struct domain_device *dev)
			asd_ddbsite_write_byte(asd_ha, ddb, NUM_CTX, 1);
			asd_ddbsite_write_byte(asd_ha, ddb, NUM_CTX, 1);
		}
		}
	}
	}
	if (dev->dev_type == SATA_PM)
	if (dev->dev_type == SAS_SATA_PM)
		flags |= SATA_MULTIPORT;
		flags |= SATA_MULTIPORT;
	asd_ddbsite_write_byte(asd_ha, ddb, DDB_TARG_FLAGS, flags);
	asd_ddbsite_write_byte(asd_ha, ddb, DDB_TARG_FLAGS, flags);


@@ -211,7 +211,7 @@ static int asd_init_target_ddb(struct domain_device *dev)
	asd_ddbsite_write_word(asd_ha, ddb, SEND_QUEUE_TAIL, 0xFFFF);
	asd_ddbsite_write_word(asd_ha, ddb, SEND_QUEUE_TAIL, 0xFFFF);
	asd_ddbsite_write_word(asd_ha, ddb, SISTER_DDB, 0xFFFF);
	asd_ddbsite_write_word(asd_ha, ddb, SISTER_DDB, 0xFFFF);


	if (dev->dev_type == SATA_DEV || (dev->tproto & SAS_PROTOCOL_STP)) {
	if (dev->dev_type == SAS_SATA_DEV || (dev->tproto & SAS_PROTOCOL_STP)) {
		i = asd_init_sata(dev);
		i = asd_init_sata(dev);
		if (i < 0) {
		if (i < 0) {
			asd_free_ddb(asd_ha, ddb);
			asd_free_ddb(asd_ha, ddb);
@@ -219,7 +219,7 @@ static int asd_init_target_ddb(struct domain_device *dev)
		}
		}
	}
	}


	if (dev->dev_type == SAS_END_DEV) {
	if (dev->dev_type == SAS_END_DEVICE) {
		struct sas_end_device *rdev = rphy_to_end_device(dev->rphy);
		struct sas_end_device *rdev = rphy_to_end_device(dev->rphy);
		if (rdev->I_T_nexus_loss_timeout > 0)
		if (rdev->I_T_nexus_loss_timeout > 0)
			asd_ddbsite_write_word(asd_ha, ddb, ITNL_TIMEOUT,
			asd_ddbsite_write_word(asd_ha, ddb, ITNL_TIMEOUT,
@@ -328,10 +328,10 @@ int asd_dev_found(struct domain_device *dev)


	spin_lock_irqsave(&asd_ha->hw_prof.ddb_lock, flags);
	spin_lock_irqsave(&asd_ha->hw_prof.ddb_lock, flags);
	switch (dev->dev_type) {
	switch (dev->dev_type) {
	case SATA_PM:
	case SAS_SATA_PM:
		res = asd_init_sata_pm_ddb(dev);
		res = asd_init_sata_pm_ddb(dev);
		break;
		break;
	case SATA_PM_PORT:
	case SAS_SATA_PM_PORT:
		res = asd_init_sata_pm_port_ddb(dev);
		res = asd_init_sata_pm_port_ddb(dev);
		break;
		break;
	default:
	default:
+1 −1
Original line number Original line Diff line number Diff line
@@ -74,7 +74,7 @@ static void asd_init_phy_identify(struct asd_phy *phy)


	memset(phy->identify_frame, 0, sizeof(*phy->identify_frame));
	memset(phy->identify_frame, 0, sizeof(*phy->identify_frame));


	phy->identify_frame->dev_type = SAS_END_DEV;
	phy->identify_frame->dev_type = SAS_END_DEVICE;
	if (phy->sas_phy.role & PHY_ROLE_INITIATOR)
	if (phy->sas_phy.role & PHY_ROLE_INITIATOR)
		phy->identify_frame->initiator_bits = phy->sas_phy.iproto;
		phy->identify_frame->initiator_bits = phy->sas_phy.iproto;
	if (phy->sas_phy.role & PHY_ROLE_TARGET)
	if (phy->sas_phy.role & PHY_ROLE_TARGET)
+1 −1
Original line number Original line Diff line number Diff line
@@ -184,7 +184,7 @@ int asd_I_T_nexus_reset(struct domain_device *dev)
	struct sas_phy *phy = sas_get_local_phy(dev);
	struct sas_phy *phy = sas_get_local_phy(dev);
	/* Standard mandates link reset for ATA  (type 0) and
	/* Standard mandates link reset for ATA  (type 0) and
	 * hard reset for SSP (type 1) */
	 * hard reset for SSP (type 1) */
	int reset_type = (dev->dev_type == SATA_DEV ||
	int reset_type = (dev->dev_type == SAS_SATA_DEV ||
			  (dev->tproto & SAS_PROTOCOL_STP)) ? 0 : 1;
			  (dev->tproto & SAS_PROTOCOL_STP)) ? 0 : 1;


	asd_clear_nexus_I_T(dev, NEXUS_PHASE_PRE);
	asd_clear_nexus_I_T(dev, NEXUS_PHASE_PRE);
+1 −1
Original line number Original line Diff line number Diff line
/**
/**
 * Copyright (C) 2005 - 2012 Emulex
 * Copyright (C) 2005 - 2013 Emulex
 * All rights reserved.
 * All rights reserved.
 *
 *
 * This program is free software; you can redistribute it and/or
 * This program is free software; you can redistribute it and/or
Loading