mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-19 11:16:57 +00:00
fb & exynos5: avoid USB HID problems with FOC
USB HID gets stuck due to strange kernel error as HDMI starts simulatnously. This workaround delays HDMI init by a second (only in case we build for Exynos5 & FOC with USB) to let scenarious like demo get their USB HID started without much CPU load. ref #796
This commit is contained in:
parent
1113f36e2f
commit
4196b9bc5c
@ -1107,9 +1107,14 @@ static Hdmi * hdmi()
|
|||||||
** Framebuffer::Driver **
|
** Framebuffer::Driver **
|
||||||
*************************/
|
*************************/
|
||||||
|
|
||||||
|
void prepare_fb_driver_init(Mmio::Delayer * const d);
|
||||||
|
|
||||||
int Framebuffer::Driver::init_drv(size_t width, size_t height, Format format,
|
int Framebuffer::Driver::init_drv(size_t width, size_t height, Format format,
|
||||||
Output output, addr_t fb_phys)
|
Output output, addr_t fb_phys)
|
||||||
{
|
{
|
||||||
|
/* FIXME: hook for scenario/platform dependent quirks */
|
||||||
|
prepare_fb_driver_init(delayer());
|
||||||
|
|
||||||
_fb_width = width;
|
_fb_width = width;
|
||||||
_fb_height = height;
|
_fb_height = height;
|
||||||
_fb_format = format;
|
_fb_format = format;
|
||||||
|
23
os/src/drivers/framebuffer/exynos5/foc_usb/quirks.cc
Normal file
23
os/src/drivers/framebuffer/exynos5/foc_usb/quirks.cc
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
* \brief Framebuffer driver quirks for FOC with USB
|
||||||
|
* \author Martin Stein
|
||||||
|
* \date 2013-08-09
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2013 Genode Labs GmbH
|
||||||
|
*
|
||||||
|
* This file is part of the Genode OS framework, which is distributed
|
||||||
|
* under the terms of the GNU General Public License version 2.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Genode includes */
|
||||||
|
#include <util/mmio.h>
|
||||||
|
|
||||||
|
using namespace Genode;
|
||||||
|
|
||||||
|
void prepare_fb_driver_init(Mmio::Delayer * const d)
|
||||||
|
{
|
||||||
|
/* FIXME: on Fiasco.OC USB HID gets stuck if HDMI starts simulatnously */
|
||||||
|
d->usleep(1000000);
|
||||||
|
}
|
19
os/src/drivers/framebuffer/exynos5/quirks.cc
Normal file
19
os/src/drivers/framebuffer/exynos5/quirks.cc
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* \brief Dummies for framebuffer-driver quirks
|
||||||
|
* \author Martin Stein
|
||||||
|
* \date 2013-08-09
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2013 Genode Labs GmbH
|
||||||
|
*
|
||||||
|
* This file is part of the Genode OS framework, which is distributed
|
||||||
|
* under the terms of the GNU General Public License version 2.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Genode includes */
|
||||||
|
#include <util/mmio.h>
|
||||||
|
|
||||||
|
using namespace Genode;
|
||||||
|
|
||||||
|
void prepare_fb_driver_init(Mmio::Delayer * const) { }
|
@ -1,5 +1,17 @@
|
|||||||
TARGET = fb_drv
|
TARGET = fb_drv
|
||||||
REQUIRES = exynos5
|
REQUIRES = exynos5
|
||||||
SRC_CC = main.cc driver.cc
|
SRC_CC += main.cc driver.cc
|
||||||
LIBS = base config
|
SRC_CC += quirks.cc
|
||||||
|
LIBS += base config
|
||||||
INC_DIR += $(PRG_DIR)
|
INC_DIR += $(PRG_DIR)
|
||||||
|
|
||||||
|
ifneq ($(filter foc_arm, $(SPECS)),)
|
||||||
|
ifneq ($(filter usb, $(SPECS)),)
|
||||||
|
SPECS += exynos5_fb_foc_usb_quirk
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
ifneq ($(filter exynos5_fb_foc_usb_quirk, $(SPECS)),)
|
||||||
|
vpath quirks.cc $(PRG_DIR)/foc_usb
|
||||||
|
else
|
||||||
|
vpath quirks.cc $(PRG_DIR)
|
||||||
|
endif
|
||||||
|
Loading…
Reference in New Issue
Block a user