The PMU registers are clocked from CXO out of power on reset.
Turn on the CXO clock so that these registers are accessible.
Change-Id: I7b80a00a3bd592f24d6604f0f05b3ed1f5172139
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
In 8660 wifi is using 8901 regulators. Once wifi is enabled and disabled
back, these regulator does not go in LPM mode and causing the device to
draw more current in suspend state. Hence put these regulator in LPM mode.
CRs-Fixed: 328481
Change-Id: Iedb05498af9f89b57e96eebee9ca74460ddb4963
Signed-off-by: Pankaj Kumar <pakuma@codeaurora.org>
If bam_dmux times out waiting for a response from the modem, we assume it
has crashed. Therefore, prepare for modem restart if enabled, otherwise
report the error with BUG as we are in an unrecoverable state
Change-Id: I5f2419eae721a735a2396693da9fa2d28b14f122
CRs-Fixed: 331808
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
Embedded rmnet driver is setting skb protocol to ethernet link layer
protocol, which causes the IP stack to drop the packets if it is set
to raw IP link layer protocol mode. Hence set the SKB protocol based
on the RMNET link layer protocol mode.
Change-Id: Ife1243feec54a50c00ec833b6ed72f59bf883b94
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
The error handling of msm_bam_dmux_write() should recognize -EAGAIN as a
valid error code and not mask it out. -EAGAIN needs to be handled
differently than other error codes.
CRs-Fixed: 325621
Change-Id: I69b6b5094fcf93c933971a0eae60c6bca0a12299
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
mdm9x15 default composition changed from 0x9001 to 0x9048 to include
new serial interfaces and additional rmnet interfaces. Hence update the
PID for mdm_bridge, diag_bridge, embedded rmnet drivers to support new
composition.
Change-Id: I5c3778ef6b8fddd07d1a0789213e4b289ccc7567
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
During SSR Riva should not be 'powered on' until all the host
drivers finish their shutdown routines. Add APIs to support
this synchronization mechanism.
Change-Id: Id211cf2deb7accd0e4bdfe8cd328e6807eac875e
Signed-off-by: Sameer Thalappil <sameert@codeaurora.org>
Embedded rmnet usb host driver will be used to communicate with modem
devices having rmnet interface. This driver works as pass through layer
for control and data path communication. Driver currently supports device
with product id: 0x9034 and vendor id : 0x05c6.
Change-Id: Ie037af915f2650828420a351bd3fe503a505eaee
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Added support for RGMII (1G) phys, sysfs/mdio and minor enhancements.
Change-Id: Icffb3965855369430c2d831a7aa1bd1fb73f9951
Acked-by: Kaushik Sikdar <ksikdar@qualcomm.com>
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
This patch includes the following changes,
a. Proxy vote for Iris regulators on behalf of Riva.
b. During SSR power-on, vote for Iris regulators just like in
cold boot.
c. Remove wcnss_riva.h, it was meant to be local to platform driver.
d. Make WCNSS platform driver part of kernel
Change-Id: Ied1f91297305469a0e4d9e524a03b49e1f600852
Signed-off-by: Sameer Thalappil <sameert@codeaurora.org>
If the rmnet transport returns an error, return a busy code to the IP
Framework and unlock the netif queue so that the IP Framework will
try again later.
Change-Id: I17638e301ba7240bfc44096647147b598686d2c8
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
BAM_DMUX does not put any restriction on the number of packets in
flight over the underlying BAM transport. This causes the bandwidth
to be not shared fairly among the clients. So introduce the concept
of watermarking in each client's transmit queue so that the clients
share the transport fairly and efficiently under high throughput
uplink scenarios
Change-Id: Ibf7e12b4cf13e826e7f83a41821f435cb7aa2cb0
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
Add logic to the wcnss module so that it can either be statically
built into the kernel or built as a dynamically loaded module. Up to
this point the wcnss driver only supported dynamic loading, however an
upcoming wcnss subsystem restart change requires that it be statically
linked into the kernel. The major difference between these two modes
is that when the module is dynamically loaded it can assume upon
module init that userspace is available to service the peripheral
image loader (PIL), whereas when the module is statically linked it
cannot assume that userspace is available. Therefore when the module
is statically linked, during module init it instantiates a sysfs file
node, and only after userspace has indicated it is available by
touching that sysfs node can the module perform its "normal"
initialization including triggering the PIL.
Change-Id: I2b88b358d45bc8f9c4e603173d7c2b72ea7bac0c
Signed-off-by: Jeff Johnson <jjohnson@codeaurora.org>
* common/android-3.0: (570 commits)
misc: remove kernel debugger core
ARM: common: fiq_debugger: dump sysrq directly to console if enabled
ARM: common: fiq_debugger: add irq context debug functions
net: wireless: bcmdhd: Call init_ioctl() only if was started properly for WEXT
net: wireless: bcmdhd: Call init_ioctl() only if was started properly
net: wireless: bcmdhd: Fix possible memory leak in escan/iscan
cpufreq: interactive governor: default 20ms timer
cpufreq: interactive governor: go to intermediate hi speed before max
cpufreq: interactive governor: scale to max only if at min speed
cpufreq: interactive governor: apply intermediate load on current speed
ARM: idle: update idle ticks before call idle end notifier
input: gpio_input: don't print debounce message unless flag is set
net: wireless: bcm4329: Skip dhd_bus_stop() if bus is already down
net: wireless: bcmdhd: Skip dhd_bus_stop() if bus is already down
net: wireless: bcmdhd: Improve suspend/resume processing
net: wireless: bcmdhd: Check if FW is Ok for internal FW call
tcp: Don't nuke connections for the wrong protocol
ARM: common: fiq_debugger: make uart irq be no_suspend
net: wireless: Skip connect warning for CONFIG_CFG80211_ALLOW_RECONNECT
mm: avoid livelock on !__GFP_FS allocations
...
Conflicts:
arch/arm/mm/cache-l2x0.c
arch/arm/vfp/vfpmodule.c
drivers/mmc/core/host.c
kernel/power/wakelock.c
net/bluetooth/hci_event.c
Signed-off-by: Bryan Huntsman <bryanh@codeaurora.org>
The skb being transmitted can be freed at any point after handing it
off to the transport. Thus the statistics must be determined in the
callback to prevent accessing data that is already freed. Also,
statistics should always be calculated when in IP mode.
CRs-Fixed: 318747
Change-Id: I3a2a081291fc657ca64aff47a3370017c5b6f7ca
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
Add error logging in failure scenarios since all errors are
converted to ENODEV in upper layers making debugging
difficult.
Change-Id: I411c88ccf1eefd85946a3bc2593524894754e2d1
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
Remove obsolete define WCNSS_NV_NAME which was originally used to
specify the file from which to obtain the has_48mhz_ xo option. That
logic was replaced with a board file option with module param
override, but this define was inadvertently not removed at that time.
Change-Id: I810c07115a76e938fded8e6ab92d3ff72d56e6aa
Signed-off-by: Jeff Johnson <jjohnson@codeaurora.org>
When support for nested interrupts was merged in commit
3a076852dc80aa3cfc02c880c41dcd947cdeab70 in kernel 2.6.38 it appears as
though this previous commit was not merged properly.
Change-Id: I2aca73fdb1ae663ca058aadd27fe658de6d851e3
Signed-off-by: Terence Hampson <thampson@codeaurora.org>
Wifi and BT have shared voltage regulator. So if both
needs to be enabled, there is a voltage level conflict
between them. In case of older vreg implementation
there is no such sanity check regarding the voltage
levels, hence no conflict.
But in case of regulator API's, it has a sanity check for
previously voted voltage for a particular regulator. Hence
in this case we need to pass the minimum & maximum voltage
range for both BT & WIFI, so that regulator framework will
internally set the common voltage level for both devices.
Change-Id: I48cc70ffe78407dc1013ac09da4cddfcda0ab2cf
Signed-off-by: Pankaj Kumar <pakuma@codeaurora.org>
Kickoff uplink wakeup on the transport when necessary so that necessary
scheduling does not occur in atomic context.
Change-Id: Iae702d0b318c8edc8ee0b45e372cc2db85370a97
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
Add ethtool EEPROM read/write support using the eeprom_93cx6
library instead of open-coding the functions.
Depends on eeprom_93cx6 driver getting EEPROM write support.
Change-Id: I06f3ab2b936244f658faae3ae8199a21de7b4d51
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Simtec Linux Team <linux@simtec.co.uk>
[sboyd@codeaurora.org: Removed previous eeprom implementation]
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
When device is off it is under power saving mode. Changing the MAC address
in that situation will result in the device not communicating as the first
write to the MAC address register is not executed.
Change-Id: I7747b0eab438e180fc8c279ba03a37c1543a24da
Signed-off-by: Tristram Ha <Tristram.Ha@micrel.com>
[ben@simtec.co.uk: cleaned up header]
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Add support for reading the MAC address from the system registers if there
is an EEPROM present. This involves caching the KS_CCR register for later
use (will also be useful for ETHTOOL support) and adding a print to say
that there is an EEPROM present.
Change-Id: Id23e88fbbb970daeb28ec0dceba4752eddd2d827
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
[sboyd@codeaurora.org: Remove our implementation]
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>