All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabio Estevam <festevam@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v5 04/18] x86: bitops: Use the generic bitops headers
Date: Mon,  2 Nov 2015 21:38:32 -0200	[thread overview]
Message-ID: <1446507526-7789-4-git-send-email-festevam@gmail.com> (raw)
In-Reply-To: <1446507526-7789-1-git-send-email-festevam@gmail.com>

From: Fabio Estevam <fabio.estevam@freescale.com>

Use the generic bitops and also add custom __ffs() implementation
as per the kernel.

Also align the ffs() implementation with the kernel.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Jagan Teki <jteki@openedev.com>
---
Changes since v4:
- None

 arch/x86/include/asm/bitops.h | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
index 5a7e4cb..f97dc66 100644
--- a/arch/x86/include/asm/bitops.h
+++ b/arch/x86/include/asm/bitops.h
@@ -14,6 +14,10 @@
  * bit 0 is the LSB of addr; bit 32 is the LSB of (addr+1).
  */
 
+#include <asm-generic/bitops/fls.h>
+#include <asm-generic/bitops/__fls.h>
+#include <asm-generic/bitops/fls64.h>
+
 #ifdef CONFIG_SMP
 #define LOCK_PREFIX "lock ; "
 #else
@@ -332,6 +336,20 @@ static __inline__ unsigned long ffz(unsigned long word)
 #ifdef __KERNEL__
 
 /**
+ * __ffs - find first set bit in word
+ * @word: The word to search
+ *
+ * Undefined if no bit exists, so code should check against 0 first.
+ */
+static inline unsigned long __ffs(unsigned long word)
+{
+	__asm__("rep; bsf %1,%0"
+		: "=r" (word)
+		: "rm" (word));
+	return word;
+}
+
+/**
  * ffs - find first bit set
  * @x: the word to search
  *
@@ -346,7 +364,8 @@ static __inline__ int ffs(int x)
 	__asm__("bsfl %1,%0\n\t"
 		"jnz 1f\n\t"
 		"movl $-1,%0\n"
-		"1:" : "=r" (r) : "g" (x));
+		"1:" : "=r" (r) : "rm" (x));
+
 	return r+1;
 }
 #define PLATFORM_FFS
-- 
1.9.1

  parent reply	other threads:[~2015-11-02 23:38 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-02 23:38 [U-Boot] [PATCH v5 01/18] include: Add log2 header from the kernel Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 02/18] include: Add generic bitops headers Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 03/18] ARM: bitops: Use the " Fabio Estevam
2015-11-02 23:38 ` Fabio Estevam [this message]
2015-11-02 23:38 ` [U-Boot] [PATCH v5 05/18] m68k: " Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 06/18] blackfin: " Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 07/18] sh: " Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 08/18] microblaze: " Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 09/18] sandbox: " Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 10/18] sparc: " Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 11/18] openrisc: " Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 12/18] nds32: " Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 13/18] nios2: " Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 14/18] compat: Remove is_power_of_2() definition Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 15/18] powerpc: Remove __ilog2_u64 and ffs4 from bitops Fabio Estevam
2015-11-03  0:00   ` York Sun
2015-11-02 23:38 ` [U-Boot] [PATCH v5 16/18] spi: sf_ops: Add SPI protection mechanism from the kernel Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 17/18] spi: Add SPI NOR protection mechanism Fabio Estevam
2015-11-03 14:51   ` Jagan Teki
2015-11-03 14:59     ` Fabio Estevam
2015-11-03 15:11       ` Jagan Teki
2015-11-03 15:17         ` Fabio Estevam
2015-11-03 15:20     ` Tom Rini
2015-11-03 15:27       ` Fabio Estevam
2015-11-02 23:38 ` [U-Boot] [PATCH v5 18/18] sf_probe: Extend the SPI NOR protection for SST flashes Fabio Estevam

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=1446507526-7789-4-git-send-email-festevam@gmail.com \
    --to=festevam@gmail.com \
    --cc=u-boot@lists.denx.de \
    /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.