Age | Commit message (Collapse) | Author |
|
The pico6 when entering cpu-idle down-clocks, clock-gates or otherwise
powers down a piece of functionality that the OP-TEE runtime depends on.
After the restore procedure runs OP-TEE is non-functional.
Careful examination of the various components being down-clocked/suspended
may show an individual tweak or omission is appropriate to remediate.
In the meantime this patch switches off cpu-idle for the PICO6 only, we
should revert to the unified defconfig ASAP once a deeper understanding of
what is going wrong in the cpu-idle loop re: OP-TEE is obtained.
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
|
|
This reverts commit 89ef9a60e55e3e85cee8a543590b66dfe3e8a14a.
|
|
arch/arm/configs/pico_mbl_mx6_mx7_defconfig
We use the same kernel config for both i.MX6 and i.MX7 on the pico
baseboard. This commit renames the defconfig to reflect.
arch/arm/configs/imx7d-pico_defconfig -> arch/arm/configs/pico_mbl_mx6_mx7_defconfig
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
|
|
Fails to find handle to ethrnet PHY on boot, entire systems hangs, we need
to debug this further but, in the meantime we can switch off the FEC and
get to a completed boot.
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
|
|
Add CAAM support on i.MX6UL.
Also, since CAAM is not available on i.MX6ULL the CAAM node
needs to be deleted in the imx6ull.dtsi.
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
|
|
This commit imports
arch/arm/boot/dts/imx6ul-pico-hobbit.dts
arch/arm/boot/dts/imx6ul-pico-pi.dts
arch/arm/boot/dts/imx6ul-pico.dtsi
from 0aa49c61995f ("dts: imx6ul-pico: Add the imx6ul-pico-pi variant").
It is not possible to take a full set of git commits from our current HEAD
to the above commit but, it is possible to import the files as they are and
successfully compile a dtb for the imx6ul-pico-pi.
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
|
|
Add qualcomm Qca9377-3 bt wifi support for i.MX7D chip
Pico-Pi board.
Signed-off-by: Jun Nie <jun.nie@linaro.org>
|
|
[Patch] Pulling the following commits and some general changes
from custom v3.10 kernel for supporting qcacld2.0 on kernel v4.9.11.
1. cfg80211: Using new wiphy flag WIPHY_FLAG_DFS_OFFLOAD
When flag WIPHY_FLAG_DFS_OFFLOAD is defined, the driver would handle
all the DFS related operations. Therefore the kernel needs to ignore
the DFS state that it uses to block the userspace calls to the driver
through cfg80211 APIs. Also it should treat the userspace calls to
start radar detection as a no-op.
Please note that changes in util.c is not picked up explicitly.
Kernel v4.9.11 uses wrapper cfg80211_get_chans_dfs_required which takes
care of this change.
Change-Id: I9dd2076945581ca67e54dfc96dd3dbc526c6f0a2
IRs-Fixed: 202686
2. New db.txt from git/sforshee/wireless-regdb.git
CONFIG_CFG80211_INTERNAL_REGDB is enabled in build. This causes
kernel warn messages as db.txt is empty. A new db.txt is added
from:
git://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git
IRs-Fixed: 202686
3. Picked up the declaration and definition of the function
cfg80211_is_gratuitous_arp_unsolicited_na
Change-Id: I1e4083a2327c121073226aa6b75bb6b5b97cec00
CRs-fixed: 1079453
Signed-off-by: Nakul Kachhwaha <nkachh@codeaurora.org>
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
|
|
Select optee in defconfig so that optee device can be accessed
by trusted application and xtest.
Signed-off-by: Jun Nie <jun.nie@linaro.org>
|
|
We need to update to v4.14.71 to mitigate a cache-timing exploit.
https://tinyurl.com/ydypo7y4
Updating to 4.14.71 produces the following error on our board though.
NOHZ: local_softirq_pending 40
Upstream doesn't have this problem so. As a workaround in the meantime we
can move to CONFIG_HZ_PERIODIC which fixes the issue.
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
|
|
I forgot to account for the fact that the device core holds a
reference to a device added with device_initialize() that need
to be released with a corresponding put_device() to reach a 0
refcount at the end of the lifecycle.
This led to a NULL pointer reference when freeing the device
when e.g. unbidning the host device in sysfs.
Fix this and use the device .release() callback to free the
IDA and free:ing the memory used by the RPMB device.
Before this patch:
/sys/bus/amba/drivers/mmci-pl18x$ echo 80114000.sdi4_per2 > unbind
[ 29.797332] mmc3: card 0001 removed
[ 29.810791] Unable to handle kernel NULL pointer dereference at
virtual address 00000050
[ 29.818878] pgd = de70c000
[ 29.821624] [00000050] *pgd=1e70a831, *pte=00000000, *ppte=00000000
[ 29.827911] Internal error: Oops: 17 [#1] PREEMPT SMP ARM
[ 29.833282] Modules linked in:
[ 29.836334] CPU: 1 PID: 154 Comm: sh Not tainted
4.14.0-rc3-00039-g83318e309566-dirty #736
[ 29.844604] Hardware name: ST-Ericsson Ux5x0 platform (Device Tree Support)
[ 29.851562] task: de572700 task.stack: de742000
[ 29.856079] PC is at kernfs_find_ns+0x8/0x100
[ 29.860443] LR is at kernfs_find_and_get_ns+0x30/0x48
After this patch:
/sys/bus/amba/drivers/mmci-pl18x$ echo 80005000.sdi4_per2 > unbind
[ 20.623382] mmc3: card 0001 removed
Fixes: 97548575bef3 ("mmc: block: Convert RPMB to a character device")
Reported-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
This function is used by the block layer queue to bail out of
requests if the current request is towards an RPMB
"block device".
This was done to avoid boot time scanning of this "block
device" which was never really a block device, thus duct-taping
over the fact that it was badly engineered.
This problem is now gone as we removed the offending RPMB block
device in another patch and replaced it with a character
device.
Cc: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
The RPMB partition on the eMMC devices is a special area used
for storing cryptographically safe information signed by a
special secret key. To write and read records from this special
area, authentication is needed.
The RPMB area is *only* and *exclusively* accessed using
ioctl():s from userspace. It is not really a block device,
as blocks cannot be read or written from the device, also
the signed chunks that can be stored on the RPMB are actually
256 bytes, not 512 making a block device a real bad fit.
Currently the RPMB partition spawns a separate block device
named /dev/mmcblkNrpmb for each device with an RPMB partition,
including the creation of a block queue with its own kernel
thread and all overhead associated with this. On the Ux500
HREFv60 platform, for example, the two eMMCs means that two
block queues with separate threads are created for no use
whatsoever.
I have concluded that this block device design for RPMB is
actually pretty wrong. The RPMB area should have been designed
to be accessed from /dev/mmcblkN directly, using ioctl()s on
the main block device. It is however way too late to change
that, since userspace expects to open an RPMB device in
/dev/mmcblkNrpmb and we cannot break userspace.
This patch tries to amend the situation using the following
strategy:
- Stop creating a block device for the RPMB partition/area
- Instead create a custom, dynamic character device with
the same name.
- Make this new character device support exactly the same
set of ioctl()s as the old block device.
- Wrap the requests back to the same ioctl() handlers, but
issue them on the block queue of the main partition/area,
i.e. /dev/mmcblkN
We need to create a special "rpmb" bus type in order to get
udev and/or busybox hot/coldplug to instantiate the device
node properly.
Before the patch, this appears in 'ps aux':
101 root 0:00 [mmcqd/2rpmb]
123 root 0:00 [mmcqd/3rpmb]
After applying the patch these surplus block queue threads
are gone, but RPMB is as usable as ever using the userspace
MMC tools, such as 'mmc rpmb read-counter'.
We get instead those dynamice devices in /dev:
brw-rw---- 1 root root 179, 0 Jan 1 2000 mmcblk0
brw-rw---- 1 root root 179, 1 Jan 1 2000 mmcblk0p1
brw-rw---- 1 root root 179, 2 Jan 1 2000 mmcblk0p2
brw-rw---- 1 root root 179, 5 Jan 1 2000 mmcblk0p5
brw-rw---- 1 root root 179, 8 Jan 1 2000 mmcblk2
brw-rw---- 1 root root 179, 16 Jan 1 2000 mmcblk2boot0
brw-rw---- 1 root root 179, 24 Jan 1 2000 mmcblk2boot1
crw-rw---- 1 root root 248, 0 Jan 1 2000 mmcblk2rpmb
brw-rw---- 1 root root 179, 32 Jan 1 2000 mmcblk3
brw-rw---- 1 root root 179, 40 Jan 1 2000 mmcblk3boot0
brw-rw---- 1 root root 179, 48 Jan 1 2000 mmcblk3boot1
brw-rw---- 1 root root 179, 33 Jan 1 2000 mmcblk3p1
crw-rw---- 1 root root 248, 1 Jan 1 2000 mmcblk3rpmb
Notice the (248,0) and (248,1) character devices for RPMB.
Cc: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
The fifo pixel copy is done based on image parameters, when the bit_pixel is set
we say already that the pixel size is 16bits, so we need to pass the real width
and not a byte per pixel width. This would avoid the copy over the allocated
buffers.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
We were allocating to much memory to the cma pool, the initial intention in
8211617b09a ARM: dts: imx7s: increase CMA pool size, was to reserve only 40MB
but in that commit we were reserving 320MB.
Fix this an really reserve the initial 40MB wanted.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
To guarantee that all pipeline is stopped correctly at file descriptor release
operation call the streamoff function before stopping csi own resources.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
The check whether an async sub-device is bound to a notifier was performed
without list_lock held, making it possible for another process to
unbind the async sub-device before the sub-device unregistration function
proceeds to take the lock.
Fix this by first acquiring the lock and then proceeding with the check.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
The notifier complete callback may return an error. This error code was
simply returned to the caller but never handled properly.
Move calling the complete callback function to the caller from
v4l2_async_test_notify and undo the work that was done either in async
sub-device or async notifier registration.
Reported-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
The call to v4l2_async_cleanup() will set sd->asd to NULL so passing it to
notifier->unbind() has no effect and leaves the notifier confused. Call
the unbind() callback prior to cleaning up the subdevice to avoid this.
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
v4l2_async_cleanup() is called when the async sub-device is unbound from
the media device. As the pointer is set by the driver registering the
async sub-device, leave the pointer as set by the driver.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Remove V4L2 async re-probing support. The re-probing support has been
there to support cases where the sub-devices require resources provided by
the main driver's hardware to function, such as clocks.
Reprobing has allowed unbinding and again binding the main driver without
explicitly unbinding the sub-device drivers. This is certainly not a
common need, and the responsibility will be the user's going forward.
An alternative could have been to introduce notifier specific locks.
Considering the complexity of the re-probing and that it isn't really a
solution to a problem but a workaround, remove re-probing instead.
If there is a need to support the clock provider unregister/register cycle
while keeping the clock references in the consumers in the future, this
should be implemented in the clock framework instead, not in V4L2.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Acked-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Do not mark buffer done if a buffer in active queue was in discard queue, this
will trigger a NULL dereference.
So, just remove it from the active buffers queue but not pass it to buffer done
as it will be removed bellow in dma free.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Make sure we clean the pending changes status flag after applying the latest
mode request. This will avoid setting more than once the same mode.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
We currently only support one frame rate, 30fps, validate that the setting
correspond to that only value possible.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Control values can only be read if the sensor is power up, if not the i2c
reading will fail. So, make sure that only in enable status control get be
fetched.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
To represent the initial status of the registers regarding the auto gain
control, make sure to set the default value to 1.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Get out of set format without really setting if the which parameter is only to
try and not set format active.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
When restoring, initial mode was set and that overlapped the previous active
mode, to avoid that make sure to set the current mode leaving restore point.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Big delay was introduced to skip initial frames, that looks unnecessary and
overkill time wise. Instead when setting power up start for a few milliseconds
streaming which will set the clock lane into LP-11 mode.
Also need to move the stream_{enable/disable} to avoid forward declarations.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Adjust the default values for direct mode register settings for 1600x1200 and
1280x720 to avoid some observed corruption in captured frames.
While at it, remove unused init settings as we are using the 800x600 as the
initial mode.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Register writing and reading fix to handle the high, middle and low part
correctly as in datasheet register split.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Enable all necessary options to support camera capture with ov2680 sensor in
imx7 warp7 config.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Add the ports and endpoints for a complete connection between the camera
hardware components. Add ov2680 camera entry with the connection to the mipi csi
endpoint and the mipi csi with the csi endpoint.
Also add the pinctrl for the mipi_csi.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Add the necessary CSI and MIPI CSI2 entries to support the hardware connections
and setup the necessary properties.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
In a way to use the MIPI CSI hardware block we need to enbale the correspondent
pgc power domain.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Default size for CMA pool is 16MB however imx7 will need a bigger size to
support camera operation and transfer. So, increase it to 40MB.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Add a capture and CSI control driver to support camera capturing and streaming
in a IMX7 arch type.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Add support to the MIPI CSI2 integrated in imx7. This will allow to use a CMOS
sensor as input device for the IMX7 SoC.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Add driver to support the 2 megapixel CMOS image sensor from Omnivision, OV2680.
This is based on the ov5640 driver.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
For CMA allocations, we expect to occasionally hit this error path, at
which point CMA will retry. Given that, we shouldn't be spamming
dmesg about it.
This is based on the discussion here:
https://patchwork.kernel.org/patch/9490969/
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Fix mipi dphy root div clock so the right mipi_dhpy_pre_div is set as parent.
And reparent thi mipi csi root source clock.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
This patch configures the board to output UART6 to the mikroBus.
The NXP WaRP7 board can route UART6 to the mikroBus, where an RS232
click board can be plugged in to get an additional serial port.
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Memory to Memory support added to fsl asoc needs to create miscdevice
to handle imx alsa plugin specific IOCTL.
Add missing headers to make this file compile clean.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
[linux-fslc commit 74bbbf0fa0581c72c20f57a3315fb95b6f8f9955]
This patch is adapted from freescale kernel v4.1 to add support to
Memory to Memory. Alsa plugins needs this to use the ioctl protocol.
The original change log is here and should be self explanatory:
cherry-pick below patch from v3.14.y:
ENGR00330403-4: ASoC: fsl_asrc: Add Memory to Memory support
ASRC M2M function is not able to put upstream due to its self-designed
ioctl protocol. So I just make a single patch for it and make it merge
into P2P driver as simply as possible.
The patch can only be maintained internally unless some one designs a
new protocol or implement the originally protocol by using some common
approach provided by Linux Kernel.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Add CAAM device node to the i.MX7s device tree.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Add CAAM clocks so that we could use the Cryptographic Acceleration and
Assurance Module (CAAM) hardware block.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Add support as module for the fxos8700 accelerometer/magnetometer combo
for the warp7 board.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
This patch adds the necessary bindings to the imx7s-warp.dts related
with the fxos8700 accelerometer/magnetometer combo. Also add the
correspondent documentation for the new entries.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Add driver to communicate over spi to fxos8700 accel/magnetometer combo device
and use fxos8700_core for main tasks.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|
|
Add i2c communication implementation for the fxos8700 driver that
uses fxos8700_core for main tasks.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
|