2012-04-02 14:34:41

by Forest Bond

[permalink] [raw]
Subject: [PATCH 1/2] rtl8192de: Clean up and fix 92D cut version constants and macros.

From: Forest Bond <[email protected]>

The previous definitions included both {B,C,D,E}_CUT_VERSION and
CHIP_92D_{C,D}_CUT with conflicting values for the C and D cut versions,
and literal hex values were used in the IS_92D_{C,D,E}_CUT macros. So
we clean all this up and in doing so enable cut-specific code paths for
cuts C and D, which would not have been executed because the
CHIP_92D_{C,D}_CUT constants were wrong and the cut version was thus
recorded incorrectly.

Signed-off-by: Forest Bond <[email protected]>
---
drivers/net/wireless/rtlwifi/rtl8192de/def.h | 17 ++++++++---------
1 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/def.h b/drivers/net/wireless/rtlwifi/rtl8192de/def.h
index eafdf76..260ac7e 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/def.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/def.h
@@ -151,9 +151,6 @@ enum version_8192d {

/* for 92D */
#define CHIP_92D_SINGLEPHY BIT(9)
-#define C_CUT_VERSION BIT(13)
-#define D_CUT_VERSION ((BIT(12)|BIT(13)))
-#define E_CUT_VERSION BIT(14)

/* Chip specific */
#define CHIP_BONDING_IDENTIFIER(_value) (((_value)>>22)&0x3)
@@ -173,7 +170,11 @@ enum version_8192d {
#define RF_TYPE_1T2R BIT(4)
#define RF_TYPE_2T2R BIT(5)
#define CHIP_VENDOR_UMC BIT(7)
-#define B_CUT_VERSION BIT(12)
+#define CHIP_92D_A_CUT (0<<12)
+#define CHIP_92D_B_CUT (1<<12)
+#define CHIP_92D_C_CUT (2<<12)
+#define CHIP_92D_D_CUT (3<<12)
+#define CHIP_92D_E_CUT (4<<12)

/* MASK */
#define IC_TYPE_MASK (BIT(0)|BIT(1)|BIT(2))
@@ -205,15 +206,13 @@ enum version_8192d {
CHIP_92D) ? true : false)
#define IS_92D_C_CUT(version) ((IS_92D(version)) ? \
((GET_CVID_CUT_VERSION(version) == \
- 0x2000) ? true : false) : false)
+ CHIP_92D_C_CUT) ? true : false) : false)
#define IS_92D_D_CUT(version) ((IS_92D(version)) ? \
((GET_CVID_CUT_VERSION(version) == \
- 0x3000) ? true : false) : false)
+ CHIP_92D_D_CUT) ? true : false) : false)
#define IS_92D_E_CUT(version) ((IS_92D(version)) ? \
((GET_CVID_CUT_VERSION(version) == \
- 0x4000) ? true : false) : false)
-#define CHIP_92D_C_CUT BIT(10)
-#define CHIP_92D_D_CUT BIT(11)
+ CHIP_92D_E_CUT) ? true : false) : false)

enum rf_optype {
RF_OP_BY_SW_3WIRE = 0,
--
1.7.0.4


Attachments:
(No filename) (2.30 kB)
signature.asc (198.00 B)
Digital signature
Download all attachments

2012-04-05 18:06:34

by Forest Bond

[permalink] [raw]
Subject: Re: [PATCH 1/2] rtl8192de: Clean up and fix 92D cut version constants and macros.

Hi Larry,

On Mon, Apr 02, 2012 at 01:04:08PM -0500, Larry Finger wrote:
> On 04/02/2012 12:57 PM, Forest Bond wrote:
> >On Mon, Apr 02, 2012 at 12:54:01PM -0500, Larry Finger wrote:
> >>On 04/02/2012 09:25 AM, Forest Bond wrote:
> >>>From: Forest Bond<[email protected]>
> >>>
> >>>The previous definitions included both {B,C,D,E}_CUT_VERSION and
> >>>CHIP_92D_{C,D}_CUT with conflicting values for the C and D cut versions,
> >>>and literal hex values were used in the IS_92D_{C,D,E}_CUT macros. So
> >>>we clean all this up and in doing so enable cut-specific code paths for
> >>>cuts C and D, which would not have been executed because the
> >>>CHIP_92D_{C,D}_CUT constants were wrong and the cut version was thus
> >>>recorded incorrectly.
> >>>
> >>>Signed-off-by: Forest Bond<[email protected]>
> >>
> >>This patch does not apply to the wireless-testing tree. That is the
> >>one you are supposed to use.
> >>
> >>Patch #2 also fails to apply. In addition, your mailer mangled a line.
> >
> >Sorry for the trouble. I'll resend a little later this afternoon.
>
> No problem for me. I was able to fix everything but the mangling with wiggle.

I just resent both patches, including the changes you requested to the first
one. Turns out GPG was causing all of the issues above, so I didn't sign the
resent patches.

Thanks,
Forest
--
Forest Bond
http://www.alittletooquiet.net
http://www.rapidrollout.com


Attachments:
(No filename) (1.40 kB)
signature.asc (198.00 B)
Digital signature
Download all attachments

2012-04-02 17:57:46

by Forest Bond

[permalink] [raw]
Subject: Re: [PATCH 1/2] rtl8192de: Clean up and fix 92D cut version constants and macros.

Hi Larry,

On Mon, Apr 02, 2012 at 12:54:01PM -0500, Larry Finger wrote:
> On 04/02/2012 09:25 AM, Forest Bond wrote:
> >From: Forest Bond<[email protected]>
> >
> >The previous definitions included both {B,C,D,E}_CUT_VERSION and
> >CHIP_92D_{C,D}_CUT with conflicting values for the C and D cut versions,
> >and literal hex values were used in the IS_92D_{C,D,E}_CUT macros. So
> >we clean all this up and in doing so enable cut-specific code paths for
> >cuts C and D, which would not have been executed because the
> >CHIP_92D_{C,D}_CUT constants were wrong and the cut version was thus
> >recorded incorrectly.
> >
> >Signed-off-by: Forest Bond<[email protected]>
>
> This patch does not apply to the wireless-testing tree. That is the
> one you are supposed to use.
>
> Patch #2 also fails to apply. In addition, your mailer mangled a line.

Sorry for the trouble. I'll resend a little later this afternoon.

Thanks,
Forest
--
Forest Bond
http://www.alittletooquiet.net
http://www.rapidrollout.com


Attachments:
(No filename) (1.01 kB)
signature.asc (198.00 B)
Digital signature
Download all attachments

2012-04-02 17:54:05

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH 1/2] rtl8192de: Clean up and fix 92D cut version constants and macros.

On 04/02/2012 09:25 AM, Forest Bond wrote:
> From: Forest Bond<[email protected]>
>
> The previous definitions included both {B,C,D,E}_CUT_VERSION and
> CHIP_92D_{C,D}_CUT with conflicting values for the C and D cut versions,
> and literal hex values were used in the IS_92D_{C,D,E}_CUT macros. So
> we clean all this up and in doing so enable cut-specific code paths for
> cuts C and D, which would not have been executed because the
> CHIP_92D_{C,D}_CUT constants were wrong and the cut version was thus
> recorded incorrectly.
>
> Signed-off-by: Forest Bond<[email protected]>

This patch does not apply to the wireless-testing tree. That is the one you are
supposed to use.

Patch #2 also fails to apply. In addition, your mailer mangled a line.

Larry

> ---
> drivers/net/wireless/rtlwifi/rtl8192de/def.h | 17 ++++++++---------
> 1 files changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/def.h b/drivers/net/wireless/rtlwifi/rtl8192de/def.h
> index eafdf76..260ac7e 100644
> --- a/drivers/net/wireless/rtlwifi/rtl8192de/def.h
> +++ b/drivers/net/wireless/rtlwifi/rtl8192de/def.h
> @@ -151,9 +151,6 @@ enum version_8192d {
>
> /* for 92D */
> #define CHIP_92D_SINGLEPHY BIT(9)
> -#define C_CUT_VERSION BIT(13)
> -#define D_CUT_VERSION ((BIT(12)|BIT(13)))
> -#define E_CUT_VERSION BIT(14)
>
> /* Chip specific */
> #define CHIP_BONDING_IDENTIFIER(_value) (((_value)>>22)&0x3)
> @@ -173,7 +170,11 @@ enum version_8192d {
> #define RF_TYPE_1T2R BIT(4)
> #define RF_TYPE_2T2R BIT(5)
> #define CHIP_VENDOR_UMC BIT(7)
> -#define B_CUT_VERSION BIT(12)
> +#define CHIP_92D_A_CUT (0<<12)
> +#define CHIP_92D_B_CUT (1<<12)
> +#define CHIP_92D_C_CUT (2<<12)
> +#define CHIP_92D_D_CUT (3<<12)
> +#define CHIP_92D_E_CUT (4<<12)
>
> /* MASK */
> #define IC_TYPE_MASK (BIT(0)|BIT(1)|BIT(2))
> @@ -205,15 +206,13 @@ enum version_8192d {
> CHIP_92D) ? true : false)
> #define IS_92D_C_CUT(version) ((IS_92D(version)) ? \
> ((GET_CVID_CUT_VERSION(version) == \
> - 0x2000) ? true : false) : false)
> + CHIP_92D_C_CUT) ? true : false) : false)
> #define IS_92D_D_CUT(version) ((IS_92D(version)) ? \
> ((GET_CVID_CUT_VERSION(version) == \
> - 0x3000) ? true : false) : false)
> + CHIP_92D_D_CUT) ? true : false) : false)
> #define IS_92D_E_CUT(version) ((IS_92D(version)) ? \
> ((GET_CVID_CUT_VERSION(version) == \
> - 0x4000) ? true : false) : false)
> -#define CHIP_92D_C_CUT BIT(10)
> -#define CHIP_92D_D_CUT BIT(11)
> + CHIP_92D_E_CUT) ? true : false) : false)
>
> enum rf_optype {
> RF_OP_BY_SW_3WIRE = 0,


2012-04-02 15:46:46

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH 1/2] rtl8192de: Clean up and fix 92D cut version constants and macros.

On 04/02/2012 09:25 AM, Forest Bond wrote:
> From: Forest Bond<[email protected]>
>
> The previous definitions included both {B,C,D,E}_CUT_VERSION and
> CHIP_92D_{C,D}_CUT with conflicting values for the C and D cut versions,
> and literal hex values were used in the IS_92D_{C,D,E}_CUT macros. So
> we clean all this up and in doing so enable cut-specific code paths for
> cuts C and D, which would not have been executed because the
> CHIP_92D_{C,D}_CUT constants were wrong and the cut version was thus
> recorded incorrectly.
>
> Signed-off-by: Forest Bond<[email protected]>

Thanks for working on this driver. As there has been no traffic regarding its
usage, I have not done much with it. I am in possession of two models,
RTL8192DE-VC and RTL8192DE-VS. My recollection is that the VS did not work, but
I need to test again. Perhaps your changes are what was needed.

> ---
> drivers/net/wireless/rtlwifi/rtl8192de/def.h | 17 ++++++++---------
> 1 files changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/def.h b/drivers/net/wireless/rtlwifi/rtl8192de/def.h
> index eafdf76..260ac7e 100644
> --- a/drivers/net/wireless/rtlwifi/rtl8192de/def.h
> +++ b/drivers/net/wireless/rtlwifi/rtl8192de/def.h
> @@ -151,9 +151,6 @@ enum version_8192d {
>
> /* for 92D */
> #define CHIP_92D_SINGLEPHY BIT(9)
> -#define C_CUT_VERSION BIT(13)
> -#define D_CUT_VERSION ((BIT(12)|BIT(13)))
> -#define E_CUT_VERSION BIT(14)
>
> /* Chip specific */
> #define CHIP_BONDING_IDENTIFIER(_value) (((_value)>>22)&0x3)
> @@ -173,7 +170,11 @@ enum version_8192d {
> #define RF_TYPE_1T2R BIT(4)
> #define RF_TYPE_2T2R BIT(5)
> #define CHIP_VENDOR_UMC BIT(7)
> -#define B_CUT_VERSION BIT(12)
> +#define CHIP_92D_A_CUT (0<<12)
> +#define CHIP_92D_B_CUT (1<<12)
> +#define CHIP_92D_C_CUT (2<<12)
> +#define CHIP_92D_D_CUT (3<<12)
> +#define CHIP_92D_E_CUT (4<<12)

Please keep the BIT(X) notation here to make it consistent.

>
> /* MASK */
> #define IC_TYPE_MASK (BIT(0)|BIT(1)|BIT(2))
> @@ -205,15 +206,13 @@ enum version_8192d {
> CHIP_92D) ? true : false)
> #define IS_92D_C_CUT(version) ((IS_92D(version)) ? \
> ((GET_CVID_CUT_VERSION(version) == \
> - 0x2000) ? true : false) : false)
> + CHIP_92D_C_CUT) ? true : false) : false)
> #define IS_92D_D_CUT(version) ((IS_92D(version)) ? \
> ((GET_CVID_CUT_VERSION(version) == \
> - 0x3000) ? true : false) : false)
> + CHIP_92D_D_CUT) ? true : false) : false)
> #define IS_92D_E_CUT(version) ((IS_92D(version)) ? \
> ((GET_CVID_CUT_VERSION(version) == \
> - 0x4000) ? true : false) : false)
> -#define CHIP_92D_C_CUT BIT(10)
> -#define CHIP_92D_D_CUT BIT(11)
> + CHIP_92D_E_CUT) ? true : false) : false)
>
> enum rf_optype {
> RF_OP_BY_SW_3WIRE = 0,

These IS_92D_X_CUT macros are ugly, but I don't see any way to improve them. I
guess we are stuck with them.

Larry

2012-04-02 18:04:13

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH 1/2] rtl8192de: Clean up and fix 92D cut version constants and macros.

On 04/02/2012 12:57 PM, Forest Bond wrote:
> Hi Larry,
>
> On Mon, Apr 02, 2012 at 12:54:01PM -0500, Larry Finger wrote:
>> On 04/02/2012 09:25 AM, Forest Bond wrote:
>>> From: Forest Bond<[email protected]>
>>>
>>> The previous definitions included both {B,C,D,E}_CUT_VERSION and
>>> CHIP_92D_{C,D}_CUT with conflicting values for the C and D cut versions,
>>> and literal hex values were used in the IS_92D_{C,D,E}_CUT macros. So
>>> we clean all this up and in doing so enable cut-specific code paths for
>>> cuts C and D, which would not have been executed because the
>>> CHIP_92D_{C,D}_CUT constants were wrong and the cut version was thus
>>> recorded incorrectly.
>>>
>>> Signed-off-by: Forest Bond<[email protected]>
>>
>> This patch does not apply to the wireless-testing tree. That is the
>> one you are supposed to use.
>>
>> Patch #2 also fails to apply. In addition, your mailer mangled a line.
>
> Sorry for the trouble. I'll resend a little later this afternoon.

No problem for me. I was able to fix everything but the mangling with wiggle.

Larry