Configuration for the amba-clcd PL111 driver is added to the A9 CoreTile's DTS
file.
Configuration of the motherboard CLCD driver is disabled in the DTSI files to
prevent duplicate CLCD drivers being registered.
A generic set of CLCD panel descriptions has been split into its own DTSI file.
Currently, only XVGA and VGA monitors are described.
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Jon Medhurst <tixy@linaro.org>
The amba-clcd device can be configured to use either DMA or, when this
feature is not available, an ioremapped frambuffer in static ram.
In the case of the latter, we must take care not to pass ioremapped
addresses to dma_common_mmap, since this expects only addresses from
dma_mmap_coherent, which reside in the kernel linear mapping.
This patch reworks the fb initialisation code so that either DMA or IO
implementations of the mmap/remove functions are chosen as appropriate.
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This patch hides the dma_(alloc|free)_writecombine() calls behind macros
to allow the amba-clcd.c to be used on architectures that do not provide
this DMA API. With this patch, the *_writecombine() API is only used on
ARM (AArch32).
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This check was attempting to ensure only one clcd device in the
device-tree was probed, however the check fails in the valid case where
the device is a child of another device and the 'reg' value is a offset
from the start of that other device, not an absolute address. This
occurs on vexpress with the motherboard clcd being a child of iofga.
For now, we will just have to rely on there only being one display
device specified in device-tree.
Signed-off-by: Jon Medhurst <tixy@linaro.org>
Add support to parse the display configuration from device tree.
If the board does not provide platform specific functions in the struct
clcd_board contained with the amba device info, then defaults are provided
by the driver.
The device tree configuration can either ask for a DMA setup or provide a
framebuffer address to be remapped into the driver.
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
This reworks HDLCD initialisation to mirror how CLCD does this, in
particular to prepare the clock immediately after it has been got which
ensures that we don't try and enable clocks before they were prepared,
e.g. in the former clk_enable after register_framebuffer().
The reason this issue wasn't noticed before is that we have been
setting CONFIG_FRAMEBUFFER_CONSOLE and this caused
register_framebuffer() to trigger the creation of a console which calls
hdlcd_set_par(), which in turn was preparing and enabling the clock.
Signed-off-by: Jon Medhurst <tixy@linaro.org>
This option can be used with Android to push the graphics subsystem into a
different composition strategy which is more effective when used on hardware
where the framebuffer memory is not cacheable.
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
During TC2 integration a bad config option resulted in HDLCD memory reads
not being serviced often enough. This lead to unsightly screen blanking.
These options allow the developer to count the number of underruns and
to control the color used by HDLCD when an underrun prevents accessing
pixel data. The combination of these two options allow easy diagnosis
of HDLCD underrun conditions.
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
Change color byte location in 32-bit word from argb to abgr to match
the assumption made in Android when 32-bit color displays are used.
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
Add a shortcut when set_par is called to only change the yoffset. Android is
doing that instead of calling pan_display to flip the framebuffer.
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
The driver can be used on either arm or arm64 platforms, but
the latter doesn't have any platform-specific configuration
options, so it must be possible to manually enable the driver.
As the gpiolib is optional for arm64 arch, the gpio/led code
must be compiled conditionally.
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
The driver can be used on either arm or arm64 platforms, but
the latter doesn't have any platform-specific configuration
options, so it must be possible to manually enable the driver.
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
The new arm64 architecture has no idea of platform or machine, so
it doesn't have to define ARCH_VEXPRESS configuration option at
all. To allow user to select the drivers at all, make it depend
on ARM64 as well.
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
The driver uses symbols from fbmem.c so if CONFIG_FB is not
selected we get build errors like:
drivers/built-in.o: In function `vexpress_dvi_fb_select':
:(.text+0x1b6c): undefined reference to `lock_fb_info'
:(.text+0x1ba0): undefined reference to `registered_fb'
Note, this is only a partial solution because we still have a
problem if CONFIG_FB is selected as a module.
Signed-off-by: Jon Medhurst <tixy@linaro.org>
Versatile Express' DVI video output can be connected to one the three
sources - motherboard's CLCD controller or a video signal generated
by one of the daughterboards.
This driver configures the muxer FPGA so the output displays content
of one of the framebuffers in the system (0 by default, can be changed
by user writing to the "fb" sysfs attribute of the muxfpga device).
It will also set up the display formatter mode and keep it up
to date with mode changes requested by the user (eg. with fbset
tool).
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
We include the compatible string "arm,cci" because the semihosting
bootwrapper searches for this to initialise the CCI before boot.
The boot-wrapper will need updating for the new CCI device-tree
bindings when they are stable, then we can remove this old compatible
string from the RTSM device-trees.
Signed-off-by: Jon Medhurst <tixy@linaro.org>
Compile support for PSCI by default and let the command line decide
whether support for SMC calls gets enabled or not.
Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
Performace and power don't appear to be improved by building for ARM,
in fact, there's a suggestion it uses slightly more power.
Signed-off-by: Jon Medhurst <tixy@linaro.org>
For now, lets play safe and not disable any tracing and profiling
options in case these are expected to be present for benchmarking
purposes.
Signed-off-by: Jon Medhurst <tixy@linaro.org>
Use ARM rather than Thumb2 and disable debug and trace features which
aren't essential. (Some trace features are still needed to avoid
breaking Gator).
Signed-off-by: Jon Medhurst <tixy@linaro.org>
Note, for the sake of a faster boot and better performance, we default
to maximum CPU clock frequency (CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE)
and will rely on user-side scripts on Android and Ubuntu to change this
as appropriate for big.LITTLE power saving. E.g. changing LITTLE cores
to 'ondemand'.
Signed-off-by: Jon Medhurst <tixy@linaro.org>
To provide access to LEDs enable
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_GPIO=y
(LED's are available from user side under under /sys/class/leds)
To use the motherboard LEDs to show CPU activity...
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_CPU=y
Signed-off-by: Jon Medhurst <tixy@linaro.org>
Pull another powerpc fix from Benjamin Herrenschmidt:
"I mentioned that while we had fixed the kernel crashes, EEH error
recovery didn't always recover... It appears that I had a fix for
that already in powerpc-next (with a stable CC).
I cherry-picked it today and did a few tests and it seems that things
now work quite well. The patch is also pretty simple, so I see no
reason to wait before merging it."
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
powerpc/eeh: Fix fetching bus for single-dev-PE