All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jinpu Wang <jinpu.wang@profitbricks.com>
To: Viswas G <Viswas.G@microsemi.com>
Cc: Linux SCSI Mailinglist <linux-scsi@vger.kernel.org>,
	Vasanthalakshmi.Tharmarajan@microsemi.com,
	deepak.ukey@microsemi.com, Raj.Dinesh@microsemi.com,
	"Martin K. Petersen" <martin.petersen@oracle.com>
Subject: Re: [PATCH V2 1/9] pm80xx : redefine sas_identify_frame structure
Date: Wed, 13 Sep 2017 13:09:36 +0200	[thread overview]
Message-ID: <CAMGffEkTAUoum3-z4k4uoO2WRgJXnaefF1D1Yf_UzEB_At5aBQ@mail.gmail.com> (raw)
In-Reply-To: <20150217233650.9091-2-Viswas.G@microsemi.com>

On Wed, Feb 18, 2015 at 12:36 AM, Viswas G <Viswas.G@microsemi.com> wrote:
> sas_identify structure defined by pm80xx doesn't have CRC field.
> So added a new sas_identify structure without CRC.
>
> v2:
>         - Since the structure changes is applicable for only pm80xx,
>           sas_identify_frame_local structure moved to pm80xx_hwi.h.
>
> Signed-off-by: Raj Dinesh <Raj.Dinesh@microsemi.com>
> Signed-off-by: Viswas G <Viswas.G@microsemi.com>
> ---
>  drivers/scsi/pm8001/pm80xx_hwi.h | 98 +++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 97 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/pm8001/pm80xx_hwi.h b/drivers/scsi/pm8001/pm80xx_hwi.h
> index 7a443bad6163..82b8cf581da9 100644
> --- a/drivers/scsi/pm8001/pm80xx_hwi.h
> +++ b/drivers/scsi/pm8001/pm80xx_hwi.h
> @@ -229,6 +229,102 @@
>  #define IT_NEXUS_TIMEOUT       0x7D0
>  #define PORT_RECOVERY_TIMEOUT  ((IT_NEXUS_TIMEOUT/100) + 30)
>
> +#ifdef __LITTLE_ENDIAN_BITFIELD
> +struct sas_identify_frame_local {
> +       /* Byte 0 */
> +       u8  frame_type:4;
> +       u8  dev_type:3;
> +       u8  _un0:1;
> +
> +       /* Byte 1 */
> +       u8  _un1;
> +
> +       /* Byte 2 */
> +       union {
> +               struct {
> +                       u8  _un20:1;
> +                       u8  smp_iport:1;
> +                       u8  stp_iport:1;
> +                       u8  ssp_iport:1;
> +                       u8  _un247:4;
> +               };
> +               u8 initiator_bits;
> +       };
> +
> +       /* Byte 3 */
> +       union {
> +               struct {
> +                       u8  _un30:1;
> +                       u8 smp_tport:1;
> +                       u8 stp_tport:1;
> +                       u8 ssp_tport:1;
> +                       u8 _un347:4;
> +               };
> +               u8 target_bits;
> +       };
> +
> +       /* Byte 4 - 11 */
> +       u8 _un4_11[8];
> +
> +       /* Byte 12 - 19 */
> +       u8 sas_addr[SAS_ADDR_SIZE];
> +
> +       /* Byte 20 */
> +       u8 phy_id;
> +
> +       u8 _un21_27[7];
> +
> +} __packed;
> +
> +#elif defined(__BIG_ENDIAN_BITFIELD)
> +struct sas_identify_frame_local {
> +       /* Byte 0 */
> +       u8  _un0:1;
> +       u8  dev_type:3;
> +       u8  frame_type:4;
> +
> +       /* Byte 1 */
> +       u8  _un1;
> +
> +       /* Byte 2 */
> +       union {
> +               struct {
> +                       u8  _un247:4;
> +                       u8  ssp_iport:1;
> +                       u8  stp_iport:1;
> +                       u8  smp_iport:1;
> +                       u8  _un20:1;
> +               };
> +               u8 initiator_bits;
> +       };
> +
> +       /* Byte 3 */
> +       union {
> +               struct {
> +                       u8 _un347:4;
> +                       u8 ssp_tport:1;
> +                       u8 stp_tport:1;
> +                       u8 smp_tport:1;
> +                       u8 _un30:1;
> +               };
> +               u8 target_bits;
> +       };
> +
> +       /* Byte 4 - 11 */
> +       u8 _un4_11[8];
> +
> +       /* Byte 12 - 19 */
> +       u8 sas_addr[SAS_ADDR_SIZE];
> +
> +       /* Byte 20 */
> +       u8 phy_id;
> +
> +       u8 _un21_27[7];
> +} __packed;
> +#else
> +#error "Bitfield order not defined!"
> +#endif
> +
>  struct mpi_msg_hdr {
>         __le32  header; /* Bits [11:0] - Message operation code */
>         /* Bits [15:12] - Message Category */
> @@ -248,7 +344,7 @@ struct mpi_msg_hdr {
>  struct phy_start_req {
>         __le32  tag;
>         __le32  ase_sh_lm_slr_phyid;
> -       struct sas_identify_frame sas_identify; /* 28 Bytes */
> +       struct sas_identify_frame_local sas_identify; /* 28 Bytes */
>         __le32 spasti;
>         u32     reserved[21];
>  } __attribute__((packed, aligned(4)));
> --
> 2.12.3
>
Thanks,
Acked-by: Jack Wang <jinpu.wang@profitbricks.com>

-- 
Jack Wang
Linux Kernel Developer

ProfitBricks GmbH
Greifswalder Str. 207
D - 10405 Berlin

Tel:       +49 30 577 008  042
Fax:      +49 30 577 008 299
Email:    jinpu.wang@profitbricks.com
URL:      https://www.profitbricks.de

Sitz der Gesellschaft: Berlin
Registergericht: Amtsgericht Charlottenburg, HRB 125506 B
Geschäftsführer: Achim Weiss

  reply	other threads:[~2017-09-13 11:09 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-17 23:36 [PATCH V2 0/9] pm80xx updates Viswas G
2015-02-17 23:36 ` [PATCH V2 1/9] pm80xx : redefine sas_identify_frame structure Viswas G
2017-09-13 11:09   ` Jinpu Wang [this message]
2015-02-17 23:36 ` [PATCH V2 2/9] pm80xx : ILA and inactive firmware version through sysfs Viswas G
2015-02-17 23:36 ` [PATCH V2 3/9] pm80xx : Different SAS addresses for phys Viswas G
2015-02-17 23:36 ` [PATCH V2 4/9] pm80xx : tag allocation for phy control request Viswas G
2017-09-13 11:10   ` Jinpu Wang
2015-02-17 23:36 ` [PATCH V2 5/9] pm80xx : cleanup in pm8001_abort_task function Viswas G
2017-09-13 13:12   ` Jinpu Wang
2015-02-17 23:36 ` [PATCH V2 6/9] pm80xx : modified port reset timer value for PM8006 card Viswas G
2017-09-13 11:10   ` Jinpu Wang
2015-02-17 23:36 ` [PATCH V2 7/9] pm80xx : corrected SATA abort handling sequence Viswas G
2017-09-13 11:12   ` Jinpu Wang
2015-02-17 23:36 ` [PATCH V2 8/9] pm80xx : panic on ncq error cleaning up the read log Viswas G
2017-09-13 11:13   ` Jinpu Wang
2015-02-17 23:36 ` [PATCH V2 9/9] pm80xx : corrected linkrate value Viswas G
2017-09-15 19:35 ` [PATCH V2 0/9] pm80xx updates Martin K. Petersen
2017-09-16  5:22   ` Viswas G
2017-09-25 23:20     ` Martin K. Petersen

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=CAMGffEkTAUoum3-z4k4uoO2WRgJXnaefF1D1Yf_UzEB_At5aBQ@mail.gmail.com \
    --to=jinpu.wang@profitbricks.com \
    --cc=Raj.Dinesh@microsemi.com \
    --cc=Vasanthalakshmi.Tharmarajan@microsemi.com \
    --cc=Viswas.G@microsemi.com \
    --cc=deepak.ukey@microsemi.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.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.