Daniel Matuschek [Tue, 17 Oct 2017 08:30:28 +0000 (10:30 +0200)]
Fixed a bug when using 352.8kHz sample rate
Signed-off-by: Daniel Matuschek <daniel@hifiberry.com>
Allo [Mon, 16 Oct 2017 16:52:24 +0000 (22:22 +0530)]
Bug fix: initial max volume level & default mode value. (#2224)
Bug fix: initial max volume level & default mode value.
Signed-off-by: allocom <sparky-dev@allo.com>
Phil Elwell [Fri, 13 Oct 2017 07:47:50 +0000 (08:47 +0100)]
overlays/README: Remove trailing whitespace
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
neilneil2000 [Thu, 12 Oct 2017 16:29:43 +0000 (17:29 +0100)]
GPIO and gpio-poweroff clarifications
Notes added:
1) All GPIO references use the hardware numbering scheme
2) Enabling gpio-poweroff prevents the ability to boot the pi by driving GPIO3 low
Phil Elwell [Wed, 11 Oct 2017 12:48:04 +0000 (13:48 +0100)]
amba-pl011: Report AUTOCTS capability to framework
The PL011 has full hardware RTS/CTS support which is enabled by
the driver when flow control is requested. However, it doesn't
notify the UART framework of the fact, causing the software CTS
support to be enabled at the same time.
Software CTS triggers the sending of another batch of characters
when CTS becomes asserted. The pl011 interrupt handler processes
the CTIS bit before TXIS, which can cause some characters to be
sent between the time that the TXIS bit first becomes asserted
and the time it is handled by a call to px011_tx_chars. This
would be fine were it not for the optimisation in pl011_tx_char
that assumes the FIFO is half-empty if called from the interrupt
handler and skips the checking of the FIFO status register before
sending each character, leading to data loss if the FIFO is more
than half-full.
Prevent the data loss and improve efficiency by indicating the
AUTOCTS support.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Phil Elwell [Fri, 6 Oct 2017 12:23:32 +0000 (13:23 +0100)]
brcmfmac: request_firmware_direct is quieter
Since we don't have any CLM-capable firmware yet, silence the warning
of its absence by using request_firmware_direct, which should also
be marginally quicker.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Chung-Hsien Hsu [Mon, 15 May 2017 01:11:05 +0000 (20:11 -0500)]
brcmfmac: add CLM download support
Future firmwares will be provided with minimal built-in CLM - the
NULL region (#n/0) becomes the initial country. It cannot be changed
until downloading a CLM blob file with some other regions. This patch
adds support for CLM blob file download. The blob file should be named
as firmware but with extension .clm_blob (e.g.
brcmfmac43430-sdio.clm_blob) and be placed in /lib/firmware/brcm/.
Change-Id: I0901a4b38592fe28d0adeb8f3e2402292842f169
Signed-off-by: Chung-Hsien Hsu <cnhu@cypress.com>
Christoph Hellwig [Thu, 7 Sep 2017 11:54:35 +0000 (13:54 +0200)]
bsg-lib: don't free job in bsg_prepare_job
commit
f507b54dccfd8000c517d740bc45f20c74532d18 upstream.
The job structure is allocated as part of the request, so we should not
free it in the error path of bsg_prepare_job.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Phil Elwell [Fri, 29 Sep 2017 09:32:19 +0000 (10:32 +0100)]
amba_pl011: Insert mb() for correct FIFO handling
The pl011 register accessor functions use the _relaxed versions of the
standard readl() and writel() functions, meaning that there are no
automatic memory barriers. When polling a FIFO status register to check
for fullness, it is necessary to ensure that any outstanding writes have
completed; otherwise the flags are effectively stale, making it possible
that the next write is to a full FIFO.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Phil Elwell [Fri, 29 Sep 2017 09:32:19 +0000 (10:32 +0100)]
amba_pl011: Add cts-event-workaround DT property
The BCM2835 PL011 implementation seems to have a bug that can lead to a
transmission lockup if CTS changes frequently. A workaround was added to
the driver with a vendor-specific flag to enable it, but this flag is
currently not set for ARM implementations.
Add a "cts-event-workaround" property to Pi DTBs and use the presence
of that property to force the flag to be enabled in the driver.
See: https://github.com/raspberrypi/linux/issues/1280
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
David H [Wed, 4 Oct 2017 11:43:07 +0000 (04:43 -0700)]
bcm2835-camera: Fix timestamp calculation problem (#2214)
* bcm2835-camera: Fix timestamp calculation problem
Use div_s64_rem() to convert usec timestamp to timeval
to avoid integer signedness bug.
* bcm2835-camera: Store kernel start time in NSEC instead of USEC
* bcm2835-camera: Reword debug message for clarity
Kevin Cernekee [Sun, 17 Sep 2017 04:08:23 +0000 (21:08 -0700)]
brcmfmac: Delete redundant length check
brcmf_fweh_process_event() sets event->datalen to the
endian-swapped value of event_packet->msg.datalen, which is the
same as emsg.datalen. This length is already validated in
brcmf_fweh_process_event(), so there is no need to check it
again upon dequeuing the event.
Suggested-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Kevin Cernekee <cernekee@chromium.org>
Kevin Cernekee [Sun, 17 Sep 2017 04:08:22 +0000 (21:08 -0700)]
brcmfmac: Avoid possible out-of-bounds read
In brcmf_p2p_notify_rx_mgmt_p2p_probereq(), chanspec is assigned before
the length of rxframe is validated. This could lead to uninitialized
data being accessed (but not printed). Since we already have a
perfectly good endian-swapped copy of rxframe->chanspec in ch.chspec,
and ch.chspec is not modified by decchspec(), avoid the extra
assignment and use ch.chspec in the debug print.
Suggested-by: Mattias Nissler <mnissler@chromium.org>
Signed-off-by: Kevin Cernekee <cernekee@chromium.org>
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
popcornmix [Fri, 29 Sep 2017 15:15:01 +0000 (16:15 +0100)]
vcsm: Fix up macros to avoid breaking numbers used by existing apps
Dan Pasanen [Thu, 21 Sep 2017 12:41:02 +0000 (07:41 -0500)]
vcsm: use dma APIs for cache functions
* Will handle multi-platform builds
Dan Pasanen [Thu, 21 Sep 2017 14:57:44 +0000 (09:57 -0500)]
vcsm: add macros for cache functions
Dan Pasanen [Thu, 21 Sep 2017 14:55:42 +0000 (09:55 -0500)]
arm: partially revert
702b94bff3c50542a6e4ab9a4f4cef093262fe65
* Re-expose some dmi APIs for use in VCSM
Dave Stevenson [Sun, 24 Sep 2017 21:43:16 +0000 (22:43 +0100)]
vc-sm: Fix a printf of a dma_addr_t from %u to %pad
Avoids issues when other build parameters result in
dma_addr_t being a 64 bit value.
See #2196.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
James Hughes [Fri, 22 Sep 2017 09:24:04 +0000 (10:24 +0100)]
Touchscreen spurious event fix
Touchscreen driver was not checking event type,
which meant bad coords that arrived with the
finger up event were being used, causing this
spurious coordinate event.
Fix is to ignore all finger up events.
Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
Dan Pasanen [Wed, 20 Sep 2017 15:17:41 +0000 (10:17 -0500)]
vcsm: fix multi-platform build
Phil Elwell [Mon, 18 Sep 2017 11:01:46 +0000 (12:01 +0100)]
cgroup: Add kernel param to enable memory group
cgroup support is useful, but enabling the "memory" cgroup has a 32-byte
overhead per page. Arrange that "memory" cgroup is disabled by default
unless the "cgroup_memory" parameter is set to a true value.
See: https://github.com/raspberrypi/issues/1950
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Phil Elwell [Mon, 18 Sep 2017 09:07:54 +0000 (10:07 +0100)]
Revert "config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cost). Enable with cgroup_enable=memory."
This reverts commit
7dbc189967bef8e7f431c982557d0e73eb13f161.
Phil Elwell [Thu, 14 Sep 2017 15:16:24 +0000 (16:16 +0100)]
config: Add CONFIG_GPIO_WATCHDOG=m
Enable the gpio_wdt module, to support external watchdogs.
See: https://github.com/raspberrypi/linux/issues/2199
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
popcornmix [Tue, 5 Sep 2017 15:24:03 +0000 (16:24 +0100)]
vcsm: Handle the clean+invalidate case directly
Dave Stevenson [Tue, 5 Sep 2017 09:18:33 +0000 (10:18 +0100)]
vcsm: Replace SM_PDE_T with sm_pde_t
Follows the Linux kernel coding style
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Tue, 5 Sep 2017 09:17:18 +0000 (10:17 +0100)]
vcsm: Replace SM_PRIV_DATA_T with sm_priv_data_t
Follows the Linux kernel coding style
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Tue, 5 Sep 2017 09:16:07 +0000 (10:16 +0100)]
vcsm: Replace SM_STATE_T with sm_state_t
Follow the Linux kernel coding style
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Tue, 5 Sep 2017 09:15:25 +0000 (10:15 +0100)]
vcsm: Replace SM_STATS_T with sm_stats_t
Follows the kernel coding style
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Tue, 5 Sep 2017 09:12:21 +0000 (10:12 +0100)]
vcsm: Replace SM_RESOURCE_T with sm_resource_t
Follow the Linux kernel coding style.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 16:55:07 +0000 (17:55 +0100)]
vcsm: Remove VC_SM_LOCK_CACHE_MODE_T typedef.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 16:47:32 +0000 (17:47 +0100)]
vcsm: Fix "Prefer kcalloc over kzalloc with multiply"
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 16:45:34 +0000 (17:45 +0100)]
vcsm: Fix "void function return statements are not generally useful"
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 16:38:27 +0000 (17:38 +0100)]
vcsm: Fix "struct vm_operations_struct should normally be const"
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 16:36:11 +0000 (17:36 +0100)]
vcsm: Correct "long unsigned int" to "unsigned long"
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 16:33:49 +0000 (17:33 +0100)]
vcsm: Fix use of S_IRUGO and use 0444 instead
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 16:24:48 +0000 (17:24 +0100)]
vcsm: Fix spaces around operators.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 16:29:37 +0000 (17:29 +0100)]
vcsm: Fix indentation of switch/case statement.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 16:21:09 +0000 (17:21 +0100)]
vcsm: Fix lots of block quote formatting issues
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 16:01:11 +0000 (17:01 +0100)]
vcsm: Fix erroneous space in 'if' statement.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 15:59:49 +0000 (16:59 +0100)]
vcsm: Fix blank lines after declarations.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 15:55:08 +0000 (16:55 +0100)]
vcsm: "unsigned int" preferred over "unsigned" fixed.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 15:50:29 +0000 (16:50 +0100)]
vcsm: Remove typedef of VC_VCHI_SM_HANDLE_T
Replaced with struct sm_instance *.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 15:34:13 +0000 (16:34 +0100)]
vcsm: Fix block comment formatting
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 15:29:53 +0000 (16:29 +0100)]
vcsm: Correct block comment style on licence headers.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 1 Sep 2017 15:26:12 +0000 (16:26 +0100)]
vcsm: Remove all typedefs from vc_sm_defs.h and calling code
Remove typedefs on the structures that make up the IPC
to the firmware for VCSM. Update all calling code appropriately.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Wed, 15 Feb 2017 11:17:44 +0000 (11:17 +0000)]
VCSM: New option to import a DMABUF for VPU use
Takes a dmabuf, and then calls over to the VPU to wrap
it into a suitable handle.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 25 Aug 2017 14:58:57 +0000 (15:58 +0100)]
vcsm: Convert to loading via device tree.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 19 May 2017 13:29:12 +0000 (14:29 +0100)]
vcsm: code-style: Fix comment indentation
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Wed, 15 Feb 2017 11:16:05 +0000 (11:16 +0000)]
VCSM: Specify pointers in IPC msgs as uint32_t
Pointers were specified as void* which will fail
rather badly if the kernel is switched to 64 bit.
GPU wants 32 bit addresses, so use uint32_t and
cast whereever necessary.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
popcornmix [Mon, 4 Sep 2017 19:48:02 +0000 (20:48 +0100)]
vcsm: Allow both clean and invalidate to be requested
Phil Elwell [Thu, 24 Aug 2017 15:16:16 +0000 (16:16 +0100)]
brcmfmac: Disable ARP offloading when promiscuous
This is a test patch for brcmfmac from Franky Lin at Broadcom to disable
ARP offloading when in promiscuous mode, re-enabling the ability to
sniff ARP packets over WiFi.
See: https://github.com/raspberrypi/linux/issues/2171
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Eric Anholt [Fri, 19 Dec 2014 00:07:15 +0000 (16:07 -0800)]
mm: Remove the PFN busy warning
See commit
dae803e165a11bc88ca8dbc07a11077caf97bbcb -- the warning is
expected sometimes when using CMA. However, that commit still spams
my kernel log with these warnings.
Signed-off-by: Eric Anholt <eric@anholt.net>
popcornmix [Fri, 25 Aug 2017 16:09:38 +0000 (17:09 +0100)]
vcsm: Allow build with multi-platform v6-v7
Eric Anholt [Mon, 17 Apr 2017 16:26:03 +0000 (09:26 -0700)]
drm/vc4: Fix refcounting of runtime PM get if it errors out.
We were returning without decrementing if the error happened, meaning
that at the next submit we wouldn't try to bring up the power domain.
Signed-off-by: Eric Anholt <eric@anholt.net>
Link: http://patchwork.freedesktop.org/patch/msgid/20170417162603.12726-1-eric@anholt.net
Reviewed-by: Sean Paul <seanpaul@chromium.org>
(cherry picked from commit
925d05e1f825db9490da33afe35bd5383d301e97)
Eric Anholt [Mon, 24 Jul 2017 21:34:55 +0000 (14:34 -0700)]
drm/vc4: Demote user-accessible DRM_ERROR paths to DRM_DEBUG.
Userspace shouldn't be able to spam dmesg by passing bad arguments.
This has particularly become an issues since we started using a bad
argument to set_tiling to detect if set_tiling was supported.
Signed-off-by: Eric Anholt <eric@anholt.net>
Fixes: 83753117f1de ("drm/vc4: Add get/set tiling ioctls.")
Eric Anholt [Sat, 15 Jul 2017 00:33:08 +0000 (17:33 -0700)]
drm/vc4: Fix pitch setup for T-format scanout.
The documentation said to use src_w here, and I didn't consider that
we actually needed to be using pitch somewhere in our setup. Fixes
scanout on my DSI panel when X11 does initial setup with 1920x1080
HDMI and 800x480 DSI both at 0,0 of the same framebuffer.
Signed-off-by: Eric Anholt <eric@anholt.net>
Fixes: 98830d91da08 ("drm/vc4: Add T-format scanout support.")
Hans Verkuil [Sun, 16 Jul 2017 10:48:03 +0000 (12:48 +0200)]
drm/vc4: prepare for CEC support
In order to support CEC the hsm clock needs to be enabled in
vc4_hdmi_bind(), not in vc4_hdmi_encoder_enable(). Otherwise you wouldn't
be able to support CEC when there is no hotplug detect signal, which is
required by some monitors that turn off the HPD when in standby, but keep
the CEC bus alive so they can be woken up.
The HDMI core also has to be enabled in vc4_hdmi_bind() for the same
reason.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20170716104804.48308-3-hverkuil@xs4all.nl
(cherry picked from commit
10ee275cb12f884ce09bed69ea387eae73d7fece)
Boris Brezillon [Tue, 11 Apr 2017 16:39:25 +0000 (18:39 +0200)]
drm/vc4: Add runtime PM support to the HDMI encoder driver
The HDMI driver is currently enabling all clocks at probe time and
keeps the power-domain connected to the HDMI encoder enabled.
Move all activation code to vc4_hdmi_encoder_enable() and make sure
the clks and power domain are released when the HDMI encoder is not used
by adding deactivation steps in vc4_hdmi_encoder_disable().
Note that the sequencing imposed by the IP requires that we move
vc4_hdmi_encoder_mode_set() code into vc4_hdmi_encoder_enable().
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit
4f6e3d66ac522dec9733d433ad00e8e77747c372)
Eric Anholt [Tue, 27 Jun 2017 19:58:33 +0000 (12:58 -0700)]
drm/vc4: Fix misleading name of the continuous flag.
The logic was all right in the end, the name was just backwards.
Signed-off-by: Eric Anholt <eric@anholt.net>
Link: http://patchwork.freedesktop.org/patch/msgid/20170627195839.3338-3-eric@anholt.net
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
(cherry picked from commit
ec878c0756a0c202e86256dca1de307ab1189ab8)
Eric Anholt [Tue, 27 Jun 2017 19:58:32 +0000 (12:58 -0700)]
drm/vc4: Fix DSI T_INIT timing.
The DPHY spec requires a much larger T_INIT than I was specifying
before. In the absence of clear specs from the slave of what their
timing is, just use the value that the firmware was using.
Signed-off-by: Eric Anholt <eric@anholt.net>
Link: http://patchwork.freedesktop.org/patch/msgid/20170627195839.3338-2-eric@anholt.net
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
(cherry picked from commit
e65d51126f89a0d67ee6c5df58363730b1410ab5)
Eric Anholt [Tue, 25 Jul 2017 18:27:18 +0000 (11:27 -0700)]
drm/vc4: Convert more lock requirement comments to lockdep assertions.
Since I do my development with lockdep on, this will help make sure I
don't introduce bugs here.
Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20170725182718.31468-3-eric@anholt.net
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
(cherry picked from commit
4e6b1e91253ebf701b4ec3586cba5596527a4d0a)
Eric Anholt [Tue, 25 Jul 2017 18:27:17 +0000 (11:27 -0700)]
drm/vc4: Add an ioctl for labeling GEM BOs for summary stats
This has proven immensely useful for debugging memory leaks and
overallocation (which is a rather serious concern on the platform,
given that we typically run at about 256MB of CMA out of up to 1GB
total memory, with framebuffers that are about 8MB ecah).
The state of the art without this is to dump debug logs from every GL
application, guess as to kernel allocations based on bo_stats, and try
to merge that all together into a global picture of memory allocation
state. With this, you can add a couple of calls to the debug build of
the 3D driver and get a pretty detailed view of GPU memory usage from
/debug/dri/0/bo_stats (or when we debug print to dmesg on allocation
failure).
The Mesa side currently labels at the gallium resource level (so you
see that a 1920x20 pixmap has been created, presumably for the window
system panel), but we could extend that to be even more useful with
glObjectLabel() names being sent all the way down to the kernel.
(partial) example of sorted debugfs output with Mesa labeling all
resources:
kernel BO cache: 16392kb BOs (3)
tiling shadow 1920x1080: 8160kb BOs (1)
resource 1920x1080@32/0: 8160kb BOs (1)
scanout resource 1920x1080@32/0: 8100kb BOs (1)
kernel: 8100kb BOs (1)
v2: Use strndup_user(), use lockdep assertion instead of just a
comment, fix an array[-1] reference, extend comment about name
freeing.
Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20170725182718.31468-2-eric@anholt.net
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit
f30994622b2bf8e4fa224237ac65304b27a9cb6a)
Eric Anholt [Tue, 25 Jul 2017 18:27:16 +0000 (11:27 -0700)]
drm/vc4: Start using u64_to_user_ptr.
Chris Wilson pointed out this little cleanup in a review of new code,
so let's fix up the code I was copying from.
Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20170725182718.31468-1-eric@anholt.net
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
(cherry picked from commit
95d7cbcb6fbe3885d7a968cc86b98a08466742af)
Eric Anholt [Wed, 2 Aug 2017 18:46:51 +0000 (11:46 -0700)]
drm/vc4: Don't disable DSI clocks on component unload.
The clocks are enabled/disabled at encoder enable/disable time, not at
component load. Fixes a WARN_ON at boot if V3D fails to probe.
Fixes: 4078f5757144 ("drm/vc4: Add DSI driver")
Signed-off-by: Eric Anholt <eric@anholt.net>
Eric Anholt [Wed, 2 Aug 2017 19:48:04 +0000 (12:48 -0700)]
drm/vc4: Fix double destroy of the BO cache on teardown.
It's also destroyed from the top level vc4_drv.c initialization, which
is where the cache was actually initialized from.
This used to just involve duplicate del_timer() and cancel_work_sync()
being called, but it started causing kmalloc issues once we
double-freed the new BO label array.
Fixes: 1908a876f909 ("drm/vc4: Add an ioctl for labeling GEM BOs for summary stats")
Signed-off-by: Eric Anholt <eric@anholt.net>
popcornmix [Tue, 22 Aug 2017 12:48:22 +0000 (13:48 +0100)]
cache: Fix up previous commit for v6
popcornmix [Fri, 18 Aug 2017 17:46:20 +0000 (18:46 +0100)]
vcsm: Provide new ioctl to clean/invalidate a 2D block
popcornmix [Fri, 18 Aug 2017 17:45:36 +0000 (18:45 +0100)]
vcsm: Provide flag to map pages up front
popcornmix [Fri, 18 Aug 2017 16:27:36 +0000 (17:27 +0100)]
cache: export clean and invalidate
popcornmix [Wed, 16 Aug 2017 21:01:33 +0000 (22:01 +0100)]
config: Enable CONFIG_BRCMDBG temporarily for debugging on pi0
Phil Elwell [Wed, 16 Aug 2017 15:52:50 +0000 (16:52 +0100)]
BCM270X_DT: Set spidev spi-max-frequency to 125MHz
The BCM2835 SPI controllers have a maximum bus clock of half the system
clock speed, so with the 250MHz system clock found on Raspberry Pis
you get a theoretical maximum bus speed of 125MHz. Note that this
speed is unlikely to be reliable, and the maximum usable bus spee will
depend on both the attached device and the wiring.
See: https://github.com/raspberrypi/linux/issues/2165
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
popcornmix [Tue, 15 Aug 2017 15:48:46 +0000 (16:48 +0100)]
config: Enable CONFIG_BRCMDBG temporarily for debugging
allocom [Sat, 5 Aug 2017 05:57:07 +0000 (11:27 +0530)]
allo-digione: 192kHz clicking sound fix
See: https://github.com/raspberrypi/linux/pull/2149
allocom [Sat, 5 Aug 2017 05:56:47 +0000 (11:26 +0530)]
allo-piano-dac-plus: Master volume added
Master volume added, which controls both DACs volumes.
See: https://github.com/raspberrypi/linux/pull/2149
Eric Cooper [Sat, 29 Jul 2017 19:52:58 +0000 (15:52 -0400)]
overlays: i2c-rtc: add m41t62
Add support for the ST M41T62 real-time clock chip.
allocom [Thu, 27 Jul 2017 18:19:36 +0000 (23:49 +0530)]
Bug fix: unmuted
Matthias Reichl [Sun, 7 May 2017 14:24:57 +0000 (16:24 +0200)]
ASoC: bcm2835: Enforce full symmetry
bcm2835's configuration registers can't be changed when a stream
is running, which means asymmetric configurations aren't supported.
Channel and rate symmetry are already enforced by constraints
but samplebits had been missed.
As hw_params doesn't check for symmetry constraints by itself
and just returns success if a stream is running this led to
situations where asymmetric configurations were seeming to
succeed but of course didn't work because the hardware wasn't
configured at all.
Fix this by adding the missing samplerate symmetry constraint.
Signed-off-by: Matthias Reichl <hias@horus.com>
Matthias Reichl [Sun, 7 May 2017 14:19:54 +0000 (16:19 +0200)]
ASoC: bcm2835: Support additional samplerates up to 384kHz
Sample rates are only restricted by the capabilities of the
clock driver, so use SNDRV_PCM_RATE_CONTINUOUS instead of
SNDRV_PCM_RATE_8000_192000.
Tests (eg with pcm5122) have shown that bcm2835 works fine
in 384kHz/32bit stereo mode, so change the maximum allowed
rate from 192kHz to 384kHz.
Signed-off-by: Matthias Reichl <hias@horus.com>
Matthias Reichl [Sun, 7 May 2017 13:30:50 +0000 (15:30 +0200)]
ASoC: bcm2835: Support left/right justified and DSP modes
DSP modes and left/right justified modes can be supported
on bcm2835 by configuring the frame sync polarity and
frame sync length registers and by adjusting the
channel data position registers.
Clock and frame sync polarity handling in hw_params has
been refactored to make the interaction between logical
rising/falling edge frame start and physical configuration
(changed by normal/inverted polarity modes) clearer.
Modes where the first active data bit is transmitted immediately
after frame start (eg DSP mode B with slot 0 active)
only work reliable if bcm2835 is configured as frame master.
In frame slave mode channel swap (or shift, this isn't quite
clear yet) can occur.
Currently the driver only warns if an unstable configuration
is detected but doensn't prevent using them.
Signed-off-by: Matthias Reichl <hias@horus.com>
Matthias Reichl [Sun, 7 May 2017 09:34:26 +0000 (11:34 +0200)]
ASoC: bcm2835: Add support for TDM modes
bcm2835 supports arbitrary positioning of channel data within
a frame and thus is capable of supporting TDM modes. Since
the driver is limited to 2-channel operations only TDM setups
with exactly 2 active slots are supported.
Logical TDM slot numbering follows the usual convention:
For I2S-like modes, with a 50% duty-cycle frame clock,
slots 0, 2, ... are transmitted in the first half of a frame,
slots 1, 3, ... are transmitted in the second half.
For DSP modes slot numbering is ascending: 0, 1, 2, 3, ...
Channel position calculation has been refactored to use
TDM info and moved out of hw_params.
set_tdm_slot, set_bclk_ratio and hw_params now check more
strictly if the configuration is valid. Illegal configurations
like odd number of slots in I2S mode, data lengths exceeding
slot width or frame sizes larger than the hardware limit of
1024 are rejected. Also hw_params now properly checks for
errors from clk_set_rate.
Allowed PCM formats are already guarded by stream constraints,
thus the formats check in hw_params has been removed and
data_length is now retrieved via params_width().
Also standard functions like snd_soc_params_to_bclk are now
being used instead of manual calculations to make the code
more readable.
Special care has been taken to ensure that set_bclk_ratio works
as before. The bclk ratio is mapped to a 2-channel TDM config
with a slot width of half the ratio. In order to support odd ratios,
which can't be expressed via a TDM config, the ratio (frame length)
is stored and used by hw_params.
Signed-off-by: Matthias Reichl <hias@horus.com>
James Hughes [Fri, 21 Jul 2017 08:55:12 +0000 (09:55 +0100)]
Sets the BCDC priority to constant 0
This is to workaround for a possible issue in the
wireless chip firmware where some packets with
higher priorities seem to go missing.
See https://github.com/raspberrypi/linux/issues/1342 for
details.
Noralf Trønnes [Sat, 15 Jul 2017 22:13:36 +0000 (00:13 +0200)]
BCM270X_DT: Add PaPiRus overlay
Add Device Tree overlay for the PaPiRus ePaper Screens by Pi Supply.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Noralf Trønnes [Sat, 15 Jul 2017 19:24:18 +0000 (21:24 +0200)]
config: Enable TINYDRM and drivers
Enable tinydrm library, mi0283qt and repaper drivers.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Noralf Trønnes [Wed, 31 May 2017 20:27:40 +0000 (22:27 +0200)]
drm/tinydrm: Add RePaper e-ink driver
This adds support for the Pervasive Displays RePaper branded displays.
The controller code is taken from the userspace driver available
through repaper.org. Only the V231 film is supported since the others
are EOL.
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
[rebase on 4.9]
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Noralf Trønnes [Wed, 31 May 2017 20:26:53 +0000 (22:26 +0200)]
drm/tinydrm: Add tinydrm_xrgb8888_to_gray8() helper
Drm has no monochrome or greyscale support so add a conversion
from the common format XR24.
Also reorder includes into the common order.
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
[rebase on 4.9]
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Noralf Trønnes [Sun, 26 Mar 2017 14:25:29 +0000 (16:25 +0200)]
drm/tinydrm: Fix drm_driver.fops.owner
drm_driver.fops can't be shared since the owner then becomes tinydrm.ko.
Move the fops declaration to the driver.
v2: Use DEFINE_DRM_GEM_CMA_FOPS
Reported-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170326142529.16938-1-noralf@tronnes.org
Daniel Vetter [Wed, 8 Mar 2017 14:12:56 +0000 (15:12 +0100)]
drm: Create DEFINE_DRM_GEM_CMA_FOPS and roll it out to drivers
Less code ftw.
This converts all drivers except the tinydrm helper module. That one
needs more work, since it gets the THIS_MODULE reference from
tinydrm.ko instead of the actual driver module like it should.
Probably needs a similar trick like I used here with generating the
entire struct with a macro.
Cc: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Acked-by: Liviu Dudau <Liviu.Dudau@arm.com>
Reviewed-by: Liviu Dudau <Liviu.Dudau@arm.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
[rebased on 4.9, only macro no driver changes]
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Noralf Trønnes [Thu, 23 Feb 2017 13:29:57 +0000 (14:29 +0100)]
drm/tinydrm: helpers: Properly fix backlight dependency
BACKLIGHT_CLASS_DEVICE was selected in the last version of the
tinydrm patchset to fix the backlight dependency, but the
ifdef CONFIG_BACKLIGHT_CLASS_DEVICE was forgotten. Fix that.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Noralf Trønnes [Thu, 23 Feb 2017 13:29:56 +0000 (14:29 +0100)]
drm/tinydrm: mipi-dbi: Fix field width specifier warning
This warning is seen on 64-bit builds in functions:
'mipi_dbi_typec1_command':
'mipi_dbi_typec3_command_read':
'mipi_dbi_typec3_command':
>> drivers/gpu/drm/tinydrm/mipi-dbi.c:65:20: warning: field width specifier '*' expects argument of type 'int', but argument 5 has type 'size_t {aka long unsigned int}' [-Wformat=]
DRM_DEBUG_DRIVER("cmd=%02x, par=%*ph\n", cmd, len, data); \
^
include/drm/drmP.h:228:40: note: in definition of macro 'DRM_DEBUG_DRIVER'
drm_printk(KERN_DEBUG, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
^~~
>> drivers/gpu/drm/tinydrm/mipi-dbi.c:671:2: note: in expansion of macro 'MIPI_DBI_DEBUG_COMMAND'
MIPI_DBI_DEBUG_COMMAND(cmd, parameters, num);
^~~~~~~~~~~~~~~~~~~~~~
Fix by casting 'len' to int in the macro MIPI_DBI_DEBUG_COMMAND().
There is no chance of overflow.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Noralf Trønnes [Thu, 23 Feb 2017 13:29:55 +0000 (14:29 +0100)]
drm/tinydrm: mipi-dbi: Silence: ‘cmd’ may be used uninitialized
Fix this warning:
drivers/gpu/drm/tinydrm/mipi-dbi.c: In function ‘mipi_dbi_debugfs_command_write’:
drivers/gpu/drm/tinydrm/mipi-dbi.c:905:8: warning: ‘cmd’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ret = mipi_dbi_command_buf(mipi, cmd, parameters, i);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cmd can't be used uninitialized, but to satisfy the compiler,
initialize it to zero.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Noralf Trønnes [Sun, 22 Jan 2017 14:23:48 +0000 (15:23 +0100)]
drm/tinydrm: Add support for Multi-Inno MI0283QT display
Add driver to support the Multi-Inno MI0283QT display panel.
It has an ILI9341 MIPI DBI compatible display controller.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Thierry Reding <treding@nvidia.com>
Noralf Trønnes [Sat, 21 Jan 2017 23:30:47 +0000 (00:30 +0100)]
drm/tinydrm: Add MIPI DBI support
Add support for MIPI DBI compatible controllers.
Interface type C option 1 and 3 are supported (SPI).
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Thierry Reding <treding@nvidia.com>
[rebased on 4.9]
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Noralf Trønnes [Sat, 21 Jan 2017 23:19:51 +0000 (00:19 +0100)]
drm/tinydrm: Add helper functions
Add common functionality needed by many tinydrm drivers.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Thierry Reding <treding@nvidia.com>
[rebased on 4.9]
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Noralf Trønnes [Sat, 21 Jan 2017 23:15:00 +0000 (00:15 +0100)]
drm: Add DRM support for tiny LCD displays
tinydrm provides helpers for very simple displays that can use
CMA backed framebuffers and need flushing on changes.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Thierry Reding <treding@nvidia.com>
[rebased on 4.9]
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Noralf Trønnes [Thu, 26 Jan 2017 22:56:03 +0000 (23:56 +0100)]
drm: debugfs: Remove all files automatically on cleanup
Instead of having the drivers call drm_debugfs_remove_files() in
their drm_driver->debugfs_cleanup hook, do it automatically by
traversing minor->debugfs_list.
Also use debugfs_remove_recursive() so drivers who add their own
debugfs files don't have to keep track of them for removal.
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170126225621.12314-2-noralf@tronnes.org
[rebased on 4.9]
Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Phil Elwell [Wed, 19 Jul 2017 14:20:50 +0000 (15:20 +0100)]
overlays: i2c1-bcm2708: Don't overwrite i2c1 pins node
It is bad practise to overwrite an entire node in an overlay. Instead,
target the node and overwrite any properties that need changing.
See: https://github.com/raspberrypi/linux/pull/2118
Suggested-by: soodvarun78 <soodvarun78@gmail.com>
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Phil Elwell [Tue, 18 Jul 2017 14:30:48 +0000 (15:30 +0100)]
bcm2835-mmc: Prevent DMA race condition
The end of a read operation is triggered by the completion of the DMA
transfer, but writes are complete when the data IRQ is raised. The
bcm2835-mmc driver contains a race between the handling of the DMA
completion interrupt and the submission of the next request. Fix the
race by deferring the completion of the request until the DMA
transfer finishes.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Conn [Mon, 17 Jul 2017 02:25:43 +0000 (03:25 +0100)]
config: enhance DualShock3 controller support
Enable rumble support in Sony HID & HID battery strength.
Phil Elwell [Fri, 14 Jul 2017 11:59:55 +0000 (12:59 +0100)]
bcm2835-mmc: Fix DMA usage
The previous change ("bcm2835-mmc: Only claim one DMA channel")
used an incorrect variable, the effect of which was to prevent
DMA from being used at all. Fix that bug by using the right
variable.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Matthias Reichl [Mon, 10 Jul 2017 09:05:17 +0000 (11:05 +0200)]
config: enable generic S/PDIF codec drivers (#2104)
These drivers can be used as dummy ADC/DAC drivers for
attaching general codecs that don't need to be configured.
This option will build 2 additional drivers, spdif_receiver
and spdif_transmitter.
Since these drivers have DT bindings they are handy for quick
testing of I2S peripherals with simple-audio-card.
eg:
fragment@0 {
target-path = "/";
__overlay__ {
dummy_receiver: spdif-receiver {
#address-cells = <0>;
#size-cells = <0>;
#sound-dai-cells = <0>;
compatible = "linux,spdif-dir";
status = "okay";
};
};
};
Signed-off-by: Matthias Reichl <hias@horus.com>