sort by:
Revision Author Date Message Commit Date
33325bf 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> 08 January 2017, 11:41:18 UTC
12964e0 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> 08 January 2017, 11:41:17 UTC
c29177d 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> 08 January 2017, 11:41:16 UTC
7958300 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> 08 January 2017, 11:41:15 UTC
b496c52 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> 08 January 2017, 11:41:14 UTC
e77d626 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> 08 January 2017, 11:41:13 UTC
b409033 i2c: bcm2835: Fix hang for writing messages larger than 16 bytes Writing messages larger than the FIFO size results in a hang, rendering the machine unusable. This is because the RXD status flag is set on the first interrupt which results in bcm2835_drain_rxfifo() stealing bytes from the buffer. The controller continues to trigger interrupts waiting for the missing bytes, but bcm2835_fill_txfifo() has none to give. In this situation wait_for_completion_timeout() apparently is unable to stop the madness. The BCM2835 ARM Peripherals datasheet has this to say about the flags: TXD: is set when the FIFO has space for at least one byte of data. RXD: is set when the FIFO contains at least one byte of data. TXW: is set during a write transfer and the FIFO is less than full. RXR: is set during a read transfer and the FIFO is or more full. Implementing the logic from the downstream i2c-bcm2708 driver solved the hang problem. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Martin Sperl <kernel@martin.sperl.org> 08 January 2017, 11:41:12 UTC
bc96e07 spi-bcm2835: Remove unused code 08 January 2017, 11:41:11 UTC
d47b3dc bcmrpi3_defconfig: Update config to be compatible with latest Kconfig changes. This new config has been run through make savedefconfig. 08 January 2017, 11:41:10 UTC
89120ac dwc_otg: Warn if dma_alloc_coherent fails 08 January 2017, 11:41:09 UTC
40ec221 bcm2835: Increase coherent allocation to 1M for dwc_otg bounce buffers 08 January 2017, 11:41:08 UTC
a84f3aa firmware: bcm2835: Don't turn on USB power The raspberrypi-power driver is now used to turn on USB power. This partly reverts commit: firmware: bcm2835: Support ARCH_BCM270x Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:07 UTC
a09f782 BCM270X_DT: Use raspberrypi-power to turn on USB power Use the raspberrypi-power driver to turn on USB power. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:06 UTC
d980a5b bcm270x: Use dma-ranges unconditionally on bcm2710 See: https://github.com/raspberrypi/linux/pull/1699 Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:41:05 UTC
8462279 kconfig: Just use ARCH_BCM2835 for depends on ARCH_BCM2708 and ARCH_BCM2709 selects ARCH_BCM2835 now, so the dependencies can be simplified. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:04 UTC
84412aa bcm2709: Convert to ARCH_MULTIPLATFORM Convert to multi platform and base it on ARCH_BCM2835. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:04 UTC
e62b4a7 bcm2708: Convert to ARCH_MULTIPLATFORM Convert to multi platform and base it on ARCH_BCM2835. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:03 UTC
1f535d5 dts: Remove bcm2835-rpi-cm.dts This file doesn't build anymore and isn't used so remove it. It was added as part of my ARCH_BCM2835 work last year, but the future didn't pan out as expected. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:02 UTC
392e412 bcm270x: Drop NEED_MACH_MEMORY_H and use DT dma-ranges Drop NEED_MACH_MEMORY_H and use dma-ranges from the Device Tree to get the bus address, like ARCH_BCM2835 does. This means that we go from this: arch/arm/mach-bcm270x/include/mach/memory.h: define __virt_to_bus(x) ((x) + (BUS_OFFSET - PAGE_OFFSET)) define __bus_to_virt(x) ((x) - (BUS_OFFSET - PAGE_OFFSET)) define __pfn_to_bus(x) (__pfn_to_phys(x) + BUS_OFFSET) define __bus_to_pfn(x) __phys_to_pfn((x) - BUS_OFFSET To this: arch/arm/include/asm/memory.h: define __virt_to_bus __virt_to_phys define __bus_to_virt __phys_to_virt define __pfn_to_bus(x) __pfn_to_phys(x) define __bus_to_pfn(x) __phys_to_pfn(x) Drivers now have to use the DMA API to get to the bus address. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:01 UTC
53ab5ec mmc: bcm2835-sdhost: Pass struct device to dma_alloc*() This makes it possible to get the bus address from Device Tree. At the same time move the call to log_init() after getting the clock to avoid allocating twice due to deferred probing. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:00 UTC
f0cedd1 dwc_otg: Pass struct device to dma_alloc*() This makes it possible to get the bus address from Device Tree. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:59 UTC
8a002bf bcm270x: Remove NEED_MACH_IO_H NEED_MACH_IO_H isn't necessary since we don't have PC card/PCI/ISA IO space. The __io macro is only used in the {in,out}[bwl] macros. arch/arm/include/asm/io.h will give these defaults now: define __io(a) __typesafe_io((a) & IO_SPACE_LIMIT) define IO_SPACE_LIMIT ((resource_size_t)0) This is the same as ARCH_BCM2835. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:58 UTC
7dcc9be bcm270x: Remove bcm2708_reboot_mode parameter This isn't used anymore now that the watchdog driver does restart/poweroff. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:57 UTC
51f1a7c FIXUP: pisound: Fix a warning in DEBUG builds Also change a macro that enables debug level printing from DEBUG to PISOUND_DEBUG. 08 January 2017, 11:40:56 UTC
d1d16f5 Support for Blokas Labs pisound board 08 January 2017, 11:40:55 UTC
b9d3a9f 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. 08 January 2017, 11:40:54 UTC
e19052c mmc: info (not err) msg on clock probe deferral 08 January 2017, 11:40:53 UTC
13661d5 BCM270X_DT: Update CM3 to use sdhost interface 08 January 2017, 11:40:52 UTC
717b32f Add Adafruit pitft35 touchscreen support (#1657) The dts comes from the Adafruit repository https://github.com/adafruit/Adafruit-Pi-Kernel-o-Matic/blob/pitft/pitft35r-overlay.dts Reformatted slightly to match conventions in the pitft28-resistive-overlay. Signed-off-by: Scott Ellis <scott@jumpnowtek.com> 08 January 2017, 11:40:51 UTC
f6927e7 Register the clocks early during the boot process, so that special/critical clocks can get enabled early on in the boot process avoiding the risk of disabling a clock, pll_divider or pll when a claiming driver fails to install propperly - maybe it needs to defer. Signed-off-by: Martin Sperl <kernel@martin.sperl.org> 08 January 2017, 11:40:51 UTC
cf98105 Use DT rather than modules params for board rev and serial 08 January 2017, 11:40:50 UTC
6378583 bcm270x: Use DT_MACHINE_START We are all DT now so use DT_MACHINE_START. Also drop the extra BCM2709-BCM2708 mix entry. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:49 UTC
e78ba0c bcm270x: Drop map_io device mapping All drivers map their own io now so it's not necessary to do this mapping anymore. The mapping for the uart debug console is handled by debug_ll_io_init() if necessary. Remove local uart debug code and rely on mainline. Use these kconfig options to enable: CONFIG_DEBUG_BCM2835 CONFIG_DEBUG_BCM2836 Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:48 UTC
7100bbe bcm270x: Remove 4MB dma coherent pool Drop the call to init_dma_coherent_pool_size(). The default 256kB is enough since vchiq dropped that atomic allocation some time back. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:47 UTC
1a984d0 bcm270x: Remove unnecessary of_platform_populate Since 4.8 of_platform_default_populate_init() does the same and it is called at arch_initcall_sync. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:46 UTC
75bb10a bcm270x: Drop bcm2835-aux-uart hack The gated bcm2835-aux clock is now used to enable uart1 so drop this hack. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:45 UTC
0d72bcb bcm270x: Remove dead files include/mach/vmalloc.h has not been used since 2011. include/mach/entry-macro.S is leftover from the move to the mainline irq driver. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:44 UTC
9a66d25 bcm270x: Use watchdog for reboot/poweroff The watchdog driver already has support for reboot/poweroff. Make use of this and remove the code from the platform files. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:43 UTC
98abb9d watchdog: bcm2835: Support setting reboot partition The Raspberry Pi firmware looks at the RSTS register to know which partition to boot from. The reboot syscall command LINUX_REBOOT_CMD_RESTART2 supports passing in a string argument. Add support for passing in a partition number 0..63 to boot from. Partition 63 is a special partiton indicating halt. If the partition doesn't exist, the firmware falls back to partition 0. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:42 UTC
0d0f7d8 BCM270X_DT: Use bcm283x.dtsi, bcm2835.dtsi and bcm2836.dtsi The mainline Device Tree files are quite close to downstream now. Let's use bcm283x.dtsi, bcm2835.dtsi and bcm2836.dtsi as base files for our dts files. Mainline dts files are based on these files: bcm2835-rpi.dtsi bcm2835.dtsi bcm2836.dtsi bcm283x.dtsi Current downstream are based on these: bcm2708.dtsi bcm2709.dtsi bcm2710.dtsi bcm2708_common.dtsi This patch introduces this dependency: bcm2708.dtsi bcm2709.dtsi bcm2708-rpi.dtsi bcm270x.dtsi bcm2835.dtsi bcm2836.dtsi bcm283x.dtsi And: bcm2710.dtsi bcm2708-rpi.dtsi bcm270x.dtsi bcm283x.dtsi bcm270x.dtsi contains the downstream bcm283x.dtsi diff. bcm2708-rpi.dtsi is the downstream version of bcm2835-rpi.dtsi. Other changes: - The led node has moved from /soc/leds to /leds. This is not a problem since the label is used to reference it. - The clk_osc reg property changes from 6 to 3. - The gpu nodes has their interrupt property set in the base file. - the clocks label does not point to the /clocks node anymore, but points to the cprman node. This is not a problem since the overlays that use the clock node refer to it directly: target-path = "/clocks"; - some nodes now have 2 labels since mainline and downstream differs in this respect: cprman/clocks, spi0/spi, gpu/vc4. - some nodes doesn't have an explicit status = "okay" since they're not disabled in the base file: watchdog and random. - gpiomem doesn't need an explicit status = "okay". - bcm2708-rpi-cm.dts got the hpd-gpios property from bcm2708_common.dtsi, it's now set directly in that file. - bcm2709-rpi-2-b.dts has the timer node moved from /soc/timer to /timer. - Removed clock-frequency property on the bcm{2709,2710}.dtsi timer nodes. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:41 UTC
00decac bcm2709: Drop platform smp and timer init code irq-bcm2836 handles this through these functions: bcm2835_init_local_timer_frequency() bcm2836_arm_irqchip_smp_init() Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:40:40 UTC
d3978ae [media]bcm2835-camera: fix compilation warning/werror | /a/builder/mnt/build/tmp-glibc/work-shared/raspberrypi3/kernel-source/drivers/media/platform/bcm2835/bcm2835-camera.c:656:17: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types ] | .queue_setup = queue_setup, | ^~~~~~~~~~~ | /a/builder/mnt/build/tmp-glibc/work-shared/raspberrypi3/kernel-source/drivers/media/platform/bcm2835/bcm28 35-camera.c:656:17: note: (near initialization for 'bm2835_mmal_video_qops.queue_setup') use struct device* instead of void* Signed-off-by: Khem Raj <raj.khem@gmail.com> 08 January 2017, 11:40:40 UTC
e57fb49 build: support for .dtbo files for dtb overlays Kernel 4.4.6+ on RaspberryPi support .dtbo files for overlays, instead of .dtb. Patch the kernel, which has faulty rules to generate .dtbo the way yocto does Signed-off-by: Herve Jourdain <herve.jourdain@neuf.fr> Signed-off-by: Khem Raj <raj.khem@gmail.com> 08 January 2017, 11:40:39 UTC
3712ced scripts/mkknlimg: Change string for DDT detection The old "of_overlay_apply" string does not appear in 4.8 kernel builds. "of_cfs_init" is both present and a more accurate indication of support for dynamically loading overlays (although the trailer is now of little practical use and the firmware assumes DT support and will look for both .dtbo and -overlay.dtb overlays). Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:40:38 UTC
5295050 bcm2835-cpufreq: Only report a single frequency when max and min frequencies are the same 4.8 kernel gives EINV error when max and min frequencies are the same (e.g. from using force_turbo=1) 08 January 2017, 11:40:37 UTC
ba6c54a Add arm64 configuration and device tree differences. Disable MMC_BCM2835_SDHOST and MMC_BCM2835 since these drivers are crashing at the moment. 08 January 2017, 11:40:36 UTC
720a7fb config: Add default configs 08 January 2017, 11:40:35 UTC
5260c9f drm/vc4: Include vc4_drm.h in uapi in downstream build. Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:40:34 UTC
29a820d 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. 08 January 2017, 11:40:33 UTC
c8291df brcmfmac: Change stop_ap sequence Patch from Broadcom/Cypress to resolve a customer error Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:40:32 UTC
b2b716a brcmfmac: do not use internal roaming engine by default Some evidence of curing disconnects with this disabled, so make it a default. Can be overridden with module parameter roamoff=0 See: http://projectable.me/optimize-my-pi-wi-fi/ 08 January 2017, 11:40:31 UTC
4164bee brcmfmac: Use original country code as a fallback Commit 73345fd212980d2e28a5c6d83801c903bd773680: brcmfmac: Configure country code using device specific settings prevents region codes from working on devices that lack a region code translation table. In the event of an absent table, preserve the old behaviour of using the provided code as-is. Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:40:31 UTC
b1ea1b7 brcmfmac: Disable power management Disable wireless power saving in the brcmfmac WLAN driver. This is a temporary measure until the connectivity loss resulting from power saving is resolved. Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:40:30 UTC
945332d brcm: adds support for BCM43341 wifi 08 January 2017, 11:40:29 UTC
8852ca7 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> 08 January 2017, 11:40:28 UTC
117cc8d 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 08 January 2017, 11:40:27 UTC
23e7bdb 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 08 January 2017, 11:40:25 UTC
19dd15e 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. 08 January 2017, 11:40:24 UTC
b29f45c DRM_VC4: Allow to be built for ARCH_BCM270x 08 January 2017, 11:40:23 UTC
1f74cc6 bcm2835-virtgpio: Virtual GPIO driver Add a virtual GPIO driver that uses the firmware mailbox interface to request that the VPU toggles LEDs. 08 January 2017, 11:40:22 UTC
bda57eb rpi_display: add backlight driver and overlay Add a mailbox-driven backlight controller for the Raspberry Pi DSI touchscreen display. Requires updated GPU firmware to recognise the mailbox request. Signed-off-by: Gordon Hollingworth <gordon@raspberrypi.org> 08 January 2017, 11:40:21 UTC
8f78160 Allo Piano DAC boards: Initial 2 channel (stereo) support (#1645) Add initial 2 channel (stereo) support for Allo Piano DAC (2.0/2.1) boards, using allo-piano-dac-pcm512x-audio overlay and allo-piano-dac ALSA ASoC machine driver. NB. The initial support is 2 channel (stereo) ONLY! (The Piano DAC 2.1 will only support 2 channel (stereo) left/right output, pending an update to the upstream pcm512x codec driver, which will have to be submitted via upstream. With the initial downstream support, provided by this patch, the Piano DAC 2.1 subwoofer outputs will not function.) Signed-off-by: Baswaraj K <jaikumar@cem-solutions.net> Signed-off-by: Clive Messer <clive.messer@digitaldreamtime.co.uk> Tested-by: Clive Messer <clive.messer@digitaldreamtime.co.uk> 08 January 2017, 11:40:20 UTC
8aeb807 Add support for Dion Audio LOCO DAC-AMP HAT Using dedicated machine driver and pcm5102a codec driver. Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk> 08 January 2017, 11:40:19 UTC
f84f312 New driver for RRA DigiDAC1 soundcard using WM8741 + WM8804 08 January 2017, 11:40:18 UTC
3ff130a Add IQAudIO Digi WM8804 board support Support IQAudIO Digi board with iqaudio_digi machine driver and iqaudio-digi-wm8804-audio overlay. NB. Machine driver is a cut and paste of hifiberry_digi code, with format and general cleanup to comply with kernel coding standards. Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk> 08 January 2017, 11:40:18 UTC
3e6548d New AudioInjector.net Pi soundcard with low jitter audio in and out. Contains the sound/soc/bcm ALSA machine driver and necessary alterations to the Kconfig and Makefile. Adds the dts overlay and updates the Makefile and README. Updates the relevant defconfig files to enable building for the Raspberry Pi. Thanks to Phil Elwell (pelwell) for the review, simple-card concepts and discussion. Thanks to Clive Messer for overlay naming suggestions. Added support for headphones, microphone and bclk_ratio settings. This patch adds headphone and microphone capability to the Audio Injector sound card. The patch also sets the bit clock ratio for use in the bcm2835-i2s driver. The bcm2835-i2s can't handle an 8 kHz sample rate when the bit clock is at 12 MHz because its register is only 10 bits wide which can't represent the ch2 offset of 1508. For that reason, the rate constraint is added. 08 January 2017, 11:40:17 UTC
f89a788 ARM: adau1977-adc: Add basic machine driver for adau1977 codec driver. This commit adds basic support for the codec usage including: Device tree overlay, binding I2S bus and setting I2S mode, clock source and frequency setting according to spec. Signed-off-by: Andrey Grodzovsky <andrey2805@gmail.com> 08 January 2017, 11:40:16 UTC
4868005 Add Support for JustBoom Audio boards justboom-dac: Adjust for ALSA API change As of 4.4, snd_soc_limit_volume now takes a struct snd_soc_card * rather than a struct snd_soc_codec *. Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:40:15 UTC
f66c0ca RaspiDAC3 support Signed-off-by: Jan Grulich <jan@grulich.eu> config: fix RaspiDAC Rev.3x dependencies Change depends to SND_BCM2708_SOC_I2S || SND_BCM2835_SOC_I2S like the other I2S soundcard drivers. Signed-off-by: Matthias Reichl <hias@horus.com> 08 January 2017, 11:40:14 UTC
721258d Add driver for rpi-proto Forward port of 3.10.x driver from https://github.com/koalo We are using a custom board and would like to use rpi 3.18.x kernel. Patch works fine for our embedded system. URL to the audio chip: http://www.mikroe.com/add-on-boards/audio-voice/audio-codec-proto/ Playback tested with devicetree enabled. Signed-off-by: Waldemar Brodkorb <wbrodkorb@conet.de> 08 January 2017, 11:40:13 UTC
231a535 Update ds1307 driver for device-tree support Signed-off-by: Ryan Coe <bluemrp9@gmail.com> 08 January 2017, 11:40:12 UTC
bf5d92c Added HiFiBerry Digi+ Pro driver Signed-off-by: Daniel Matuschek <daniel@hifiberry.com> 08 January 2017, 11:40:11 UTC
0e779cb Added driver for HiFiBerry Amp amplifier add-on board The driver contains a low-level hardware driver for the TAS5713 and the drivers for the Raspberry Pi I2S subsystem. TAS5713: return error if initialisation fails Existing TAS5713 driver logs errors during initialisation, but does not return an error code. Therefore even if initialisation fails, the driver will still be loaded, but won't work. This patch fixes this. I2C communication error will now reported correctly by a non-zero return code. HiFiBerry Amp: fix device-tree problems Some code to load the driver based on device-tree-overlays was missing. This is added by this patch. 08 January 2017, 11:40:10 UTC
a107144 Added support for HiFiBerry DAC+ The driver is based on the HiFiBerry DAC driver. However HiFiBerry DAC+ uses a different codec chip (PCM5122), therefore a new driver is necessary. Add support for the HiFiBerry DAC+ Pro. The HiFiBerry DAC+ and DAC+ Pro products both use the existing bcm sound driver with the DAC+ Pro having a special clock device driver representing the two high precision oscillators. An addition bug fix is included for the PCM512x codec where by the physical size of the sample frame is used in the calculation of the LRCK divisor as it was found to be wrong when using 24-bit depth sample contained in a little endian 4-byte sample frame. Limit PCM512x "Digital" gain to 0dB by default with HiFiBerry DAC+ 24db_digital_gain DT param can be used to specify that PCM512x codec "Digital" volume control should not be limited to 0dB gain, and if specified will allow the full 24dB gain. Add dt param to force HiFiBerry DAC+ Pro into slave mode "dtoverlay=hifiberry-dacplus,slave" Add 'slave' param to use HiFiBerry DAC+ Pro in slave mode, with Pi as master for bit and frame clock. Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk> 08 January 2017, 11:40:09 UTC
5e55ed5 iqaudio-dac: Compile fix - untested 08 January 2017, 11:40:08 UTC
88029b2 Add IQaudIO Sound Card support for Raspberry Pi Set a limit of 0dB on Digital Volume Control The main volume control in the PCM512x DAC has a range up to +24dB. This is dangerously loud and can potentially cause massive clipping in the output stages. Therefore this sets a sensible limit of 0dB for this control. Allow up to 24dB digital gain to be applied when using IQAudIO DAC+ 24db_digital_gain DT param can be used to specify that PCM512x codec "Digital" volume control should not be limited to 0dB gain, and if specified will allow the full 24dB gain. Modify IQAudIO DAC+ ASoC driver to set card/dai config from dt Add the ability to set the card name, dai name and dai stream name, from dt config. Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk> IQaudIO: auto-mute for AMP+ and DigiAMP+ IQAudIO amplifier mute via GPIO22. Add dt params for "one-shot" unmute and auto mute. Revision 2, auto mute implementing HiassofT suggestion to mute/unmute using set_bias_level, rather than startup/shutdown.... "By default DAPM waits 5 seconds (pmdown_time) before shutting down playback streams so a close/stop immediately followed by open/start doesn't trigger an amp mute+unmute." Tested on both AMP+ (via DAC+) and DigiAMP+, with both options... dtoverlay=iqaudio-dacplus,unmute_amp "one-shot" unmute when kernel module loads. dtoverlay=iqaudio-dacplus,auto_mute_amp Unmute amp when ALSA device opened by a client. Mute, with 5 second delay when ALSA device closed. (Re-opening the device within the 5 second close window, will cancel mute.) Revision 4, using gpiod. Revision 5, clean-up formatting before adding mute code. - Convert tab plus 4 space formatting to 2x tab - Remove '// NOT USED' commented code Revision 6, don't attempt to "one-shot" unmute amp, unless card is successfully registered. Signed-off-by: DigitalDreamtime <clive.messer@digitaldreamtime.co.uk> 08 January 2017, 11:40:07 UTC
930cbc8 ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patched WM8804 driver. Signed-off-by: Daniel Matuschek <daniel@matuschek.net> Add a parameter to turn off SPDIF output if no audio is playing This patch adds the paramater auto_shutdown_output to the kernel module. Default behaviour of the module is the same, but when auto_shutdown_output is set to 1, the SPDIF oputput will shutdown if no stream is playing. bugfix for 32kHz sample rate, was missing HiFiBerry Digi: set SPDIF status bits for sample rate The HiFiBerry Digi driver did not signal the sample rate in the SPDIF status bits. While this is optional, some DACs and receivers do not accept this signal. This patch adds the sample rate bits in the SPDIF status block. 08 January 2017, 11:40:06 UTC
6035cca ASoC: wm8804: Implement MCLK configuration options, add 32bit support WM8804 can run with PLL frequencies of 256xfs and 128xfs for most sample rates. At 192kHz only 128xfs is supported. The existing driver selects 128xfs automatically for some lower samples rates. By using an additional mclk_div divider, it is now possible to control the behaviour. This allows using 256xfs PLL frequency on all sample rates up to 96kHz. It should allow lower jitter and better signal quality. The behavior has to be controlled by the sound card driver, because some sample frequency share the same setting. e.g. 192kHz and 96kHz use 24.576MHz master clock. The only difference is the MCLK divider. This also added support for 32bit data. Signed-off-by: Daniel Matuschek <daniel@matuschek.net> 08 January 2017, 11:40:05 UTC
a228b88 ASoC: Add support for Rpi-DAC 08 January 2017, 11:40:04 UTC
679d381 ASoC: Add support for HifiBerry DAC This adds a machine driver for the HifiBerry DAC. It is a sound card that can be stacked onto the Raspberry Pi. Signed-off-by: Florian Meier <florian.meier@koalo.de> 08 January 2017, 11:40:03 UTC
bf42a8e mfd: Add Raspberry Pi Sense HAT core driver 08 January 2017, 11:40:02 UTC
635ab1a gpio-poweroff: Allow it to work on Raspberry Pi The Raspberry Pi firmware manages the power-down and reboot process. To do this it installs a pm_power_off handler, causing the gpio-poweroff module to abort the probe function. This patch introduces a "force" DT property that overrides that behaviour, and also adds a DT overlay to enable and control it. Note that running in an active-low configuration (DT parameter "active_low") requires a custom dt-blob.bin and probably won't allow a reboot without switching off, so an external inversion of the trigger signal may be preferable. 08 January 2017, 11:40:01 UTC
0a2aa90 Improve __copy_to_user and __copy_from_user performance Provide a __copy_from_user that uses memcpy. On BCM2708, use optimised memcpy/memmove/memcmp/memset implementations. arch/arm: Add mmiocpy/set aliases for memcpy/set See: https://github.com/raspberrypi/linux/issues/1082 copy_from_user: CPU_SW_DOMAIN_PAN compatibility The downstream copy_from_user acceleration must also play nice with CONFIG_CPU_SW_DOMAIN_PAN. See: https://github.com/raspberrypi/linux/issues/1381 Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:40:00 UTC
22d1f3f rpi-ft5406: Add touchscreen driver for pi LCD display Fix driver detection failure Check that the buffer response is non-zero meaning the touchscreen was detected rpi-ft5406: Use firmware API 08 January 2017, 11:39:59 UTC
14306d2 hid: Reduce default mouse polling interval to 60Hz Reduces overhead when using X 08 January 2017, 11:39:58 UTC
337911b config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cost). Enable with cgroup_enable=memory. 08 January 2017, 11:39:57 UTC
4f2cf02 Added Device IDs for August DVB-T 205 08 January 2017, 11:39:57 UTC
9f193ef enabling the realtime clock 1-wire chip DS1307 and 1-wire on GPIO4 (as a module) 1-wire: Add support for configuring pin for w1-gpio kernel module See: https://github.com/raspberrypi/linux/pull/457 Add bitbanging pullups, use them for w1-gpio Allows parasite power to work, uses module option pullup=1 bcm2708: Ensure 1-wire pullup is disabled by default, and expose as module parameter Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk> w1-gpio: Add gpiopin module parameter and correctly free up gpio pull-up pin, if set Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk> w1-gpio: Sort out the pullup/parasitic power tangle 08 January 2017, 11:39:56 UTC
f6219b5 Speed up console framebuffer imageblit function Especially on platforms with a slower CPU but a relatively high framebuffer fill bandwidth, like current ARM devices, the existing console monochrome imageblit function used to draw console text is suboptimal for common pixel depths such as 16bpp and 32bpp. The existing code is quite general and can deal with several pixel depths. By creating special case functions for 16bpp and 32bpp, by far the most common pixel formats used on modern systems, a significant speed-up is attained which can be readily felt on ARM-based devices like the Raspberry Pi and the Allwinner platform, but should help any platform using the fb layer. The special case functions allow constant folding, eliminating a number of instructions including divide operations, and allow the use of an unrolled loop, eliminating instructions with a variable shift size, reducing source memory access instructions, and eliminating excessive branching. These unrolled loops also allow much better code optimization by the C compiler. The code that selects which optimized variant is used is also simplified, eliminating integer divide instructions. The speed-up, measured by timing 'cat file.txt' in the console, varies between 40% and 70%, when testing on the Raspberry Pi and Allwinner ARM-based platforms, depending on font size and the pixel depth, with the greater benefit for 32bpp. Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com> 08 January 2017, 11:39:55 UTC
814878c fbdev: add FBIOCOPYAREA ioctl Based on the patch authored by Ali Gholami Rudi at https://lkml.org/lkml/2009/7/13/153 Provide an ioctl for userspace applications, but only if this operation is hardware accelerated (otherwide it does not make any sense). Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> 08 January 2017, 11:39:54 UTC
02ef0f3 BCM270x_DT: Add pwr_led, and the required "input" trigger The "input" trigger makes the associated GPIO an input. This is to support the Raspberry Pi PWR LED, which is driven by external hardware in normal use. N.B. pwr_led is not available on Model A or B boards. leds-gpio: Implement the brightness_get method The power LED uses some clever logic that means it is driven by a voltage measuring circuit when configured as input, otherwise it is driven by the GPIO output value. This patch wires up the brightness_get method for leds-gpio so that user-space can monitor the LED value via /sys/class/gpio/led1/brightness. Using the input trigger this returns an indication of the system power health, otherwise it is just whatever value the trigger has written most recently. See: https://github.com/raspberrypi/linux/issues/1064 08 January 2017, 11:39:53 UTC
d512a43 BCM270X_DT: Don't generate "linux,phandle" props The EPAPR standard says to use "phandle" properties to store phandles, rather than the deprecated "linux,phandle" version. By default, dtc generates both, but adding "-H epapr" causes it to only generate "phandle"s, saving some space and clutter. Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:39:52 UTC
1f77eb6 BCM270X_DT: Add a .dtbo target, use for overlays Change the filenames and extensions to keep the pre-DDT style of overlay (<name>-overlay.dtb) distinct from new ones that use a different style of local fixups (<name>.dtbo), and to match other platforms. The RPi firmware uses the DDTK trailer atom to choose which type of overlay to use for each kernel. Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:39:51 UTC
480de1b kbuild: Ignore dtco targets when filtering symbols 08 January 2017, 11:39:50 UTC
44712a3 BCM2708: Add core Device Tree support Add the bare minimum needed to boot BCM2708 from a Device Tree. Signed-off-by: Noralf Tronnes <notro@tronnes.org> BCM2708: DT: change 'axi' nodename to 'soc' Change DT node named 'axi' to 'soc' so it matches ARCH_BCM2835. The VC4 bootloader fills in certain properties in the 'axi' subtree, but since this is part of an upstreaming effort, the name is changed. Signed-off-by: Noralf Tronnes notro@tronnes.org BCM2708_DT: Correct length of the peripheral space Use dts-dirs feature for overlays. The kernel makefiles have a dts-dirs target that is for vendor subdirectories. Using this fixes the install_dtbs target, which previously did not install the overlays. BCM270X_DT: configure I2S DMA channels Signed-off-by: Matthias Reichl <hias@horus.com> BCM270X_DT: switch to bcm2835-i2s I2S soundcard drivers with proper devicetree support (i.e. not linking to the cpu_dai/platform via name but to cpu/platform via of_node) will work out of the box without any modifications. When the kernel is compiled without devicetree support the platform code will instantiate the bcm2708-i2s driver and I2S soundcard drivers will link to it via name, as before. Signed-off-by: Matthias Reichl <hias@horus.com> SDIO-overlay: add poll_once-boolean parameter Add paramter to toggle sdio-device-polling done every second or once at boot-time. Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de> BCM270X_DT: Make mmc overlay compatible with current firmware The original DT overlay logic followed a merge-then-patch procedure, i.e. parameters are applied to the loaded overlay before the overlay is merged into the base DTB. This sequence has been changed to patch-then-merge, in order to support parameterised node names, and to protect against bad overlays. As a result, overrides (parameters) must only target labels in the overlay, but the overlay can obviously target nodes in the base DTB. mmc-overlay.dts (that switches back to the original mmc sdcard driver) is the only overlay violating that rule, and this patch fixes it. bcm270x_dt: Use the sdhost MMC controller by default The "mmc" overlay reverts to using the other controller. squash: Add cprman to dt BCM270X_DT: Use clk_core for I2C interfaces 08 January 2017, 11:39:49 UTC
497b552 scripts/dtc: Update to upstream version 1.4.1 Includes the new localfixups format. Signed-off-by: Phil Elwell <phil@raspberrypi.org> scripts/dtc: Fix UMR causing corrupt dtbo overlay files struct fixup_entry is allocated from the heap but it's member local_fixup_generated was never initialized. This lead to corrupted dtbo files. Fix this by initializing local_fixup_generated to false. Signed-off-by: Matthias Reichl <hias@horus.com> scripts/dtc: Only emit local fixups for overlays Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:39:48 UTC
d9edb91 scripts: Add mkknlimg and knlinfo scripts from tools repo The Raspberry Pi firmware looks for a trailer on the kernel image to determine whether it was compiled with Device Tree support enabled. If the firmware finds a kernel without this trailer, or which has a trailer indicating that it isn't DT-capable, it disables DT support and reverts to using ATAGs. The mkknlimg utility adds that trailer, having first analysed the image to look for signs of DT support and the kernel version string. knlinfo displays the contents of the trailer in the given kernel image. scripts/mkknlimg: Add support for ARCH_BCM2835 Add a new trailer field indicating whether this is an ARCH_BCM2835 build, as opposed to MACH_BCM2708/9. If the loader finds this flag is set it changes the default base dtb file name from bcm270x... to bcm283y... Also update knlinfo to show the status of the field. scripts/mkknlimg: Improve ARCH_BCM2835 detection The board support code contains sufficient strings to be able to distinguish 2708 vs. 2835 builds, so remove the check for bcm2835-pm-wdt which could exist in either. Also, since the canned configuration is no longer built in (it's a module), remove the config string checking. See: https://github.com/raspberrypi/linux/issues/1157 scripts: Multi-platform support for mkknlimg and knlinfo The firmware uses tags in the kernel trailer to choose which dtb file to load. Current firmware loads bcm2835-*.dtb if the '283x' tag is true, otherwise it loads bcm270*.dtb. This scheme breaks if an image supports multiple platforms. This patch adds '270X' and '283X' tags to indicate support for RPi and upstream platforms, respectively. '283x' (note lower case 'x') is left for old firmware, and is only set if the image only supports upstream builds. scripts/mkknlimg: Append a trailer for all input Now that the firmware assumes an unsigned kernel is DT-capable, it is helpful to be able to mark a kernel as being non-DT-capable. Signed-off-by: Phil Elwell <phil@raspberrypi.org> scripts/knlinfo: Decode DDTK atom Show the DDTK atom as being a boolean. Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:39:47 UTC
d2cff53 bcm2835: add v4l2 camera device - Supports raw YUV capture, preview, JPEG and H264. - Uses videobuf2 for data transfer, using dma_buf. - Uses 3.6.10 timestamping - Camera power based on use - Uses immutable input mode on video encoder Signed-off-by: Daniel Stone <daniels@collabora.com> Signed-off-by: Luke Diamand <luked@broadcom.com> V4L2: Fixes from 6by9 V4L2: Fix EV values. Add manual shutter speed control V4L2 EV values should be in units of 1/1000. Corrected. Add support for V4L2_CID_EXPOSURE_ABSOLUTE which should give manual shutter control. Requires manual exposure mode to be selected first. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Correct JPEG Q-factor range Should be 1-100, not 0-100 Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Fix issue of driver jamming if STREAMON failed. Fix issue where the driver was left in a partially enabled state if STREAMON failed, and would then reject many IOCTLs as it thought it was streaming. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Fix ISO controls. Driver was passing the index to the GPU, and not the desired ISO value. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Add flicker avoidance controls Add support for V4L2_CID_POWER_LINE_FREQUENCY to set flicker avoidance frequencies. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Add support for frame rate control. Add support for frame rate (or time per frame as V4L2 inverts it) control via s_parm. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Improve G_FBUF handling so we pass conformance Return some sane numbers for get framebuffer so that we pass conformance. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Fix information advertised through g_vidfmt Width and height were being stored based on incorrect values. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Add support for inline H264 headers Add support for V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER to control H264 inline headers. Requires firmware fix to work correctly, otherwise format has to be set to H264 before this parameter is set. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Fix JPEG timestamp issue JPEG images were coming through from the GPU with timestamp of 0. Detect this and give current system time instead of some invalid value. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Fix issue when switching down JPEG resolution. JPEG buffer size calculation is based on input resolution. Input resolution was being configured after output port format. Caused failures if switching from one JPEG resolution to a smaller one. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Enable MJPEG encoding Requires GPU firmware update to support MJPEG encoder. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Correct flag settings for compressed formats Set flags field correctly on enum_fmt_vid_cap for compressed image formats. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: H264 profile & level ctrls, FPS control and auto exp pri Several control handling updates. H264 profile and level controls. Timeperframe/FPS reworked to add V4L2_CID_EXPOSURE_AUTO_PRIORITY to select whether AE is allowed to override the framerate specified. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Correct BGR24 to RGB24 in format table Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Add additional pixel formats. Correct colourspace Adds the other flavours of YUYV, and NV12. Corrects the overlay advertised colourspace. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Drop logging msg from info to debug Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Initial pass at scene modes. Only supports exposure mode and metering modes. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Add manual white balance control. Adds support for V4L2_CID_RED_BALANCE and V4L2_CID_BLUE_BALANCE. Only has an effect if V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE has V4L2_WHITE_BALANCE_MANUAL selected. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> config: Enable V4L / MMAL driver V4L2: Increase the MMAL timeout to 3sec MJPEG codec flush is now taking longer and results in a kernel panic if the driver has stopped waiting for the result when it finally completes. Increase the timeout value from 1 to 3secs. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Add support for setting H264_I_PERIOD Adds support for the parameter V4L2_CID_MPEG_VIDEO_H264_I_PERIOD to set the frequency with which I frames are produced. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Enable GPU function for removing padding from images. GPU can now support arbitrary strides, although may require additional processing to achieve it. Enable this feature so that the images delivered are the size requested. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Add support for V4L2_PIX_FMT_BGR32 Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Set the colourspace to avoid odd YUV-RGB conversions Removes the amiguity from the conversion routines and stops them dropping back to the SD vs HD choice of coeffs. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Make video/still threshold a run-time param Move the define for at what resolution the driver switches from a video mode capture to a stills mode capture to module parameters. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Fix incorrect pool sizing Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Add option to disable enum_framesizes. Gstreamer's handling of a driver that advertises V4L2_FRMSIZE_TYPE_STEPWISE to define the supported resolutions is broken. See bug https://bugzilla.gnome.org/show_bug.cgi?id=726521 Optional parameter of gst_v4l2src_is_broken added. If non-zero, the driver claims not to support that ioctl, and gstreamer should be happy again (it guesses a set of defaults for itself). Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Add support for more image formats Adds YVU420 (YV12), YVU420SP (NV21), and BGR888. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> V4L2: Extend range for V4L2_CID_MPEG_VIDEO_H264_I_PERIOD Request to extend the range from the fairly arbitrary 1000 frames (33 seconds at 30fps). Extend out to the max range supported (int32 value). Also allow 0, which is handled by the codec as only send an I-frame on the first frame and never again. There may be an exception if it detects a significant scene change, but there's no easy way around that. Signed-off-by: Dave Stevenson <dsteve@broadcom.com> bcm2835-camera: stop_streaming now has a void return BCM2835-V4L2: Fix compliance test failures VIDIOC_TRY_FMT and VIDIOC_S_FMT tests were faling due to reporting V4L2_COLORSPACE_JPEG when the colour format wasn't V4L2_PIX_FMT_JPEG. Now reports V4L2_COLORSPACE_SMPTE170M for YUV formats. bcm2835 camera planar/packed stride length Added a field to the mmal_fmt struct used to compute the bytes per line when using a particular format. This results in the correct stride being calculated even when the format is planar. Signed-off-by: Garrett Wilson <g@floft.net> bcm2835: camera: check for scene not being found static analysis by cppcheck detected some potential NULL pointer dereference issues: [drivers/media/platform/bcm2835/controls.c:854]: (error) Possible null pointer dereference: scene (and lines 858, 859 too) it is possible that scene is not found because of an invalue ctrl->val and is therefore NULL and hence causing a null pointer dereference. Signed-off-by: Colin Ian King <colin.king@canonical.com> bcm2835: memcpy port data to m rather than rmsg static analysis by cppcheck detected a memcpy to rmsg which is not actually initialized at that point. The memcpy should be copying to variable m instead. Signed-off-by: Colin Ian King <colin.king@canonical.com> BCM2835-V4L2: Return buffers to videobuf2 on shutdown https://github.com/raspberrypi/linux/issues/817 Fixes the kernel warning from videobuf2 as buffers are now returned as they are being flushed on stop_streaming. squash: Fixup bcm2835-camera for changes in kernel 4.4 api v4l2: Fix up driver to upstream timestamp changes bcm2835-camera: fix a bug in computation of frame timestamp Fixes #1318 V4L2 driver updates (#1393) * BCM2835-V4L2: Correct ISO control and add V4L2_CID_ISO_SENSITIVITY_AUTO https://github.com/raspberrypi/linux/issues/1251 V4L2_CID_ISO_SENSITIVITY was not advertising ISO*1000 as it should. V4L2_CID_ISO_SENSITIVITY_AUTO was not implemented, so was taking V4L2_CID_ISO_SENSITIVITY as 0 for auto mode. Still accepts 0 for auto, but also abides by the new parameter. Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> * BCM2835-V4L2: Add a video_nr parameter. Adds a kernel parameter "video_nr" to specify the preferred /dev/videoX device node. https://www.raspberrypi.org/forums/viewtopic.php?f=38&t=136120&p=905545 Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> * BCM2835-V4L2: Add support for multiple cameras Ask GPU on load how many cameras have been detected, and enumerate that number of devices. Only applicable on the Compute Module as no other device exposes multiple CSI2 interfaces. Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> * BCM2835-V4L2: Add control of the overlay location and alpha. Actually do something useful in vidioc_s_fmt_vid_overlay and vidioc_try_fmt_vid_overlay, rather than effectively having read-only fields. Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> * BCM2835-V4L2: V4L2-Compliance failure fix VIDIOC_TRY_FMT was failing due to bytesperline not being set correctly by default. Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> * BCM2835-V4L2: Make all module parameters static Clean up to correct variable scope Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> V4L2: Request maximum resolution from GPU Get resolution information about the sensors from the GPU and advertise it correctly. Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> BCM2835-V4L2: Increase minimum resolution to 32x32 https://github.com/raspberrypi/linux/issues/1498 showed up that 16x16 is failing to work on the GPU for some reason. GPU bug being tracked on https://github.com/raspberrypi/firmware/issues/607 Workaround here by increasing minimum resolution via V4L2 to 32x32. Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> [media]: bcm2835-camera: fix compilation error There is an error when compiling rpi-4.6.y branch: CC [M] drivers/media/platform/bcm2835/bcm2835-camera.o drivers/media/platform/bcm2835/bcm2835-camera.c:639:17: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] .queue_setup = queue_setup, ^ drivers/media/platform/bcm2835/bcm2835-camera.c:639:17: note: (near initialization for 'bm2835_mmal_video_qops.queue_setup') The const void *parg in setup_queue callback is not needed since commit: df9ecb0cad14b952a2865f8b3af86b2bbadfab45. This commit removes it. Signed-off-by: Slawomir Stepien <sst@poczta.fm> bcm2835-camera: Fix max/min error when looping over cameras/resolutions See: https://github.com/raspberrypi/linux/issues/1447#issuecomment-221303506 BCM2835-V4L2: Correct handling for BGR24 vs RGB24. There was a bug in the GPU firmware that had reversed these two formats. Detect the old firmware, and reverse the formats if necessary. Signed-off-by: Dave Stevenson <6by9@users.noreply.github.com> 08 January 2017, 11:39:46 UTC
1298825 firmware: bcm2835: Support ARCH_BCM270x Support booting without Device Tree. Turn on USB power. Load driver early because of lacking support for deferred probing in many drivers. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:39:45 UTC
72f832f char: broadcom: Add vcio module Add module for accessing the mailbox property channel through /dev/vcio. Was previously in bcm2708-vcio. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:39:44 UTC
back to top