From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-pf0-x243.google.com ([2607:f8b0:400e:c00::243]) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bHkeD-00035V-OK for barebox@lists.infradead.org; Tue, 28 Jun 2016 04:29:18 +0000 Received: by mail-pf0-x243.google.com with SMTP id i123so609180pfg.3 for ; Mon, 27 Jun 2016 21:28:57 -0700 (PDT) From: Andrey Smirnov Date: Mon, 27 Jun 2016 21:27:58 -0700 Message-Id: <1467088079-476-3-git-send-email-andrew.smirnov@gmail.com> In-Reply-To: <1467088079-476-1-git-send-email-andrew.smirnov@gmail.com> References: <1467088079-476-1-git-send-email-andrew.smirnov@gmail.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH v3 3/4] video/edid: Move int_sqrt() out To: barebox@lists.infradead.org Cc: Andrey Smirnov Move int_sqrt() out of drivers/video/edid.c so that it is availible to other parts of Barebox. Signed-off-by: Andrey Smirnov --- Changes since v2: - Moved to before fbtest patch in the series drivers/video/edid.c | 29 ----------------------------- include/int_sqrt.h | 22 ++++++++++++++++++++++ lib/Makefile | 1 + lib/int_sqrt.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 29 deletions(-) create mode 100644 include/int_sqrt.h create mode 100644 lib/int_sqrt.c diff --git a/drivers/video/edid.c b/drivers/video/edid.c index e5c32a0..92b59a5 100644 --- a/drivers/video/edid.c +++ b/drivers/video/edid.c @@ -321,35 +321,6 @@ static u32 fb_get_hblank_by_hfreq(u32 hfreq, u32 xres) } /** - * int_sqrt - rough approximation to sqrt - * @x: integer of which to calculate the sqrt - * - * A very rough approximation to the sqrt() function. - */ -unsigned long int_sqrt(unsigned long x) -{ - unsigned long b, m, y = 0; - - if (x <= 1) - return x; - - m = 1UL << (BITS_PER_LONG - 2); - while (m != 0) { - b = y + m; - y >>= 1; - - if (x >= b) { - x -= b; - y += m; - } - m >>= 2; - } - - return y; -} -EXPORT_SYMBOL(int_sqrt); - -/** * fb_get_hfreq - estimate hsync * @vfreq: vertical refresh rate * @yres: vertical resolution diff --git a/include/int_sqrt.h b/include/int_sqrt.h new file mode 100644 index 0000000..55fb4fb --- /dev/null +++ b/include/int_sqrt.h @@ -0,0 +1,22 @@ +/* + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef __INT_SQRT__ +#define __INT_SQRT__ + +unsigned long int_sqrt(unsigned long x); + +#endif diff --git a/lib/Makefile b/lib/Makefile index 399d896..92404fd 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -58,3 +58,4 @@ obj-$(CONFIG_BAREBOX_LOGO) += logo/ obj-y += reed_solomon/ obj-$(CONFIG_RATP) += ratp.o obj-y += list_sort.o +obj-y += int_sqrt.o diff --git a/lib/int_sqrt.c b/lib/int_sqrt.c new file mode 100644 index 0000000..30ccafb --- /dev/null +++ b/lib/int_sqrt.c @@ -0,0 +1,46 @@ +/* + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include + +/** + * int_sqrt - rough approximation to sqrt + * @x: integer of which to calculate the sqrt + * + * A very rough approximation to the sqrt() function. + */ +unsigned long int_sqrt(unsigned long x) +{ + unsigned long b, m, y = 0; + + if (x <= 1) + return x; + + m = 1UL << (BITS_PER_LONG - 2); + while (m != 0) { + b = y + m; + y >>= 1; + + if (x >= b) { + x -= b; + y += m; + } + m >>= 2; + } + + return y; +} +EXPORT_SYMBOL(int_sqrt); -- 2.5.5 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox