All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] staging: vt6656: Refactor the vnt_get_phy_field function
@ 2020-04-10 11:28 ` Oscar Carter
  0 siblings, 0 replies; 14+ messages in thread
From: Oscar Carter @ 2020-04-10 11:28 UTC (permalink / raw)
  To: Forest Bond, Greg Kroah-Hartman
  Cc: Oscar Carter, Malcolm Priestley, Quentin Deslandes,
	Amir Mahdi Ghorbanian, devel, linux-kernel

This patch series makes a refactor of the vnt_get_phy_field function
through two patches.

The first one refactors the assignment of the "phy->signal" variable
using a constant array with the correct values for every rate.

The second patch removes duplicate code for the assignment of the
"phy->service" variable by putting it outside the if-else statement due
to it's the same for the two branches.

Oscar Carter (2):
  staging: vt6656: Refactor the assignment of the phy->signal variable
  staging: vt6656: Remove duplicate code for the phy->service assignment

 drivers/staging/vt6656/baseband.c | 104 +++++++-----------------------
 1 file changed, 22 insertions(+), 82 deletions(-)

--
2.20.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 0/2] staging: vt6656: Refactor the vnt_get_phy_field function
@ 2020-04-10 11:28 ` Oscar Carter
  0 siblings, 0 replies; 14+ messages in thread
From: Oscar Carter @ 2020-04-10 11:28 UTC (permalink / raw)
  To: Forest Bond, Greg Kroah-Hartman
  Cc: devel, Oscar Carter, Malcolm Priestley, linux-kernel

This patch series makes a refactor of the vnt_get_phy_field function
through two patches.

The first one refactors the assignment of the "phy->signal" variable
using a constant array with the correct values for every rate.

The second patch removes duplicate code for the assignment of the
"phy->service" variable by putting it outside the if-else statement due
to it's the same for the two branches.

Oscar Carter (2):
  staging: vt6656: Refactor the assignment of the phy->signal variable
  staging: vt6656: Remove duplicate code for the phy->service assignment

 drivers/staging/vt6656/baseband.c | 104 +++++++-----------------------
 1 file changed, 22 insertions(+), 82 deletions(-)

--
2.20.1

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 1/2] staging: vt6656: Refactor the assignment of the phy->signal variable
  2020-04-10 11:28 ` Oscar Carter
@ 2020-04-10 11:28   ` Oscar Carter
  -1 siblings, 0 replies; 14+ messages in thread
From: Oscar Carter @ 2020-04-10 11:28 UTC (permalink / raw)
  To: Forest Bond, Greg Kroah-Hartman
  Cc: Oscar Carter, Malcolm Priestley, Quentin Deslandes,
	Amir Mahdi Ghorbanian, devel, linux-kernel

Create a constant array with the values of the "phy->signal" for every
rate. Remove all "phy->signal" assignments inside the switch statement
and replace these with a single reading from the new vnt_phy_signal
array.

Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
---
 drivers/staging/vt6656/baseband.c | 101 +++++++-----------------------
 1 file changed, 21 insertions(+), 80 deletions(-)

diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
index a19a563d8bcc..47f93bf6e07b 100644
--- a/drivers/staging/vt6656/baseband.c
+++ b/drivers/staging/vt6656/baseband.c
@@ -115,6 +115,21 @@ static const u16 vnt_frame_time[MAX_RATE] = {
 	10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216
 };

+static const u8 vnt_phy_signal[][2] = {
+	{0x00, 0x00},	/* RATE_1M  */
+	{0x01, 0x09},	/* RATE_2M  */
+	{0x02, 0x0a},	/* RATE_5M  */
+	{0x03, 0x0b},	/* RATE_11M */
+	{0x8b, 0x9b},	/* RATE_6M  */
+	{0x8f, 0x9f},	/* RATE_9M  */
+	{0x8a, 0x9a},	/* RATE_12M */
+	{0x8e, 0x9e},	/* RATE_18M */
+	{0x89, 0x99},	/* RATE_24M */
+	{0x8d, 0x9d},	/* RATE_36M */
+	{0x88, 0x98},	/* RATE_48M */
+	{0x8c, 0x9c}	/* RATE_54M */
+};
+
 /*
  * Description: Calculate data frame transmitting time
  *
@@ -183,6 +198,7 @@ void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
 	u32 count = 0;
 	u32 tmp;
 	int ext_bit;
+	int i, j;
 	u8 preamble_type = priv->preamble_type;

 	bit_count = frame_length * 8;
@@ -191,27 +207,12 @@ void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
 	switch (tx_rate) {
 	case RATE_1M:
 		count = bit_count;
-
-		phy->signal = 0x00;
-
 		break;
 	case RATE_2M:
 		count = bit_count / 2;
-
-		if (preamble_type == 1)
-			phy->signal = 0x09;
-		else
-			phy->signal = 0x01;
-
 		break;
 	case RATE_5M:
 		count = DIV_ROUND_UP(bit_count * 10, 55);
-
-		if (preamble_type == 1)
-			phy->signal = 0x0a;
-		else
-			phy->signal = 0x02;
-
 		break;
 	case RATE_11M:
 		count = bit_count / 11;
@@ -224,74 +225,14 @@ void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
 				ext_bit = true;
 		}

-		if (preamble_type == 1)
-			phy->signal = 0x0b;
-		else
-			phy->signal = 0x03;
-
-		break;
-	case RATE_6M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9b;
-		else
-			phy->signal = 0x8b;
-
-		break;
-	case RATE_9M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9f;
-		else
-			phy->signal = 0x8f;
-
-		break;
-	case RATE_12M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9a;
-		else
-			phy->signal = 0x8a;
-
-		break;
-	case RATE_18M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9e;
-		else
-			phy->signal = 0x8e;
-
-		break;
-	case RATE_24M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x99;
-		else
-			phy->signal = 0x89;
-
 		break;
-	case RATE_36M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9d;
-		else
-			phy->signal = 0x8d;
+	}

-		break;
-	case RATE_48M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x98;
-		else
-			phy->signal = 0x88;
+	i = tx_rate > RATE_54M ? RATE_54M : tx_rate;
+	j = tx_rate > RATE_11M ? pkt_type == PK_TYPE_11A
+			       : preamble_type == PREAMBLE_SHORT;

-		break;
-	case RATE_54M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9c;
-		else
-			phy->signal = 0x8c;
-		break;
-	default:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9c;
-		else
-			phy->signal = 0x8c;
-		break;
-	}
+	phy->signal = vnt_phy_signal[i][j];

 	if (pkt_type == PK_TYPE_11B) {
 		phy->service = 0x00;
--
2.20.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 1/2] staging: vt6656: Refactor the assignment of the phy->signal variable
@ 2020-04-10 11:28   ` Oscar Carter
  0 siblings, 0 replies; 14+ messages in thread
From: Oscar Carter @ 2020-04-10 11:28 UTC (permalink / raw)
  To: Forest Bond, Greg Kroah-Hartman
  Cc: devel, Oscar Carter, Malcolm Priestley, linux-kernel

Create a constant array with the values of the "phy->signal" for every
rate. Remove all "phy->signal" assignments inside the switch statement
and replace these with a single reading from the new vnt_phy_signal
array.

Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
---
 drivers/staging/vt6656/baseband.c | 101 +++++++-----------------------
 1 file changed, 21 insertions(+), 80 deletions(-)

diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
index a19a563d8bcc..47f93bf6e07b 100644
--- a/drivers/staging/vt6656/baseband.c
+++ b/drivers/staging/vt6656/baseband.c
@@ -115,6 +115,21 @@ static const u16 vnt_frame_time[MAX_RATE] = {
 	10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216
 };

+static const u8 vnt_phy_signal[][2] = {
+	{0x00, 0x00},	/* RATE_1M  */
+	{0x01, 0x09},	/* RATE_2M  */
+	{0x02, 0x0a},	/* RATE_5M  */
+	{0x03, 0x0b},	/* RATE_11M */
+	{0x8b, 0x9b},	/* RATE_6M  */
+	{0x8f, 0x9f},	/* RATE_9M  */
+	{0x8a, 0x9a},	/* RATE_12M */
+	{0x8e, 0x9e},	/* RATE_18M */
+	{0x89, 0x99},	/* RATE_24M */
+	{0x8d, 0x9d},	/* RATE_36M */
+	{0x88, 0x98},	/* RATE_48M */
+	{0x8c, 0x9c}	/* RATE_54M */
+};
+
 /*
  * Description: Calculate data frame transmitting time
  *
@@ -183,6 +198,7 @@ void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
 	u32 count = 0;
 	u32 tmp;
 	int ext_bit;
+	int i, j;
 	u8 preamble_type = priv->preamble_type;

 	bit_count = frame_length * 8;
@@ -191,27 +207,12 @@ void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
 	switch (tx_rate) {
 	case RATE_1M:
 		count = bit_count;
-
-		phy->signal = 0x00;
-
 		break;
 	case RATE_2M:
 		count = bit_count / 2;
-
-		if (preamble_type == 1)
-			phy->signal = 0x09;
-		else
-			phy->signal = 0x01;
-
 		break;
 	case RATE_5M:
 		count = DIV_ROUND_UP(bit_count * 10, 55);
-
-		if (preamble_type == 1)
-			phy->signal = 0x0a;
-		else
-			phy->signal = 0x02;
-
 		break;
 	case RATE_11M:
 		count = bit_count / 11;
@@ -224,74 +225,14 @@ void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
 				ext_bit = true;
 		}

-		if (preamble_type == 1)
-			phy->signal = 0x0b;
-		else
-			phy->signal = 0x03;
-
-		break;
-	case RATE_6M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9b;
-		else
-			phy->signal = 0x8b;
-
-		break;
-	case RATE_9M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9f;
-		else
-			phy->signal = 0x8f;
-
-		break;
-	case RATE_12M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9a;
-		else
-			phy->signal = 0x8a;
-
-		break;
-	case RATE_18M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9e;
-		else
-			phy->signal = 0x8e;
-
-		break;
-	case RATE_24M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x99;
-		else
-			phy->signal = 0x89;
-
 		break;
-	case RATE_36M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9d;
-		else
-			phy->signal = 0x8d;
+	}

-		break;
-	case RATE_48M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x98;
-		else
-			phy->signal = 0x88;
+	i = tx_rate > RATE_54M ? RATE_54M : tx_rate;
+	j = tx_rate > RATE_11M ? pkt_type == PK_TYPE_11A
+			       : preamble_type == PREAMBLE_SHORT;

-		break;
-	case RATE_54M:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9c;
-		else
-			phy->signal = 0x8c;
-		break;
-	default:
-		if (pkt_type == PK_TYPE_11A)
-			phy->signal = 0x9c;
-		else
-			phy->signal = 0x8c;
-		break;
-	}
+	phy->signal = vnt_phy_signal[i][j];

 	if (pkt_type == PK_TYPE_11B) {
 		phy->service = 0x00;
--
2.20.1

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 2/2] staging: vt6656: Remove duplicate code for the phy->service assignment
  2020-04-10 11:28 ` Oscar Carter
@ 2020-04-10 11:28   ` Oscar Carter
  -1 siblings, 0 replies; 14+ messages in thread
From: Oscar Carter @ 2020-04-10 11:28 UTC (permalink / raw)
  To: Forest Bond, Greg Kroah-Hartman
  Cc: Oscar Carter, Malcolm Priestley, Quentin Deslandes,
	Amir Mahdi Ghorbanian, devel, linux-kernel

Take out the "phy->service" assignment from the if-else statement due to
it's the same for the two branches.

Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
---
 drivers/staging/vt6656/baseband.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
index 47f93bf6e07b..b0054f6c07e6 100644
--- a/drivers/staging/vt6656/baseband.c
+++ b/drivers/staging/vt6656/baseband.c
@@ -233,14 +233,13 @@ void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
 			       : preamble_type == PREAMBLE_SHORT;

 	phy->signal = vnt_phy_signal[i][j];
+	phy->service = 0x00;

 	if (pkt_type == PK_TYPE_11B) {
-		phy->service = 0x00;
 		if (ext_bit)
 			phy->service |= 0x80;
 		phy->len = cpu_to_le16((u16)count);
 	} else {
-		phy->service = 0x00;
 		phy->len = cpu_to_le16((u16)frame_length);
 	}
 }
--
2.20.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 2/2] staging: vt6656: Remove duplicate code for the phy->service assignment
@ 2020-04-10 11:28   ` Oscar Carter
  0 siblings, 0 replies; 14+ messages in thread
From: Oscar Carter @ 2020-04-10 11:28 UTC (permalink / raw)
  To: Forest Bond, Greg Kroah-Hartman
  Cc: devel, Oscar Carter, Malcolm Priestley, linux-kernel

Take out the "phy->service" assignment from the if-else statement due to
it's the same for the two branches.

Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
---
 drivers/staging/vt6656/baseband.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
index 47f93bf6e07b..b0054f6c07e6 100644
--- a/drivers/staging/vt6656/baseband.c
+++ b/drivers/staging/vt6656/baseband.c
@@ -233,14 +233,13 @@ void vnt_get_phy_field(struct vnt_private *priv, u32 frame_length,
 			       : preamble_type == PREAMBLE_SHORT;

 	phy->signal = vnt_phy_signal[i][j];
+	phy->service = 0x00;

 	if (pkt_type == PK_TYPE_11B) {
-		phy->service = 0x00;
 		if (ext_bit)
 			phy->service |= 0x80;
 		phy->len = cpu_to_le16((u16)count);
 	} else {
-		phy->service = 0x00;
 		phy->len = cpu_to_le16((u16)frame_length);
 	}
 }
--
2.20.1

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] staging: vt6656: Refactor the assignment of the phy->signal variable
  2020-04-10 11:28   ` Oscar Carter
@ 2020-04-10 15:37     ` Malcolm Priestley
  -1 siblings, 0 replies; 14+ messages in thread
From: Malcolm Priestley @ 2020-04-10 15:37 UTC (permalink / raw)
  To: Oscar Carter, Forest Bond, Greg Kroah-Hartman
  Cc: Quentin Deslandes, Amir Mahdi Ghorbanian, devel, linux-kernel



On 10/04/2020 12:28, Oscar Carter wrote:
> Create a constant array with the values of the "phy->signal" for every
> rate. Remove all "phy->signal" assignments inside the switch statement
> and replace these with a single reading from the new vnt_phy_signal
> array.
> 
> Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
> ---
>   drivers/staging/vt6656/baseband.c | 101 +++++++-----------------------
>   1 file changed, 21 insertions(+), 80 deletions(-)
> 
> diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
> index a19a563d8bcc..47f93bf6e07b 100644
> --- a/drivers/staging/vt6656/baseband.c
> +++ b/drivers/staging/vt6656/baseband.c
> @@ -115,6 +115,21 @@ static const u16 vnt_frame_time[MAX_RATE] = {
>   	10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216
>   };

Actually you don't need the second values
> 
> +static const u8 vnt_phy_signal[][2] = {
> +	{0x00, 0x00},	/* RATE_1M  */
The driver would never attempt use preamble at this rate
so it's safe to include in with the next 3 rates

> +	{0x01, 0x09},	/* RATE_2M  */
> +	{0x02, 0x0a},	/* RATE_5M  */
> +	{0x03, 0x0b},	/* RATE_11M */
just |= BIT(3) for preamble.

> +	{0x8b, 0x9b},	/* RATE_6M  */
> +	{0x8f, 0x9f},	/* RATE_9M  */
> +	{0x8a, 0x9a},	/* RATE_12M */
> +	{0x8e, 0x9e},	/* RATE_18M */
> +	{0x89, 0x99},	/* RATE_24M */
> +	{0x8d, 0x9d},	/* RATE_36M */
> +	{0x88, 0x98},	/* RATE_48M */
> +	{0x8c, 0x9c}	/* RATE_54M */

Again just |= BIT(4) for PK_TYPE_11A

Regards

Malcolm

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] staging: vt6656: Refactor the assignment of the phy->signal variable
@ 2020-04-10 15:37     ` Malcolm Priestley
  0 siblings, 0 replies; 14+ messages in thread
From: Malcolm Priestley @ 2020-04-10 15:37 UTC (permalink / raw)
  To: Oscar Carter, Forest Bond, Greg Kroah-Hartman; +Cc: devel, linux-kernel



On 10/04/2020 12:28, Oscar Carter wrote:
> Create a constant array with the values of the "phy->signal" for every
> rate. Remove all "phy->signal" assignments inside the switch statement
> and replace these with a single reading from the new vnt_phy_signal
> array.
> 
> Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
> ---
>   drivers/staging/vt6656/baseband.c | 101 +++++++-----------------------
>   1 file changed, 21 insertions(+), 80 deletions(-)
> 
> diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
> index a19a563d8bcc..47f93bf6e07b 100644
> --- a/drivers/staging/vt6656/baseband.c
> +++ b/drivers/staging/vt6656/baseband.c
> @@ -115,6 +115,21 @@ static const u16 vnt_frame_time[MAX_RATE] = {
>   	10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216
>   };

Actually you don't need the second values
> 
> +static const u8 vnt_phy_signal[][2] = {
> +	{0x00, 0x00},	/* RATE_1M  */
The driver would never attempt use preamble at this rate
so it's safe to include in with the next 3 rates

> +	{0x01, 0x09},	/* RATE_2M  */
> +	{0x02, 0x0a},	/* RATE_5M  */
> +	{0x03, 0x0b},	/* RATE_11M */
just |= BIT(3) for preamble.

> +	{0x8b, 0x9b},	/* RATE_6M  */
> +	{0x8f, 0x9f},	/* RATE_9M  */
> +	{0x8a, 0x9a},	/* RATE_12M */
> +	{0x8e, 0x9e},	/* RATE_18M */
> +	{0x89, 0x99},	/* RATE_24M */
> +	{0x8d, 0x9d},	/* RATE_36M */
> +	{0x88, 0x98},	/* RATE_48M */
> +	{0x8c, 0x9c}	/* RATE_54M */

Again just |= BIT(4) for PK_TYPE_11A

Regards

Malcolm
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] staging: vt6656: Refactor the assignment of the phy->signal variable
  2020-04-10 15:37     ` Malcolm Priestley
@ 2020-04-10 15:59       ` Oscar Carter
  -1 siblings, 0 replies; 14+ messages in thread
From: Oscar Carter @ 2020-04-10 15:59 UTC (permalink / raw)
  To: Malcolm Priestley
  Cc: Oscar Carter, Forest Bond, Greg Kroah-Hartman, Quentin Deslandes,
	Amir Mahdi Ghorbanian, devel, linux-kernel

On Fri, Apr 10, 2020 at 04:37:59PM +0100, Malcolm Priestley wrote:
>
>
> On 10/04/2020 12:28, Oscar Carter wrote:
> > Create a constant array with the values of the "phy->signal" for every
> > rate. Remove all "phy->signal" assignments inside the switch statement
> > and replace these with a single reading from the new vnt_phy_signal
> > array.
> >
> > Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
> > ---
> >   drivers/staging/vt6656/baseband.c | 101 +++++++-----------------------
> >   1 file changed, 21 insertions(+), 80 deletions(-)
> >
> > diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
> > index a19a563d8bcc..47f93bf6e07b 100644
> > --- a/drivers/staging/vt6656/baseband.c
> > +++ b/drivers/staging/vt6656/baseband.c
> > @@ -115,6 +115,21 @@ static const u16 vnt_frame_time[MAX_RATE] = {
> >   	10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216
> >   };
>
> Actually you don't need the second values

Great.
> >
> > +static const u8 vnt_phy_signal[][2] = {
> > +	{0x00, 0x00},	/* RATE_1M  */
> The driver would never attempt use preamble at this rate
> so it's safe to include in with the next 3 rates
>
> > +	{0x01, 0x09},	/* RATE_2M  */
> > +	{0x02, 0x0a},	/* RATE_5M  */
> > +	{0x03, 0x0b},	/* RATE_11M */
> just |= BIT(3) for preamble.
>
Ok, I apply this OR operation.

> > +	{0x8b, 0x9b},	/* RATE_6M  */
> > +	{0x8f, 0x9f},	/* RATE_9M  */
> > +	{0x8a, 0x9a},	/* RATE_12M */
> > +	{0x8e, 0x9e},	/* RATE_18M */
> > +	{0x89, 0x99},	/* RATE_24M */
> > +	{0x8d, 0x9d},	/* RATE_36M */
> > +	{0x88, 0x98},	/* RATE_48M */
> > +	{0x8c, 0x9c}	/* RATE_54M */
>
> Again just |= BIT(4) for PK_TYPE_11A
>
And this one.

> Regards
>
> Malcolm

I will create a new version of this patch and I will resend it.

Thanks,

Oscar Carter

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] staging: vt6656: Refactor the assignment of the phy->signal variable
@ 2020-04-10 15:59       ` Oscar Carter
  0 siblings, 0 replies; 14+ messages in thread
From: Oscar Carter @ 2020-04-10 15:59 UTC (permalink / raw)
  To: Malcolm Priestley
  Cc: devel, Oscar Carter, Greg Kroah-Hartman, linux-kernel, Forest Bond

On Fri, Apr 10, 2020 at 04:37:59PM +0100, Malcolm Priestley wrote:
>
>
> On 10/04/2020 12:28, Oscar Carter wrote:
> > Create a constant array with the values of the "phy->signal" for every
> > rate. Remove all "phy->signal" assignments inside the switch statement
> > and replace these with a single reading from the new vnt_phy_signal
> > array.
> >
> > Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
> > ---
> >   drivers/staging/vt6656/baseband.c | 101 +++++++-----------------------
> >   1 file changed, 21 insertions(+), 80 deletions(-)
> >
> > diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
> > index a19a563d8bcc..47f93bf6e07b 100644
> > --- a/drivers/staging/vt6656/baseband.c
> > +++ b/drivers/staging/vt6656/baseband.c
> > @@ -115,6 +115,21 @@ static const u16 vnt_frame_time[MAX_RATE] = {
> >   	10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216
> >   };
>
> Actually you don't need the second values

Great.
> >
> > +static const u8 vnt_phy_signal[][2] = {
> > +	{0x00, 0x00},	/* RATE_1M  */
> The driver would never attempt use preamble at this rate
> so it's safe to include in with the next 3 rates
>
> > +	{0x01, 0x09},	/* RATE_2M  */
> > +	{0x02, 0x0a},	/* RATE_5M  */
> > +	{0x03, 0x0b},	/* RATE_11M */
> just |= BIT(3) for preamble.
>
Ok, I apply this OR operation.

> > +	{0x8b, 0x9b},	/* RATE_6M  */
> > +	{0x8f, 0x9f},	/* RATE_9M  */
> > +	{0x8a, 0x9a},	/* RATE_12M */
> > +	{0x8e, 0x9e},	/* RATE_18M */
> > +	{0x89, 0x99},	/* RATE_24M */
> > +	{0x8d, 0x9d},	/* RATE_36M */
> > +	{0x88, 0x98},	/* RATE_48M */
> > +	{0x8c, 0x9c}	/* RATE_54M */
>
> Again just |= BIT(4) for PK_TYPE_11A
>
And this one.

> Regards
>
> Malcolm

I will create a new version of this patch and I will resend it.

Thanks,

Oscar Carter
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] staging: vt6656: Refactor the assignment of the phy->signal variable
  2020-04-10 15:59       ` Oscar Carter
@ 2020-04-10 16:40         ` Malcolm Priestley
  -1 siblings, 0 replies; 14+ messages in thread
From: Malcolm Priestley @ 2020-04-10 16:40 UTC (permalink / raw)
  To: Oscar Carter
  Cc: Forest Bond, Greg Kroah-Hartman, Quentin Deslandes,
	Amir Mahdi Ghorbanian, devel, linux-kernel



On 10/04/2020 16:59, Oscar Carter wrote:
> On Fri, Apr 10, 2020 at 04:37:59PM +0100, Malcolm Priestley wrote:
>>
>>
>> On 10/04/2020 12:28, Oscar Carter wrote:
>>> Create a constant array with the values of the "phy->signal" for every
>>> rate. Remove all "phy->signal" assignments inside the switch statement
>>> and replace these with a single reading from the new vnt_phy_signal
>>> array.
>>>
>>> Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
>>> ---
>>>    drivers/staging/vt6656/baseband.c | 101 +++++++-----------------------
>>>    1 file changed, 21 insertions(+), 80 deletions(-)
>>>
>>> diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
>>> index a19a563d8bcc..47f93bf6e07b 100644
>>> --- a/drivers/staging/vt6656/baseband.c
>>> +++ b/drivers/staging/vt6656/baseband.c
>>> @@ -115,6 +115,21 @@ static const u16 vnt_frame_time[MAX_RATE] = {
>>>    	10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216
>>>    };
>>
>> Actually you don't need the second values
> 
> Great.
>>>
>>> +static const u8 vnt_phy_signal[][2] = {
>>> +	{0x00, 0x00},	/* RATE_1M  */
>> The driver would never attempt use preamble at this rate
>> so it's safe to include in with the next 3 rates
Sorry got this wrong the driver is trying to do preamble (short)
at this rate and it is not working.

So don't apply it to RATE_1M rate.

Regards

Malcolm



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] staging: vt6656: Refactor the assignment of the phy->signal variable
@ 2020-04-10 16:40         ` Malcolm Priestley
  0 siblings, 0 replies; 14+ messages in thread
From: Malcolm Priestley @ 2020-04-10 16:40 UTC (permalink / raw)
  To: Oscar Carter; +Cc: devel, Greg Kroah-Hartman, linux-kernel, Forest Bond



On 10/04/2020 16:59, Oscar Carter wrote:
> On Fri, Apr 10, 2020 at 04:37:59PM +0100, Malcolm Priestley wrote:
>>
>>
>> On 10/04/2020 12:28, Oscar Carter wrote:
>>> Create a constant array with the values of the "phy->signal" for every
>>> rate. Remove all "phy->signal" assignments inside the switch statement
>>> and replace these with a single reading from the new vnt_phy_signal
>>> array.
>>>
>>> Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
>>> ---
>>>    drivers/staging/vt6656/baseband.c | 101 +++++++-----------------------
>>>    1 file changed, 21 insertions(+), 80 deletions(-)
>>>
>>> diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
>>> index a19a563d8bcc..47f93bf6e07b 100644
>>> --- a/drivers/staging/vt6656/baseband.c
>>> +++ b/drivers/staging/vt6656/baseband.c
>>> @@ -115,6 +115,21 @@ static const u16 vnt_frame_time[MAX_RATE] = {
>>>    	10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216
>>>    };
>>
>> Actually you don't need the second values
> 
> Great.
>>>
>>> +static const u8 vnt_phy_signal[][2] = {
>>> +	{0x00, 0x00},	/* RATE_1M  */
>> The driver would never attempt use preamble at this rate
>> so it's safe to include in with the next 3 rates
Sorry got this wrong the driver is trying to do preamble (short)
at this rate and it is not working.

So don't apply it to RATE_1M rate.

Regards

Malcolm


_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] staging: vt6656: Refactor the assignment of the phy->signal variable
  2020-04-10 16:40         ` Malcolm Priestley
@ 2020-04-10 17:17           ` Oscar Carter
  -1 siblings, 0 replies; 14+ messages in thread
From: Oscar Carter @ 2020-04-10 17:17 UTC (permalink / raw)
  To: Malcolm Priestley
  Cc: Forest Bond, Greg Kroah-Hartman, Quentin Deslandes,
	Amir Mahdi Ghorbanian, devel, linux-kernel

On Fri, Apr 10, 2020 at 05:40:52PM +0100, Malcolm Priestley wrote:
>
>
> On 10/04/2020 16:59, Oscar Carter wrote:
> > On Fri, Apr 10, 2020 at 04:37:59PM +0100, Malcolm Priestley wrote:
> > >
> > >
> > > On 10/04/2020 12:28, Oscar Carter wrote:
> > > > Create a constant array with the values of the "phy->signal" for every
> > > > rate. Remove all "phy->signal" assignments inside the switch statement
> > > > and replace these with a single reading from the new vnt_phy_signal
> > > > array.
> > > >
> > > > Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
> > > > ---
> > > >    drivers/staging/vt6656/baseband.c | 101 +++++++-----------------------
> > > >    1 file changed, 21 insertions(+), 80 deletions(-)
> > > >
> > > > diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
> > > > index a19a563d8bcc..47f93bf6e07b 100644
> > > > --- a/drivers/staging/vt6656/baseband.c
> > > > +++ b/drivers/staging/vt6656/baseband.c
> > > > @@ -115,6 +115,21 @@ static const u16 vnt_frame_time[MAX_RATE] = {
> > > >    	10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216
> > > >    };
> > >
> > > Actually you don't need the second values
> >
> > Great.
> > > >
> > > > +static const u8 vnt_phy_signal[][2] = {
> > > > +	{0x00, 0x00},	/* RATE_1M  */
> > > The driver would never attempt use preamble at this rate
> > > so it's safe to include in with the next 3 rates
> Sorry got this wrong the driver is trying to do preamble (short)
> at this rate and it is not working.
>
> So don't apply it to RATE_1M rate.

Ok, I take it into account.
>
> Regards
>
> Malcolm
>
Thanks,

Oscar Carter

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] staging: vt6656: Refactor the assignment of the phy->signal variable
@ 2020-04-10 17:17           ` Oscar Carter
  0 siblings, 0 replies; 14+ messages in thread
From: Oscar Carter @ 2020-04-10 17:17 UTC (permalink / raw)
  To: Malcolm Priestley; +Cc: devel, Greg Kroah-Hartman, linux-kernel, Forest Bond

On Fri, Apr 10, 2020 at 05:40:52PM +0100, Malcolm Priestley wrote:
>
>
> On 10/04/2020 16:59, Oscar Carter wrote:
> > On Fri, Apr 10, 2020 at 04:37:59PM +0100, Malcolm Priestley wrote:
> > >
> > >
> > > On 10/04/2020 12:28, Oscar Carter wrote:
> > > > Create a constant array with the values of the "phy->signal" for every
> > > > rate. Remove all "phy->signal" assignments inside the switch statement
> > > > and replace these with a single reading from the new vnt_phy_signal
> > > > array.
> > > >
> > > > Signed-off-by: Oscar Carter <oscar.carter@gmx.com>
> > > > ---
> > > >    drivers/staging/vt6656/baseband.c | 101 +++++++-----------------------
> > > >    1 file changed, 21 insertions(+), 80 deletions(-)
> > > >
> > > > diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
> > > > index a19a563d8bcc..47f93bf6e07b 100644
> > > > --- a/drivers/staging/vt6656/baseband.c
> > > > +++ b/drivers/staging/vt6656/baseband.c
> > > > @@ -115,6 +115,21 @@ static const u16 vnt_frame_time[MAX_RATE] = {
> > > >    	10, 20, 55, 110, 24, 36, 48, 72, 96, 144, 192, 216
> > > >    };
> > >
> > > Actually you don't need the second values
> >
> > Great.
> > > >
> > > > +static const u8 vnt_phy_signal[][2] = {
> > > > +	{0x00, 0x00},	/* RATE_1M  */
> > > The driver would never attempt use preamble at this rate
> > > so it's safe to include in with the next 3 rates
> Sorry got this wrong the driver is trying to do preamble (short)
> at this rate and it is not working.
>
> So don't apply it to RATE_1M rate.

Ok, I take it into account.
>
> Regards
>
> Malcolm
>
Thanks,

Oscar Carter
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2020-04-10 17:17 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-10 11:28 [PATCH 0/2] staging: vt6656: Refactor the vnt_get_phy_field function Oscar Carter
2020-04-10 11:28 ` Oscar Carter
2020-04-10 11:28 ` [PATCH 1/2] staging: vt6656: Refactor the assignment of the phy->signal variable Oscar Carter
2020-04-10 11:28   ` Oscar Carter
2020-04-10 15:37   ` Malcolm Priestley
2020-04-10 15:37     ` Malcolm Priestley
2020-04-10 15:59     ` Oscar Carter
2020-04-10 15:59       ` Oscar Carter
2020-04-10 16:40       ` Malcolm Priestley
2020-04-10 16:40         ` Malcolm Priestley
2020-04-10 17:17         ` Oscar Carter
2020-04-10 17:17           ` Oscar Carter
2020-04-10 11:28 ` [PATCH 2/2] staging: vt6656: Remove duplicate code for the phy->service assignment Oscar Carter
2020-04-10 11:28   ` Oscar Carter

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.