linux-4.9.git
7 years agoAdd overlay for ads1115 ADCs (#1864)
Scott Ellis [Wed, 1 Mar 2017 12:22:24 +0000 (07:22 -0500)]
Add overlay for ads1115 ADCs (#1864)

7 years agoAdd support for Fe-Pi audio sound card. (#1867)
Fe-Pi [Wed, 1 Mar 2017 11:42:43 +0000 (04:42 -0700)]
Add support for Fe-Pi audio sound card. (#1867)

Fe-Pi Audio Sound Card is based on NXP SGTL5000 codec.
Mechanical specification of the board is the same the Raspberry Pi Zero.
3.5mm jacks for Headphone/Mic, Line In, and Line Out.

Signed-off-by: Henry Kupis <fe-pi@cox.net>
7 years agoSQUASH: Add LOCO-V2 overlay from last commit
Phil Elwell [Sun, 26 Feb 2017 01:13:02 +0000 (01:13 +0000)]
SQUASH: Add LOCO-V2 overlay from last commit

7 years agosound: Support for Dion Audio LOCO-V2 DAC-AMP HAT
Miquel [Fri, 24 Feb 2017 19:51:06 +0000 (20:51 +0100)]
sound: Support for Dion Audio LOCO-V2 DAC-AMP HAT

Signed-off-by: Miquel Blauw <info@dionaudio.nl>
7 years agoconfig: add slcan kernel module
popcornmix [Fri, 27 Jan 2017 18:49:30 +0000 (18:49 +0000)]
config: add slcan kernel module

See: https://github.com/raspberrypi/linux/issues/1819

7 years agoAdd ads1015 driver to config
Scott Ellis [Thu, 23 Feb 2017 16:56:20 +0000 (11:56 -0500)]
Add ads1015 driver to config

7 years agoclk-bcm2835: Add claim-clocks property
Phil Elwell [Mon, 13 Feb 2017 17:20:08 +0000 (17:20 +0000)]
clk-bcm2835: Add claim-clocks property

The claim-clocks property can be used to prevent PLLs and dividers
from being marked as critical. It contains a vector of clock IDs,
as defined by dt-bindings/clock/bcm2835.h.

Use this mechanism to claim PLLD_DSI0, PLLD_DSI1, PLLH_AUX and
PLLH_PIX for the vc4_kms_v3d driver.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agoclk-bcm2835: Mark used PLLs and dividers CRITICAL
Phil Elwell [Mon, 13 Feb 2017 17:20:08 +0000 (17:20 +0000)]
clk-bcm2835: Mark used PLLs and dividers CRITICAL

The VPU configures and relies on several PLLs and dividers. Mark all
enabled dividers and their PLLs as CRITICAL to prevent the kernel from
switching them off.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agobrcmfmac: Mute expected startup 'errors'
Phil Elwell [Fri, 17 Feb 2017 15:26:13 +0000 (15:26 +0000)]
brcmfmac: Mute expected startup 'errors'

The brcmfmac WiFi driver always complains about the '00' country code
and the firmware version is reported as an error. Modify the driver to
ignore '00' silently and display firmware version at INFO level.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agoBCM270X_DT: Add SMSC ethernet controller to DT
Phil Elwell [Fri, 17 Feb 2017 09:47:11 +0000 (09:47 +0000)]
BCM270X_DT: Add SMSC ethernet controller to DT

With an ethernet node in the DT, a suitable firmware can populate the
local-mac-address property, removing the need for a downstream patch
to the driver to read its MAC address from a module parameter.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agodrm/vc4: Verify at boot that CMA doesn't cross a 256MB boundary.
Eric Anholt [Mon, 12 Oct 2015 15:58:08 +0000 (08:58 -0700)]
drm/vc4: Verify at boot that CMA doesn't cross a 256MB boundary.

I've seen lots of users cranking CMA up higher, so throw an error if
they do.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agodrm/vc4: Fix OOPSes from trying to cache a partially constructed BO.
Eric Anholt [Thu, 9 Feb 2017 17:23:34 +0000 (09:23 -0800)]
drm/vc4: Fix OOPSes from trying to cache a partially constructed BO.

If a CMA allocation failed, the partially constructed BO would be
unreferenced through the normal path, and we might choose to put it in
the BO cache.  If we then reused it before it expired from the cache,
the kernel would OOPS.

Signed-off-by: Eric Anholt <eric@anholt.net>
Fixes: c826a6e10644 ("drm/vc4: Add a BO cache.")
7 years agodrm/vc4: Fulfill user BO creation requests from the kernel BO cache.
Eric Anholt [Wed, 8 Feb 2017 23:00:54 +0000 (15:00 -0800)]
drm/vc4: Fulfill user BO creation requests from the kernel BO cache.

The from_cache flag was actually "the BO is invisible to userspace",
so we can repurpose to just zero out a cached BO and return it to
userspace.

Improves wall time for a loop of 5 glsl-algebraic-add-add-1 by
-1.44989% +/- 0.862891% (n=28, 1 outlier removed from each that
appeared to be other system noise)

Note that there's an intel-gpu-tools test to check for the proper
zeroing behavior here, which we continue to pass.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agodrm/vc4: Fix sending of page flip completion events in FKMS mode.
Eric Anholt [Thu, 2 Feb 2017 17:42:18 +0000 (09:42 -0800)]
drm/vc4: Fix sending of page flip completion events in FKMS mode.

In the rewrite of vc4_crtc.c for fkms, I dropped the part of the
CRTC's atomic flush handler that moved the completion event from the
proposed atomic state change to the CRTC's current state.  That meant
that when full screen pageflipping happened (glxgears -fullscreen in
X, compton, por weston), the app would end up blocked firever waiting
to draw its next frame.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agodrm/vc4: Add DRM_DEBUG_ATOMIC for the insides of fkms.
Eric Anholt [Thu, 2 Feb 2017 01:10:09 +0000 (17:10 -0800)]
drm/vc4: Add DRM_DEBUG_ATOMIC for the insides of fkms.

Trying to debug weston on fkms involved figuring out what calls I was
making to the firmware.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agodrm/vc4: Name the primary and cursor planes in fkms.
Eric Anholt [Thu, 2 Feb 2017 01:09:18 +0000 (17:09 -0800)]
drm/vc4: Name the primary and cursor planes in fkms.

This makes debugging nicer, compared to trying to remember what the
IDs are.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agoBCM270X: Disable VEC unless vc4-kms-v3d is present.
Eric Anholt [Mon, 23 Jan 2017 19:41:54 +0000 (11:41 -0800)]
BCM270X: Disable VEC unless vc4-kms-v3d is present.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agoARM: dts: bcm283x: Enable the VEC IP on all RaspberryPi boards
Boris Brezillon [Fri, 2 Dec 2016 13:48:13 +0000 (14:48 +0100)]
ARM: dts: bcm283x: Enable the VEC IP on all RaspberryPi boards

Enable the VEC IP on all RaspberryPi boards.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit 5ab1a37c6027c114a87a1ae32cfc5ef303d643c5)

7 years agoARM: dts: bcm283x: Add VEC node in bcm283x.dtsi
Boris Brezillon [Fri, 2 Dec 2016 13:48:12 +0000 (14:48 +0100)]
ARM: dts: bcm283x: Add VEC node in bcm283x.dtsi

Add the VEC (Video EnCoder) node definition in bcm283x.dtsi.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit b899c45208d6f204a6da9a1132577993eeecf0fb)

7 years agodrm/vc4: Add DSI driver
Eric Anholt [Wed, 10 Feb 2016 19:42:32 +0000 (11:42 -0800)]
drm/vc4: Add DSI driver

The DSI0 and DSI1 blocks on the 2835 are related hardware blocks.
Some registers move around, and the featureset is slightly different,
as DSI1 (the 4-lane DSI) is a later version of the hardware block.
This driver doesn't yet enable DSI0, since we don't have any hardware
to test against, but it does put a lot of the register definitions and
code in place.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agodrm/vc4: Add support for feeding DSI encoders from the pixel valve.
Eric Anholt [Thu, 11 Feb 2016 00:17:29 +0000 (16:17 -0800)]
drm/vc4: Add support for feeding DSI encoders from the pixel valve.

We have to set a different pixel format, which tells the hardware to
use the pix_width field that's fed in sideband from the DSI encoder to
divide the "pixel" clock.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agodrm/vc4: Set up SCALER_DISPCTRL at boot.
Eric Anholt [Thu, 15 Sep 2016 14:25:23 +0000 (15:25 +0100)]
drm/vc4: Set up SCALER_DISPCTRL at boot.

We want the HVS on, obviously, and we also want DSP3 (PV1's source) to
be muxed from HVS channel 2 like we expect in vc4_crtc.c.  The
firmware wasn't setting the DSP3 mux up when both the LCD and HDMI
were disabled.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agodrm/vc4: Add support for the VEC (Video Encoder) IP
Boris Brezillon [Fri, 2 Dec 2016 13:48:10 +0000 (14:48 +0100)]
drm/vc4: Add support for the VEC (Video Encoder) IP

The VEC IP is a TV DAC, providing support for PAL and NTSC standards.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit e4b81f8c74c82dbc0cb0e5ceb5ef9b713b325fc9)

7 years agodrm: Turn DRM_MODE_SUBCONNECTOR_xx definitions into an enum
Boris Brezillon [Fri, 2 Dec 2016 13:48:08 +0000 (14:48 +0100)]
drm: Turn DRM_MODE_SUBCONNECTOR_xx definitions into an enum

List of values like the DRM_MODE_SUBCONNECTOR_xx ones are better
represented with enums.

Turn the DRM_MODE_SUBCONNECTOR_xx macros into an enum.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit dee7a4fee730ca8908f335b6b66174cba4598ecd)

7 years agodrm: Add TV connector states to drm_connector_state
Boris Brezillon [Fri, 2 Dec 2016 13:48:09 +0000 (14:48 +0100)]
drm: Add TV connector states to drm_connector_state

Some generic TV connector properties are exposed in drm_mode_config, but
they are currently handled independently in each DRM encoder driver.

Extend the drm_connector_state to store TV related states, and modify the
drm_atomic_connector_{set,get}_property() helpers to fill the connector
state accordingly.

Each driver is then responsible for checking and applying the new config
in its ->atomic_mode_{check,set}() operations.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit 299a16b163c95fbe1e3b1e142ba9c6ce9dab2c23)

7 years agodrm/vc4: Add fragment shader threading support
Jonas Pfeil [Mon, 7 Nov 2016 23:18:39 +0000 (00:18 +0100)]
drm/vc4: Add fragment shader threading support

FS threading brings performance improvements of 0-20% in glmark2.

The validation code checks for thread switch signals and ensures that
the registers of the other thread are not touched, and that our clamps
are not live across thread switches.  It also checks that the
threading and branching instructions do not interfere.

(Original patch by Jonas, changes by anholt for style cleanup,
removing validation the kernel doesn't need to do, and adding the flag
for userspace).

v2: Minor style fixes from checkpatch.

Signed-off-by: Jonas Pfeil <pfeiljonas@gmx.de>
Signed-off-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit c778cc5df944291dcdb1ca7a6bb781fbc22550c5)

7 years agodrm/vc4: Add support for rendering with ETC1 textures.
Eric Anholt [Fri, 4 Nov 2016 01:53:10 +0000 (18:53 -0700)]
drm/vc4: Add support for rendering with ETC1 textures.

The validation for it ends up being quite simple, but I hadn't got
around to it before merging the driver.  For backwards compatibility,
we also need to add a flag so that the userspace GL driver can easily
tell if the kernel will allow ETC1 textures (on an old kernel, it will
continue to convert to RGBA8)

Signed-off-by: Eric Anholt <eric@anholt.net>
(cherry picked from commit 7154d76fedf549607afbc0d13db9aaf02da5cebf)

7 years agoBCM270X: Enable the DSI panel node in the VC4 overlay.
Eric Anholt [Thu, 2 Jun 2016 22:09:35 +0000 (15:09 -0700)]
BCM270X: Enable the DSI panel node in the VC4 overlay.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agoARM: bcm2835: dt: Add the DSI module nodes and clocks.
Eric Anholt [Tue, 13 Dec 2016 23:15:10 +0000 (15:15 -0800)]
ARM: bcm2835: dt: Add the DSI module nodes and clocks.

The modules stay disabled by default, and if you want to enable DSI
you'll need an overlay that connects a panel to it.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agoBCM270X: Add the DSI panel to the defconfig.
Eric Anholt [Thu, 2 Jun 2016 19:29:45 +0000 (12:29 -0700)]
BCM270X: Add the DSI panel to the defconfig.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agodrm/panel: Add support for the Raspberry Pi 7" Touchscreen.
Eric Anholt [Tue, 26 Apr 2016 20:46:13 +0000 (13:46 -0700)]
drm/panel: Add support for the Raspberry Pi 7" Touchscreen.

This driver communicates with the Atmel microcontroller for sequencing
the poweron of the TC358762 DSI-DPI bridge and controlling the
backlight PWM.

The following lines are required in config.txt, to keep the firmware
from trying to bash our I2C lines and steal the DSI interrupts:

    disable_touchscreen=1
    ignore_lcd=2
    mask_gpu_interrupt1=0x1000

This means that the firmware won't power on the panel at boot time (no
rainbow) and the touchscreen input won't work.  The native input
driver for the touchscreen still needs to be written.

v2: Set the same default orientation as the closed source firmware
    used, which is the best for viewing angle.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agoclk: bcm2835: Add leaf clock measurement support, disabled by default
Eric Anholt [Tue, 17 Jan 2017 20:31:57 +0000 (07:31 +1100)]
clk: bcm2835: Add leaf clock measurement support, disabled by default

This proved incredibly useful during debugging of the DSI driver, to
see if our clocks were running at rate we requested.  Let's leave it
here for the next person interacting with clocks on the platform (and
so that hopefully we can just hook it up to debugfs some day).

Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
(cherry picked from commit 3f9195811d8d829556c4cd88d3f9e56a80d5ba60)

7 years agoclk: bcm2835: Register the DSI0/DSI1 pixel clocks.
Eric Anholt [Tue, 17 Jan 2017 20:31:56 +0000 (07:31 +1100)]
clk: bcm2835: Register the DSI0/DSI1 pixel clocks.

The DSI pixel clocks are muxed from clocks generated in the analog phy
by the DSI driver.  In order to set them as parents, we need to do the
same name lookup dance on them as we do for our root oscillator.

Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
(cherry picked from commit 8a39e9fa578229fd4604266c6ebb1a3a77d7994c)

7 years agoclk: bcm2835: Don't rate change PLLs on behalf of DSI PLL dividers.
Eric Anholt [Tue, 17 Jan 2017 20:31:55 +0000 (07:31 +1100)]
clk: bcm2835: Don't rate change PLLs on behalf of DSI PLL dividers.

Our core PLLs are intended to be configured once and left alone.  With
the SET_RATE_PARENT, asking to set the PLLD_DSI1 clock rate would
change PLLD just to get closer to the requested DSI clock, thus
changing PLLD_PER, the UART and ethernet PHY clock rates downstream of
it, and breaking ethernet.

We *do* want PLLH to change so that PLLH_AUX can be exactly the value
we want, though.  Thus, we need to have a per-divider policy of
whether to pass rate changes up.

Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
(cherry picked from commit 55486091bd1e1c5ed28c43c0d6b3392468a9adb5)

7 years agoclk: bcm: Fix 'maybe-uninitialized' warning in bcm2835_clock_choose_div_and_prate()
Boris Brezillon [Mon, 12 Dec 2016 08:00:53 +0000 (09:00 +0100)]
clk: bcm: Fix 'maybe-uninitialized' warning in bcm2835_clock_choose_div_and_prate()

best_rate is reported as potentially uninitialized by gcc.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Fixes: 155e8b3b0ee3 ("clk: bcm: Support rate change propagation on bcm2835 clocks")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
(cherry picked from commit 2aab7a2055a1705c9e30920d95a596226999eb21)

7 years agoclk: bcm: Allow rate change propagation to PLLH_AUX on VEC clock
Boris Brezillon [Thu, 1 Dec 2016 21:00:20 +0000 (22:00 +0100)]
clk: bcm: Allow rate change propagation to PLLH_AUX on VEC clock

The VEC clock requires needs to be set at exactly 108MHz. Allow rate
change propagation on PLLH_AUX to match this requirement wihtout
impacting other IPs (PLLH is currently only used by the HDMI encoder,
which cannot be enabled when the VEC encoder is enabled).

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
(cherry picked from commit d86d46af84855403c00018be1c3e7bc190f2a6cd)

7 years agoclk: bcm: Support rate change propagation on bcm2835 clocks
Boris Brezillon [Thu, 1 Dec 2016 21:00:19 +0000 (22:00 +0100)]
clk: bcm: Support rate change propagation on bcm2835 clocks

Some peripheral clocks, like the VEC (Video EnCoder) clock need to be set
to a precise rate (in our case 108MHz). With the current implementation,
where peripheral clocks are not allowed to forward rate change requests
to their parents, it is impossible to match this requirement unless the
bootloader has configured things correctly, or a specific rate has been
assigned through the DT (with the assigned-clk-rates property).

Add a new field to struct bcm2835_clock_data to specify which parent
clocks accept rate change propagation, and support set rate propagation
in bcm2835_clock_determine_rate().

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
(cherry picked from commit 155e8b3b0ee320ae866b97dd31eba8a1f080a772)

7 years agodwc_otg: fix summarize urb->actual_length for isochronous transfers
Martin Cerveny [Mon, 13 Feb 2017 16:23:47 +0000 (17:23 +0100)]
dwc_otg: fix summarize urb->actual_length for isochronous transfers

Kernel does not copy input data of ISO transfers to userspace
if actual_length is set only in ISO transfers and not summarized
in urb->actual_length. Fixes raspberrypi/linux#903

7 years agoUpdate vfpmodule.c
Claggy3 [Sat, 11 Feb 2017 14:00:30 +0000 (14:00 +0000)]
Update vfpmodule.c

Christopher Alexander Tobias Schulze - May 2, 2015, 11:57 a.m.
This patch fixes a problem with VFP state save and restore related
to exception handling (panic with message "BUG: unsupported FP
instruction in kernel mode") present on VFP11 floating point units
(as used with ARM1176JZF-S CPUs, e.g. on first generation Raspberry
Pi boards). This patch was developed and discussed on

   https://github.com/raspberrypi/linux/issues/859

A precondition to see the crashes is that floating point exception
traps are enabled. In this case, the VFP11 might determine that a FPU
operation needs to trap at a point in time when it is not possible to
signal this to the ARM11 core any more. The VFP11 will then set the
FPEXC.EX bit and store the trapped opcode in FPINST. (In some cases,
a second opcode might have been accepted by the VFP11 before the
exception was detected and could be reported to the ARM11 - in this
case, the VFP11 also sets FPEXC.FP2V and stores the second opcode in
FPINST2.)

If FPEXC.EX is set, the VFP11 will "bounce" the next FPU opcode issued
by the ARM11 CPU, which will be seen by the ARM11 as an undefined opcode
trap. The VFP support code examines the FPEXC.EX and FPEXC.FP2V bits
to decide what actions to take, i.e., whether to emulate the opcodes
found in FPINST and FPINST2, and whether to retry the bounced instruction.

If a user space application has left the VFP11 in this "pending trap"
state, the next FPU opcode issued to the VFP11 might actually be the
VSTMIA operation vfp_save_state() uses to store the FPU registers
to memory (in our test cases, when building the signal stack frame).
In this case, the kernel crashes as described above.

This patch fixes the problem by making sure that vfp_save_state() is
always entered with FPEXC.EX cleared. (The current value of FPEXC has
already been saved, so this does not corrupt the context. Clearing
FPEXC.EX has no effects on FPINST or FPINST2. Also note that many
callers already modify FPEXC by setting FPEXC.EN before invoking
vfp_save_state().)

This patch also addresses a second problem related to FPEXC.EX: After
returning from signal handling, the kernel reloads the VFP context
from the user mode stack. However, the current code explicitly clears
both FPEXC.EX and FPEXC.FP2V during reload. As VFP11 requires these
bits to be preserved, this patch disables clearing them for VFP
implementations belonging to architecture 1. There should be no
negative side effects: the user can set both bits by executing FPU
opcodes anyway, and while user code may now place arbitrary values
into FPINST and FPINST2 (e.g., non-VFP ARM opcodes) the VFP support
code knows which instructions can be emulated, and rejects other
opcodes with "unhandled bounce" messages, so there should be no
security impact from allowing reloading FPEXC.EX and FPEXC.FP2V.

Signed-off-by: Christopher Alexander Tobias Schulze <cat.schulze@alice-dsl.net>
7 years agosound: Suppress error message about deferrals
Phil Elwell [Thu, 9 Feb 2017 14:40:33 +0000 (14:40 +0000)]
sound: Suppress error message about deferrals

Since driver load deferrals are expected and will already
have resulted in a kernel message, suppress an essentially
duplicate error message from the RPi audio board drivers.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agosound: Demote deferral errors to INFO level
Phil Elwell [Thu, 9 Feb 2017 14:36:44 +0000 (14:36 +0000)]
sound: Demote deferral errors to INFO level

At present there is no mechanism to specify driver load order,
which can lead to deferrals and repeated retries until successful.
Since this situation is expected, reduce the dmesg level to
INFO and mention that the operation will be retried.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agoirq-bcm2836: Avoid "Invalid trigger warning"
Phil Elwell [Thu, 9 Feb 2017 14:33:30 +0000 (14:33 +0000)]
irq-bcm2836: Avoid "Invalid trigger warning"

Initialise the level for each IRQ to avoid a warning from the
arm arch timer code.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agoconfig: enable Cirrus Logic Audio Card
Matthias Reichl [Sun, 22 Jan 2017 11:49:37 +0000 (12:49 +0100)]
config: enable Cirrus Logic Audio Card

Signed-off-by: Matthias Reichl <hias@horus.com>
7 years agoASoC: Add driver for Cirrus Logic Audio Card
Matthias Reichl [Sun, 22 Jan 2017 11:49:37 +0000 (12:49 +0100)]
ASoC: Add driver for Cirrus Logic Audio Card

Note: due to problems with deferred probing of regulators
the following softdep should be added to a modprobe.d file

softdep arizona-spi pre: arizona-ldo1

Signed-off-by: Matthias Reichl <hias@horus.com>
7 years agoBCM270x DT: Consolidate audio card overlays
Matthias Reichl [Sun, 22 Jan 2017 11:49:36 +0000 (12:49 +0100)]
BCM270x DT: Consolidate audio card overlays

Reference 3.3V / 5V system rails instead of instantiating local
regulators.

Add missing power supply properties for codecs where these are
required according to the DT bindings docs.

Signed-off-by: Matthias Reichl <hias@horus.com>
7 years agoBCM270x DT: expose 3.3V and 5V system rails
Matthias Reichl [Sun, 22 Jan 2017 11:49:36 +0000 (12:49 +0100)]
BCM270x DT: expose 3.3V and 5V system rails

Signed-off-by: Matthias Reichl <hias@horus.com>
7 years agoconfig: Enable regulator support
Matthias Reichl [Sun, 22 Jan 2017 11:49:36 +0000 (12:49 +0100)]
config: Enable regulator support

Signed-off-by: Matthias Reichl <hias@horus.com>
7 years agogpio_mem: Remove unnecessary dev_info output (#1830)
JamesH65 [Mon, 6 Feb 2017 15:24:47 +0000 (15:24 +0000)]
gpio_mem: Remove unnecessary dev_info output (#1830)

The open function was spamming syslog every time
called, so have removed call completely.

7 years agousb: dwc2: Avoid suspending if we're in gadget mode (#1825)
ED6E0F17 [Fri, 3 Feb 2017 14:52:42 +0000 (14:52 +0000)]
usb: dwc2: Avoid suspending if we're in gadget mode (#1825)

I've found when booting HiKey with the usb gadget cable attached
if I then try to connect via adb, I get an infinite spew of:

dwc2 f72c0000.usb: dwc2_hsotg_ep_sethalt(ep ffffffc0790ecb18 ep1out, 0)
dwc2 f72c0000.usb: dwc2_hsotg_ep_sethalt(ep ffffffc0790eca18 ep1in, 0)

It seems that the usb autosuspend is suspending the bus shortly
after bootup when the gadget cable is attached. So when adbd
then tries to use the device, it doesn't work and it then tries
to restart it over and over via the ep_sethalt calls (via
FUNCTIONFS_CLEAR_HALT ioctl).

Chen Yu suggested this patch to avoid suspending if we're
in device mode, and it avoids the problem.

Cc: Wei Xu <xuwei5@hisilicon.com>
Cc: Guodong Xu <guodong.xu@linaro.org>
Cc: Amit Pundir <amit.pundir@linaro.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: John Youn <johnyoun@synopsys.com>
Cc: Douglas Anderson <dianders@chromium.org>
Cc: Chen Yu <chenyu56@huawei.com>
Cc: Kishon Vijay Abraham I <kishon@ti.com>
Cc: Felipe Balbi <felipe.balbi@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org
Suggested-by: Chen Yu <chenyu56@huawei.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
7 years agoAdd overlay for mcp3008 adc (#1818)
Scott Ellis [Fri, 27 Jan 2017 11:42:42 +0000 (06:42 -0500)]
Add overlay for mcp3008 adc (#1818)

Some example usage:

SPI0.0
dtparam=spi=on
dtoverlay=mcp3008:spi0-0-present

SPI0.1
dtparam=spi=on
dtoverlay=mcp3008:spi0-1-present

SPI0.0 and SPI0.1
dtparam=spi=on
dtoverlay=mcp3008:spi0-0-present,spi0-1-present

SPI1.0
dtparam=spi=on
dtoverlay=spi1-1cs
dtoverlay=mcp3008:spi1-0-present

SPI1.2
dtparam=spi=on
dtoverlay=spi1-1cs:cs0_pin=16
dtoverlay=mcp3008:spi1-0-present

SPI1.0 and SPI1.1
dtoverlay=spi1-2cs
dtoverlay=mcp3008:spi1-0-present,spi1-1-present

Changing the speed

SPI0.0
dtparam=spi=on
dtoverlay=mcp3008:spi0-0-present,spi0-0-speed=2000000

7 years agoconfig: Add SND_SOC_ADAU7002 codec module
Phil Elwell [Wed, 25 Jan 2017 21:17:23 +0000 (21:17 +0000)]
config: Add SND_SOC_ADAU7002 codec module

As there is now an overlay requiring it, build the codec module.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agoASoC: A simple-card overlay for ADAU7002
chris johnson [Sun, 22 Jan 2017 03:27:31 +0000 (03:27 +0000)]
ASoC: A simple-card overlay for ADAU7002

Usage: `dtoverlay=adau7002-simple`

7 years agoconfig: Add additional network scheduling modules
popcornmix [Wed, 25 Jan 2017 11:30:38 +0000 (11:30 +0000)]
config: Add additional network scheduling modules

7 years agoBCM270X_DT: Add reference to audio_pins to CM dtb
Phil Elwell [Mon, 23 Jan 2017 17:36:50 +0000 (17:36 +0000)]
BCM270X_DT: Add reference to audio_pins to CM dtb

The CM1 dtb contains an empty audio_pins node, but no reference to it.
Adding the usual pinctrl reference from the audio node enables the
audremap overlay (and others) to easily turn on audio.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agoARM64: Use dwc_otg driver by default for USB.
Michael Zoran [Sun, 15 Jan 2017 05:46:04 +0000 (21:46 -0800)]
ARM64: Use dwc_otg driver by default for USB.

If it breaks on anybody, they can use the standard device tree
overlays to switch back to the dwc2 driver.

Signed-off-by: Michael Zoran <mzoran@crowfest.net>
7 years agoARM64: Enable DWC_OTG Driver In ARM64 Build Config(bcmrpi3_defconfig)
Michael Zoran [Sun, 15 Jan 2017 05:45:03 +0000 (21:45 -0800)]
ARM64: Enable DWC_OTG Driver In ARM64 Build Config(bcmrpi3_defconfig)

Signed-off-by: Michael Zoran <mzoran@crowfest.net>
7 years agoARM64: Round-Robin dispatch IRQs between CPUs.
Michael Zoran [Sun, 15 Jan 2017 05:43:57 +0000 (21:43 -0800)]
ARM64: Round-Robin dispatch IRQs between CPUs.

IRQ-CPU mapping is round robined on ARM64 to increase
concurrency and allow multiple interrupts to be serviced
at a time.  This reduces the need for FIQ.

Signed-off-by: Michael Zoran <mzoran@crowfest.net>
7 years agoARM64/DWC_OTG: Port dwc_otg driver to ARM64
Michael Zoran [Sun, 15 Jan 2017 05:33:51 +0000 (21:33 -0800)]
ARM64/DWC_OTG: Port dwc_otg driver to ARM64

In ARM64, the FIQ mechanism used by this driver is not current
implemented.   As a workaround, reqular IRQ is used instead
of FIQ.

In a separate change, the IRQ-CPU mapping is round robined
on ARM64 to increase concurrency and allow multiple interrupts
to be serviced at a time.  This reduces the need for FIQ.

Tests Run:

This mechanism is most likely to break when multiple USB devices
are attached at the same time.  So the system was tested under
stress.

Devices:

1. USB Speakers playing back a FLAC audio through VLC
   at 96KHz.(Higher then typically, but supported on my speakers).

2. sftp transferring large files through the buildin ethernet
   connection which is connected through USB.

3. Keyboard and mouse attached and being used.

Although I do occasionally hear some glitches, the music seems to
play quite well.

Signed-off-by: Michael Zoran <mzoran@crowfest.net>
7 years agoconfig: Add CONFIG_MD_M25P80 and CONFIG_MD_SPI_NOR
Phil Elwell [Tue, 17 Jan 2017 14:39:39 +0000 (14:39 +0000)]
config: Add CONFIG_MD_M25P80 and CONFIG_MD_SPI_NOR

See: https://github.com/raspberrypi/linux/issues/1781

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agoBCM270X_DT: Enable UART0 on CM3
Phil Elwell [Tue, 17 Jan 2017 11:34:58 +0000 (11:34 +0000)]
BCM270X_DT: Enable UART0 on CM3

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agoconfig: Add CONFIG_TCP_CONG_BBR
popcornmix [Mon, 16 Jan 2017 16:33:54 +0000 (16:33 +0000)]
config: Add CONFIG_TCP_CONG_BBR
See: https://github.com/raspberrypi/linux/issues/1784

7 years agospi-bcm2835: Disable forced software CS
Phil Elwell [Fri, 1 Jul 2016 21:09:24 +0000 (22:09 +0100)]
spi-bcm2835: Disable forced software CS

Select software CS in bcm2708_common.dtsi, and disable the automatic
conversion in the driver to allow hardware CS to be re-enabled with an
overlay.

See: https://github.com/raspberrypi/linux/issues/1547

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agoBCM270X_DT: Add spi0-cs overlay
Phil Elwell [Mon, 16 Jan 2017 14:53:12 +0000 (14:53 +0000)]
BCM270X_DT: Add spi0-cs overlay

The spi0-cs overlay allows the software chip selectts to be modified
using the cs0_pin and cs1_pin parameters.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agoARM64: Enable RTL8187/RTL8192CU wifi in build config
Michael Zoran [Sun, 15 Jan 2017 15:31:59 +0000 (07:31 -0800)]
ARM64: Enable RTL8187/RTL8192CU wifi in build config

These drivers build now, so they can be enabled back
in the build configuration just like they are for
32 bit.

Signed-off-by: Michael Zoran <mzoran@crowfest.net>
7 years agoARM64: Fix build break for RTL8187/RTL8192CU wifi
Michael Zoran [Sun, 15 Jan 2017 15:25:18 +0000 (07:25 -0800)]
ARM64: Fix build break for RTL8187/RTL8192CU wifi

These drivers use an ASM function from the base
system to compute the ipv6 checksum.  These functions
are not available on ARM64, probably because nobody
has bother to write them.  The base system does have
a generic "C" version, so a simple fix is to include
the header to use the generic version on ARM64 only.

A longer term solution would be to submit the necessary
ASM function to the upstream source.

With this change, these drivers now compile without
any errors on ARM64.

Signed-off-by: Michael Zoran <mzoran@crowfest.net>
7 years agoARM64: Enable Kernel Address Space Randomization (#1792)
Electron752 [Sat, 14 Jan 2017 10:54:26 +0000 (02:54 -0800)]
ARM64: Enable Kernel Address Space Randomization (#1792)

Randomization allows the mapping between virtual addresses and physical
address to be different on each boot.  This makes it more difficult
to exploit security vulnerabilities that require knowledge of fixed
hardware addresses.

The firmware generates a 8 byte random number during bootup and stores
it in the device tree under chosen/kaslr-seed. This number is used
to randomize the address mapping.

This change enables this feature in the build configuration for ARM64.

Signed-off-by: Michael Zoran <mzoran@crowfest.net>
7 years agoARM64: Make it work again on 4.9 (#1790)
Electron752 [Thu, 12 Jan 2017 15:07:08 +0000 (07:07 -0800)]
ARM64: Make it work again on 4.9 (#1790)

* Invoke the dtc compiler with the same options used in arm mode.
* ARM64 now uses the bcm2835 platform just like ARM32.
* ARM64: Update bcmrpi3_defconfig

Signed-off-by: Michael Zoran <mzoran@crowfest.net>
7 years agoBCM270X_DT: Add pi3-disable-wifi overlay
Phil Elwell [Wed, 11 Jan 2017 13:01:21 +0000 (13:01 +0000)]
BCM270X_DT: Add pi3-disable-wifi overlay

pi3-disable-wifi is a minimal overlay to disable the onboard WiFi.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agoAdd driver_name paramater
Aaron Shaw [Tue, 10 Jan 2017 16:11:04 +0000 (16:11 +0000)]
Add driver_name paramater

Add driver_name parameter for use with 5.1 passthrough audio in LibreElec and other Kodi OSs

7 years agoAdd driver_name property
Aaron Shaw [Tue, 10 Jan 2017 16:05:41 +0000 (16:05 +0000)]
Add driver_name property

Add driver name property for use with 5.1 passthrough audio in LibreElec and other Kodi based OSs

7 years agopisound improvements:
Giedrius Trainavicius [Thu, 5 Jan 2017 00:38:16 +0000 (02:38 +0200)]
pisound improvements:

* Added a writable sysfs object to enable scripts / user space software
to blink MIDI activity LEDs for variable duration.
* Improved hw_param constraints setting.
* Added compatibility with S16_LE sample format.
* Exposed some simple placeholder volume controls, so the card appears
in volumealsa widget.

Signed-off-by: Giedrius Trainavicius <giedrius@blokas.io>
7 years agoDocument the si7020 option
Phil Elwell [Tue, 3 Jan 2017 21:27:46 +0000 (21:27 +0000)]
Document the si7020 option

7 years agoAdd support for Silicon Labs Si7013/20/21 humidity/temperature sensor.
Alex Tucker [Tue, 13 Dec 2016 19:50:18 +0000 (19:50 +0000)]
Add support for Silicon Labs Si7013/20/21 humidity/temperature sensor.

7 years agoarm64: Add CONFIG_ARCH_BCM2835
popcornmix [Sat, 31 Dec 2016 14:15:50 +0000 (14:15 +0000)]
arm64: Add CONFIG_ARCH_BCM2835

7 years agoi2c: bcm2835: Add debug support
Noralf Trønnes [Tue, 1 Nov 2016 14:15:41 +0000 (15:15 +0100)]
i2c: bcm2835: Add debug support

This adds a debug module parameter to aid in debugging transfer issues
by printing info to the kernel log. When enabled, status values are
collected in the interrupt routine and msg info in
bcm2835_i2c_start_transfer(). This is done in a way that tries to avoid
affecting timing. Having printk in the isr can mask issues.

debug values (additive):
1: Print info on error
2: Print info on all transfers
3: Print messages before transfer is started

The value can be changed at runtime:
/sys/module/i2c_bcm2835/parameters/debug

Example output, debug=3:
[  747.114448] bcm2835_i2c_xfer: msg(1/2) write addr=0x54, len=2 flags= [i2c1]
[  747.114463] bcm2835_i2c_xfer: msg(2/2) read addr=0x54, len=32 flags= [i2c1]
[  747.117809] start_transfer: msg(1/2) write addr=0x54, len=2 flags= [i2c1]
[  747.117825] isr: remain=2, status=0x30000055 : TA TXW TXD TXE  [i2c1]
[  747.117839] start_transfer: msg(2/2) read addr=0x54, len=32 flags= [i2c1]
[  747.117849] isr: remain=32, status=0xd0000039 : TA RXR TXD RXD  [i2c1]
[  747.117861] isr: remain=20, status=0xd0000039 : TA RXR TXD RXD  [i2c1]
[  747.117870] isr: remain=8, status=0x32 : DONE TXD RXD  [i2c1]

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
7 years agoi2c: bcm2835: Add support for dynamic clock
Noralf Trønnes [Mon, 26 Sep 2016 23:00:08 +0000 (01:00 +0200)]
i2c: bcm2835: Add support for dynamic clock

Support a dynamic clock by reading the frequency and setting the
divisor in the transfer function instead of during probe.

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Martin Sperl <kernel@martin.sperl.org>
7 years agoi2c: bcm2835: Support i2c-dev ioctl I2C_TIMEOUT
Noralf Trønnes [Fri, 23 Sep 2016 02:57:17 +0000 (04:57 +0200)]
i2c: bcm2835: Support i2c-dev ioctl I2C_TIMEOUT

Use i2c_adapter->timeout for the completion timeout value. The core
default is 1 second.

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agoi2c: bcm2835: Add support for Repeated Start Condition
Noralf Trønnes [Fri, 23 Sep 2016 02:54:27 +0000 (04:54 +0200)]
i2c: bcm2835: Add support for Repeated Start Condition

Documentation/i2c/i2c-protocol states that Combined transactions should
separate messages with a Start bit and end the whole transaction with a
Stop bit. This patch adds support for issuing only a Start between
messages instead of a Stop followed by a Start.

This implementation differs from downstream i2c-bcm2708 in 2 respects:
- it uses an interrupt to detect that the transfer is active instead
  of using polling. There is no interrupt for Transfer Active, but by
  not prefilling the FIFO it's possible to use the TXW interrupt.
- when resetting/disabling the controller between transfers it writes
  CLEAR to the control register instead of just zero.
  Using just zero gave many errors. This might be the reason why
  downstream had to disable this feature and make it available with a
  module parameter.

I have run thousands of transfers to a DS1307 (rtc), MMA8451 (accel)
and AT24C32 (eeprom) in parallel without problems.

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Acked-by: Eric Anholt <eric@anholt.net>
7 years agoi2c: bcm2835: Can't support I2C_M_IGNORE_NAK
Noralf Trønnes [Thu, 22 Sep 2016 20:05:50 +0000 (22:05 +0200)]
i2c: bcm2835: Can't support I2C_M_IGNORE_NAK

The controller can't support this flag, so remove it.

Documentation/i2c/i2c-protocol states that all of the message is sent:

I2C_M_IGNORE_NAK:
    Normally message is interrupted immediately if there is [NA] from the
    client. Setting this flag treats any [NA] as [A], and all of
    message is sent.

From the BCM2835 ARM Peripherals datasheet:

    The ERR field is set when the slave fails to acknowledge either
    its address or a data byte written to it.

So when the controller doesn't receive an ack, it sets ERR and raises
an interrupt. In other words, the whole message is not sent.

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agoi2c: bcm2835: Use dev_dbg logging on transfer errors
Noralf Trønnes [Mon, 19 Sep 2016 15:19:41 +0000 (17:19 +0200)]
i2c: bcm2835: Use dev_dbg logging on transfer errors

Writing to an AT24C32 generates on average 2x i2c transfer errors per
32-byte page write. Which amounts to a lot for a 4k write. This is due
to the fact that the chip doesn't respond during it's internal write
cycle when the at24 driver tries and retries the next write.
Only a handful drivers use dev_err() on transfer error, so switch to
dev_dbg() instead.

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agoi2c: bcm2835: Protect against unexpected TXW/RXR interrupts
Noralf Trønnes [Fri, 23 Sep 2016 16:24:38 +0000 (18:24 +0200)]
i2c: bcm2835: Protect against unexpected TXW/RXR interrupts

If an unexpected TXW or RXR interrupt occurs (msg_buf_remaining == 0),
the driver has no way to fill/drain the FIFO to stop the interrupts.
In this case the controller has to be disabled and the transfer
completed to avoid hang.

(CLKT | ERR) and DONE interrupts are completed in their own paths, and
the controller is disabled in the transfer function after completion.
Unite the code paths and do disabling inside the interrupt routine.

Clear interrupt status bits in the united completion path instead of
trying to do it on every interrupt which isn't necessary.
Only CLKT, ERR and DONE can be cleared that way.

Add the status value to the error value in case of TXW/RXR errors to
distinguish them from the other S_LEN error.

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
7 years agodrm/vc4: Add a mode for using the closed firmware for display.
Eric Anholt [Wed, 14 Sep 2016 07:39:33 +0000 (08:39 +0100)]
drm/vc4: Add a mode for using the closed firmware for display.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agoraspberrypi-firmware: Define the MBOX channel in the header.
Eric Anholt [Wed, 14 Sep 2016 08:18:09 +0000 (09:18 +0100)]
raspberrypi-firmware: Define the MBOX channel in the header.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agoraspberrypi-firmware: Export the general transaction function.
Eric Anholt [Wed, 14 Sep 2016 08:16:19 +0000 (09:16 +0100)]
raspberrypi-firmware: Export the general transaction function.

The vc4-firmware-kms module is going to be doing the MBOX FB call.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agodrivers/vchi: Remove dependency on CONFIG_BROKEN.
Eric Anholt [Mon, 3 Oct 2016 17:21:17 +0000 (10:21 -0700)]
drivers/vchi: Remove dependency on CONFIG_BROKEN.

The driver builds now.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agostaging/vchi: Update for rename of page_cache_release() to put_page().
Eric Anholt [Mon, 3 Oct 2016 17:16:03 +0000 (10:16 -0700)]
staging/vchi: Update for rename of page_cache_release() to put_page().

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agostaging/vchi: Convert to current get_user_pages() arguments.
Eric Anholt [Mon, 3 Oct 2016 17:14:10 +0000 (10:14 -0700)]
staging/vchi: Convert to current get_user_pages() arguments.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agovchiq_arm: Avoid use of mutex in add_completion
Phil Elwell [Mon, 20 Jun 2016 12:51:44 +0000 (13:51 +0100)]
vchiq_arm: Avoid use of mutex in add_completion

Claiming the completion_mutex within add_completion did prevent some
messages appearing twice, but provokes a deadlock caused by vcsm using
vchiq within a page fault handler.

Revert the use of completion_mutex, and instead fix the original
problem using more memory barriers.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agovchiq_arm: Add completion records under the mutex
Phil Elwell [Thu, 21 Apr 2016 12:49:32 +0000 (13:49 +0100)]
vchiq_arm: Add completion records under the mutex

An issue was observed when flushing openmax components
which generate a large number of messages returning
buffers to host.

We occasionally found a duplicate message from 16
messages prior, resulting in a buffer returned twice.

While only one thread adds completions, without the
mutex you don't get the protection of the automatic
memory barrier you get with synchronisation objects.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agovchiq_arm: Service callbacks must not fail
Phil Elwell [Wed, 23 Mar 2016 20:53:47 +0000 (20:53 +0000)]
vchiq_arm: Service callbacks must not fail

Service callbacks are not allowed to return an error. The internal callback
that delivers events and messages to user tasks does not enqueue them if
the service is closing, but this is not an error and should not be
reported as such.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agovchiq_arm: Access the dequeue_pending flag locked
Phil Elwell [Wed, 23 Mar 2016 14:16:25 +0000 (14:16 +0000)]
vchiq_arm: Access the dequeue_pending flag locked

Reading through this code looking for another problem (now found in userland)
the use of dequeue_pending outside a lock didn't seem safe.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agovchiq_arm: Tweak the logging output
Phil Elwell [Mon, 7 Mar 2016 15:05:11 +0000 (15:05 +0000)]
vchiq_arm: Tweak the logging output

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 years agoAdd arm64 configuration and device tree differences.
Michael Zoran [Wed, 24 Aug 2016 10:35:56 +0000 (03:35 -0700)]
Add arm64 configuration and device tree differences.
Disable MMC_BCM2835_SDHOST and MMC_BCM2835 since these drivers are crashing at the moment.

ARM64: Modify default config to get raspbian to boot (#1686)

1. Enable emulation of deprecated instructions.
2. Enable ARM 8.1 and 8.2 features which are not detected at runtime.
3. Switch the default governer to powersave.
4. Include the watchdog timer driver in the kernel image rather then a module.

Tested with raspbian-jessie 2016-09-23.

7 years agoconfig: Add default configs
popcornmix [Mon, 13 Apr 2015 16:16:29 +0000 (17:16 +0100)]
config: Add default configs

7 years agohci_h5: Don't send conf_req when ACTIVE
Phil Elwell [Thu, 17 Dec 2015 13:37:07 +0000 (13:37 +0000)]
hci_h5: Don't send conf_req when ACTIVE

Without this patch, a modem and kernel can continuously bombard each
other with conf_req and conf_rsp messages, in a demented game of tag.

7 years agoOF: DT-Overlay configfs interface
Pantelis Antoniou [Wed, 3 Dec 2014 11:23:28 +0000 (13:23 +0200)]
OF: DT-Overlay configfs interface

This is a port of Pantelis Antoniou's v3 port that makes use of the
new upstreamed configfs support for binary attributes.

Original commit message:

Add a runtime interface to using configfs for generic device tree overlay
usage. With it its possible to use device tree overlays without having
to use a per-platform overlay manager.

Please see Documentation/devicetree/configfs-overlays.txt for more info.

Changes since v2:
- Removed ifdef CONFIG_OF_OVERLAY (since for now it's required)
- Created a documentation entry
- Slight rewording in Kconfig

Changes since v1:
- of_resolve() -> of_resolve_phandles().

Originally-signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
DT configfs: Fix build errors on other platforms

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
DT configfs: fix build error

There is an error when compiling rpi-4.6.y branch:
  CC      drivers/of/configfs.o
drivers/of/configfs.c:291:21: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
   .default_groups = of_cfs_def_groups,
                     ^
drivers/of/configfs.c:291:21: note: (near initialization for 'of_cfs_subsys.su_group.default_groups.next')

The .default_groups is linked list since commit
1ae1602de028acaa42a0f6ff18d19756f8e825c6.
This commit uses configfs_add_default_group to fix this problem.

Signed-off-by: Slawomir Stepien <sst@poczta.fm>
7 years agonet: Fix rtl8192cu build errors on other platforms
Phil Elwell [Wed, 23 Mar 2016 17:20:58 +0000 (17:20 +0000)]
net: Fix rtl8192cu build errors on other platforms

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
suppress spurious messages

Add #if for 3.14 kernel change (#87)

Fixes compiling after changes in https://github.com/torvalds/linux/commit/f663dd9aaf9ed124f25f0f8452edf238f087ad50 and https://github.com/torvalds/linux/commit/99932d4fc03a13bb3e94938fe25458fabc8f2fc3

Fixes #86

Set dev_type to wlan

Fixes #23

Tentatively added support for more 8188CUS based devices.

Add support for more 8188CUS and 8192CUS devices

Add ProductId for the Netgear N150 - WNA1000M

Fixes CONFIG_CONCURRENT_MODE CONFIG_MULTI_VIR_IFACES

Fixes compatibility with 3.13

Enables warning in the compiler and fixes some issues, reference => https://github.com/diederikdehaas/rtl8812AU

Starts device in station mode instead of monitor, fixes NetworkManager issues

Enable cfg80211 support

Fix cfg80211 for kernel >= 4.7

Fixes rtl8192cu for kernel >= 4.8

7 years agonet: Add non-mainline source for rtl8192cu wlan
popcornmix [Mon, 3 Sep 2012 16:10:23 +0000 (17:10 +0100)]
net: Add non-mainline source for rtl8192cu wlan

Add non-mainline source for rtl8192cu wireless driver version v4.0.2_9000 as
this is widely used. Disable older rtlwifi driver.

8192cu needs old wireless extensions

The obsolete WIRELESS_EXT configuration is used
by the old Realtek code and is needed for AP support.

8192cu: CONFIG_AP_MODE hardcoded in autoconf.h

rtl8192c_rf6052: PHY_RFShadowRefresh(): fix off-by-one

Signed-off-by: Marc Kleine-Budde <mkl@blackshift.org>
rtl8192cu: Add PID for D-Link DWA 131

7 years agoamba_pl011: Don't use DT aliases for numbering
Phil Elwell [Tue, 23 Feb 2016 17:26:48 +0000 (17:26 +0000)]
amba_pl011: Don't use DT aliases for numbering

The pl011 driver looks for DT aliases of the form "serial<n>",
and if found uses <n> as the device ID. This can cause
/dev/ttyAMA0 to become /dev/ttyAMA1, which is confusing if the
other serial port is provided by the 8250 driver which doesn't
use the same logic.

7 years agobcm2835-virtgpio: Virtual GPIO driver
popcornmix [Tue, 23 Feb 2016 19:56:04 +0000 (19:56 +0000)]
bcm2835-virtgpio: Virtual GPIO driver

Add a virtual GPIO driver that uses the firmware mailbox interface to
request that the VPU toggles LEDs.