- Feb 25, 2020
-
-
Dave Stevenson authored
One bit within DRM_MODE_ROTATE_MASK will always be set to determine the base rotation 0/90/180/270, and then REFLECT_X and REFLECT_Y are on top. Correct the handling which was assuming that REFLECT_[X|Y] was instead of ROTATE_x. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
The BT601/BT709 color encoding and limited vs full range properties were not being exposed, defaulting always to BT601 limited range. Expose the parameters and set the registers appropriately. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
James Hughes authored
HDMI Alsa devices renamed to match names used by DRM, to HDMI 1 and HDMI 2 Check for which HDMI devices are connected and only create devices for those that are present. The rename of the devices might cause some backwards compatibility issues, but since this particular part of the driver needs to be specifically enabled, I suspect the number of people who will see the problem will be very small. Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
-
Matteo Croce authored
Suppress the following warning by casting the pointer to and uintptr_t before void*: drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c: In function ‘vchiq_prepare_bulk_data’: drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:260:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] bulk->data = (void *)VC_SAFE(pagelistinfo->dma_addr); ^ Signed-off-by: Matteo Croce <mcroce@redhat.com>
-
Stefan Wahren authored
commit e38a9a43 upstream. The BCM2711 has a new way of selecting the pull-up/pull-down setting for a GPIO pin. The registers used for the BCM2835, GP_PUD and GP_PUDCLKn0, are no longer connected. A new set of registers, GP_GPIO_PUP_PDN_CNTRL_REGx must be used. This commit will add a new compatible string "brcm,bcm2711-gpio" and the kernel driver will use it to select which method is used to select pull-up/pull-down. This patch based on a patch by Al Cooper which was intended for the BCM7211. This is a bugfixed and improved version. Signed-off-by: Stefan Wahren <wahrenst@gmx.net> Acked-by: Eric Anholt <eric@anholt.net>
-
Stefan Wahren authored
After the decision to use bcm2711 compatible for upstream, we should switch all accepted compatibles to bcm2711. So we can boot with one DTB the down- and the upstream kernel. Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
-
Phil Elwell authored
See: https://github.com/raspberrypi/linux/issues/3251 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Phil Elwell authored
Before 4.20, it was possible to build an arbitrary overlay by copying it to arm/boot/dts/overlays/mytest-overlay.dts and running: make ARCH=arm overlays/mytest.dtbo In 4.20 the .dtb build rules were centralised, requiring the dowstream .dtbo build rules to be changed. They were, enough to support "make ... dtbs", but not sufficiently to allow this ad-hoc, one-off building of individual files. Add the missing makefile rule to support this way of building. See: https://github.com/raspberrypi/linux/issues/3250 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Phil Elwell authored
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Phil Elwell authored
The pm_runtime was blocking changelist submission, so delete it as a temporary workaround. Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Dave Stevenson authored
The g_selection and s_selection API is messed up and requires the driver to expect the non-MPLANE buffer types, not the MPLANE ones even if they are supported. The V4L2 core will convert the MPLANE ones to non-MPLANE should they be passed in Fixes: 5e484a3e staging: bcm2835-codec: switch to multi-planar API Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
The codec is happy with video up to 1920 high if the width is suitably reduced to stay within level limits. eg 1080x1920 is OK to decode. Increase the height limit accordingly. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
James Hughes authored
Margins were incorrectly assumed to be setup in SDTV mode, but were not actually done, so this make the setup non-conditional on mode. Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
-
Dave Stevenson authored
This is mainly used for the NoIR camera which has no IR filter and can completely confuse normal AWB presets. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Adds a simple greyworld white balance preset, mainly for use with cameras without an IR filter (eg Raspberry Pi NoIR) Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Kieran Bingham authored
Provide a single media device to contain all of the bcm2835_codec devices created. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
Kieran Bingham authored
Pass the bcm2835_codec_driver driver context directly into the bcm2835_codec_create() so that it can be used to store driver global state. Pass the struct platform_device *pdev by adding it to the driver global state. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
Kieran Bingham authored
Three entities are created, Decode, Encode and ISP but all of the video nodes use the same video name string "bcm2835-codec" which makes it difficult to identify each role. Append the role-name to the video name to facilitate identifying a specific instance from userspace. The Card-Type is also extended with the role name to support identifying the device context from within QUERY_CAP operations. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
Kieran Bingham authored
The static role text is declared incorrectly. The static should be first, and the roles should also be constified. Convert from "const static char *" to "static const char * const". Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
Kieran Bingham authored
The job_ready comment is incorrectly using the documentation prefix (/**) which causes a warning at build time. Simplify it. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
Dave Stevenson authored
Adds a driver for the 8MPix Sony IMX219 CSI2 sensor. Whilst the sensor supports 2 or 4 CSI2 data lanes, this driver currently only supports 2 lanes. 8MPix @ 15fps, 1080P @ 30fps (cropped FOV), and 1640x1232 (2x2 binned) @ 30fps are currently supported. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org> Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-
Dave Stevenson authored
The IMX219 is an 8MPix CSI2 sensor, supporting 2 or 4 data lanes. Document the binding for this device. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Phil Elwell authored
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Phil Elwell authored
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Aman Gupta authored
The ISP and ENCODE roles have the same underlying hardware. Neither requires vertical alignment. Signed-off-by: Aman Gupta <aman@tmm1.net>
-
Aman Gupta authored
fixes #3171 Signed-off-by: Aman Gupta <aman@tmm1.net>
-
Phil Elwell authored
Enable the V3D driver, which depends on BCM2835_POWER. Originally submitted by GitHub user 'phire' in a slightly different form. See: https://github.com/raspberrypi/linux/pull/3063 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Jonathan Bell authored
Users have reported log spam created by "Event Ring Full" xHC event TRBs. These are caused by interrupt latency in conjunction with a very busy set of devices on the bus. The errors are benign, but throughput will suffer as the xHC will pause processing of transfers until the event ring is drained by the kernel. Expand the number of event TRB slots available by increasing the number of event ring segments in the ERST. Controllers have a hardware-defined limit as to the number of ERST entries they can process, so make the actual number in use min(ERST_MAX_SEGS, hw_max). Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
-
Phil Elwell authored
Some combinations of Pi 4Bs and Ethernet switches don't reliably get a DCHP-assigned IP address, leaving the unit with a self=assigned 169.254 address. In the failure case, the Pi is left able to receive packets but not send them, suggesting that the MAC<->PHY link is getting into a bad state. It has been found empirically that skipping a reset step by the genet driver prevents the failures. No downsides have been discovered yet, and unlike the forced renegotiation it doesn't increase the time to get an IP address, so the workaround is enabled by default; add genet.skip_umac_reset=n to the command line to disable it. See: https://github.com/raspberrypi/linux/issues/3108 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-
Dave Stevenson authored
vc4_crtc_consume_event wasn't checking crtc->state->event was set before dereferencing it, leading to an OOPS. Fixes "a5b534bb drm/vc4: Resolve the vblank warnings on mode switching" Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
The handling of format changed events incorrectly set bytesperline to the cropped width, which ignored padding and formats with more than 8bpp. Fix these. Reported by: zillevdr <zillevdr@gmx.de> Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Adds some more useful logging during format changed events and s_fmt. Reported by: zillevdr <zillevdr@gmx.de> Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
"89d13761 drm/vc4: Add support for margins to fkms" removed the requirement for having the mode structure from vc4_plane_to_mb, but didn't remove it as a local to the function, causing a compiler warning. Remove the unused variable. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
The details over when and how a driver is to service the vblank events are sketchy, and the fkms driver was triggering a kernel warning every time the crtc was enabled or disabled. Copy the event handling as used by the vc4-kms driver slightly more closely, and we avoid the warnings. https://github.com/raspberrypi/linux/issues/3020 Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
James Hughes authored
For generic ALSA, all you need is the bcm2835.h change, but have also added structures for IEC958 HDMI. Not sure how to test those.
-
Chen-Yu Tsai authored
Instead of filling in the struct v4l2_capability device_caps field, fill in the struct video_device device_caps field. That way the V4L2 core knows what the capabilities of the video device are. This is similar to a cleanup series by Hans Verkuil [1]. [1] https://www.spinics.net/lists/linux-media/msg153313.html Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-
Chen-Yu Tsai authored
The stateful decoder specification shows an optional step for retrieving the miminum number of capture buffers required for the decoder to proceed. While not a required parameter, having it makes some applications happy. bcm2835-codec is a little different from other decoder implementations in that there is an intermediate format conversion between the hardware and V4L2 buffers. The number of capture buffers required is therefore independent of the stream and DPB etc. There are plans to remove the conversion, but it requires a fair amount of rework within the firmware. Until that is done, simply return a value of 1. Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-
Chen-Yu Tsai authored
There are two APIs for mem2mem devices, the older single-planar API and the newer multi-planar one. Without making things overly complex, the driver can only support one or the other. However the userspace libv4l2 library has a plugin that allows multi-planar API devices to service single-planar consumers. Chromium supports the multi-planar API exclusively, though this is currently limited to ChromiumOS. It would be possible to add support for generic Linux. Switching to the multi-planar API would allow usage of both APIs from userspace. Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-
Dave Stevenson authored
Now that the TV margins are properly parsed and filled into drm_cmdline_mode, we just need to initialise the first state at reset to get those values and start using them. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-
Dave Stevenson authored
Some HDMI monitors do not abide by the full or limited (16-235) range RGB flags in the AVI infoframe. This can result in images looking washed out (if given limited and interpreting as full), or detail disappearing at the extremes (given full and interpreting as limited). Copy the Intel i915 driver's approach of adding an override property ("Broadcast RGB") to force one mode or the other. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-