scsi: mpi3mr: Increase maximum number of PHYs to 64 from 32
SAS5116 controllers supports maximum 48 physical PHYs. Modify driver to accommodate up to 64 PHYs (though current need is to support 48 PHYs). Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com> Link: https://lore.kernel.org/r/20231123160132.4155-4-sumit.saxena@broadcom.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
c9260ff28e
commit
cb5b608946
2 changed files with 9 additions and 9 deletions
|
@ -506,7 +506,7 @@ struct mpi3mr_sas_port {
|
|||
u8 num_phys;
|
||||
u8 marked_responding;
|
||||
int lowest_phy;
|
||||
u32 phy_mask;
|
||||
u64 phy_mask;
|
||||
struct mpi3mr_hba_port *hba_port;
|
||||
struct sas_identify remote_identify;
|
||||
struct sas_rphy *rphy;
|
||||
|
|
|
@ -1587,7 +1587,7 @@ static void mpi3mr_sas_port_remove(struct mpi3mr_ioc *mrioc, u64 sas_address,
|
|||
*/
|
||||
struct host_port {
|
||||
u64 sas_address;
|
||||
u32 phy_mask;
|
||||
u64 phy_mask;
|
||||
u16 handle;
|
||||
u8 iounit_port_id;
|
||||
u8 used;
|
||||
|
@ -1611,7 +1611,7 @@ mpi3mr_update_mr_sas_port(struct mpi3mr_ioc *mrioc, struct host_port *h_port,
|
|||
struct mpi3mr_sas_port *mr_sas_port)
|
||||
{
|
||||
struct mpi3mr_sas_phy *mr_sas_phy;
|
||||
u32 phy_mask_xor;
|
||||
u64 phy_mask_xor;
|
||||
u64 phys_to_be_added, phys_to_be_removed;
|
||||
int i;
|
||||
|
||||
|
@ -1619,7 +1619,7 @@ mpi3mr_update_mr_sas_port(struct mpi3mr_ioc *mrioc, struct host_port *h_port,
|
|||
mr_sas_port->marked_responding = 1;
|
||||
|
||||
dev_info(&mr_sas_port->port->dev,
|
||||
"sas_address(0x%016llx), old: port_id %d phy_mask 0x%x, new: port_id %d phy_mask:0x%x\n",
|
||||
"sas_address(0x%016llx), old: port_id %d phy_mask 0x%llx, new: port_id %d phy_mask:0x%llx\n",
|
||||
mr_sas_port->remote_identify.sas_address,
|
||||
mr_sas_port->hba_port->port_id, mr_sas_port->phy_mask,
|
||||
h_port->iounit_port_id, h_port->phy_mask);
|
||||
|
@ -1637,7 +1637,7 @@ mpi3mr_update_mr_sas_port(struct mpi3mr_ioc *mrioc, struct host_port *h_port,
|
|||
* if these phys are previously registered with another port
|
||||
* then delete these phys from that port first.
|
||||
*/
|
||||
for_each_set_bit(i, (ulong *) &phys_to_be_added, BITS_PER_TYPE(u32)) {
|
||||
for_each_set_bit(i, (ulong *) &phys_to_be_added, BITS_PER_TYPE(u64)) {
|
||||
mr_sas_phy = &mrioc->sas_hba.phy[i];
|
||||
if (mr_sas_phy->phy_belongs_to_port)
|
||||
mpi3mr_del_phy_from_an_existing_port(mrioc,
|
||||
|
@ -1649,7 +1649,7 @@ mpi3mr_update_mr_sas_port(struct mpi3mr_ioc *mrioc, struct host_port *h_port,
|
|||
}
|
||||
|
||||
/* Delete the phys which are not part of current mr_sas_port's port. */
|
||||
for_each_set_bit(i, (ulong *) &phys_to_be_removed, BITS_PER_TYPE(u32)) {
|
||||
for_each_set_bit(i, (ulong *) &phys_to_be_removed, BITS_PER_TYPE(u64)) {
|
||||
mr_sas_phy = &mrioc->sas_hba.phy[i];
|
||||
if (mr_sas_phy->phy_belongs_to_port)
|
||||
mpi3mr_del_phy_from_an_existing_port(mrioc,
|
||||
|
@ -1671,7 +1671,7 @@ mpi3mr_update_mr_sas_port(struct mpi3mr_ioc *mrioc, struct host_port *h_port,
|
|||
void
|
||||
mpi3mr_refresh_sas_ports(struct mpi3mr_ioc *mrioc)
|
||||
{
|
||||
struct host_port h_port[32];
|
||||
struct host_port h_port[64];
|
||||
int i, j, found, host_port_count = 0, port_idx;
|
||||
u16 sz, attached_handle, ioc_status;
|
||||
struct mpi3_sas_io_unit_page0 *sas_io_unit_pg0 = NULL;
|
||||
|
@ -1742,7 +1742,7 @@ mpi3mr_refresh_sas_ports(struct mpi3mr_ioc *mrioc)
|
|||
list_for_each_entry(mr_sas_port, &mrioc->sas_hba.sas_port_list,
|
||||
port_list) {
|
||||
ioc_info(mrioc,
|
||||
"port_id:%d, sas_address:(0x%016llx), phy_mask:(0x%x), lowest phy id:%d\n",
|
||||
"port_id:%d, sas_address:(0x%016llx), phy_mask:(0x%llx), lowest phy id:%d\n",
|
||||
mr_sas_port->hba_port->port_id,
|
||||
mr_sas_port->remote_identify.sas_address,
|
||||
mr_sas_port->phy_mask, mr_sas_port->lowest_phy);
|
||||
|
@ -1751,7 +1751,7 @@ mpi3mr_refresh_sas_ports(struct mpi3mr_ioc *mrioc)
|
|||
ioc_info(mrioc, "Host port details after reset\n");
|
||||
for (i = 0; i < host_port_count; i++) {
|
||||
ioc_info(mrioc,
|
||||
"port_id:%d, sas_address:(0x%016llx), phy_mask:(0x%x), lowest phy id:%d\n",
|
||||
"port_id:%d, sas_address:(0x%016llx), phy_mask:(0x%llx), lowest phy id:%d\n",
|
||||
h_port[i].iounit_port_id, h_port[i].sas_address,
|
||||
h_port[i].phy_mask, h_port[i].lowest_phy);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue