Age | Commit message (Collapse) | Author |
|
Unfortunately the SD card power rail VGEN3 got disabled upon boot which
is reported as follows:
VGEN3: disabling
Subsequent SD card operation fails as follows:
mmcblk1: error -110 sending status command, aborting
This commit fixes this by making sure VGEN3 is always powered and
optionally allows that rail to be automatically switched to 1.8 volts
for proper UHS-I operation potentially massively increasing speeds.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
SIT tunnels (IPv6 over IPv4) are not often used hence configure
the driver as a module. This also gets rid of the extra network
interface sit0 by default.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
The wxga timing node was called 1200x800 while 1280x800 would be more
meaningfull.
Note that the change is cosmetic. This node will not be accessed by its
name.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Use the RTS(CTS) output to control a RS485 transmitter.
The UART obviously needs RTS/CTS enabled for this to work, e.g.
fsl,uart-has-rtscts must be present in the device tree.
Enable RS485 by either using ioctrl TIOCSRS485 or enable it in
the device tree by setting linux,rs485-enabled-at-boot-time.
e.g.
&uart2 {
status = "okay";
linux,rs485-enabled-at-boot-time;
};
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
With gcc 5.1 I get:
warning: switch condition has boolean value [-Wswitch-bool]
Signed-off-by: Tomer Barletz <barletz@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
(cherry picked from commit cc7fce80229067890365c1ee196be5d304d36dea)
|
|
drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c:457:3: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
if(Args->physSize == 0)
^~
drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.c:460:5: note: ...this statement, but the latter is misleadingly indented as if it
return gcvSTATUS_OK;
^~~~~~
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
|
|
fs/namespace.c:2721:6: warning: 'kernel_dev' may be used uninitialized in this function [-Wmaybe-uninitialized]
ret = do_mount(kernel_dev, kernel_dir->name, kernel_type, flags,
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(void *) data_page);
~~~~~~~~~~~~~~~~~~~
fs/namespace.c:2721:6: warning: 'kernel_type' may be used uninitialized in this function [-Wmaybe-uninitialized]
ret = do_mount(kernel_dev, kernel_dir->name, kernel_type, flags,
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
|
|
kernel/cgroup.c:1235:5: warning: suggest explicit braces to avoid ambiguous 'else' [-Wparentheses]
if (all_ss || (!one_ss && !opts->none && !opts->name))
^
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
|
|
drivers/media/platform/mxc/capture/ov5640_mipi.c:879:18: warning: 'sclk_rdiv_map' defined but not used [-Wunused-const-variable=]
static const int sclk_rdiv_map[] = {1, 2, 4, 8};
^~~~~~~~~~~~~
drivers/net/usb/usbnet.c:84:19: warning: 'driver_name' defined but not used [-Wunused-const-variable=]
static const char driver_name [] = "usbnet";
^~~~~~~~~~~
fs/cifs/netmisc.c:133:40: warning: 'mapping_table_ERRHRD' defined but not used [-Wunused-const-variable=]
static const struct smb_to_posix_error mapping_table_ERRHRD[] = {
^~~~~~~~~~~~~~~~~~~~
kernel/cgroup.c:3839:36: warning: 'cgroup_pidlist_seq_operations' defined but not used [-Wunused-const-variable=]
static const struct seq_operations cgroup_pidlist_seq_operations = {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/net-sysfs.c:30:19: warning: 'fmt_long_hex' defined but not used [-Wunused-const-variable=]
static const char fmt_long_hex[] = "%#lx\n";
^~~~~~~~~~~~
net/core/rtnetlink.c:1266:32: warning: 'ifla_vf_policy' defined but not used [-Wunused-const-variable=]
static const struct nla_policy ifla_vf_policy[IFLA_VF_MAX+1] = {
^~~~~~~~~~~~~~
net/core/rtnetlink.c:1262:32: warning: 'ifla_vfinfo_policy' defined but not used [-Wunused-const-variable=]
static const struct nla_policy ifla_vfinfo_policy[IFLA_VF_INFO_MAX+1] = {
^~~~~~~~~~~~~~~~~~
net/core/sysctl_net_core.c:26:12: warning: 'one' defined but not used [-Wunused-variable]
static int one = 1;
^~~
net/ipv4/ping.c:1148:36: warning: 'ping_v4_seq_ops' defined but not used [-Wunused-const-variable=]
static const struct seq_operations ping_v4_seq_ops = {
^~~~~~~~~~~~~~~
net/rfkill/rfkill-gpio.c:187:36: warning: 'rfkill_acpi_match' defined but not used [-Wunused-const-variable=]
static const struct acpi_device_id rfkill_acpi_match[] = {
drivers/net/wireless/rtlwifi/efuse.c:38:31: warning: 'RTL8712_SDIO_EFUSE_TABLE' defined but not used [-Wunused-const-variable=]
static const struct efuse_map RTL8712_SDIO_EFUSE_TABLE[] = {
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/rtlwifi/efuse.c:34:17: warning: 'MAX_PGPKT_SIZE' defined but not used [-Wunused-const-variable=]
static const u8 MAX_PGPKT_SIZE = 9;
^~~~~~~~~~~~~~
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
|
|
drivers/mxc/ipu3/ipu_disp.c:435:89: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-array-qualifiers]
{{DP_COM_CONF_CSC_DEF_BOTH, &rgb2ycbcr_coeff}, {0, 0}, {0, 0}, {DP_COM_CONF_CSC_DEF_BG, &rgb2ycbcr_coeff}, {DP_COM_CONF_CSC_DEF_BG, &rgb2ycbcr_coeff} },
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
|
|
include/linux/of.h:803:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
for (child = of_get_next_child(parent, NULL); child != NULL; \
^
drivers/thermal/of-thermal.c:715:2: note: in expansion of macro 'for_each_child_of_node'
for_each_child_of_node(child, gchild)
^~~~~~~~~~~~~~~~~~~~~~
drivers/thermal/of-thermal.c:718:3: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'for'
if (ret)
^~
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
|
|
arch/arm/mach-imx/mcc_linux.c:100:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
if (mcc_shm_ptr->gate_val != (MCC_CORE_NUMBER + 1))
^~
arch/arm/mach-imx/mcc_linux.c:102:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
return MCC_SUCCESS;
^~~~~~
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
|
|
scripts/sortextable.h:176:3: warning: ‘relocs_size’ may be used uninitialized in this function [-Wmaybe-uninitialized]
memset(relocs, 0, relocs_size);
^
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
|
|
commit 95272c29378ee7dc15f43fa2758cb28a5913a06d upstream.
-ftracer can duplicate asm blocks causing compilation to fail in
noclone functions. For example, KVM declares a global variable
in an asm like
asm("2: ... \n
.pushsection data \n
.global vmx_return \n
vmx_return: .long 2b");
and -ftracer causes a double declaration.
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Michal Marek <mmarek@suse.cz>
Cc: stable@vger.kernel.org
Cc: kvm@vger.kernel.org
Reported-by: Linda Walsh <lkml@tlinx.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 615829a03dc729e78372d40d95ba40e2ad51783b)
|
|
commit f320793e52aee78f0fbb8bcaf10e6614d2e67bfc upstream.
[ Upstream commit cb984d101b30eb7478d32df56a0023e4603cba7f ]
As gcc major version numbers are going to advance rather rapidly in the
future, there's no real value in separate files for each compiler
version.
Deduplicate some of the macros #defined in each file too.
Neaten comments using normal kernel commenting style.
Signed-off-by: Joe Perches <joe@perches.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Segher Boessenkool <segher@kernel.crashing.org>
Cc: Sasha Levin <levinsasha928@gmail.com>
Cc: Anton Blanchard <anton@samba.org>
Cc: Alan Modra <amodra@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 3711edaf01a01818f2aed9f21efe29b9818134b9)
|
|
If a valid power regulator or a dummy regulator is used (which
happens to be the case when no regulator is specified), restart_work
is queued no matter whether the device was running or not at suspend
time. Since work queues get initialized in the ndo_open callback,
resuming leads to a NULL pointer exception.
Reverse exactly the steps executed at suspend time:
- Enable the power regulator in any case
- Enable the transceiver regulator if the device was running, even in
case we have a power regulator
- Queue restart_work only in case the device was running
Fixes: bf66f3736a94 ("can: mcp251x: Move to threaded interrupts instead of workqueues.")
Signed-off-by: Stefan Agner <stefan@agner.ch>
Cc: linux-stable <stable@vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
(cherry picked from commit 25b401c1816ae64bcc5dcb1d39ab41812522a0ce)
Backport conflicts:
driver has been moved to spi subdir upstream
drivers/net/can/spi/mcp251x.c
|
|
Update the display timings for LDB (LVDS), as LDB driver now supports
the native-mode property.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add support for LVDS frame buffer configuration via kernel boot arguments.
Fix use of the device tree native-mode property.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
MCP2515 is available on colibri evaluation board,
include it in the device tree for colibri i.mx6.
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Enable ADV7280 decoder for iMX6 modules. ADV7280 and ADV7180 have
same addresses viz. 0x21 respectively, changing the ADV7280 address
to 0x20 would result in a conflict with MAX9526. As a result enable
ADV7280 by default and disable ADV7180.
Signed-off-by: Sanchayan Maity <sanchayan.maity@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Add support for ADV7280 decoder found on Toradex Analogue
Camera Adapter V2.0A
Signed-off-by: Sanchayan Maity <sanchayan.maity@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Change the "unsupported ioctrl" message to print only on debug.
This otherwise results in an error message
ERROR: v4l2 capture: unsupported ioctrl!
which does not seem to effect the gstreamer pipeline or rendering
of video.
>From debugging,
root@apalis-imx6:~# gst-launch-1.0 imxv4l2videosrc ! imxeglvivsink
Setting pipeline to PAUSED ...
[ 385.174543] ERROR: v4l2 capture: unsupported ioctrl 9a091b!
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
>From v4l2-controls.h
V4L2_CTRL_CLASS_CAMERA 0x009a0000
V4L2_CID_CAMERA_CLASS_BASE V4L2_CTRL_CLASS_CAMERA | 0x900
V4L2_CID_3A_LOCK V4L2_CID_CAMERA_CLASS_BASE + 27
So the ioctrl requested seems to be V4L2_CID_3A_LOCK.
"The V4L2_CID_3A_LOCK bitmask control allows applications to pause
or resume the automatic exposure, focus and wite balance adjustments.
It can be used, for example, to lock the 3A adjustments right before
a still image is captured, for pre-focus, etc.
The applications can control each of the algorithms independently,
through a corresponding control bit, if driver allows that."
https://patchwork.linuxtv.org/patch/10719/
Since we have no such feature available we can safely disable the
error message.
Signed-off-by: Sanchayan Maity <sanchayan.maity@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Make provision for a decoder driver to specify clock mode for
progressive in case the decoder provides deinterlaced output.
This is required for ADV7280 decoder where we can use the hardware
deinterlace capabity of ADV7280. Without setting the clock mode
to progressive but having hardware deinterlace on for ADV7280
results in a non working setup.
Signed-off-by: Sanchayan Maity <sanchayan.maity@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
The main i.MX 7 SoC compatible string is fsl,imx7d. By that compatible
string, the whole machine init in mach-imx7d.c is registered. While
some might not be necessary for i.MX 7Solo (e.g. SMP init), it seems
not to hurt. On the other hand, not using the i.MX 7 machine init
bypasses a lot of low level init such as PM or basic ethernet clocking.
So far it seemed not to have caused negative effects (likely since the
bootloader initialized those stuff already reasonable...).
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Commit 619c5719cf ("MLK-11566-7 ARM: imx: support single SOC config")
ifdef'd clock functionality for SoloX only if Cortex-M4 is running.
However, i.MX 7 also provides a Cortex-M4, hence the true branch in
those if statements have been taken. Since the whole block was ifdef'd,
the functions were rendered useless for i.MX 7. Fix this by just
doing the same thing as if Cortex-M4 is not running.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Use the same clock parent for UART3 as we use for UART2 and UART1.
Using the 240MHz clock caused issue for the Cortex-M4 core (freeze/
UART2 stopped working).
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Specify a safe value for the memory node. Apalis iMX6 Dual is the
module with the least amount of memory of our Apalis module family,
hence specify 512MiB.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
If poweroff takes a bit more time (e.g. due to I2C call), it is
quite likely that another timer interrupt fires. Timer interrupt
get broadcasted through the timer interrupt callback
tick_handle_oneshot_broadcast. This code broadcasts the timer
interrupt to all CPU's in tick_broadcast_oneshot_mask. The only
function which removes CPU from this mask is
tick_shutdown_broadcast_oneshot which ultimately get called by
_cpu_down (in kernel/cpu.c). The function disable_nonboot_cpus
makes sure that the CPU's get properly taken down and _cpu_down
gets called. With that no more broadcasts are sent to CPU's which
are no longer online.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Use the PMIC repower capabilities to reboot the module. Register
arm_pm_restart to trigger a cold reboot using the PMIC.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The Colibri iMX7 uses the SNVS_PMIC_ON_REQ signal (connected to the
PMIC's PMIC_ON_EXTIN GPIO) to power off the module. The SNVS RTC
driver provides a poweroff callback which causes that signal to
go low. However, the current PMIC driver registers a poweroff
callback earlier and therefor the kernel uses the PMIC poweroff
instead of the SNVS RTC poweroff callback.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Disable SNVS power key functionality by default for Colibri i.MX 7
modules. The SNVS power key uses the ONOFF signal, which is directly
controlled by reset and therefor not really a power key available
to the user.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Follow commit 286098c029bda740822e68ba6ac2ba0b2fe7c5d3
GPIO number 0 *is* legal and must be accepted.
Set .ena_gpio to -ENODEV on regulators having no GPIO in preparation
of a code change to accept GPIO 0 in the config.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Both drivers, FB_MXS and IPUv3 use functionality from mxc_dispdrv.c.
Allow for a configuartion which builds only FB_MXS.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Allow for a build targeting iMX 7 devices without relying on configuration
from i.MX6 and friends.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add workaround for M4 NMI issue.
Set the Ethernet PHY reference clock to be generated externaly from
the i.MX 7 by default (Colibri i.MX 7 V1.1 sample batch)
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The i.MX 7 can provide a reference clock to the PHY or use a reference clock
from an external circuit.
If the device-tree node with compatible "fsl,imx7d-fec" has a clock named
enet_out then provide the clock from the i.MX 7, if such a clock is missing
use a clock provided from an external circuit.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Without MCLK the sgtl5000 does not answer I2C reads.
So defere probing to later if no sgtl5000 is found.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The PIXDATA flags of the display_flags enum are controller centric,
e.g. NEGEDGE means the controller shall drive the data signals on
pixelclocks negative edge. However, the drivers flag is display
centric: Sample the data on negative (falling) edge.
Therefore, change the if statement to check for the POSEDGE flag
(which is typically not set):
Drive on positive edge => sample on negative edge
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add device tree node for resistive touch screen controller AD7879.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add device tree support to the I2C variant of AD7879 (AD7879-1). This
allows to specify the touchscreen controller as a I2C client node.
Most of the options available as platform data are also available as
device tree nodes.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|