Skip to content

VC4: KMS/FKMS Fix weird hang with frozen display and spining cursor #1840

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
8eaade0
smsx95xx: fix crimes against truesize
Feb 19, 2015
1a8eb47
smsc95xx: Experimental: Enable turbo_mode and packetsize=2560 by default
samnazarko Apr 1, 2016
ddd2f4b
Allow mac address to be set in smsc95xx
popcornmix Mar 26, 2013
d1d566d
Protect __release_resource against resources without parents
Mar 13, 2015
ead23f1
mm: Remove the PFN busy warning
anholt Dec 19, 2014
f17e492
irq-bcm2836: Prevent spurious interrupts, and trap them early
Dec 4, 2015
831fb7c
irqchip: bcm2835: Add FIQ support
notro Jun 12, 2015
a0d7c65
irqchip: irq-bcm2835: Add 2836 FIQ support
notro Oct 23, 2015
0267db4
spidev: Add "spidev" compatible string to silence warning
Jul 14, 2015
83c541d
serial: 8250: Don't crash when nr_uarts is 0
Jun 30, 2015
4e32cac
Revert "pinctrl: bcm2835: switch to GPIOLIB_IRQCHIP"
popcornmix Jan 3, 2017
aaa8d03
pinctrl-bcm2835: Set base to 0 give expected gpio numbering
notro Jul 10, 2014
6d5724c
pinctrl-bcm2835: Only request the interrupts listed in the DTB
Feb 26, 2015
50ee8ce
spi-bcm2835: Support pin groups other than 7-11
Jun 24, 2015
ad4ad0a
spi-bcm2835: Disable forced software CS
Jul 1, 2016
aa7727a
spi-bcm2835: Remove unused code
Nov 8, 2016
322668d
ARM: bcm2835: Set Serial number and Revision
notro Jun 3, 2015
b10ac08
dmaengine: bcm2835: Load driver early and support legacy API
notro Oct 3, 2015
ff881ee
firmware: Updated mailbox header
popcornmix Jan 25, 2016
a6e9e19
rtc: Add SPI alias for pcf2123 driver
Jun 15, 2016
90cdd33
watchdog: bcm2835: Support setting reboot partition
notro Oct 7, 2016
e23e084
reboot: Use power off rather than busy spinning when halt is requested
popcornmix Apr 5, 2016
0c19eae
bcm: Make RASPBERRYPI_POWER depend on PM
popcornmix Nov 9, 2016
600f87b
Register the clocks early during the boot process,
msperl Sep 2, 2016
17b011c
bcm2835-rng: Avoid initialising if already enabled
popcornmix Dec 6, 2016
42700a2
kbuild: Ignore dtco targets when filtering symbols
Aug 24, 2016
3348034
BCM2835_DT: Fix I2S register map
rtiemann Jul 20, 2015
c4fb278
Main bcm2708/bcm2709 linux port
popcornmix May 12, 2013
dd2041f
Add dwc_otg driver
popcornmix May 1, 2013
2782f37
bcm2708 framebuffer driver
popcornmix Jun 17, 2015
fd63f61
dmaengine: Add support for BCM2708
koalo Nov 22, 2013
795ab39
MMC: added alternative MMC driver
weiszg Aug 15, 2014
9cf484b
Adding bcm2835-sdhost driver, and an overlay to enable it
Mar 25, 2015
b320c35
mmc: Add MMC_QUIRK_ERASE_BROKEN for some cards
May 11, 2016
e584f14
cma: Add vc_cma driver to enable use of CMA
popcornmix Jul 2, 2013
efc4a92
bcm2708: alsa sound driver
popcornmix Mar 26, 2012
f0e8122
vc_mem: Add vc_mem driver for querying firmware memory addresses
popcornmix Oct 28, 2016
45e49dc
vcsm: VideoCore shared memory service for BCM2835
Jul 22, 2014
c7e6f28
Add /dev/gpiomem device for rootless user GPIO access
Wren6991 Aug 21, 2015
0cdd461
Add SMI driver
Wren6991 Sep 5, 2015
3d16a76
MISC: bcm2835: smi: use clock manager and fix reload issues
msperl Apr 26, 2016
ec6c1b0
Add SMI NAND driver
Wren6991 Sep 5, 2015
dfbf81d
lirc: added support for RaspberryPi GPIO
Jun 16, 2012
d596426
Add cpufreq driver
popcornmix Jul 2, 2013
adababc
Added hwmon/thermal driver for reporting core temperature. Thanks Dorian
popcornmix Mar 26, 2013
54c5e41
Add Chris Boot's i2c driver
popcornmix Jun 17, 2015
5e9835e
char: broadcom: Add vcio module
notro Jun 26, 2015
0a4d219
firmware: bcm2835: Support ARCH_BCM270x
notro Jun 26, 2015
8c3e7ba
bcm2835: add v4l2 camera device
Jan 30, 2013
9762e52
scripts: Add mkknlimg and knlinfo scripts from tools repo
May 11, 2015
60a4f15
scripts/dtc: Update to upstream version 1.4.1
Aug 10, 2015
66c85c9
BCM2708: Add core Device Tree support
notro Jul 9, 2014
232602d
BCM270x_DT: Add pwr_led, and the required "input" trigger
Feb 6, 2015
4f9a325
fbdev: add FBIOCOPYAREA ioctl
ssvb Jun 17, 2013
a4c29ab
Speed up console framebuffer imageblit function
hglm Jun 20, 2013
cb54bdc
enabling the realtime clock 1-wire chip DS1307 and 1-wire on GPIO4 (a…
popcornmix May 8, 2013
be04355
Added Device IDs for August DVB-T 205
popcornmix Jul 2, 2013
0378196
config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cos…
popcornmix Dec 18, 2013
84413bc
hid: Reduce default mouse polling interval to 60Hz
popcornmix Jul 14, 2014
1ae116f
rpi-ft5406: Add touchscreen driver for pi LCD display
ghollingworth May 12, 2015
53a6aa6
Improve __copy_to_user and __copy_from_user performance
popcornmix Nov 28, 2016
b4f5999
gpio-poweroff: Allow it to work on Raspberry Pi
Jun 25, 2015
89257bc
mfd: Add Raspberry Pi Sense HAT core driver
pelwell Jul 14, 2015
0206821
ASoC: Add support for HifiBerry DAC
koalo Nov 22, 2013
d148f92
ASoC: Add support for Rpi-DAC
koalo Jan 25, 2016
9fde1dc
ASoC: wm8804: Implement MCLK configuration options, add 32bit support…
Jan 15, 2014
462d311
ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patc…
Jan 15, 2014
36ff141
Add IQaudIO Sound Card support for Raspberry Pi
Mar 8, 2014
777b667
iqaudio-dac: Compile fix - untested
popcornmix Jul 25, 2016
5596456
Added support for HiFiBerry DAC+
Aug 4, 2014
8d2a7d7
Added driver for HiFiBerry Amp amplifier add-on board
Aug 4, 2014
f3a8cc9
Update ds1307 driver for device-tree support
ryco-dev Feb 1, 2015
fda63f0
Add driver for rpi-proto
Mar 25, 2015
eac4c0a
RaspiDAC3 support
Aug 24, 2015
9326381
Add Support for JustBoom Audio boards
shawaj Apr 7, 2016
0371594
ARM: adau1977-adc: Add basic machine driver for adau1977 codec driver.
andrey2805 May 4, 2016
6b90ba7
New AudioInjector.net Pi soundcard with low jitter audio in and out.
flatmax May 16, 2016
d8add47
Add IQAudIO Digi WM8804 board support
DigitalDreamtime Jun 30, 2016
e6c1b19
New driver for RRA DigiDAC1 soundcard using WM8741 + WM8804
escalator2015 May 24, 2016
7915a01
Add support for Dion Audio LOCO DAC-AMP HAT
DigitalDreamtime Jul 2, 2016
bfc8afb
Allo Piano DAC boards: Initial 2 channel (stereo) support (#1645)
clivem Sep 19, 2016
8e8a22b
Support for Blokas Labs pisound board
gtrainavicius Oct 23, 2016
24eed04
rpi_display: add backlight driver and overlay
Oct 21, 2015
b652855
bcm2835-virtgpio: Virtual GPIO driver
popcornmix Feb 23, 2016
429a68d
amba_pl011: Don't use DT aliases for numbering
Feb 23, 2016
8b63693
net: Add non-mainline source for rtl8192cu wlan
popcornmix Sep 3, 2012
78710cc
net: Fix rtl8192cu build errors on other platforms
Mar 23, 2016
1275d47
OF: DT-Overlay configfs interface
pantoniou Dec 3, 2014
105cc0c
brcm: adds support for BCM43341 wifi
Cheong2K Feb 26, 2016
e345d1a
hci_h5: Don't send conf_req when ACTIVE
Dec 17, 2015
e0b51c9
config: Add default configs
popcornmix Apr 13, 2015
7899e32
Add arm64 configuration and device tree differences.
Electron752 Aug 24, 2016
60bbcd2
Revert "staging: vc04_services: remove vchiq_copy_from_user"
popcornmix Dec 27, 2016
0c18314
vchiq_arm: Access the dequeue_pending flag locked
Mar 23, 2016
148d982
vchiq_arm: Service callbacks must not fail
Mar 23, 2016
aebec44
vchiq_arm: Add completion records under the mutex
Apr 21, 2016
d548e3c
vchiq_arm: Avoid use of mutex in add_completion
Jun 20, 2016
a70210c
raspberrypi-firmware: Define the MBOX channel in the header.
anholt Sep 14, 2016
06e63ed
drm/vc4: Add a mode for using the closed firmware for display.
anholt Sep 14, 2016
3524c65
i2c: bcm2835: Add debug support
notro Nov 1, 2016
18b5aba
raspberrypi-firmware: Export the general transaction function.
anholt Sep 14, 2016
aed1671
Add support for Silicon Labs Si7013/20/21 humidity/temperature sensor.
ajtucker Dec 13, 2016
4749522
Document the si7020 option
pelwell Jan 3, 2017
7a56614
pisound improvements:
gtrainavicius Jan 5, 2017
58f7a44
Add driver_name property
shawaj Jan 10, 2017
9b86f89
Add driver_name paramater
shawaj Jan 10, 2017
f769097
BCM270X_DT: Add pi3-disable-wifi overlay
Jan 11, 2017
d621c9e
ARM64: Make it work again on 4.9 (#1790)
Electron752 Jan 12, 2017
ebfbf92
ARM64: Fix bad cast in vc04_services
Electron752 Jan 13, 2017
2b85eb2
ARM64/SND_BCM2835: Port it to arm64.
Electron752 Jan 13, 2017
070c10c
ARM64: Enable HDMI audio and vc04_services in bcmrpi3_defconfig
Electron752 Jan 13, 2017
2894550
ARM64: Run bcmrpi3_defconfig through savedefconfig.
Electron752 Jan 13, 2017
f7250fb
ARM64: Enable Kernel Address Space Randomization (#1792)
Electron752 Jan 14, 2017
65d0b83
ARM64: Fix build break for RTL8187/RTL8192CU wifi
Electron752 Jan 15, 2017
703f776
ARM64: Enable RTL8187/RTL8192CU wifi in build config
Electron752 Jan 15, 2017
c54de40
BCM270X_DT: Add spi0-cs overlay
Jan 16, 2017
fa70567
spi-bcm2835: Disable forced software CS
Jul 1, 2016
ca6de9b
BCM270X_DT: Enable UART0 on CM3
Jan 17, 2017
3c2466e
config: Add CONFIG_MD_M25P80 and CONFIG_MD_SPI_NOR
Jan 17, 2017
d06cccf
ARM64/DWC_OTG: Port dwc_otg driver to ARM64
Electron752 Jan 15, 2017
58e0247
ARM64: Round-Robin dispatch IRQs between CPUs.
Electron752 Jan 15, 2017
7f8a04f
ARM64: Enable DWC_OTG Driver In ARM64 Build Config(bcmrpi3_defconfig)
Electron752 Jan 15, 2017
3a403a1
ARM64: Use dwc_otg driver by default for USB.
Electron752 Jan 15, 2017
6192599
config: Add CONFIG_USB_DWC2 and CONFIG_USB_GADGET
Jan 19, 2017
3cae142
BCM270X_DT: Add reference to audio_pins to CM dtb
Jan 23, 2017
ff529c8
config: Add additional network scheduling modules
popcornmix Jan 25, 2017
66d07cf
config: Add CONFIG_TCP_CONG_BBR
popcornmix Jan 16, 2017
2d6b7bb
ASoC: A simple-card overlay for ADAU7002
plasticchris Jan 22, 2017
a962c46
config: Add SND_SOC_ADAU7002 codec module
Jan 25, 2017
e9cf18e
Add overlay for mcp3008 adc (#1818)
Jan 27, 2017
ce74fc8
gpio_mem: Remove unnecessary dev_info output (#1830)
JamesH65 Feb 6, 2017
d51d946
VC4: KMS: Don't wait for vblank when updating the cursor
Electron752 Feb 11, 2017
f6b335b
VC4: FKMS: Don't wait for vblank when updating the cursor
Electron752 Feb 11, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,8 @@ Example:

bcm2835_i2s: i2s@7e203000 {
compatible = "brcm,bcm2835-i2s";
reg = < 0x7e203000 0x20>,
< 0x7e101098 0x02>;
reg = < 0x7e203000 0x24>,
< 0x7e101098 0x08>;

dmas = <&dma 2>,
<&dma 3>;
Expand Down
17 changes: 17 additions & 0 deletions Documentation/devicetree/bindings/misc/brcm,bcm2835-smi-dev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
* Broadcom BCM2835 SMI character device driver.

SMI or secondary memory interface is a peripheral specific to certain Broadcom
SOCs, and is helpful for talking to things like parallel-interface displays
and NAND flashes (in fact, most things with a parallel register interface).

This driver adds a character device which provides a user-space interface to
an instance of the SMI driver.

Required properties:
- compatible: "brcm,bcm2835-smi-dev"
- smi_handle: a phandle to the smi node.

Optional properties:
- None.


48 changes: 48 additions & 0 deletions Documentation/devicetree/bindings/misc/brcm,bcm2835-smi.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
* Broadcom BCM2835 SMI driver.

SMI or secondary memory interface is a peripheral specific to certain Broadcom
SOCs, and is helpful for talking to things like parallel-interface displays
and NAND flashes (in fact, most things with a parallel register interface).

Required properties:
- compatible: "brcm,bcm2835-smi"
- reg: Should contain location and length of SMI registers and SMI clkman regs
- interrupts: *the* SMI interrupt.
- pinctrl-names: should be "default".
- pinctrl-0: the phandle of the gpio pin node.
- brcm,smi-clock-source: the clock source for clkman
- brcm,smi-clock-divisor: the integer clock divisor for clkman
- dmas: the dma controller phandle and the DREQ number (4 on a 2835)
- dma-names: the name used by the driver to request its channel.
Should be "rx-tx".

Optional properties:
- None.

Examples:

8 data pin configuration:

smi: smi@7e600000 {
compatible = "brcm,bcm2835-smi";
reg = <0x7e600000 0x44>, <0x7e1010b0 0x8>;
interrupts = <2 16>;
pinctrl-names = "default";
pinctrl-0 = <&smi_pins>;
brcm,smi-clock-source = <6>;
brcm,smi-clock-divisor = <4>;
dmas = <&dma 4>;
dma-names = "rx-tx";

status = "okay";
};

smi_pins: smi_pins {
brcm,pins = <2 3 4 5 6 7 8 9 10 11 12 13 14 15>;
/* Alt 1: SMI */
brcm,function = <5 5 5 5 5 5 5 5 5 5 5 5 5 5>;
/* /CS, /WE and /OE are pulled high, as they are
generally active low signals */
brcm,pull = <2 2 2 2 2 2 0 0 0 0 0 0 0 0>;
};

42 changes: 42 additions & 0 deletions Documentation/devicetree/bindings/mtd/brcm,bcm2835-smi-nand.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
* BCM2835 SMI NAND flash

This driver is a shim between the BCM2835 SMI driver (SMI is a peripheral for
talking to parallel register interfaces) and Linux's MTD layer.

Required properties:
- compatible: "brcm,bcm2835-smi-nand"
- status: "okay"

Optional properties:
- partition@n, where n is an integer from a consecutive sequence starting at 0
- Difficult to store partition table on NAND device - normally put it
in the source code, kernel bootparams, or device tree (the best way!)
- Sub-properties:
- label: the partition name, as shown by mtdinfo /dev/mtd*
- reg: the size and offset of this partition.
- (optional) read-only: an empty property flagging as read only

Example:

nand: flash@0 {
compatible = "brcm,bcm2835-smi-nand";
status = "okay";

partition@0 {
label = "stage2";
// 128k
reg = <0 0x20000>;
read-only;
};
partition@1 {
label = "firmware";
// 16M
reg = <0x20000 0x1000000>;
read-only;
};
partition@2 {
label = "root";
// 2G
reg = <0x1020000 0x80000000>;
};
};
4 changes: 2 additions & 2 deletions Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ Example:

bcm2835_i2s: i2s@7e203000 {
compatible = "brcm,bcm2835-i2s";
reg = <0x7e203000 0x20>,
<0x7e101098 0x02>;
reg = <0x7e203000 0x24>,
<0x7e101098 0x08>;

dmas = <&dma 2>,
<&dma 3>;
Expand Down
1 change: 1 addition & 0 deletions Documentation/devicetree/bindings/vendor-prefixes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ avago Avago Technologies
avic Shanghai AVIC Optoelectronics Co., Ltd.
axentia Axentia Technologies AB
axis Axis Communications AB
blokaslabs Vilniaus Blokas UAB
boe BOE Technology Group Co., Ltd.
bosch Bosch Sensortec GmbH
boundary Boundary Devices Inc.
Expand Down
31 changes: 31 additions & 0 deletions Documentation/devicetree/configfs-overlays.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Howto use the configfs overlay interface.

A device-tree configfs entry is created in /config/device-tree/overlays
and and it is manipulated using standard file system I/O.
Note that this is a debug level interface, for use by developers and
not necessarily something accessed by normal users due to the
security implications of having direct access to the kernel's device tree.

* To create an overlay you mkdir the directory:

# mkdir /config/device-tree/overlays/foo

* Either you echo the overlay firmware file to the path property file.

# echo foo.dtbo >/config/device-tree/overlays/foo/path

* Or you cat the contents of the overlay to the dtbo file

# cat foo.dtbo >/config/device-tree/overlays/foo/dtbo

The overlay file will be applied, and devices will be created/destroyed
as required.

To remove it simply rmdir the directory.

# rmdir /config/device-tree/overlays/foo

The rationalle of the dual interface (firmware & direct copy) is that each is
better suited to different use patterns. The firmware interface is what's
intended to be used by hardware managers in the kernel, while the copy interface
make sense for developers (since it avoids problems with namespaces).
60 changes: 60 additions & 0 deletions Documentation/video4linux/bcm2835-v4l2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@

BCM2835 (aka Raspberry Pi) V4L2 driver
======================================

1. Copyright
============

Copyright © 2013 Raspberry Pi (Trading) Ltd.

2. License
==========

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

3. Quick Start
==============

You need a version 1.0 or later of v4l2-ctl, available from:
git://git.linuxtv.org/v4l-utils.git

$ sudo modprobe bcm2835-v4l2

Turn on the overlay:

$ v4l2-ctl --overlay=1

Turn off the overlay:

$ v4l2-ctl --overlay=0

Set the capture format for video:

$ v4l2-ctl --set-fmt-video=width=1920,height=1088,pixelformat=4

(Note: 1088 not 1080).

Capture:

$ v4l2-ctl --stream-mmap=3 --stream-count=100 --stream-to=somefile.h264

Stills capture:

$ v4l2-ctl --set-fmt-video=width=2592,height=1944,pixelformat=3
$ v4l2-ctl --stream-mmap=3 --stream-count=1 --stream-to=somefile.jpg

List of available formats:

$ v4l2-ctl --list-formats
2 changes: 2 additions & 0 deletions arch/arm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,8 @@ $(INSTALL_TARGETS):

%.dtb: | scripts
$(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
%.dtbo: | scripts
$(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@

PHONY += dtbs dtbs_install

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/boot/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ zImage
xipImage
bootpImage
uImage
*.dtb
*.dtb*
19 changes: 19 additions & 0 deletions arch/arm/boot/dts/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
ifeq ($(CONFIG_OF),y)

dtb-$(CONFIG_ARCH_BCM2835) += \
bcm2708-rpi-b.dtb \
bcm2708-rpi-b-plus.dtb \
bcm2708-rpi-cm.dtb \
bcm2709-rpi-2-b.dtb \
bcm2710-rpi-3-b.dtb \
bcm2710-rpi-cm3.dtb

dtb-$(CONFIG_ARCH_ALPINE) += \
alpine-db.dtb
dtb-$(CONFIG_MACH_ARTPEC6) += \
Expand Down Expand Up @@ -984,10 +992,21 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb
dtb-$(CONFIG_ARCH_ASPEED) += aspeed-bmc-opp-palmetto.dtb \
aspeed-ast2500-evb.dtb

targets += dtbs dtbs_install
targets += $(dtb-y)

endif

dtstree := $(srctree)/$(src)
dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(dtstree)/%.dts,%.dtb, $(wildcard $(dtstree)/*.dts))

always := $(dtb-y)
subdir-y := overlays
clean-files := *.dtb

# Enable fixups to support overlays on BCM2835 platforms
ifeq ($(CONFIG_ARCH_BCM2835),y)
DTC_FLAGS ?= -@ -H epapr
dts-dirs += overlays
endif
Loading