userland: Add '--no-as-needed' linker flag

This is done to ensure all specified shared libraries are linked against
applications (e.g. raspivid)i.

libmmal_vc_client.so makes use of __attribute__(constructor) to ensure
that supplier components (e.g. camera) are loaded when the static library is
loaded.

raspivid, and possibly other applications, link against libmmal_vc_client.so,
causing the ctor to execute, but there is no needed dependency.

Some build environments (e.g. Yocto/OpenEmbedded) pass the '--no-as-needed'
linker flag which removes the dependency on libmmal_vc_client and thus
components are not registered.

In this situation raspivid then gives an error of the form
  root@raspberrypi:~# raspivid -o test
  mmal: mmal_component_create_core: could not find component 'vc.ril.camera'
  mmal: Failed to create camera component
  mmal: main: Failed to create camera component
  mmal: Failed to run camera app. Please check for firmware updates

For further details see:
https://lists.yoctoproject.org/pipermail/yocto/2014-June/019933.html

Change-Id: I9d787fd83379e8b6428dde3827395c8b96be1f7f
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Acked-by: Andrei Gherzan <andrei@gherzan.ro>
userland: Add SRCBRANCH and SRCFORK for use by SRC_URI

Makes it clearer to manage repo forks, and branches prior to (e.g.) upstream
commits of in tree changes.

Change-Id: I42f8af975c08f84c4ceb9910713eba2da3a87d8b
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Acked-by: Andrei Gherzan <andrei@gherzan.ro>
linux-raspberrypi: Update kernel to 3.12.21

Amongst other patches, this release includes a fix to an issue with
gstreamer1.0 and v4l2src blocking

ref: https://bugzilla.gnome.org/show_bug.cgi?id=726521

ref: http://tinyurl.com/mkqooeg

To make use of the optional fix the module parameter gst_v4l2src_is_broken
needs to be set when loading bcm2835-v4l2.ko

With this in place, and with userland and gstreamer1.0-omx patches,
gstreamer1.0 can be used with PiCam via v4l2src instead of raspivid.

(There may still be performance issues to be addressed for v4l2src vs
raspivid pipe & fdsrc).

Change-Id: Ia0ed4e6c8f27df9bb12ae2350526f6314e016d51
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
pi-blaster: Added recipe

This project enables PWM on the GPIO pins you request of a Raspberry Pi.
The technique used is extremely efficient: does not use the CPU and gives
very stable pulses

Patches have been provided to build pi-blaster using autotools, and to
remove startup script dependencies on the lsb.

Change-Id: Ie1bec0702e4520d24e4f024aafff14ddef825589
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Merge "pi-blaster: Added recipe"
Merge "linux-raspberrypi: Update kernel to 3.12.21"
README: Add patch guidelines info

Change-Id: I2dac882a6dbe2fbca63a5c7405339edcca18cf04
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
gstreamer1.0-plugins-bad: Build eglglessink for Raspberry Pi

The eglglessink needs to be built to target the Raspberry Pi or it will
seg-fault in use.

Autoconf attempts to detect whether to build for RPi but there are some
include files needed, the search path to which must be specified.

ref: https://github.com/raspberrypi/firmware/issues/34

ref: https://github.com/raspberrypi/firmware/issues/99

This patch adds the needed include paths and forces the plugin to be
built for Raspberry Pi.

With this patch the following pipeline works on RPi,

  modprobe bcm2835-v4l2 gst_v4l2src_is_broken=1
  gst-launch-1.0 --gst-debug-no-color v4l2src \
  ! 'video/x-raw,format=RGB,width=1280,height=720,framerate=(fraction)30/1' \
  ! eglglessink max-lateness=-1

Change-Id: Iabd93c0601c2ab898de3352a7d30423ef9cfce43
Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk>
Merge "gstreamer1.0-plugins-bad: Build eglglessink for Raspberry Pi"
Merge branch 'master' of https://github.com/djwillis/meta-raspberrypi