linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] staging: gdm724x: Remove test for host endian
@ 2015-05-26 15:29 Jaime Arrocha
  2015-05-26 15:59 ` Dan Carpenter
  0 siblings, 1 reply; 3+ messages in thread
From: Jaime Arrocha @ 2015-05-26 15:29 UTC (permalink / raw)
  To: gregkh, dan.carpenter, jonathankim, deanahn; +Cc: devel, linux-kernel, jarr

This is the first patch of two. Both patches perform a small clean up
done to the section for host endian test. Instead of handling endianness
internally, kernel functions were added for use.
The second patch depends on the first one, it is just a small piece
that is no longer needed.

Signed-off-by: Jaime Arrocha <jarr@kerneldev.net>
---
 drivers/staging/gdm724x/gdm_endian.c |   52 +++++++++++++++-------------------
 1 file changed, 23 insertions(+), 29 deletions(-)

diff --git a/drivers/staging/gdm724x/gdm_endian.c b/drivers/staging/gdm724x/gdm_endian.c
index f6cc90a..609a433 100644
--- a/drivers/staging/gdm724x/gdm_endian.c
+++ b/drivers/staging/gdm724x/gdm_endian.c
@@ -11,57 +11,51 @@
  * GNU General Public License for more details.
  */
 
-#include <linux/slab.h>
+#include<asm/byteorder.h>
+#ifdef __LITTLE_ENDIAN
+#include<linux/byteorder/little_endian.h>
+#else
+#include<linux/byteorder/big_endian.h>
+#endif
+
 #include "gdm_endian.h"
 
 void gdm_set_endian(struct gdm_endian *ed, u8 dev_endian)
 {
-	u8 a[2] = {0x12, 0x34};
-	u8 b[2] = {0, };
-	u16 c = 0x1234;
-
 	if (dev_endian == ENDIANNESS_BIG)
 		ed->dev_ed = ENDIANNESS_BIG;
 	else
 		ed->dev_ed = ENDIANNESS_LITTLE;
-
-	memcpy(b, &c, 2);
-
-	if (a[0] != b[0])
-		ed->host_ed = ENDIANNESS_LITTLE;
-	else
-		ed->host_ed = ENDIANNESS_BIG;
-
 }
 
 u16 gdm_cpu_to_dev16(struct gdm_endian *ed, u16 x)
 {
-	if (ed->dev_ed == ed->host_ed)
-		return x;
-
-	return Endian16_Swap(x);
+	if (ed->dev_ed == ENDIANNESS_LITTLE)
+		return __cpu_to_le16(x);
+	else
+		return __cpu_to_be16(x);
 }
 
 u16 gdm_dev16_to_cpu(struct gdm_endian *ed, u16 x)
 {
-	if (ed->dev_ed == ed->host_ed)
-		return x;
-
-	return Endian16_Swap(x);
+	if (ed->dev_ed == ENDIANNESS_LITTLE)
+		return __le16_to_cpu(x);
+	else
+		return __cpu_to_be16(x);
 }
 
 u32 gdm_cpu_to_dev32(struct gdm_endian *ed, u32 x)
 {
-	if (ed->dev_ed == ed->host_ed)
-		return x;
-
-	return Endian32_Swap(x);
+	if (ed->dev_ed == ENDIANNESS_LITTLE)
+		return __cpu_to_le32(x);
+	else
+		return __cpu_to_be32(x);
 }
 
 u32 gdm_dev32_to_cpu(struct gdm_endian *ed, u32 x)
 {
-	if (ed->dev_ed == ed->host_ed)
-		return x;
-
-	return Endian32_Swap(x);
+	if (ed->dev_ed == ENDIANNESS_LITTLE)
+		return __le32_to_cpu(x);
+	else
+		return __be32_to_cpu(x);
 }
-- 
1.7.10.4



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

* Re: [PATCH 1/2] staging: gdm724x: Remove test for host endian
  2015-05-26 15:29 [PATCH 1/2] staging: gdm724x: Remove test for host endian Jaime Arrocha
@ 2015-05-26 15:59 ` Dan Carpenter
  2015-05-26 17:00   ` Jaime Arrocha
  0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2015-05-26 15:59 UTC (permalink / raw)
  To: Jaime Arrocha; +Cc: gregkh, jonathankim, deanahn, devel, linux-kernel

On Tue, May 26, 2015 at 10:29:44AM -0500, Jaime Arrocha wrote:
> This is the first patch of two. Both patches perform a small clean up
> done to the section for host endian test. Instead of handling endianness
> internally, kernel functions were added for use.

> The second patch depends on the first one, it is just a small piece
> that is no longer needed.

This kind of dependencies are built in the the name patch 1/2 and 2/2.
We don't want this kind of meta commentary in the permanent changelog.
If it were needed then it would go under the --- cut off line.

And anyway, fold patch 1 & 2 together into one patch.  Do "one thing"
per patch instead of half a thing per patch.

> 
> Signed-off-by: Jaime Arrocha <jarr@kerneldev.net>
> ---

<--- meta commentary goes here.

>  drivers/staging/gdm724x/gdm_endian.c |   52 +++++++++++++++-------------------
>  1 file changed, 23 insertions(+), 29 deletions(-)
> 
> diff --git a/drivers/staging/gdm724x/gdm_endian.c b/drivers/staging/gdm724x/gdm_endian.c
> index f6cc90a..609a433 100644
> --- a/drivers/staging/gdm724x/gdm_endian.c
> +++ b/drivers/staging/gdm724x/gdm_endian.c
> @@ -11,57 +11,51 @@
>   * GNU General Public License for more details.
>   */
>  
> -#include <linux/slab.h>

Is this related to endianness?

> +#include<asm/byteorder.h>
> +#ifdef __LITTLE_ENDIAN
> +#include<linux/byteorder/little_endian.h>
> +#else
> +#include<linux/byteorder/big_endian.h>
> +#endif

Why do we need this?  Also the spacing is wrong.

>  u16 gdm_cpu_to_dev16(struct gdm_endian *ed, u16 x)
>  {
> -	if (ed->dev_ed == ed->host_ed)
> -		return x;
> -
> -	return Endian16_Swap(x);
> +	if (ed->dev_ed == ENDIANNESS_LITTLE)
> +		return __cpu_to_le16(x);
> +	else
> +		return __cpu_to_be16(x);

Use cpu_to_le16() no underscore versions everywhere.  The other is for
code which is shared with usespace.

regards,
dan carpenter


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

* Re: [PATCH 1/2] staging: gdm724x: Remove test for host endian
  2015-05-26 15:59 ` Dan Carpenter
@ 2015-05-26 17:00   ` Jaime Arrocha
  0 siblings, 0 replies; 3+ messages in thread
From: Jaime Arrocha @ 2015-05-26 17:00 UTC (permalink / raw)
  To: Dan Carpenter, Jaime Arrocha
  Cc: gregkh, jonathankim, deanahn, devel, linux-kernel


On 05/26/2015 10:59 AM, Dan Carpenter wrote:
> On Tue, May 26, 2015 at 10:29:44AM -0500, Jaime Arrocha wrote:
>> This is the first patch of two. Both patches perform a small clean up
>> done to the section for host endian test. Instead of handling endianness
>> internally, kernel functions were added for use.
>
>> The second patch depends on the first one, it is just a small piece
>> that is no longer needed.
>
> This kind of dependencies are built in the the name patch 1/2 and 2/2.
> We don't want this kind of meta commentary in the permanent changelog.
> If it were needed then it would go under the --- cut off line.
>
> And anyway, fold patch 1 & 2 together into one patch.  Do "one thing"
> per patch instead of half a thing per patch.
>

Thanks for the feedback. I'll do the corrections needed.

>>
>> Signed-off-by: Jaime Arrocha <jarr@kerneldev.net>
>> ---
>
> <--- meta commentary goes here.
>
>>   drivers/staging/gdm724x/gdm_endian.c |   52 +++++++++++++++-------------------
>>   1 file changed, 23 insertions(+), 29 deletions(-)
>>
>> diff --git a/drivers/staging/gdm724x/gdm_endian.c b/drivers/staging/gdm724x/gdm_endian.c
>> index f6cc90a..609a433 100644
>> --- a/drivers/staging/gdm724x/gdm_endian.c
>> +++ b/drivers/staging/gdm724x/gdm_endian.c
>> @@ -11,57 +11,51 @@
>>    * GNU General Public License for more details.
>>    */
>>
>> -#include <linux/slab.h>
>
> Is this related to endianness?
>

This was needed because the original code uses memcpy() inside 
gdm_set_endian() to test for host endianness.

>> +#include<asm/byteorder.h>
>> +#ifdef __LITTLE_ENDIAN
>> +#include<linux/byteorder/little_endian.h>
>> +#else
>> +#include<linux/byteorder/big_endian.h>
>> +#endif
>
> Why do we need this?  Also the spacing is wrong.
>

Yes,this needs to go. It was from an old change where I was obtaining 
host endianness. It will be replaced by linux/byteorder/generic.h

>>   u16 gdm_cpu_to_dev16(struct gdm_endian *ed, u16 x)
>>   {
>> -	if (ed->dev_ed == ed->host_ed)
>> -		return x;
>> -
>> -	return Endian16_Swap(x);
>> +	if (ed->dev_ed == ENDIANNESS_LITTLE)
>> +		return __cpu_to_le16(x);
>> +	else
>> +		return __cpu_to_be16(x);
>
> Use cpu_to_le16() no underscore versions everywhere.  The other is for
> code which is shared with usespace.
>
> regards,
> dan carpenter
>
>


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

end of thread, other threads:[~2015-05-26 17:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-26 15:29 [PATCH 1/2] staging: gdm724x: Remove test for host endian Jaime Arrocha
2015-05-26 15:59 ` Dan Carpenter
2015-05-26 17:00   ` Jaime Arrocha

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).