[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140105222346.GA25152@amd.pavel.ucw.cz>
Date: Sun, 5 Jan 2014 23:23:46 +0100
From: Pavel Machek <pavel@....cz>
To: One Thousand Gnomes <gnomes@...rguk.ukuu.org.uk>,
pali.rohar@...il.com, sre@...g0.de, milo.kim@...com,
linus.walleij@...aro.org
Cc: Bryan Wu <cooloney@...il.com>, David Lang <david@...g.hm>,
Joe Xue <lgxue@...mail.com>,
"rpurdie@...ys.net" <rpurdie@...ys.net>,
"rob@...dley.net" <rob@...dley.net>,
"milo.kim@...com" <milo.kim@...com>,
"linux-leds@...r.kernel.org" <linux-leds@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-doc@...r.kernel.org" <linux-doc@...r.kernel.org>
Subject: n900 led compiler (was Re: [PATCH] Add LED pattern trigger)
Hi!
> > IMHO, firstly we should take this trigger into kernel, most time it
> > works as a module. But we need to define a good interface between
> > kernel and user space.
>
> You need the interface defined first. To do that it needs to reflect the
> actual hardware accelerated devices, and also to deal with resource
> management for those devices if necessary (eg if they can only manage one
> led of a set at a time).
Hardware can do quite a lot:
http://wiki.maemo.org/LED_patterns#Lysti_Format_Engine_Patterns_and_Commands
(and more).
I implemented compiler for it (should we put it into tools/ somewhere?)
https://gitorious.org/tui/tui/source/5b3f5cacf8e208d3ea50d6066e549940d85e55be:maemo/notcc.py
It can do quite a lot, including prime number computation. This uses
33% of program memory and only one of three execution units; but it
does not work, maybe I made mistake somewhere or maybe our kernel
can't take program this long. It only has 3 writable variables, which
is quite limiting.
start()
a = 1
next_number: a += 1
b = 1
next_divisor: b += 1
br = b
if (b==a) goto is_prime
c = 0
c = c+b
test_prime: if (c==a) goto not_prime
if (a<c) goto not_divisor
c = c+b
goto test_prime
not_divisor: goto next_divisor
not_prime: goto next_number
is_prime: b = 0
show_prime: c = 255
br = c
ramp_up_long(30,0)
c = 0
br = c
ramp_up_long(30,0)
b += 1
if (b == a) goto next_number2
goto show_prime
next_number2: goto next_number
> So the starting point has to be the hardware accelerated devices, whether
> you then support software emulation in kernel or user space is a follow
> on discussion. What the kernel/user API is also has to be a follow on
Well... this one is turing complete, and I have a compiler, but I
don't think it is good interface, either for library or kernel.
I believe series of RGB values might be good interface, maybe with
additional "want interpolation between these".
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists