All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jack Wang <xjtuwjp@gmail.com>
To: Viswas G <viswas.g@microsemi.com>
Cc: "linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	Vasanthalakshmi Tharmarajan <vasanthalakshmi.thar@microsemi.com>
Subject: Re: [PATCH 3/6] pm80xx : Different SAS addresses for phys.
Date: Fri, 1 Sep 2017 10:52:52 +0200	[thread overview]
Message-ID: <CAD+HZHXCOWKBVfbFZYUoejNjxkrenVsWgnvKH9+a6GiueFu22Q@mail.gmail.com> (raw)
In-Reply-To: <E96847475729F24299853D257F7211218C8C9947@avsrvexchmbx1.microsemi.net>

2017-08-30 18:55 GMT+02:00 Viswas G <viswas.g@microsemi.com>:
> Hi Jack,
>
> This is a customer requirement. Since the SAS addresses of all the phys were same , when the attached SAS addresses are different, it was forming only one domain.  If we assign different SAS addresses, this will cause duplicate domain unless we set the strict_wide_port to 1.
>
> Regards,
> Viswas G

Ok, understand now!

Acked-by: Jack Wang <jinpu.wang@profitbricks.com>
Thanks!
>
>
>> -----Original Message-----
>> From: Jack Wang [mailto:xjtuwjp@gmail.com]
>> Sent: Tuesday, August 29, 2017 4:55 PM
>> To: Viswas G <viswas.g@microsemi.com>
>> Cc: linux-scsi@vger.kernel.org; Vasanthalakshmi Tharmarajan
>> <vasanthalakshmi.thar@microsemi.com>
>> Subject: Re: [PATCH 3/6] pm80xx : Different SAS addresses for phys.
>>
>> EXTERNAL EMAIL
>>
>>
>> 2015-01-30 7:06 GMT+01:00 Viswas G <Viswas.G@microsemi.com>:
>> > Different SAS addresses are assigned for each set of phys.
>> >
>> > Signed-off-by: Viswas G <Viswas.G@microsemi.com>
>> > ---
>> >  drivers/scsi/pm8001/pm8001_init.c | 13 +++++++++----
>> >  drivers/scsi/pm8001/pm80xx_hwi.c  |  3 +--
>> >  2 files changed, 10 insertions(+), 6 deletions(-)
>> >
>> > diff --git a/drivers/scsi/pm8001/pm8001_init.c
>> b/drivers/scsi/pm8001/pm8001_init.c
>> > index 034b2f7d1135..d282f1562615 100644
>> > --- a/drivers/scsi/pm8001/pm8001_init.c
>> > +++ b/drivers/scsi/pm8001/pm8001_init.c
>> > @@ -132,7 +132,7 @@ static void pm8001_phy_init(struct
>> pm8001_hba_info *pm8001_ha, int phy_id)
>> >         sas_phy->oob_mode = OOB_NOT_CONNECTED;
>> >         sas_phy->linkrate = SAS_LINK_RATE_UNKNOWN;
>> >         sas_phy->id = phy_id;
>> > -       sas_phy->sas_addr = &pm8001_ha->sas_addr[0];
>> > +       sas_phy->sas_addr = (u8 *)&phy->dev_sas_addr;
>> >         sas_phy->frame_rcvd = &phy->frame_rcvd[0];
>> >         sas_phy->ha = (struct sas_ha_struct *)pm8001_ha->shost->hostdata;
>> >         sas_phy->lldd_phy = phy;
>> > @@ -593,10 +593,12 @@ static void  pm8001_post_sas_ha_init(struct
>> Scsi_Host *shost,
>> >         for (i = 0; i < chip_info->n_phy; i++) {
>> >                 sha->sas_phy[i] = &pm8001_ha->phy[i].sas_phy;
>> >                 sha->sas_port[i] = &pm8001_ha->port[i].sas_port;
>> > +               sha->sas_phy[i]->sas_addr =
>> > +                       (u8 *)&pm8001_ha->phy[i].dev_sas_addr;
>> >         }
>> >         sha->sas_ha_name = DRV_NAME;
>> >         sha->dev = pm8001_ha->dev;
>> > -
>> > +       sha->strict_wide_ports = 1;
>> >         sha->lldd_module = THIS_MODULE;
>> >         sha->sas_addr = &pm8001_ha->sas_addr[0];
>> >         sha->num_phys = chip_info->n_phy;
>> > @@ -613,6 +615,7 @@ static void  pm8001_post_sas_ha_init(struct
>> Scsi_Host *shost,
>> >  static void pm8001_init_sas_add(struct pm8001_hba_info *pm8001_ha)
>> >  {
>> >         u8 i, j;
>> > +       u8 sas_add[8];
>> >  #ifdef PM8001_READ_VPD
>> >         /* For new SPC controllers WWN is stored in flash vpd
>> >         *  For SPC/SPCve controllers WWN is stored in EEPROM
>> > @@ -674,10 +677,12 @@ static void pm8001_init_sas_add(struct
>> pm8001_hba_info *pm8001_ha)
>> >                         pm8001_ha->sas_addr[j] =
>> >                                         payload.func_specific[0x804 + i];
>> >         }
>> > -
>> > +       memcpy(sas_add, pm8001_ha->sas_addr, SAS_ADDR_SIZE);
>> >         for (i = 0; i < pm8001_ha->chip->n_phy; i++) {
>> > +               if (i && ((i % 4) == 0))
>> > +                       sas_add[7] = sas_add[7] + 4;
>> >                 memcpy(&pm8001_ha->phy[i].dev_sas_addr,
>> > -                       pm8001_ha->sas_addr, SAS_ADDR_SIZE);
>> > +                       sas_add, SAS_ADDR_SIZE);
>> >                 PM8001_INIT_DBG(pm8001_ha,
>> >                         pm8001_printk("phy %d sas_addr = %016llx\n", i,
>> >                         pm8001_ha->phy[i].dev_sas_addr));
>> > diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c
>> b/drivers/scsi/pm8001/pm80xx_hwi.c
>> > index 8fb5ddf08cc4..a07b023c09bf 100644
>> > --- a/drivers/scsi/pm8001/pm80xx_hwi.c
>> > +++ b/drivers/scsi/pm8001/pm80xx_hwi.c
>> > @@ -3041,7 +3041,6 @@ hw_event_phy_down(struct pm8001_hba_info
>> *pm8001_ha, void *piomb)
>> >         port->port_state = portstate;
>> >         phy->identify.device_type = 0;
>> >         phy->phy_attached = 0;
>> > -       memset(&phy->dev_sas_addr, 0, SAS_ADDR_SIZE);
>> >         switch (portstate) {
>> >         case PORT_VALID:
>> >                 break;
>> > @@ -4394,7 +4393,7 @@ pm80xx_chip_phy_start_req(struct
>> pm8001_hba_info *pm8001_ha, u8 phy_id)
>> >         payload.sas_identify.dev_type = SAS_END_DEVICE;
>> >         payload.sas_identify.initiator_bits = SAS_PROTOCOL_ALL;
>> >         memcpy(payload.sas_identify.sas_addr,
>> > -               pm8001_ha->sas_addr, SAS_ADDR_SIZE);
>> > +               &pm8001_ha->phy[phy_id].dev_sas_addr, SAS_ADDR_SIZE);
>> >         payload.sas_identify.phy_id = phy_id;
>> >         ret = pm8001_mpi_build_cmd(pm8001_ha, circularQ, opcode,
>> &payload, 0);
>> >         return ret;
>> > --
>> > 2.12.3
>> >
>> This removes the possibility to form a wide port, why do you want to do it?

  reply	other threads:[~2017-09-01  8:52 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-30  6:06 [PATCH 0/6] pm80xx updates Viswas G
2015-01-30  6:06 ` [PATCH 1/6] pm80xx : redefine sas_identify_frame structure Viswas G
2017-08-29 11:19   ` Jack Wang
2017-08-30 15:41     ` Viswas G
2017-08-30 16:03       ` Jack Wang
2017-08-30 16:28         ` Viswas G
2015-01-30  6:06 ` [PATCH 2/6] pm80xx: ILA and inactive firmware version through sysfs Viswas G
2017-08-29 11:26   ` Jack Wang
2015-01-30  6:06 ` [PATCH 3/6] pm80xx : Different SAS addresses for phys Viswas G
2017-08-29 11:25   ` Jack Wang
2017-08-30 16:55     ` Viswas G
2017-09-01  8:52       ` Jack Wang [this message]
2015-01-30  6:06 ` [PATCH 4/6] pm80xx : Corrected SATA abort handling Viswas G
2017-08-29 11:46   ` Jack Wang
2017-08-30 15:48     ` Viswas G
2015-01-30  6:06 ` [PATCH 5/6] pm80xx : panic on ncq error cleaning up the read log Viswas G
2017-08-29 11:49   ` Jack Wang
2015-01-30  6:06 ` [PATCH 6/6] pm80xx : corrected linkrate value Viswas G
2017-08-29 11:08   ` Jack Wang
2017-08-30  1:32     ` Martin K. Petersen
2017-08-25 21:47 ` [PATCH 0/6] pm80xx updates Martin K. Petersen
2017-08-26  5:27   ` Viswas G

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAD+HZHXCOWKBVfbFZYUoejNjxkrenVsWgnvKH9+a6GiueFu22Q@mail.gmail.com \
    --to=xjtuwjp@gmail.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=vasanthalakshmi.thar@microsemi.com \
    --cc=viswas.g@microsemi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.