diff mbox

cxgbit: use T6 specific macro to set force bit

Message ID 1485257822-729-1-git-send-email-varun@chelsio.com (mailing list archive)
State Not Applicable
Headers show

Commit Message

Varun Prakash Jan. 24, 2017, 11:37 a.m. UTC
For T6 adapters use T6 specific macro to set
force bit.

Signed-off-by: Varun Prakash <varun@chelsio.com>
---
 drivers/net/ethernet/chelsio/cxgb4/t4_msg.h | 4 ++++
 drivers/target/iscsi/cxgbit/cxgbit_target.c | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

Comments

David Miller Jan. 24, 2017, 8:26 p.m. UTC | #1
From: Varun Prakash <varun@chelsio.com>
Date: Tue, 24 Jan 2017 17:07:02 +0530

> For T6 adapters use T6 specific macro to set
> force bit.
> 
> Signed-off-by: Varun Prakash <varun@chelsio.com>

What tree is this for?

You must always indicate this in your PATCH subject text.
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Joe Perches Jan. 24, 2017, 9:11 p.m. UTC | #2
On Tue, 2017-01-24 at 17:07 +0530, Varun Prakash wrote:
> For T6 adapters use T6 specific macro to set
> force bit.
[]
> diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h b/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h
[]
> @@ -1349,6 +1349,10 @@ struct cpl_tx_data {
>  #define TX_FORCE_S	13
>  #define TX_FORCE_V(x)	((x) << TX_FORCE_S)
>  
> +#define T6_TX_FORCE_S		20
> +#define T6_TX_FORCE_V(x)	((x) << T6_TX_FORCE_S)
> +#define T6_TX_FORCE_F		T6_TX_FORCE_V(1U)
> +
>  enum {
>  	ULP_TX_MEM_READ = 2,
>  	ULP_TX_MEM_WRITE = 3,
> diff --git a/drivers/target/iscsi/cxgbit/cxgbit_target.c b/drivers/target/iscsi/cxgbit/cxgbit_target.c
[]
> @@ -162,12 +162,14 @@ cxgbit_tx_data_wr(struct cxgbit_sock *csk, struct sk_buff *skb, u32 dlen,
>  		  u32 len, u32 credits, u32 compl)
>  {
>  	struct fw_ofld_tx_data_wr *req;
> +	const struct cxgb4_lld_info *lldi = &csk->com.cdev->lldi;
>  	u32 submode = cxgbit_skcb_submode(skb);
>  	u32 wr_ulp_mode = 0;
>  	u32 hdr_size = sizeof(*req);
>  	u32 opcode = FW_OFLD_TX_DATA_WR;
>  	u32 immlen = 0;
> -	u32 force = TX_FORCE_V(!submode);
> +	u32 force = is_t5(lldi->adapter_type) ? TX_FORCE_V(!submode) :
> +		    T6_TX_FORCE_F;

Perhaps it'd be better to add a is_t6() mechanism so this
is written in the positive rather than the negative.

--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Varun Prakash Jan. 25, 2017, 6:21 a.m. UTC | #3
On Wed, Jan 25, 2017 at 01:56:16AM +0530, David Miller wrote:
> From: Varun Prakash <varun@chelsio.com>
> Date: Tue, 24 Jan 2017 17:07:02 +0530
> 
> > For T6 adapters use T6 specific macro to set
> > force bit.
> > 
> > Signed-off-by: Varun Prakash <varun@chelsio.com>
> 
> What tree is this for?
> 
> You must always indicate this in your PATCH subject text.

Sorry, I missed it. This patch is for Bart's target tree.
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Varun Prakash Jan. 25, 2017, 6:38 a.m. UTC | #4
On Wed, Jan 25, 2017 at 02:41:40AM +0530, Joe Perches wrote:
> On Tue, 2017-01-24 at 17:07 +0530, Varun Prakash wrote:
> > For T6 adapters use T6 specific macro to set
> > force bit.
> []
> > diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h b/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h
> []
> > @@ -1349,6 +1349,10 @@ struct cpl_tx_data {
> >  #define TX_FORCE_S	13
> >  #define TX_FORCE_V(x)	((x) << TX_FORCE_S)
> >  
> > +#define T6_TX_FORCE_S		20
> > +#define T6_TX_FORCE_V(x)	((x) << T6_TX_FORCE_S)
> > +#define T6_TX_FORCE_F		T6_TX_FORCE_V(1U)
> > +
> >  enum {
> >  	ULP_TX_MEM_READ = 2,
> >  	ULP_TX_MEM_WRITE = 3,
> > diff --git a/drivers/target/iscsi/cxgbit/cxgbit_target.c b/drivers/target/iscsi/cxgbit/cxgbit_target.c
> []
> > @@ -162,12 +162,14 @@ cxgbit_tx_data_wr(struct cxgbit_sock *csk, struct sk_buff *skb, u32 dlen,
> >  		  u32 len, u32 credits, u32 compl)
> >  {
> >  	struct fw_ofld_tx_data_wr *req;
> > +	const struct cxgb4_lld_info *lldi = &csk->com.cdev->lldi;
> >  	u32 submode = cxgbit_skcb_submode(skb);
> >  	u32 wr_ulp_mode = 0;
> >  	u32 hdr_size = sizeof(*req);
> >  	u32 opcode = FW_OFLD_TX_DATA_WR;
> >  	u32 immlen = 0;
> > -	u32 force = TX_FORCE_V(!submode);
> > +	u32 force = is_t5(lldi->adapter_type) ? TX_FORCE_V(!submode) :
> > +		    T6_TX_FORCE_F;
> 
> Perhaps it'd be better to add a is_t6() mechanism so this
> is written in the positive rather than the negative.
>

At present cxgbit driver supports only T5 and T6 adapters so
if a adapter is not T5 then it is T6.
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Joe Perches Jan. 25, 2017, 4:06 p.m. UTC | #5
On Wed, 2017-01-25 at 12:08 +0530, Varun Prakash wrote:
> On Wed, Jan 25, 2017 at 02:41:40AM +0530, Joe Perches wrote:
> > On Tue, 2017-01-24 at 17:07 +0530, Varun Prakash wrote:
> > > For T6 adapters use T6 specific macro to set
> > > force bit.
> > 
> > []
> > > diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h b/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h
> > 
> > []
> > > @@ -1349,6 +1349,10 @@ struct cpl_tx_data {
> > >  #define TX_FORCE_S	13
> > >  #define TX_FORCE_V(x)	((x) << TX_FORCE_S)
> > >  
> > > +#define T6_TX_FORCE_S		20
> > > +#define T6_TX_FORCE_V(x)	((x) << T6_TX_FORCE_S)
> > > +#define T6_TX_FORCE_F		T6_TX_FORCE_V(1U)
> > > +
> > >  enum {
> > >  	ULP_TX_MEM_READ = 2,
> > >  	ULP_TX_MEM_WRITE = 3,
> > > diff --git a/drivers/target/iscsi/cxgbit/cxgbit_target.c b/drivers/target/iscsi/cxgbit/cxgbit_target.c
> > 
> > []
> > > @@ -162,12 +162,14 @@ cxgbit_tx_data_wr(struct cxgbit_sock *csk, struct sk_buff *skb, u32 dlen,
> > >  		  u32 len, u32 credits, u32 compl)
> > >  {
> > >  	struct fw_ofld_tx_data_wr *req;
> > > +	const struct cxgb4_lld_info *lldi = &csk->com.cdev->lldi;
> > >  	u32 submode = cxgbit_skcb_submode(skb);
> > >  	u32 wr_ulp_mode = 0;
> > >  	u32 hdr_size = sizeof(*req);
> > >  	u32 opcode = FW_OFLD_TX_DATA_WR;
> > >  	u32 immlen = 0;
> > > -	u32 force = TX_FORCE_V(!submode);
> > > +	u32 force = is_t5(lldi->adapter_type) ? TX_FORCE_V(!submode) :
> > > +		    T6_TX_FORCE_F;
> > 
> > Perhaps it'd be better to add a is_t6() mechanism so this
> > is written in the positive rather than the negative.
> > 
> 
> At present

That's the key phrase that describes the reason why it's
generally better to write code in the positive than the
negative.

> cxgbit driver supports only T5 and T6 adapters so
> if a adapter is not T5 then it is T6.

Your code, your choices...

--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bart Van Assche Jan. 25, 2017, 11:01 p.m. UTC | #6
On Tue, 2017-01-24 at 17:07 +0530, Varun Prakash wrote:
> For T6 adapters use T6 specific macro to set force bit.

Thanks, I have applied this patch.

Bart.--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h b/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h
index a267173..21fc2fe 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h
+++ b/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h
@@ -1349,6 +1349,10 @@  struct cpl_tx_data {
 #define TX_FORCE_S	13
 #define TX_FORCE_V(x)	((x) << TX_FORCE_S)
 
+#define T6_TX_FORCE_S		20
+#define T6_TX_FORCE_V(x)	((x) << T6_TX_FORCE_S)
+#define T6_TX_FORCE_F		T6_TX_FORCE_V(1U)
+
 enum {
 	ULP_TX_MEM_READ = 2,
 	ULP_TX_MEM_WRITE = 3,
diff --git a/drivers/target/iscsi/cxgbit/cxgbit_target.c b/drivers/target/iscsi/cxgbit/cxgbit_target.c
index 8bcb9b7..bcf94aa 100644
--- a/drivers/target/iscsi/cxgbit/cxgbit_target.c
+++ b/drivers/target/iscsi/cxgbit/cxgbit_target.c
@@ -162,12 +162,14 @@  cxgbit_tx_data_wr(struct cxgbit_sock *csk, struct sk_buff *skb, u32 dlen,
 		  u32 len, u32 credits, u32 compl)
 {
 	struct fw_ofld_tx_data_wr *req;
+	const struct cxgb4_lld_info *lldi = &csk->com.cdev->lldi;
 	u32 submode = cxgbit_skcb_submode(skb);
 	u32 wr_ulp_mode = 0;
 	u32 hdr_size = sizeof(*req);
 	u32 opcode = FW_OFLD_TX_DATA_WR;
 	u32 immlen = 0;
-	u32 force = TX_FORCE_V(!submode);
+	u32 force = is_t5(lldi->adapter_type) ? TX_FORCE_V(!submode) :
+		    T6_TX_FORCE_F;
 
 	if (cxgbit_skcb_flags(skb) & SKCBF_TX_ISO) {
 		opcode = FW_ISCSI_TX_DATA_WR;