Takashi Iwai [Tue, 4 Sep 2018 15:58:30 +0000 (17:58 +0200)]
staging: bcm2835-audio: Clean up mutex locks
commit
ce4bb1aa271a97047b80ac917a5d91b54925913b upstream.
snd-bcm2835 driver takes the lock with mutex_lock_interruptible() in
all places, which don't make sense. Replace them with the simple
mutex_lock().
Also taking a mutex lock right after creating it for each PCM object
is nonsense, too. It cannot be racy at that point. We can get rid of
it.
Last but not least, initializing chip->audio_mutex at each place is
error-prone. Initialize properly at creating the chip object in
snd_bcm2835_create() instead.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
popcornmix [Mon, 29 Apr 2019 18:16:16 +0000 (19:16 +0100)]
Revert "staging: bcm2835-audio: use module_platform_driver() macro"
commit
ed4c2e5dc4216d5dded502bfcf594d3984e6bccd upstream.
This reverts commit
786ced30fec053b27248ed5b24dcde61ed3f47f6.
popcornmix [Mon, 29 Apr 2019 18:16:15 +0000 (19:16 +0100)]
Revert "staging: bcm2835-audio: Enable compile test"
commit
4eae66777a262ac9707980ea0cfe902afadfb577 upstream.
This reverts commit
02d205a57c4c943fc2a5b1ac7c912ce01944f700.
popcornmix [Mon, 29 Apr 2019 18:16:14 +0000 (19:16 +0100)]
Revert "bcm2835: interpolate audio delay"
commit
fb4b9f02986fcb5ae751106ef9b027806b5dd750 upstream.
This reverts commit
fb8cc99f05687ca5565dc53a7ee0dd86aefad952.
Stefan Wahren [Mon, 29 Apr 2019 17:28:51 +0000 (19:28 +0200)]
configs: enable LED driver for PiGlow
Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
Stefan Wahren [Mon, 29 Apr 2019 17:35:33 +0000 (19:35 +0200)]
overlays: Add PiGlow overlay
The PiGlow is a small add-on board for the Raspberry Pi that provides
18 individually controllable LEDs (SN3218) and uses the following pins:
P1 & P17 (3V3)
P2 (5V)
P3 (SDA)
P5 (SCL)
P14 (GND)
Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
P33M [Wed, 24 Apr 2019 13:25:41 +0000 (14:25 +0100)]
Revert "defconfigs: disable memory and IO cgroups (#2908)"
This reverts commit
9881cdbf446081f71c62f39f4c56a21001baea73.
P33M [Wed, 24 Apr 2019 13:25:09 +0000 (14:25 +0100)]
Revert "cgroup: Disable cgroup "memory" by default"
This reverts commit
cd6ce4d0ded13c94ff5208c679ed5e030263149b.
Phil Elwell [Thu, 21 Mar 2019 11:19:46 +0000 (11:19 +0000)]
sound: Fixes for audioinjector-octo under 4.19
1. Move the DT alias declaration to the I2C shim in the cases
where the shim is enabled. This works around a problem caused by a
4.19 commit [1] that generates DT/OF uevents for I2C drivers.
2. Fix the diagnostics in an error path of the soundcard driver to
correctly identify the reason for the failure to load.
3. Move the declaration of the clock node in the overlay outside
the I2C node to avoid warnings.
4. Sort the overlay nodes so that dependencies are only to earlier
fragments, in an attempt to get runtime dtoverlay application to
work (it still doesn't...)
See: https://github.com/Audio-Injector/Octo/issues/14
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
[1]
af503716ac14 ("i2c: core: report OF style module alias for devices registered via OF")
James Hutchinson [Sun, 13 Jan 2019 21:13:47 +0000 (16:13 -0500)]
media: m88ds3103: serialize reset messages in m88ds3103_set_frontend
commit
981fbe3da20a6f35f17977453bce7dfc1664d74f upstream.
Ref: https://bugzilla.kernel.org/show_bug.cgi?id=199323
Users are experiencing problems with the DVBSky S960/S960C USB devices
since the following commit:
9d659ae: ("locking/mutex: Add lock handoff to avoid starvation")
The device malfunctions after running for an indeterminable period of
time, and the problem can only be cleared by rebooting the machine.
It is possible to encourage the problem to surface by blocking the
signal to the LNB.
Further debugging revealed the cause of the problem.
In the following capture:
- thread #1325 is running m88ds3103_set_frontend
- thread #42 is running ts2020_stat_work
a> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 80
[1325] usb 1-1: dvb_usb_v2_generic_io: <<< 08
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 68 3f
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 08 ff
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 3d
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff
b> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 00
[1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 21
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 66
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff
[1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
[1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07
[1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 60 02 10 0b
[1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07
Two i2c messages are sent to perform a reset in m88ds3103_set_frontend:
a. 0x07, 0x80
b. 0x07, 0x00
However, as shown in the capture, the regmap mutex is being handed over
to another thread (ts2020_stat_work) in between these two messages.
>From here, the device responds to every i2c message with an 07 message,
and will only return to normal operation following a power cycle.
Use regmap_multi_reg_write to group the two reset messages, ensuring
both are processed before the regmap mutex is unlocked.
Signed-off-by: James Hutchinson <jahutchinson99@googlemail.com>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
wavelet2 [Mon, 15 Apr 2019 09:00:20 +0000 (10:00 +0100)]
Maxim MAX98357A I2S DAC overlay (#2935)
Add overlay for Maxim MAX98357A I2S DAC.
Signed-off-by: Richard Steedman <richard.steedman@gmail.com>
Phil Howard [Fri, 29 Mar 2019 10:59:55 +0000 (10:59 +0000)]
overlays: Add rv3028 backup switchover support to i2c-rtc
Signed-off-by: Phil Howard <phil@pimoroni.com>
Phil Howard [Fri, 29 Mar 2019 10:57:07 +0000 (10:57 +0000)]
dt-bindings: rv3028 backup switchover support
Signed-off-by: Phil Howard <phil@pimoroni.com>
Phil Howard [Fri, 29 Mar 2019 10:53:14 +0000 (10:53 +0000)]
rtc: rv3028: Add backup switchover mode support
Signed-off-by: Phil Howard <phil@pimoroni.com>
P33M [Tue, 9 Apr 2019 15:40:48 +0000 (16:40 +0100)]
dwc_otg: fix locking around dequeueing and killing URBs
kill_urbs_in_qh_list() is practically only ever called with the fiq lock
already held, so don't spinlock twice in the case where we need to cancel
an isochronous transfer.
Also fix up a case where the global interrupt register could be read with
the fiq lock not held.
Fixes the deadlock seen in https://github.com/raspberrypi/linux/issues/2907
Samuel Hsu [Mon, 8 Apr 2019 15:06:44 +0000 (17:06 +0200)]
BCM2708: Add core Device Tree support, ilitek251x
Signed-off-by: Samuel Hsu <hsu@distec.de>
Samuel Hsu [Mon, 8 Apr 2019 14:54:34 +0000 (16:54 +0200)]
configs: Add TOUCHSCREEN_ILI210X=m
Signed-off-by: Samuel Hsu <hsu@distec.de>
Samuel Hsu [Mon, 8 Apr 2019 14:49:51 +0000 (16:49 +0200)]
Input: ili210x - add DT binding document
commit
41a852e002e65ab7a1e6841b485d72d022e95df2 upstream
Add DT binding document for the Ilitek ILI210x and ILI251x
touchscreen controllers.
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Samuel Hsu [Mon, 8 Apr 2019 14:42:17 +0000 (16:42 +0200)]
Input: ili210x - fetch touchscreen geometry from DT
commit
f67cc3e927d8414ad3872e046764534ea1f5db0d upstream
Fetching the geometry from the ILI251x registers seems unreliable and
sometimes returns all zeroes. Add support for fetching the geometry and
axis inversion from DT instead.
Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
P33M [Mon, 8 Apr 2019 11:45:23 +0000 (12:45 +0100)]
dwc_otg: only do_split when we actually need to do a split
The previous test would fail if the root port was in fullspeed mode
and there was a hub between the FS device and the root port. While
the transfer worked, the schedule mangling performed for high-speed
split transfers would break leading to an 8ms polling interval.
Annaliese McDermond [Sun, 17 Mar 2019 23:48:36 +0000 (16:48 -0700)]
dtoverlays: Add Support for the UDRC/DRAWS
Adds a new overlay to support the Northwest Digital Radio
DRAWS and UDRC HATs. See http://nwdigitalradio.com.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Annaliese McDermond [Thu, 4 Apr 2019 04:01:55 +0000 (21:01 -0700)]
ASoC: tlv320aic32x4: Add Playback PowerTune Controls
commit
d3e6e374566e1154820a9a3dc82f7eef646fcf95 upstream.
PowerTune controls the power level of the chip. On playback this
indirectly controls things like the gain of the various output
amplifiers. This can allow for the decrease of output levels
from the codec. This adds controls for those power levels to
the driver.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Thu, 4 Apr 2019 04:01:54 +0000 (21:01 -0700)]
ASoC: tlv320aic32x4: Add Switch for Setting Common Mode Voltage
commit
44ceee847e27c828f2f1ef4e400e6bc0c8d04de3 upstream.
Add a switch for setting common mode voltage. This can allow
for higher drive levels on the amplifier outputs.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Thu, 4 Apr 2019 04:17:16 +0000 (21:17 -0700)]
ASoC: tlv320aic32x4: Update copyright and use SPDX identifier
commit
8a1d95c393d971e624fc28f11516b0bc3a7fa706 upstream.
Update the copyright dates and use the SPDX identifier instead
of reciting the license.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Thu, 4 Apr 2019 04:17:15 +0000 (21:17 -0700)]
ASoC: tlv320aic32x4: Change author's name
commit
7297ba6c74c5b9e78d8e936af82eecfcf7d32dfb upstream.
The author of these files has changed her name. Update
instances in the code of her dead name to current legal
name.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
FERHAT Nicolas [Fri, 5 Apr 2019 12:06:42 +0000 (13:06 +0100)]
Audiophonics I-Sabre 9038Q2M DAC driver
Signed-off-by: Audiophonics <contact@audiophonics.fr>
Mark Brown [Tue, 26 Mar 2019 13:10:13 +0000 (13:10 +0000)]
ASoC: tlv320aic32x4: Only enable with common clock
commit
64f01d2b5ccc621c3aa66b82daf9154f5581f36a upstream.
Some architectures do not yet support the common clock API at all but
the tlv320aic32x4 driver now requires it.
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Fri, 22 Mar 2019 00:58:54 +0000 (17:58 -0700)]
ASoC: tlv320aic32x4: Allow 192000 Sample Rate
commit
6d56ee1550b8a81bc63c80051ff78d8d704b09ba upstream.
The clocking and processing blocks are now properly set up to
support 192000 sample rates. Allow drivers to ask for that.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Fri, 22 Mar 2019 00:58:53 +0000 (17:58 -0700)]
ASoC: tlv320aic32x4: Remove mclk references
commit
78f2d58a289302e56a7def96a783a7686ebf27e2 upstream.
mclk is not used by anything anymore. Remove support for it.
All that information now comes from the clock tree.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Fri, 22 Mar 2019 00:58:52 +0000 (17:58 -0700)]
ASoC: tlv320aic32x4: Restructure set_dai_sysclk
commit
aa6a60f7be925210d5156f0e8025f3afe1f4f54d upstream.
The sysclk is now managed by the CCF. Change this function
to merely find the system clock and set it using
clk_set_rate.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Fri, 22 Mar 2019 00:58:51 +0000 (17:58 -0700)]
ASoC: tlv320aic32x4: Dynamically Determine Clocking
commit
96c3bb00239de4fb5f4ddca42c1f90d6d9b3c697 upstream.
The existing code uses a static lookup table to determine the
settings of the various clock devices on board the chip. This is
limiting in a couple of ways. First, this doesn't allow for any
master clock rates other than the three that have been
precalculated. Additionally, new sample rates are difficult to
add to the table. Witness that the chip is capable of 192000 Hz
sampling, but it is not provided by this driver. Last, if the
driver is clocked by something that isn't a crystal, the
upstream clock may not be able to achieve exactly the rate
requested in the driver. This will mean that clocking will be
slightly off for the sampling clock or that it won't work at all.
This patch determines the settings for all of the clocks at
runtime considering the real conditions of the clocks in the
system. The rules for the clocks are in TI's SLAA557 application
guide on pages 37, 51 and 77.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Fri, 22 Mar 2019 00:58:50 +0000 (17:58 -0700)]
ASoC: tlv320aic32x4: Move aosr and dosr setting to separate functions
commit
fbafbf6517274a797e6e6508c18dd8dba5920c89 upstream.
Move these to separate helper functions. This looks cleaner and fits
better with the new clock setting in CCF.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Fri, 22 Mar 2019 00:58:49 +0000 (17:58 -0700)]
ASoC: tlv320aic32x4: Control clock gating with CCF
commit
d25970b5fd51e9fcf0afbe190908ea4049454da4 upstream.
Control the clock gating to the various clock components to use
the CCF. This allows us to prepare_enalbe only 3 clocks and the
relationships assigned to them will cause upstream clockss to
enable automatically. Additionally we can do this in a single
call to the CCF.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Fri, 22 Mar 2019 00:58:48 +0000 (17:58 -0700)]
ASoC: tlv320aic32x4: Model BDIV divider in CCF
commit
9b484124ebd906c4d6bc826cc0d417e80cc1105c upstream.
Model and manage BDIV divider as components in the Core
Clock Framework. This should allow us to do some more complex
clock management and power control. Also, some of the
on-board chip clocks can be exposed to the outside, and this
change will make those clocks easier to consume by other
parts of the kernel.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Fri, 22 Mar 2019 00:58:47 +0000 (17:58 -0700)]
ASoC: tlv320aic32x4: Model DAC/ADC dividers in CCF
commit
a51b50062091619915c5155085bbe13a7aca6903 upstream.
Model and manage DAC/ADC dividers as components in the Core
Clock Framework. This should allow us to do some more complex
clock management and power control. Also, some of the
on-board chip clocks can be exposed to the outside, and this
change will make those clocks easier to consume by other
parts of the kernel.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Fri, 22 Mar 2019 00:58:46 +0000 (17:58 -0700)]
ASoC: tlv320aic32x4: Model CODEC_CLKIN in CCF
commit
fd2df3aeafa4b4cc468d58e147e0822967034b71 upstream.
Model and manage codec clock input as a component in the Core
Clock Framework. This should allow us to do some more complex
clock management and power control. Also, some of the
on-board chip clocks can be exposed to the outside, and this
change will make those clocks easier to consume by other
parts of the kernel.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Fri, 22 Mar 2019 00:58:45 +0000 (17:58 -0700)]
ASoC: tlv320aic32x4: Model PLL in CCF
commit
514b044cba667e4b7c383ec79b42b997e624b91d upstream.
Model and manage the on-board PLL as a component in the Core
Clock Framework. This should allow us to do some more complex
clock management and power control. Also, some of the
on-board chip clocks can be exposed to the outside, and this
change will make those clocks easier to consume by other
parts of the kernel.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Thu, 21 Mar 2019 02:38:44 +0000 (19:38 -0700)]
ASoC: tlv320aic32x4: Properly Set Processing Blocks
commit
c95e3a4b96293403a427b5185e60fad28af51fdd upstream.
Different processing blocks are required for different sampling
rates and power parameters. Set the processing blocks based
on this information.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Annaliese McDermond [Tue, 19 Mar 2019 03:37:44 +0000 (20:37 -0700)]
ASoC: tlv320aic32x4: Break out clock setting into separate function
commit
bf31cbfbe25001036e1e096b1c260bf871766ea5 upstream.
Break the clock setting logic out from the main hw_params. It's
rather large and unweildy and makes for a large function. This
also better enables some of the following changes to the clock
tree access in the driver.
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
b-ak [Wed, 9 Jan 2019 17:11:21 +0000 (22:41 +0530)]
ASoC: tlv320aic32x4: SND_SOC_DAPM_MICBIAS is deprecated
commit
04d979d7a7bac2f645cd827ea37e5ffa5b4e1f97 upstream.
SND_SOC_DAPM_MICBIAS is deprecated, replace it with SND_SOC_DAPM_SUPPLY.
MICBIAS voltage wasn't supplied to the microphone with the older
SND_SOC_DAPM_MICBIAS widget, hence the microphone wouldn't work.
This patch fixes the problem.
Signed-off-by: b-ak <anur.bhargav@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Phil Elwell [Thu, 28 Mar 2019 13:26:59 +0000 (13:26 +0000)]
overlays: Add rv3028 to i2c-rtc
See: https://github.com/raspberrypi/linux/issues/2912
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Phil Elwell [Thu, 28 Mar 2019 13:13:52 +0000 (13:13 +0000)]
configs: Add RTC_DRV_RV3028=m
See: https://github.com/raspberrypi/linux/issues/2912
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Alexandre Belloni [Tue, 12 Feb 2019 23:21:36 +0000 (00:21 +0100)]
rtc: rv3028: add new driver
upstream commit
e6e7376cfd7b3f9b63de3a22792f64d9bfb2ab53.
Add a driver for the MicroCrystal RV-3028. It is a SMT Real-Time Clock
Module that incorporates an integrated CMOS circuit together with an XTAL.
It has an i2c interface.
The driver handles date/time, alarms, trickle charging, timestamping,
frequency offset correction, EEPROM and NVRAM.
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Alexandre Belloni [Fri, 30 Nov 2018 11:53:20 +0000 (11:53 +0000)]
nvmem: add type attribute
commit
16688453661b6d5159be558a1f8c1f54463a420f upstream.
Add a type attribute so userspace is able to know how the data is stored as
this can help taking the correct decision when selecting which device to
use. This will also help program display the proper warnings when burning
fuses for example.
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Dave Stevenson [Wed, 20 Mar 2019 10:06:51 +0000 (10:06 +0000)]
staging: bcm2835-codec: Refactor default resolution code
The default resolution code was different for each role
as compressed formats need to pass bytesperline as 0 and
set up customised buffer sizes.
This is common setup, therefore amend get_sizeimage and
get_bytesperline to do the correct thing whether compressed
or uncompressed.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Tue, 5 Mar 2019 15:43:27 +0000 (15:43 +0000)]
media: bcm2835-unicam: Add support for enum framesizes and frameintervals
vidioc_enum_framesizes and vidioc_enum_frameintervals weren't implemented,
therefore clients couldn't enumerate the supported resolutions.
Implement them by forwarding on to the sensor driver.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
P33M [Tue, 26 Mar 2019 09:48:25 +0000 (09:48 +0000)]
defconfigs: disable memory and IO cgroups (#2908)
Due to an upstream bug, memory is leaked in the inode cache when cgroups
are enabled. Disable as this is causing crashes.
See: https://github.com/raspberrypi/linux/issues/2829
Phil Elwell [Mon, 25 Mar 2019 18:03:48 +0000 (18:03 +0000)]
overlays: Add max17040 support to i2c-sensor
See: https://github.com/raspberrypi/linux/issues/2906
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Phil Elwell [Mon, 25 Mar 2019 17:54:05 +0000 (17:54 +0000)]
configs: Add CONFIG_BATTERY_MAX17040
See: https://github.com/raspberrypi/linux/issues/2906
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Lukas Wunner [Sat, 19 Jan 2019 07:42:40 +0000 (08:42 +0100)]
bcm2835-mmc: Deduplicate reset of driver data on remove
The BCM2835 MMC host driver sets the device's driver data pointer to
NULL on ->remove() even though the driver core subsequently does the
same in __device_release_driver(). Drop the duplicate assignment.
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: Frank Pavlic <f.pavlic@kunbus.de>
Lukas Wunner [Tue, 22 Jan 2019 11:29:45 +0000 (12:29 +0100)]
bcm2835-mmc: Handle mmc_add_host() errors
The BCM2835 MMC host driver calls mmc_add_host() but doesn't check its
return value. Errors occurring in that function are therefore not
handled. Fix it.
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: Frank Pavlic <f.pavlic@kunbus.de>
Lukas Wunner [Sat, 19 Jan 2019 08:00:26 +0000 (09:00 +0100)]
bcm2835-mmc: Fix duplicate free_irq() on remove
The BCM2835 MMC host driver requests its interrupt as a device-managed
resource, so the interrupt is automatically freed after the driver is
unbound.
However on driver unbind, bcm2835_mmc_remove() frees the interrupt
explicitly to avoid invocation of the interrupt handler after driver
structures have been torn down.
The interrupt is thus freed twice, leading to a WARN splat in
__free_irq(). Fix by not requesting the interrupt as a device-managed
resource.
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: Frank Pavlic <f.pavlic@kunbus.de>
Lukas Wunner [Sat, 19 Jan 2019 07:06:48 +0000 (08:06 +0100)]
bcm2835-mmc: Fix struct mmc_host leak on probe
The BCM2835 MMC host driver requests the bus address of the host's
register map on probe. If that fails, the driver leaks the struct
mmc_host allocated earlier.
Fix it.
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: Frank Pavlic <f.pavlic@kunbus.de>
Lukas Wunner [Wed, 16 Jan 2019 11:22:32 +0000 (12:22 +0100)]
bcm2835-mmc: Fix DMA channel leak
The BCM2835 MMC host driver requests a DMA channel on probe but neglects
to release the channel in the probe error path and on driver unbind.
I'm seeing this happen on every boot of the Compute Module 3: On first
driver probe, DMA channel 2 is allocated and then leaked with a "could
not get clk, deferring probe" message. On second driver probe, channel 4
is allocated.
Fix it.
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: Frank Pavlic <f.pavlic@kunbus.de>
Phil Elwell [Sun, 24 Mar 2019 20:54:25 +0000 (20:54 +0000)]
configs: Re-enable CONFIG_NETFILTER_XT_MATCH_SOCKET
A Kconfig change in 4.10 caused the xt_socket module to no-longer be
included in Raspbian builds. Fix the defconfigs to re-enable it.
See: https://github.com/raspberrypi/linux/issues/2905
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Phil Elwell [Fri, 22 Mar 2019 16:44:47 +0000 (16:44 +0000)]
overlays: Fix multiple-instantiation of sc16is7xx*
The registration of the fixed clocks uses the node name as the clock
name, causing a clash if two clock nodes have the same name, regardless
of the path to the node. Fix the issue by overwriting the clock node
names using the value of the "addr" parameter, providing a crude
disambiguation. (A bit of string pasting to form "sc16is752_clk_<addr>"
would have been nice, but that is outside the abilities of the overlay
parameter mechanism.)
Also give the sc16is750-i2c overlay the xtal parameter for symmetry.
See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=235650
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Adrien RICCIARDI [Fri, 22 Mar 2019 10:35:30 +0000 (11:35 +0100)]
overlays: sdio: Added 4-bit support on GPIOs 34-39. (#2903)
Phil Elwell [Wed, 13 Mar 2019 14:19:11 +0000 (14:19 +0000)]
bcm2835-sdhost: Allow for sg entries that cross pages
The dma_complete handling code calculates a virtual address for a page
then adds an offset, but if the offset is more than a page and HIGHMEM
is in use then the summed address could be in an unmapped (or just
incorrect) page.
The upstream SDHOST driver allows for this possibility - copy the code
that does so.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Stefan Wahren [Thu, 7 Mar 2019 18:27:05 +0000 (19:27 +0100)]
configs: Enable MT76 USB wifi
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Dave Stevenson [Fri, 8 Mar 2019 11:26:00 +0000 (11:26 +0000)]
staging: bcm2835_codec: Clean up logging on unloading the driver
The log line was missing a closing \n, so wasn't added to the
log immediately.
Adds the function of the V4L2 device that is being unregistered
too.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 8 Mar 2019 11:11:46 +0000 (11:11 +0000)]
staging: vc-sm-cma: Ensure mutex and idr are destroyed
map_lock and kernelid_map are created in probe, but not released
in release should the vcsm service not connect (eg running the
cutdown firmware).
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 8 Mar 2019 11:09:49 +0000 (11:09 +0000)]
staging: vc-sm-cma: Don't fail if debugfs calls fail.
Return codes from debugfs calls should never alter the
flow of the main code.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 8 Mar 2019 11:06:41 +0000 (11:06 +0000)]
staging: vc-sm-cma: Use devm_ allocs for sm_state.
Use managed allocations for sm_state, removing reliance on
manual management.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 8 Mar 2019 10:49:17 +0000 (10:49 +0000)]
staging: vc-sm-cma: Remove the debugfs directory on remove
Without removing that, reloading the driver fails.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Tue, 19 Mar 2019 17:55:09 +0000 (17:55 +0000)]
staging: bcm2835-codec: NULL component handle on queue_setup failure
queue_setup tries creating the relevant MMAL component and configures
the input and output ports as we're expecting to start streaming.
If the port configuration failed then it destroyed the component,
but failed to clear the component handle, therefore release tried
destroying the component again.
Adds some logging should the port config fail as well.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Kieran Bingham [Mon, 18 Mar 2019 17:17:40 +0000 (17:17 +0000)]
vcsm: Reduce scope of local functions
The functions:
vc_vchi_sm_send_msg
vc_sm_ioctl_alloc
vc_sm_ioctl_alloc_share
vc_sm_ioctl_import_dmabuf
Are declared without a prototype. They are not used outside of this
module, thus - convert them to static functions.
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Kieran Bingham [Mon, 18 Mar 2019 17:16:41 +0000 (17:16 +0000)]
vcsm: Remove set but unused variable
The 'success' variable is set by the call to vchi_service_close() but never checked.
Remove it, keeping the call in place.
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Kieran Bingham [Mon, 18 Mar 2019 17:14:51 +0000 (17:14 +0000)]
vcsm: Fix makefile include on out-of-tree builds
The vc_sm module tries to include the 'fs' directory from the
$(srctree). $(srctree) is already provided by the build system, and
causes the include path to be duplicated.
With -Werror this fails to compile.
Remove the unnecessary variable.
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Dave Stevenson [Fri, 8 Mar 2019 10:38:59 +0000 (10:38 +0000)]
staging: vc_sm_cma: Remove erroneous misc_deregister
Code from the misc /dev node was still present in
bcm2835_vc_sm_cma_remove, which caused a NULL deref.
Remove it.
See #2885.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Wed, 27 Feb 2019 17:30:33 +0000 (17:30 +0000)]
video: bcm2708_fb: Try allocating on the ARM and passing to VPU
Currently the VPU allocates the contiguous buffer for the
framebuffer.
Try an alternate path first where we use dma_alloc_coherent
and pass the buffer to the VPU. Should the VPU firmware not
support that path, then free the buffer and revert to the
old behaviour of using the VPU allocation.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Phil Elwell [Tue, 5 Mar 2019 09:51:22 +0000 (09:51 +0000)]
lan78xx: EEE support is now a PHY property
Now that EEE support is a property of the PHY, use the PHY's DT node
when querying the EEE-related properties.
See: https://github.com/raspberrypi/linux/issues/2882
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Jaikumar [Thu, 7 Jun 2018 15:52:45 +0000 (21:22 +0530)]
Added mute stream func
Signed-off-by: Jaikumar <jaikumar@cem-solutions.net>
Phil Elwell [Wed, 27 Feb 2019 20:08:48 +0000 (20:08 +0000)]
config: Add CONFIG_FB_TFT_SH1106=m
See: https://github.com/raspberrypi/linux/issues/2876
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Giedrius [Wed, 27 Feb 2019 14:27:28 +0000 (14:27 +0000)]
Fix for Pisound kernel module in Real Time kernel configuration.
When handler of data_available interrupt is fired, queue_work ends up
getting called and it can block on a spin lock which is not allowed in
interrupt context. The fix was to run the handler from a thread context
instead.
Eric Anholt [Mon, 5 Feb 2018 18:53:18 +0000 (18:53 +0000)]
drm/vc4: Don't wait for vblank on fkms cursor updates.
We don't use the same async update path between fkms and normal kms,
and the normal kms workaround ended up making us wait. This became a
larger problem in rpi-4.14.y, as the USB HID update rate throttling
got (accidentally?) dropped.
Signed-off-by: Eric Anholt <eric@anholt.net>
Dave Stevenson [Mon, 18 Feb 2019 15:56:42 +0000 (15:56 +0000)]
staging: bcm2835_codec: Include timing info in SPS headers
Inserting timing information into the VUI block of the SPS is
optional with the VPU encoder.
GStreamer appears to require them when using V4L2 M2M, therefore
set the option to enable them from the encoder.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Mon, 18 Feb 2019 15:52:29 +0000 (15:52 +0000)]
staging: mmal-vchiq: Update mmal_parameters.h with recently defined params
mmal_parameters.h hasn't been updated to reflect additions made
over the last few years. Update it to reflect the currently
supported parameters.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 15 Feb 2019 11:38:45 +0000 (11:38 +0000)]
staging: bcm2835_codec: Fix handling of VB2_MEMORY_DMABUF buffers
If the queue is configured as VB2_MEMORY_DMABUF then vb2_core_expbuf
fails as it ensures the queue is defined as VB2_MEMORY_MMAP.
Correct the handling so that we unmap the buffer from vcsm and the
VPU on cleanup, and then correctly get the dma buf of the new buffer.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 15 Feb 2019 11:36:14 +0000 (11:36 +0000)]
staging: bcm2835_codec: Add an option for ignoring Bayer formats.
This is a workaround for GStreamer currently not identifying Bayer
as a raw format, therefore any device that supports it does not
match the criteria for v4l2convert.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Wed, 13 Feb 2019 14:07:52 +0000 (14:07 +0000)]
staging: bcm2835_codec: Add support for the ISP as an M2M device
The MMAL ISP component can also use this same V4L2 wrapper to
provide a M2M format conversion and resizer.
Instantiate 3 V4L2 devices now, one for each of decode, encode,
and isp.
The ISP currently doesn't expose any controls via V4L2, but this
can be extended in the future.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Wed, 13 Feb 2019 13:44:00 +0000 (13:44 +0000)]
staging: bcm2835_codec: Query supported formats from the component
The driver was previously working with hard coded tables of
which video formats were supported by each component.
The components advertise this information via a MMAL parameter,
so retrieve the information from there during probe, and store
in the state structure for that device.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Wed, 13 Feb 2019 12:51:03 +0000 (12:51 +0000)]
staging: mmal-vchiq: If the VPU returns an error, don't negate it
There is an enum for the errors that the VPU can return.
port_parameter_get was negating that value, but also using -EINVAL
from the Linux error codes.
Pass the VPU error code as positive values. Should the function
need to pass a Linux failure, then return that as negative.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Wed, 13 Feb 2019 12:36:56 +0000 (12:36 +0000)]
staging: mmal-vchiq: Always return the param size from param_get
mmal-vchiq is a reimplementation of the userland library for MMAL.
When getting a parameter, the client provides the storage and
the size of the storage. The VPU then returns the size of the
parameter that it wished to return, and as much as possible of
that parameter is returned to the client.
The implementation previously only returned the size provided
by the VPU should it exceed the buffer size. So for parameters
such as the supported encodings list the client had no idea
how much of the provided storage had been populated.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Wed, 13 Feb 2019 12:33:29 +0000 (12:33 +0000)]
staging: mmal_vchiq: Add in the Bayer encoding formats
The list of formats was copied before Bayer support was added.
The ISP supports Bayer and is being supported by the bcm2835_codec
driver, so add in the encodings for them.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Tue, 19 Feb 2019 15:18:25 +0000 (15:18 +0000)]
drm: vc4: Programming the CTM is conditional on running full KMS
vc4_ctm_commit writes to HVS registers, so this is only applicable
when in full KMS mode, not in firmware KMS mode. Add this conditional.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Tue, 19 Feb 2019 15:06:31 +0000 (15:06 +0000)]
gpu:vc4-fkms: Update driver to not use plane->crtc.
Following on from
commit
2f958af7fc248 ("drm/vc4: Stop updating plane->fb/crtc")
do the same in the firmwarekms driver and look at plane_state->crtc
instead.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Phil Elwell [Mon, 18 Feb 2019 15:43:30 +0000 (15:43 +0000)]
Revert "brcmfmac: Mute expected startup 'errors'"
This reverts commit
34eba9138ccf8d84552ab9dae37d8f348640e663.
Upstream patch
26e537884a ("brcmfmac: Do not complain about country code "00")
fixes the same issue, so drop this downstream patch.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Zahari Petkov [Fri, 8 Feb 2019 11:33:47 +0000 (13:33 +0200)]
configs: Add CONFIG_LEDS_PCA963X=m
Enable support for PCA963x I2C chip.
Needed for the balenaFin v1.1.0 carrier board for the
Raspberry Pi Compute Module 3/3+ Lite.
Signed-off-by: Zahari Petkov <zahari@balena.io>
Zahari Petkov [Fri, 8 Feb 2019 11:03:38 +0000 (13:03 +0200)]
overlays: balenaFin v1.1.0 carrier board update
A backward compatible update for the balenaFin carrier board for the
Raspberry Pi Compute Module 3/3+ Lite.
The updated overlay includes:
* support for the newly introduced RGB LEDs
* i2c-gpio and SDIO improvements
* DT based Marvell 88W8887 configuration
Signed-off-by: Zahari Petkov <zahari@balena.io>
Phil Elwell [Thu, 7 Feb 2019 18:16:25 +0000 (18:16 +0000)]
configs: Enable the AD193x codecs
See: https://github.com/raspberrypi/linux/issues/2850
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Dave Stevenson [Tue, 5 Feb 2019 12:31:23 +0000 (12:31 +0000)]
config: Add IPVLAN module to bcmrpi3_defconfig
It's built for the 32bit kernels, but not for the 64bit ones.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Mon, 4 Feb 2019 13:42:51 +0000 (13:42 +0000)]
configs: Add V4L2 codec driver to bcmrpi3_defconfig
As this is now fixed to work with 64bit kernels, add it to the
defconfig.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Mon, 4 Feb 2019 12:45:25 +0000 (12:45 +0000)]
configs: Add VIDEO_BCM2835 to bcmrpi3_defconfig
This is now shown to work with 64 bit kernels, so add it to
the defconfig.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Mon, 4 Feb 2019 12:35:06 +0000 (12:35 +0000)]
configs: Add Unicam and subdevices to bcmrpi3_defconfig
The bcm2835-unicam, tc358743, adv7180 (for adv7282m) and ov5647
have been tested on a 64bit kernel and shown to work.
Add them to the config.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Tue, 29 Jan 2019 16:32:57 +0000 (16:32 +0000)]
staging: vc-sm-cma: Fix up for 64bit builds
There were a number of logging lines that were using
inappropriate formatting under 64bit kernels.
The kernel_id field passed to/from the VPU was being
abused for storing the struct vc_sm_buffer *.
This breaks with 64bit kernels, so change to using an IDR.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Tue, 29 Jan 2019 16:29:00 +0000 (16:29 +0000)]
staging: vc-sm-cma: Use a void* pointer as the handle within the kernel
The driver was using an unsigned int as the handle to the outside world,
and doing a nasty cast to the struct dmabuf when handed it back.
This breaks badly with a 64 bit kernel where the pointer doesn't fit
in an unsigned int.
Switch to using a void* within the kernel. Reality is that it is
a struct dma_buf*, but advertising it as such to other drivers seems
to encourage the use of it as such, and I'm not sure on the implications
of that.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Tue, 29 Jan 2019 16:24:41 +0000 (16:24 +0000)]
staging: vc-sm-cma: Correct DMA configuration.
Now that VCHIQ is setting up the DMA configuration as our
parent device, don't try to configure it during probe.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Tue, 29 Jan 2019 16:13:25 +0000 (16:13 +0000)]
staging: vchiq_arm: Set up dma ranges on child devices
The VCHIQ driver now loads the audio, camera, codec, and vc-sm
drivers as platform drivers. However they were not being given
the correct DMA configuration.
Call of_dma_configure with the parent (VCHIQ) parameters to be
inherited by the child.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Wed, 30 Jan 2019 17:47:51 +0000 (17:47 +0000)]
usb: dwc_otg: Use dma allocation for mphi dummy_send buffer
The FIQ driver used a kzalloc'ed buffer for dummy_send,
passing a kernel virtual address to the hardware block.
The buffer is only ever used for a dummy read, so it
should be harmless, but there is the chance that it will
cause exceptions.
Use a dma allocation so that we have a genuine bus address,
and read from that.
Free the allocation when done for good measure.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
Dave Stevenson [Fri, 25 Jan 2019 16:03:31 +0000 (16:03 +0000)]
usb: dwc_otg: Clean up build warnings on 64bit kernels
No functional changes. Almost all are changes to logging lines.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>