sort by:
Revision Author Date Message Commit Date
061dccc BCM270X_DT: Add pi3-disable-wifi overlay pi3-disable-wifi is a minimal overlay to disable the onboard WiFi. Signed-off-by: Phil Elwell <phil@raspberrypi.org> 11 January 2017, 15:22:37 UTC
ad9bae6 pisound improvements: * Added a writable sysfs object to enable scripts / user space software to blink MIDI activity LEDs for variable duration. * Improved hw_param constraints setting. * Added compatibility with S16_LE sample format. * Exposed some simple placeholder volume controls, so the card appears in volumealsa widget. Signed-off-by: Giedrius Trainavicius <giedrius@blokas.io> 08 January 2017, 11:42:15 UTC
02d7b76 Document the si7020 option 08 January 2017, 11:42:14 UTC
271ab04 Add support for Silicon Labs Si7013/20/21 humidity/temperature sensor. 08 January 2017, 11:42:13 UTC
c013faf bcm2835-rng: Avoid initialising if already enabled Avoids the 0x40000 cycles of warmup again if firmware has already used it 08 January 2017, 11:42:12 UTC
0cbb49a Revert "HID: dragonrise: fix HID Descriptor for 0x0006 PID" [ Upstream commit 1bcaa05ebee115213e34f1806cc6a4f7a6175a88 ] This reverts commit 18339f59c3a6 ("HID: dragonrise: fix HID...") because it breaks certain dragonrise 0079:0006 gamepads. While it may fix a breakage caused by commit 79346d620e9d ("HID: input: force generic axis to be mapped to their user space axis"), it is probable that the manufacturer released different hardware with the same PID so this fix works for only a subset and breaks the other gamepads sharing the PID. What is needed is another more generic solution which fixes 79346d620e9d ("HID: input: force generic axis ...") breakage for this controller: we need to add an exception for this driver to make it keep the old behaviour previous to the initial breakage (this is done in patch 2 of this series). Signed-off-by: Ioan-Adrian Ratiu <adi@adirat.com> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz> 08 January 2017, 11:42:11 UTC
c630929 BCM270X_DT: overlays/*-overlay.dtb -> overlays/*.dtbo (#1752) We now create overlays as .dtbo files. 08 January 2017, 11:42:10 UTC
cec40bb BCM270X_DT: Add i2c-sensor overlay The i2c-sensor overlay is a container for various pressure and temperature sensors, currently bmp085 and bmp280. The standalone bmp085_i2c-sensor overlay is now deprecated. Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:42:09 UTC
e918b20 config: fixup 08 January 2017, 11:42:08 UTC
41a1a82 drm/vc4: Add fragment shader threading support FS threading brings performance improvements of 0-20% in glmark2. The validation code checks for thread switch signals and ensures that the registers of the other thread are not touched, and that our clamps are not live across thread switches. It also checks that the threading and branching instructions do not interfere. (Original patch by Jonas, changes by anholt for style cleanup, removing validation the kernel doesn't need to do, and adding the flag for userspace). v2: Minor style fixes from checkpatch. Signed-off-by: Jonas Pfeil <pfeiljonas@gmx.de> Signed-off-by: Eric Anholt <eric@anholt.net> (cherry picked from commit c778cc5df944291dcdb1ca7a6bb781fbc22550c5) 08 January 2017, 11:42:07 UTC
0a4e3e8 drm/vc4: Use runtime autosuspend to avoid thrashing V3D power state. The pm_runtime_put() we were using immediately released power on the device, which meant that we were generally turning the device off and on once per frame. In many profiles I've looked at, that added up to about 1% of CPU time, but this could get worse in the case of frequent rendering and readback (as may happen in X rendering). By keeping the device on until we've been idle for a couple of frames, we drop the overhead of runtime PM down to sub-.1%. Signed-off-by: Eric Anholt <eric@anholt.net> (cherry picked from commit 3a62234680d86efa0239665ed8a0e908f1aef147) 08 January 2017, 11:42:06 UTC
12e9f2d drm/vc4: Add support for rendering with ETC1 textures. The validation for it ends up being quite simple, but I hadn't got around to it before merging the driver. For backwards compatibility, we also need to add a flag so that the userspace GL driver can easily tell if the kernel will allow ETC1 textures (on an old kernel, it will continue to convert to RGBA8) Signed-off-by: Eric Anholt <eric@anholt.net> (cherry picked from commit 7154d76fedf549607afbc0d13db9aaf02da5cebf) 08 January 2017, 11:42:05 UTC
9a96575 drm/vc4: Fix termination of the initial scan for branch targets. The loop is scanning until the original max_ip (size of the BO), but we want to not examine any code after the PROG_END's delay slots. There was a block trying to do that, except that we had some early continue statements if the signal wasn't a PROG_END or a BRANCH. The failure mode would be that a valid shader is rejected because some undefined memory after the PROG_END slots is parsed as a branch and the rest of its setup is illegal. I haven't seen this in the wild, but valgrind was complaining when about this up in the userland simulator mode. Signed-off-by: Eric Anholt <eric@anholt.net> (cherry picked from commit 457e67a728696c4f8e6423c64e93def50530db9a) 08 January 2017, 11:42:05 UTC
2229784 drm/vc4: Fix a couple error codes in vc4_cl_lookup_bos() If the allocation fails the current code returns success. If copy_from_user() fails it returns the number of bytes remaining instead of -EFAULT. Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Reviewed-by: Eric Anholt <eric@anholt.net> (cherry picked from commit b2cdeb19f16ad984eb5bb9193f793d05a8101511) 08 January 2017, 11:42:04 UTC
2cda828 BCM270X: Add an overlay for enabling the vc4 driver in firmware-KMS mode. This gets us normal 3D support on top of the existing firmware display stack. There's no real modesetting support, no async pageflips (hurting performance), etc., but it means that the desktop can at least run until we get full native modesetting. Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:42:03 UTC
291921a drm/fb-helper: Add a dummy remove_conflicting_framebuffers Lots of drivers don't properly compile without this when CONFIG_FB=n. It's kinda a hack, but since CONFIG_FB doesn't stub any fucntions when it's disabled I think it makes sense to add it to drm_fb_helper.h. Long term we probably need to rethink all the logic to unload firmware framebuffer drivers, at least if we want to be able to move away from CONFIG_FB and fbcon. v2: Unfortunately just stubbing out remove_conflicting_framebuffers in drm_fb_helper.h upset gcc about static vs. non-static declarations, so a new wrapper it needs to be. Means more churn :( Cc: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Cc: Noralf Trønnes <noralf@tronnes.org> Cc: tomi.valkeinen@ti.com Cc: dh.herrmann@gmail.com Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1470847958-28465-2-git-send-email-daniel.vetter@ffwll.ch 08 January 2017, 11:42:02 UTC
245dafe drm/vc4: Add a mode for using the closed firmware for display. Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:42:01 UTC
930d519 drm/vc4: Add support for double-clocked modes. Now that we have infoframes to report the pixel repeat flag, we can start using it. Fixes locking the 720x480i and 720x576i modes on my Dell 2408WFP. Like the 1920x1080i case, they don't fit properly on the screen, though. Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:42:00 UTC
4e3c762 drm/vc4: Set up the AVI and SPD infoframes. Fixes a purple bar on the left side of the screen with my Dell 2408WFP. It will also be required for supporting the double-clocked video modes. Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:59 UTC
01b8f70 drm/vc4: Fix support for interlaced modes on HDMI. We really do need to be using the halved V fields. I had been confused by the code I was using as a reference because it stored halved vsync fields but not halved vdisplay, so it looked like I only needed to divide vdisplay by 2. This reverts part of Mario's timestamping fixes that prevented CRTC_HALVE_V from applying, and instead adjusts the timestamping code to not use the crtc field in that case. Fixes locking of 1920x1080x60i on my Dell 2408WFP. There are black bars on the top and bottom, but I suspect that might be an under/overscan flags problem as opposed to video timings. Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:58 UTC
5aed627 drm/vc4: Increase timeout for HDMI_SCHEDULER_CONTROL changes. Fixes occasional debug spew at boot when connected directly through HDMI, and probably confusing the HDMI state machine when we go trying to poke registers for the enable sequence too soon. Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:57 UTC
ed7f5cb drm/vc4: Fall back to using an EDID probe in the absence of a GPIO. On Pi0/1/2, we use an external GPIO line for hotplug detection, since the HDMI_HOTPLUG register isn't connected to anything. However, with the Pi3 the HPD GPIO line has moved off to a GPIO expander that will be tricky to get to (the firmware is constantly polling the expander using i2c0, so we'll need to coordinate with it). As a stop-gap, if we don't have a GPIO line, use an EDID probe to detect connection. Fixes HDMI display on the pi3. Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:56 UTC
6a63898 drm/vc4: Enable limited range RGB output on HDMI with CEA modes. Fixes broken grayscale ramps on many HDMI monitors, where large areas at the ends of the ramp would all appear as black or white. Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:55 UTC
9234bfa drm/vc4: cleanup with list_first_entry_or_null() The combo of list_empty() check and return list_first_entry() can be replaced with list_first_entry_or_null(). Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:54 UTC
2dfacb6 drm: Don't swallow error codes in drm_dev_alloc() There are many reasons other than ENOMEM that drm_dev_init() can fail. Return ERR_PTR rather than NULL to be able to distinguish these in the caller. Signed-off-by: Tom Gundersen <teg@jklm.no> Signed-off-by: Sean Paul <seanpaul@chromium.org> Link: http://patchwork.freedesktop.org/patch/msgid/20160921145919.13754-2-teg@jklm.no 08 January 2017, 11:41:53 UTC
d2574eb drm/atomic-helper: Add NO_DISABLE_AFTER_MODESET flag support for plane commit Drivers may set the NO_DISABLE_AFTER_MODESET flag in the 'flags' parameter of the helper drm_atomic_helper_commit_planes() if the relevant display controllers(e.g., IPUv3 for imx-drm) require to disable a CRTC's planes when the CRTC is disabled. The helper would skip the ->atomic_disable call for a plane if the CRTC of the old plane state needs a modesetting operation. Of course, the drivers need to disable the planes in their CRTC disable callbacks since no one else would do that. Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Philipp Zabel <p.zabel@pengutronix.de> Cc: David Airlie <airlied@linux.ie> Cc: Russell King <linux@armlinux.org.uk> Cc: Peter Senna Tschudin <peter.senna@gmail.com> Cc: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Liu Ying <gnuiyl@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1472461923-14364-1-git-send-email-gnuiyl@gmail.com 08 January 2017, 11:41:52 UTC
4894e91 drm/vc4: Don't force new binner overflow allocation per draw. This came from the initial bringup code, which always idled the GPU and always reset the overflow. That massively increases the size of the working set when you're doing lots of small draws, though, as is common on X desktops or piglit. Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:52 UTC
5b26d32 drm/vc4: Enable/Disable vblanks properly in crtc en/disable. Add missing drm_crtc_vblank_on/off() calls so vblank irq handling/updating/timestamping never runs with a crtc shut down or during its shutdown/startup, as that causes large jumps in vblank count and trouble for compositors. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:51 UTC
174f5be drm/vc4: Enable precise vblank timestamping for interlaced modes. On top of the interlaced video mode fix and with some additional adjustments, this now works well. It has almost the same accuracy as on regular progressive scan modes. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:50 UTC
6212ad0 drm/vc4: Reject doublescan modes. We can't handle doublescan modes at the moment, so if userspace tries to set one, reject the mode set. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:49 UTC
c946faf drm/vc4: Fix handling of interlaced video modes. We must not apply CRTC_INTERLACE_HALVE_V to interlaced modes during mode enumeration, as drm_helper_probe_single_connector_modes does, so wrap it and reset the effect of CRTC_INTERLACE_HALVE_V on affected interlaced modes. Also mode_fixup interlaced modes passed in from user space. This fixes the vblank timestamping constants and entries in the mode->crtc_xxx fields needed for precise vblank timestamping. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:48 UTC
87b26c6 drm/vc4: Disallow interlaced modes on DPI. We already don't expose such modes to userspace, but make sure userspace can't sneak some interlaced mode in. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:47 UTC
f5378fc drm: Don't implement empty prepare_fb()/cleanup_fb() The plane .prepare_fb() and .cleanup_fb() helpers are optional, there's no need to implement empty stubs, and no need to explicitly set the function pointers to NULL either. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> [danvet: Resolved conflicts with Chris' patch.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> 08 January 2017, 11:41:46 UTC
12c8c96 drm/fb-helper: Add a dummy remove_conflicting_framebuffers Lots of drivers don't properly compile without this when CONFIG_FB=n. It's kinda a hack, but since CONFIG_FB doesn't stub any fucntions when it's disabled I think it makes sense to add it to drm_fb_helper.h. Long term we probably need to rethink all the logic to unload firmware framebuffer drivers, at least if we want to be able to move away from CONFIG_FB and fbcon. v2: Unfortunately just stubbing out remove_conflicting_framebuffers in drm_fb_helper.h upset gcc about static vs. non-static declarations, so a new wrapper it needs to be. Means more churn :( Cc: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Cc: Noralf Trønnes <noralf@tronnes.org> Cc: tomi.valkeinen@ti.com Cc: dh.herrmann@gmail.com Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1470847958-28465-2-git-send-email-daniel.vetter@ffwll.ch 08 January 2017, 11:41:45 UTC
bd6d762 raspberrypi-firmware: Export the general transaction function. The vc4-firmware-kms module is going to be doing the MBOX FB call. Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:44 UTC
c5cc721 raspberrypi-firmware: Define the MBOX channel in the header. Signed-off-by: Eric Anholt <eric@anholt.net> 08 January 2017, 11:41:43 UTC
b9bba8a BCM270X_DT: Add midi-uart0 overlay MIDI requires 31.25kbaud, a baudrate unsupported by Linux. The midi-uart0 overlay configures uart0 (ttyAMA0) to use a fake clock so that requesting 38.4kbaud actually gets 31.25kbaud. Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:41:42 UTC
5a491f6 RPI-FT5406: Enable aarch64 support through explicit iomem interface Signed-off-by: Gerhard de Clercq <gerharddeclercq@outlook.com> 08 January 2017, 11:41:41 UTC
5a1ce92 BCM270X_DT: Add overlay for enc28j60 on SPI2 Works on SPI2 for compute module 08 January 2017, 11:41:40 UTC
d3fbdeb Add overlays symlink and dtbo target for ARM64 (#1739) Signed-off-by: Gerhard de Clercq <gerharddeclercq@outlook.com> 08 January 2017, 11:41:39 UTC
8a098af BCM2835 DT: Add DTC_FLAGS to support overlays Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:41:39 UTC
9e859e1 hifiberry: Make driver names unique in first 15 characters See: LibreELEC PR1001 08 January 2017, 11:41:38 UTC
c4d0f39 BCM2835-v4l2: Fix a conformance test failure Format ioctls: test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK warn: v4l2-test-formats.cpp(1195): S_PARM is supported but doesn't report V4L2_CAP_TIMEPERFRAME. fail: v4l2-test-formats.cpp(1118): node->has_frmintervals && !cap->capability 08 January 2017, 11:41:37 UTC
eba2ee7 config: Add AK4554 audio codec driver See: https://github.com/raspberrypi/linux/issues/1730 Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:41:36 UTC
a26053b config: Add ABX80X RTC driver and overlay Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:41:35 UTC
e413e40 ARM: dts: Restore dtbs_install functionality Signed-off-by: Phil Elwell <phil@raspberrypi.org> 08 January 2017, 11:41:34 UTC
d958b10 [Audioinjector] Fix bit offsets for equal volume and add 8 kHz operation (#1727) Applying to the audioinjector sound card only. This patch offsets channel 2 correctly from the LR clock. This ensures that channel 2 doesn't loose any bits during capture. It also results in both channels 1 and 2 having the same volume. This commit also adds 8 kHz operation. Signed-off-by: Matt Flax <flatmax@flatmax.org> 08 January 2017, 11:41:33 UTC
819b419 ARM: dts: Visit overlays subdir unconditionally make clean processing occurs without loading the configuration, so the overlays subdir must be added unconditionally. See: https://github.com/raspberrypi/linux/issues/1723 08 January 2017, 11:41:32 UTC
be6cd1f fixup: fb: Use struct device for dma_alloc_coherent 08 January 2017, 11:41:31 UTC
6e8404e fixup: fb: Use correct bus address for dest of dma memcpy 08 January 2017, 11:41:30 UTC
0f9af80 mkknlimg: Retain downstream-kernel detection With the death of ARCH_BCM2708 and ARCH_BCM2709, a new way is needed to determine if this is a "downstream" build that wants the firmware to load a bcm27xx .dtb. The vc_cma driver is used downstream but not upstream, making vc_cma_init a suitable predicate symbol. 08 January 2017, 11:41:29 UTC
3ad1561 Drop ARCH_BCM2708 and ARCH_BCM2709 They are not necessary anymore since both are based on ARCH_BCM2835. Also use the compatible strings "brcm,bcm2835", "brcm,bcm2836" and "brcm,bcm2837". Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:28 UTC
87ad2d6 BCM270x_DT: Drop using ARCH_BCM2708 and ARCH_BCM2709 Both are based on ARCH_BCM2835 so use that instead. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:28 UTC
2238a2f fixup: fb: Use basic types for dma addresses as these are also included from user code 08 January 2017, 11:41:27 UTC
d03df89 brcmvirt_gpio: Create coherent buffer and push to firmware 08 January 2017, 11:41:26 UTC
788cba9 rpi-ft5406: Create coherent buffer and push to firmware 08 January 2017, 11:41:25 UTC
9c08695 bcm2708_fb: Add ioctl for reading gpu memory through dma 08 January 2017, 11:41:24 UTC
540dd14 config: Add CONFIG_HTU21 module 08 January 2017, 11:41:23 UTC
45eef9a clk: bcm2835: Clamp the PLL's requested rate to the hardware limits. Fixes setting low-resolution video modes on HDMI. Now the PLLH_PIX divider adjusts itself until the PLLH is within bounds. Signed-off-by: Eric Anholt <eric@anholt.net> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> 08 January 2017, 11:41:22 UTC
2f81034 BCM270X_DT: Add fallback overlay for i2c-bcm2708 Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:21 UTC
127efd3 BCM270X_DT: Use i2c-bcm2835 as default i2c-bcm2835 has gotten an overhaul so we can now use as default. Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:20 UTC
6d6f625 config: Enable i2c-bcm2835 Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:19 UTC
e7b94d0 i2c: bcm2835: Add debug support This adds a debug module parameter to aid in debugging transfer issues by printing info to the kernel log. When enabled, status values are collected in the interrupt routine and msg info in bcm2835_i2c_start_transfer(). This is done in a way that tries to avoid affecting timing. Having printk in the isr can mask issues. debug values (additive): 1: Print info on error 2: Print info on all transfers 3: Print messages before transfer is started The value can be changed at runtime: /sys/module/i2c_bcm2835/parameters/debug Example output, debug=3: [ 747.114448] bcm2835_i2c_xfer: msg(1/2) write addr=0x54, len=2 flags= [i2c1] [ 747.114463] bcm2835_i2c_xfer: msg(2/2) read addr=0x54, len=32 flags= [i2c1] [ 747.117809] start_transfer: msg(1/2) write addr=0x54, len=2 flags= [i2c1] [ 747.117825] isr: remain=2, status=0x30000055 : TA TXW TXD TXE [i2c1] [ 747.117839] start_transfer: msg(2/2) read addr=0x54, len=32 flags= [i2c1] [ 747.117849] isr: remain=32, status=0xd0000039 : TA RXR TXD RXD [i2c1] [ 747.117861] isr: remain=20, status=0xd0000039 : TA RXR TXD RXD [i2c1] [ 747.117870] isr: remain=8, status=0x32 : DONE TXD RXD [i2c1] Signed-off-by: Noralf Trønnes <noralf@tronnes.org> 08 January 2017, 11:41:18 UTC
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
back to top