Age | Commit message (Collapse) | Author |
|
TPS62362:
- disable all internal pull-down resistors to decrease (RTC battery)
current consumption
- make sure we use VDD_CORE set point 0
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Initialise TPS65911 GPIOs:
- disable internal pull-down resistors to decrease (RTC battery)
current consumption
- output 0 during sleep state on GPIO2 (EN_VDD_CORE) and GPIO6
(EN_VDD_HDMI)
While at it also remove some obsolete includes, update some comments,
fix some indenting and FIXED_REG resp. GPIO_REG ids.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Allow for setting the direction of the VI pins' level-shifter. Do not
tri-state those pins' output driver in order to be able to actually
output any values as well. Default to direction input and update
comments accordingly.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
|
|
Enable a static 24 MHz camera clock on CAM1_MCLK suitable for e.g.
ov5640, ov7670soc or the like.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
|
|
Clean-up and silence those annoying CPU hot-plugging debug messages.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
|
|
On a tegra3 platform with Hynix eMMC we can observe that sometimes we
receive a command timeout after a transfer complete interrupt on a
multiple block read request.
Here is the output using MMC_DEBUG and ftrace.
When it works:
tegra_sdhci_set_clock: tegra_sdhci_set_clock mmc0 0 enabled=1
tegra_sdhci_set_clock: tegra_sdhci_set_clock mmc0 52000000 enabled=0
__mmc_start_req: mmc0: starting CMD18 arg 00a73044 flags 000000b5
__mmc_start_req: mmc0: blksz 512 blocks 2 flags 00000200 tsac 150 ms nsac 1000
__mmc_start_req: mmc0: CMD12 arg 00000000 flags 0000049d
sdhci_irq: sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
sdhci_finish_command: sdhci_finish_command:1075
sdhci_irq: sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000002
sdhci_tasklet_finish: sdhci_tasklet_finish:2064
When we have the error:
tegra_sdhci_set_clock: tegra_sdhci_set_clock mmc0 0 enabled=1
tegra_sdhci_set_clock: tegra_sdhci_set_clock mmc0 52000000 enabled=0
__mmc_start_req: mmc0: starting CMD18 arg 00a63d12 flags 000000b5
__mmc_start_req: mmc0: blksz 512 blocks 2 flags 00000200 tsac 150 ms nsac 1000
__mmc_start_req: mmc0: CMD12 arg 00000000 flags 0000049d
sdhci_irq: sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
sdhci_finish_command: sdhci_finish_command:1075
sdhci_irq: sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00018000
------NOW THE REQUEST BLOCK UNTIL TIMEOUT------
We can see that when it works the multiple read blocks command stopped by
the CMD12 receive two interrupts. The first is the Transfer complete
interrupt (SDHCI_INT_RESPONSE) and just after the Block Gap Event
interrupt (SDHCI_INT_DATA_END). In this case the command is finished and
the data is finished too.
In the bad case instead of receiving SDHCI_INT_DATA_END we receive a
command timeout error (SDHCI_INT_TIMEOUT) but command was already
finished by the SDHCI_INT_RESPONSE so not more command is waiting and the
driver wait until the timeout timer end because this case is not managed.
Signed-off-by: Nicolas Serafini <nicolas.serafini@sensefly.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
|
|
This fixes the following eMMC suspend/resume issue as seen on
Colibri T30 1GB IT V1.1A:
[ 75.479664] mmcblk0: error -110 transferring data, sector 287240, nr 2,
cmd response 0x900, card status 0xc00
[ 75.580923] end_request: I/O error, dev mmcblk0, sector 287240
[ 75.586782] Buffer I/O error on device mmcblk0p2, logical block 123140
[ 75.593313] lost page write due to I/O error on mmcblk0p2
(fixes an issue probably caused by a merge conflict introduced by
commit 7f7b042a978edfc6c7d1e14ec9c6ec01ffcc284b)
Signed-off-by: Mirza Krak <mirza.krak@hostmobility.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
|
|
Integrate Epson S2D13P04 video decoder support.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
|
|
Modularise our Wi-Fi configuration meaning build support for our
former Ralink RT3070 based Ambicom WL250N as module as well plus
while at it enable support for newer Ralink RT5370 based common
Wi-Fi USB sticks as well.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
|
|
This commit adds support for Epson S2D13P04 (4-input
analog video decoder with parallel interface) for
Colibri T30.
Currently the only supported standard is PAL-B/G/I/N
and the output is arranged in 'merge mode' (4 input
streams on one screen)
Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
|
|
The latest vendor (non-mac80211) driver of 9/22/2011 shows some new
device IDs for rtl8192cu. In addition, some typos in the table are
fixed and one duplicate is removed.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit 6cddafab54e9a17b2efefe982547865955a5ff3a)
|
|
While working on the 32-bit ARM port of UEFI, I noticed a strange
corruption in the kernel log. The following snprintf() statement
(in drivers/firmware/efi/efi.c:efi_md_typeattr_format())
snprintf(pos, size, "|%3s|%2s|%2s|%2s|%3s|%2s|%2s|%2s|%2s]",
was producing the following output in the log:
| | | | | |WB|WT|WC|UC]
| | | | | |WB|WT|WC|UC]
| | | | | |WB|WT|WC|UC]
|RUN| | | | |WB|WT|WC|UC]*
|RUN| | | | |WB|WT|WC|UC]*
| | | | | |WB|WT|WC|UC]
|RUN| | | | |WB|WT|WC|UC]*
| | | | | |WB|WT|WC|UC]
|RUN| | | | | | | |UC]
|RUN| | | | | | | |UC]
As it turns out, this is caused by incorrect code being emitted for
the string() function in lib/vsprintf.c. The following code
if (!(spec.flags & LEFT)) {
while (len < spec.field_width--) {
if (buf < end)
*buf = ' ';
++buf;
}
}
for (i = 0; i < len; ++i) {
if (buf < end)
*buf = *s;
++buf; ++s;
}
while (len < spec.field_width--) {
if (buf < end)
*buf = ' ';
++buf;
}
when called with len == 0, triggers an issue in the GCC SRA optimization
pass (Scalar Replacement of Aggregates), which handles promotion of signed
struct members incorrectly. This is a known but as yet unresolved issue.
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65932). In this particular
case, it is causing the second while loop to be executed erroneously a
single time, causing the additional space characters to be printed.
So disable the optimization by passing -fno-ipa-sra.
Cc: <stable@vger.kernel.org>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
(cherry picked from commit a077224fd35b2f7fbc93f14cf67074fc792fbac2)
|
|
newer compilers throw the following error:
tegra3_clocks.c:820:31: error: logical not is only applied to the left hand side of comparison [-Werror=logical-not-parentheses]
| c->state = (!is_lp_cluster() == (c->u.cpu.mode == MODE_G))? ON : OFF;
| ^
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
gcc-5 defaults to gnu11 which used c99 inline semantics in c99 'inline' is
not externally visible unlike gnu89, therefore we use 'static inline' which
has same semantics between gnu89 and c99
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
(cherry picked from commit bde304575f3ecaa9570a9329196dffaadf3adafa)
|
|
For functions defined in header files we should use static inline rather
than inline, which breaks under the latest upstream gcc (which is really
gcc issue, but static inline is better suited regardless).
The related error (with allmodconfig under tile):
MODPOST 4002 modules
ERROR: "lifebook_detect" [drivers/input/mouse/psmouse.ko] undefined!
Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
(cherry picked from commit bd447b61c49fc26f0299587db3e6d66da49dc529)
|
|
We're missing include/linux/compiler-gcc5.h which is required now
because gcc branched off to v5 in trunk.
Just copy the relevant bits out of include/linux/compiler-gcc4.h,
no new code is added as of now.
This fixes a build error when using gcc 5.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit 71458cfc782eafe4b27656e078d379a34e472adf)
|
|
With compilers which follow the C99 standard (like modern versions of gcc and
clang), "extern inline" does the wrong thing (emits code for an externally
linkable version of the inline function). In this case using static inline
and removing the NULL version of return_address in return_address.c does
the right thing.
Signed-off-by: Behan Webster <behanw@converseincode.com>
Reviewed-by: Mark Charlebois <charlebm@gmail.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
(cherry picked from commit aeea3592a13bf12861943e44fc48f1f270941f8d)
|
|
Just scratching an itch here, but it makes more sense to use the
static keyword if you think about how the compiler treats inline
functions.
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
(cherry picked from commit 084455524f0d46dd210b4397898aff73579b97e8)
|
|
Compile USB device classes such as WDM and CDC ACM as modules.
Enable USB driver for GSM and CDMA modems (Option and others).
Also enable USB serial console option which allows to use a USB
serial device as a serial console at boot time.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
The Ixora carrier board has a few MXM3 pins repurposed as follows:
Functionality MXM3 Pin
LED4_RED 146
LED4_GREEN 162
LED5_RED 156
LED5_GREEN 152
PCIE1_WDISABLE_N 144
SW3 160
UART2_3_RS232_FOFF_N 164
This patch allows uncommenting an IXORA define in the board header file
in order to make use of those repurposed pins.
Please note that those pins are usually used for the 8-bit MMC/SD slot
aka Apalis MMC1 and the SDHCI controller/driver unfortunately changes
the output driver behaviour in a way preventing any regular GPIO use.
This patch therefore explicitly does not register the SDHCI driver on
this controller instance in the Ixora case to avoid this.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Add Aptina AS0260 camera platform data.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Purely cosmetic clean-up of board files by fixing indentation,
re-ordering camera platform data, splitting lines longer than 80
characters etc.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Integrate ADV7280 video decoder support.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Integrate ADV7280 video decoder support.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Enable RTL8192CU driver to support LM006 USB WiFi adapter.
Signed-off-by: Bhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
defined(@array) is deprecated in Perl and gives off a warning.
Restructure the code to remove that warning.
[ hpa: it would be interesting to revert to the timeconst.bc script.
It appears that the failures reported by akpm during testing of
that script was due to a known broken version of make, not a problem
with bc. The Makefile rules could probably be restructured to avoid
the make bug, or it is probably old enough that it doesn't matter. ]
Reported-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: <stable@vger.kernel.org>
(cherry picked from commit 63a3f603413ffe82ad775f2d62a5afff87fd94a0)
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
kconfig symbols"
This reverts commit 0b206b99b8b7c27e70fb91bc13e2255cb0cfeb28.
Unfortunately there is no CONFIG_AUDIO_SGTL5000_TEGRA!
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Various Tegra HS UART backports
Signed-off-by: Mitja Spes <mitja@lxnav.com>
|
|
Fix HS UART HW buffer overrun issue when using no flow control
Signed-off-by: Mitja Spes <mitja@lxnav.com>
|
|
According to multi-touch-protocol.txt the kernel knows two type of
devices:
- Type A: devices which provide anonymous contacts
- Type B: devices which are capable of tracking individual contacts
The Fusion touch screen is a Type B device: The Touch ID field allows
to differentiate between 2 different fingers. This updates the driver
to properly allocate a slot for each identified contact and use the
helper functions available from the input core system.
(cherry picked from commit 698d0a9bb80d94adef58122717c61f55dd61e22d)
|
|
Use level triggered interrupt which makes sure that even we miss a
rising edge (due to latencies in the kernel), the interrupt still
will be handled later, and doesn't freeze the input device.
(cherry picked from commit ef25b8a9f9c0ca7cc0f0f955d89d112c3e19f75b)
|
|
Turns out the Tegra 3 USB PHY driver had some hard coded dependency on
the Tegra OTG driver but we usually just use our own OTG driver purely
relying on a cable detect GPIO to determine USB device vs. host role.
|
|
symbols
Signed-off-by: Tobias Klauser <tobias.klauser@zhinst.com>
|
|
sscanf() stops at first space it encounters, thus spaces are not represented
i.e. in iManufacturer or iProduct. Fix this by using strlcpy for string
attributes.
[ZI: Backported from upstream android gadget driver]
Signed-off-by: Tobias Klauser <tobias.klauser@zhinst.com>
|
|
Certain Hynix eMMC 4.41 cards might get broken when HPI feature is used
and hence this patch disables the HPI feature for such buggy cards.
As some of the other features like BKOPs/Cache/Sanitize are dependent on
HPI feature, those features would also get disabled if HPI is disabled.
Change-Id: I6a638ce089cbd977122e47aecb721bc3f0adf7b0
Signed-off-by: Pratibhasagar V <pratibha@codeaurora.org>
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Fix ported from the following Android MSM kernel commit:
https://www.codeaurora.org/cgit/quic/la/kernel/msm/commit/?id=84af3731019921a28d595dbf6cbf00539706a42c
|
|
It is fully legal for a controller to start handling busy-end interrupt
before it has signaled that the command has completed. So make sure
we do things in the proper order, Or it results that command interrupt
is ignored so it can cause unexpected operations. This is founded at some
toshiba emmc with the bellow warning.
"mmc0: Got command interrupt 0x00000001 even though
no command operation was in progress."
This issue has been also reported by Youssef TRIKI:
It is not specific to Toshiba devices, and happens with eMMC devices
as well as SD card which support Auto-CMD12 rather than CMD23.
Also, similar patch is submitted by:
Gwendal Grignou <gwendal@chromium.org>
Changes since v1:
Fixed conflict with the next of git.linaro.org/people/ulf.hansson/mmc.git
and Tested if issue is fixed again.
Signed-off-by: Hankyung Yu <hankyung.yu@lge.com>
Signed-off-by: Chanho Min <chanho.min@lge.com>
Tested-by: Youssef TRIKI <youssef.triki@st.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit e99783a45220a2c5f5a598e0e81213ecf2dbcf2f)
|
|
When we wait for busy after sending a command, if there is
a timeout, we got SDHCI_INT_DATA_TIMEOUT flags.
Before this commit we got the message :
"Got data interrupt 0x00100000 even though no data operation was in progress."
and we need to wait 10s that sdhci_timeout_timer expires.
Signed-off-by: Matthieu CASTET <matthieu.castet@parrot.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit c5abd5e8998e20c2e82999670a03f26f1437d744)
|
|
We don't need to change the SDHCI_SDIO_IRQ_ENABLED flag when we're
merely receiving an interrupt - IRQ handling thread in the MMC core
will either re-enable or disable the interrupt via the enable_sdio_irq
callback, which will update this status appropriately.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Tested-by: Markus Pargmann <mpa@pengutronix.de>
Tested-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <chris@printf.net>
(cherry picked from commit ef104333a234f66cd13fd16632086a21b90fced6)
|
|
sdhci interrupt handling is a mess; there is a lot of code doing very
similar things. Let's clean this up a bit:
1. set's clear down cmd, data and bus power interrupts in one go - we're
always going to handle these.
2. use a do { } while () loop for looping while there are pending
interrupts.
3. group clearing of bits in intmask into one place.
This results in the code becoming simpler and easier to read.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Tested-by: Markus Pargmann <mpa@pengutronix.de>
Tested-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <chris@printf.net>
(cherry picked from commit 41005003bcaf4ecfc80e02af01247f2670269816)
|
|
When using MSI it is possible that a new MSI is sent while an earlier
MSI is currently handled. In this case SDHCI_INT_STATUS only contains
SDHCI_INT_RESPONSE and the ISR would not be called again. But at the end
of the ISR SDHCI_INT_DATA_END is now also pending which would be ignored.
Fix this by rereading the interrupt flags in the ISR until no interrupt
we care is pending.
Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
(cherry picked from commit 6379b2375a0c5a6ad437616a4018e6b8fd95e97c)
|
|
Ths patch allows runtime PM for sdhci-pci, runtime suspending after
inactivity of 50ms and ensuring runtime resume before SDHC registers
are accessed. During runtime suspend, interrupts are masked.
The host controller state is restored at runtime resume.
For Medfield, the host controller's card detect mechanism is
supplanted by an always-on GPIO which provides for card detect wake-up.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
(cherry picked from commit 66fd8ad5100b5003046aa744a4f12fa31bb831f9)
|
|
Unfortunately that utmi_phy_remotewake_detected() function gets called
one too many times even quite continuously during data transfers and
putting an mdelay() in there has a rather adverse effect on the overall
system performance including of course degrading USB transfer speeds.
Moving the system lock-up avoidance hack further down into the if
clause improves the performance again as this typically is only ever
evaluated once upon actually plugging something in behind a hub.
This fixes a performance regression introduced by the following commit:
apalis/colibri_t30: usb: fix low-speed issue hack
629b91fa046df5213ed3312d2e2b8683e6bdd70c
|
|
Add a comment about DAP FS pin mux requiring INPUT when operating as I2S slave.
Add a comment about DAP SCLK requiring INPUT even when operating as I2S master.
Add a comment about is_i2s_master in the platform data meaning T30 SoC is I2S
master.
|
|
A customer reported rare boot lock-ups every odd 500 software reboot
cycle. This patch removes the display clock initialisation from the
early clock initialisation as the boot loader anyway already
initialised the same.
|
|
Revise Ethernet MAC address assignment: should now handle up to two
instances of custom user MACs (2nd one with a 0x100000 offset). This
way customer does not have to worry about NVM on a secondary Ethernet
on the carrier board and still gets a valid official MAC address from
us (e.g. analogous to how we did it on our Protea carrier board).
Please note that instead of defaulting to the default ASIX MAC address
if no valid one is encountered this driver now generates a random one
pre-fixed with the ASIX OUI.
|
|
Integrate latest ASIX proprietary driver version 4.17.0
(AX88772C_772B_772A_760_772_178_LINUX_DRIVER_v4.17.0_Source.tar.bz2).
|
|
Integrate OV5640 CSI camera sensor support.
|
|
|
|
It looks like our crystal load capacitance is way off as we just copied
NVIDIA's default setting being the lowest possible 1.5 pF due to their
boards having 20 pF external caps while our hardware does not have any
external caps assembled and we should use the highest 12.5 pF setting.
|