Commit graph

377727 commits

Author SHA1 Message Date
Sujit Reddy Thumma
bd314dc52d ata: ahci: Add SATA support for Qualcomm MSM chipsets
Add a glue driver for AHCI platform driver to support SATA
controller and PHY on Qualcomm's MSM platforms. The SATA
controller on MSM adheres to AHCI 1.3 specification and SATA
PHY is based on SATA 3.0 specification.

The glue driver acts as a device driver for msm_sata device and
registers AHCI device in its probe, AHCI platform driver then
acts as a device driver for created AHCI device. All the necessary
msm platform specific initialization is handled by msm_sata driver
while keeping ahci_platform generic enough.

Following are done during controller initialization:
 - SATA clocks initialization.
 - SATA regulator initialization.
 - SATA PHY calibration.

Change-Id: I3e36289992c340bc16fcb2a6c52468cc95679fe8
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
2013-07-08 05:55:04 -07:00
Michal Nazarewicz
93f6b2ee94 mm: cma: on movable allocations try MIGRATE_CMA first
It has been observed that system tends to keep a lot of CMA free pages
even in very high memory pressure use cases.  The CMA fallback for
movable pages is used very rarely, only when system is completely
pruned from MOVABLE pages.  This means that the out-of-memory is
triggered for unmovable allocations even when there are many CMA pages
available.  This problem was not observed previously since movable
pages were used as a fallback for unmovable allocations.

To avoid such situation this commit changes the allocation order so
that on movable allocations the MIGRATE_CMA pageblocks are used first.

This change means that the MIGRATE_CMA can be removed from fallback
path of the MIGRATE_MOVABLE type.  This means that the
__rmqueue_fallback() function will never deal with CMA pages and thus
all the checks around MIGRATE_CMA can be removed from that function.

Change-Id: Ie13312d62a6af12d7aa78b4283ed25535a6d49fd
CRs-Fixed: 435287
Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-07-08 05:55:04 -07:00
Tatyana Brokhman
5a209c1f4f row: Add support for urgent request handling
This patch adds support for handling urgent requests.
ROW queue can be marked as "urgent" so if it was un-served in last
dispatch cycle and a request was added to it - it will trigger
issuing an urgent-request-notification to the block device driver.
The block device driver may choose at stop the transmission of current
ongoing request to handle the urgent one. Foe example: long WRITE may
be stopped to handle an urgent READ. This decreases READ latency.

Change-Id: I84954c13f5e3b1b5caeadc9fe1f9aa21208cb35e
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
2013-07-08 05:55:03 -07:00
Tatyana Brokhman
ade89fc539 row: Adding support for reinsert already dispatched req
Add support for reinserting already dispatched request back to the
schedulers internal data structures.
The request will be reinserted back to the queue (head) it was
dispatched from as if it was never dispatched.

Change-Id: I70954df300774409c25b5821465fb3aa33d8feb5
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
2013-07-08 05:55:03 -07:00
Sujit Reddy Thumma
0a4d72a6fb cfq-iosched: Fix null pointer dereference
NULL pointer dereference can happen in cfq_choose_cfqg()
when there are no cfq groups to select other than the
current serving group. Prevent this by adding a NULL
check before dereferencing.

Unable to handle kernel NULL pointer dereference at virtual address
[<c02502cc>] (cfq_dispatch_requests+0x368/0x8c0) from
[<c0243f30>] (blk_peek_request+0x220/0x25c)
[<c0243f30>] (blk_peek_request+0x220/0x25c) from
[<c0243f74>] (blk_fetch_request+0x8/0x1c)
[<c0243f74>] (blk_fetch_request+0x8/0x1c) from
[<c041cedc>] (mmc_queue_thread+0x58/0x120)
[<c041cedc>] (mmc_queue_thread+0x58/0x120) from
[<c00ad310>] (kthread+0x84/0x90)
[<c00ad310>] (kthread+0x84/0x90) from
[<c000eeac>] (kernel_thread_exit+0x0/0x8)

CRs-Fixed: 416466
Change-Id: I1fab93a4334b53e1d7c5dcc8f93cff174bae0d5e
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
2013-07-08 05:55:03 -07:00
Praneeth Paladugu
7ae29e0315 include: linux: Add flag for new EOS type
Add new flag for NAL EOS type. This flag is used to
send EOS to userspace if EOS is detected by FW using NAL.

Change-Id: I6886c010232b7822fd6c21b0b072884cb7493eef
Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
2013-07-08 05:55:02 -07:00
Nitin Srivastava
65dad1a624 Bluetooth: Resolved a race condition
Due to simultaneous disconnects from HCI and SCO
this race condtion arrives. While doing SCO disconnect
a null pointer check for HCI connection should be present
to avoid any crash due to this condtion.

CRs-Fixed: 415887
Change-Id: I23f0a7a256e267650db0abc2fc510b964b64c50c
Signed-off-by: Nitin Srivastava <nitinsr@codeaurora.org>
2013-07-08 05:55:02 -07:00
Smita Ghosh
57d49a1c4d Support full CONE NAT and ADDRESS RESTRICTED CONE NAT
Added support for Full cone NAT and Address Restricted Cone
NAT using the NATTYPE module.

Change-Id: Ib17f87757b86fdb88bbe25bab7d7193b0530f812
Signed-off-by: Smita Ghosh <smitag@codeaurora.org>
2013-07-08 05:55:02 -07:00
Heesub Shin
77dd82c55f cma: fix race condition on a page
cruel, brute-force method for letting cma/migration to
finish its job without stealing the lock
migration_entry_wait() and creating a live-lock on the
faulted page. This patch solves the case of
page->_count == 2 migration failure.

Change-Id: Ia94542a80e44a213831291af289bbf5ee6880bfd
Signed-off-by: Heesub Shin <heesub.shin@samsung.com>
Reviewed-on: http://165.213.202.130:8080/39341
Tested-by: System S/W SCM <scm.systemsw@samsung.com>
Tested-by: Dongjun Shin <d.j.shin@samsung.com>
Reviewed-by: Hyunju Ahn <hyunju.ahn@samsung.com>
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-07-08 05:55:02 -07:00
Laura Abbott
28e3e6f5df fs: fuse: Workaround for CMA migration
The FUSE file system may hold references to pages for long
periods of time, preventing migration from occuring. If a CMA
page is used here, CMA allocations may fail. Work around this
by swapping out a CMA page for a non-CMA page when working with
the FUSE file system.

Change-Id: Id763ea833ee125c8732ae3759ec9e20d94aa8424
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-07-08 05:55:01 -07:00
Laura Abbott
6d13f649c9 mm: Don't use CMA pages for writes
If CMA pages are used for writes, the writes may not complete
fast enough for CMA to be allocated within a reasonable amount
of time. If we get a CMA page, get another one to use instead.

Change-Id: I19d8ba655da7525d68d5947337d500566998971c
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-07-08 05:55:01 -07:00
Laura Abbott
27f6fe53fb mm: Add is_cma_pageblock definition
Bring back the is_cma_pageblock definition for determining if a
page is CMA or not.

Change-Id: I39fd546e22e240b752244832c79514f109c8e84b
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-07-08 05:55:01 -07:00
Tatyana Brokhman
ed74a56687 block:row: fix idling mechanism in ROW
This patch addresses the following issues found in the ROW idling
mechanism:
1. Fix the delay passed to queue_delayed_work (pass actual delay
   and not the time when to start the work)
2. Change the idle time and the idling-trigger frequency to be
   HZ dependent (instead of using msec_to_jiffies())
3. Destroy idle_workqueue() in queue_exit

Change-Id: If86513ad6b4be44fb7a860f29bd2127197d8d5bf
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
2013-07-08 05:55:00 -07:00
Tatyana Brokhman
fa4331e301 block: Add API for urgent request handling
This patch add support in block & elevator layers for handling
urgent requests. The decision if a request is urgent or not is taken
by the scheduler. Urgent request notification is passed to the underlying
block device driver (eMMC for example). Block device driver may decide to
interrupt the currently running low priority request to serve the new
urgent request. By doing so READ latency is greatly reduced in read&write
collision scenarios.

Note that if the current scheduler doesn't implement the urgent request
mechanism, this code path is never activated.

Change-Id: I8aa74b9b45c0d3a2221bd4e82ea76eb4103e7cfa
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
2013-07-08 05:55:00 -07:00
Tatyana Brokhman
0d0db8896e block: Add support for reinsert a dispatched req
Add support for reinserting a dispatched request back to the
scheduler's internal data structures.
This capability is used by the device driver when it chooses to
interrupt the current request transmission and execute another (more
urgent) pending request. For example: interrupting long write in order
to handle pending read. The device driver re-inserts the
remaining write request back to the scheduler, to be rescheduled
for transmission later on.

Add API for verifying whether the current scheduler
supports reinserting requests mechanism. If reinsert mechanism isn't
supported by the scheduler, this code path will never be activated.

Change-Id: I5c982a66b651ebf544aae60063ac8a340d79e67f
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
2013-07-08 05:55:00 -07:00
Liam Mark
23c3b6c01d mm: split_free_page ignore memory watermarks for CMA
Memory watermarks were sometimes preventing CMA allocations
in low memory.

Change-Id: I550ec987cbd6bc6dadd72b4a764df20cd0758479
Signed-off-by: Liam Mark <lmark@codeaurora.org>
2013-07-08 05:54:59 -07:00
Laura Abbott
5a84011115 fs/buffer.c: Revoke LRU when trying to drop buffers
When a buffer is added to the LRU list, a reference is taken which is
not dropped until the buffer is evicted from the LRU list. This is the
correct behavior, however this LRU reference will prevent the buffer
from being dropped. This means that the buffer can't actually be dropped
until it is selected for eviction. There's no bound on the time spent
on the LRU list, which means that the buffer may be undroppable for
very long periods of time. Given that migration involves dropping
buffers, the associated page is now unmigratible for long periods of
time as well. CMA relies on being able to migrate a specific range
of pages, so these these types of failures make CMA significantly
less reliable, especially under high filesystem usage.

Rather than waiting for the LRU algorithm to eventually kick out
the buffer, explicitly remove the buffer from the LRU list when trying
to drop it. There is still the possibility that the buffer
could be added back on the list, but that indicates the buffer is
still in use and would probably have other 'in use' indicates to
prevent dropping.

Change-Id: I253f4ee2069e190c1115afc421dadd27a7fa87dc
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-07-08 05:54:59 -07:00
Yaniv Gardi
17cc848525 mmc: card: fix timeout on erase/trim command due to sanitize
Sanitize command should never be issued with timeout argument of 0,
cause then it invokes timeout.
Moreover, sanitize command should not be called from routines that
does erase/trim/secure-discard commands, but only from a routine that
issues the sanitize spesifically.(mmc_blk_issue_sanitize_rq)

Change-Id: Ia3e3737f4bad149edc2248b8a30d74a9bd812be1
Signed-off-by: Yaniv Gardi <ygardi@codeaurora.org>
2013-07-08 05:54:59 -07:00
Tatyana Brokhman
6be3b57150 Documentation: block: ROW I/O scheduler
This patch updates the documentation of the ROW
I/O scheduler.

Change-Id: I6a996a3852fe39976381f99c07588558f1945034
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
2013-07-08 05:54:58 -07:00
Bar Weiner
c1f8614c76 usb: otg: Add delay between ASSERT and DEASSERT in clock reset
If target dont have phy_reset_clk , there is no waiting between
link_clk_reset assert and deassert, which cause the reset to fail.
10 useconds waiting is added.

Change-Id: I34a94710767a3e7bf6b48d28c917129bc9d9767f
Signed-off-by: Bar Weiner <bweiner@codeaurora.org>
2013-07-08 05:54:58 -07:00
Neeti Desai
1f4cab1112 msm: usb: Initialize variable hcd to fix warning
Fix an uninit warning in xhci-ring under usb subsystem,
by initializing the variable.

Change-Id: I8e4e4501008cf3c8369469ca7d143bb4de2ab897
Signed-off-by: Neeti Desai <neetid@codeaurora.org>
2013-07-08 05:54:58 -07:00
Manu Gautam
d88fe4a534 usb: host: ehci: allow ehci_bus_resume symbol to be unused
All the platforms may not use ehci_bus_resume symbol in their
hc_driver structure. This may result in below warning:

drivers/usb/host/ehci-hub.c: warning: 'ehci_bus_resume' \
    defined but not used

In order to remove this warning add '__maybe_unused' annotation
to ehci_bus_resume function.

Change-Id: I3c97eed7555688d99d68618f3810197e574499cb
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
2013-07-08 05:54:58 -07:00
Manuel Lauss
6461b6a47e mmc: sdhci: remove "state" argument from sdhci_suspend_host
Drop the "state" argument from sdhci_suspend_host.  Its only user is the
PCI glue;  this allows to move all SDHCI glues to use dev_pm_ops instead.

Change-Id: I5064fad454d0c461e4a65bee14763c7ace4c27ac
Signed-off-by: Manuel Lauss <manuel.lauss@googlemail.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
[venkatg@codeaurora.org: Move suspend/resume functions into pm ops]
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
2013-07-08 05:54:57 -07:00
Greg Reid
4944a73f53 kernel: ARM-specific implementation of user-accessible timers
Expose a read-only timer page to user-space to allow for a more
efficient implementation of gettimeofday in user-space.

Change-Id: Ibd6ce41f5f4ff9435e4bf4582ef5de721283d56b
Signed-off-by: Brent DeGraaf <bdegraaf@codeaurora.org>
2013-07-08 05:54:57 -07:00
Greg Reid
62db3b3c15 kernel: gtod: vsyscall
Introduce kernel user helper vsyscall to allow a higher performance
gettimeofday implementation in user-space.

Change-Id: I9b9971d217382129170ecd6a35461539dac9eebb
Signed-off-by: Brent DeGraaf <bdegraaf@codeaurora.org>
2013-07-08 05:54:57 -07:00
Pavan Kumar
7c6923c15b ath6kl: Add device tree support
This patch adds support to configure AR6004 via device-tree.

Currently, only the properties needed for AR6004 SDIO device are
provided. All other properties are added once needed for other
hardware types.

Change-Id: I306398e6c80d9bc4d86a147399b088fcba92a75f
Signed-off-by: Pavan Kumar <pavan@codeaurora.org>
2013-07-08 05:54:56 -07:00
Sujit Reddy Thumma
53564d85b0 mmc: core: Add a debugfs entry to set max clock rate
Limiting the max frequency supported by host controller
to a certain value can be useful for testing power consumption
at various frequencies that are supported by the host.

Note: If the card supports less than desired value then the
frequency of operation would be limited to that frequency.

Usage:
mount -t debugfs none /sys/kernel/debug
echo <desired_frequency> > /sys/kernel/debug/mmcX/max_clock
cat /sys/kernel/debug/mmcX/max_clock

Change-Id: I9e9a7e368f56d8e16548780288211bd8775fd048
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
2013-07-08 05:54:56 -07:00
Laura Abbott
5d25f82493 arm: dma: Allow CMA pages to not have a kernel mapping.
Currently, there are use cases where not having any kernel
mapping is required; if the CMA memory needs to be used as
a pool which can have both cached and uncached mappings we
need to remove the mapping to avoid the multiple mapping
problem. Extend the dma APIs to use the DMA_ATTR_NO_KERNEL_MAPPING
with CMA. This doesn't end up saving any virtual address space
but the mapping will still not be present.

Change-Id: I64d21250abbe615c43e2b5b1272ee2b6d106705a
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-07-08 05:54:56 -07:00
Sujit Reddy Thumma
40f62f58ab mmc: core: Allow changing bus frequency for SD/eMMC cards in runtime
Currently, bus frequency is set during the card initialization and
never changed until a new card is inserted. In some low power use
cases, scaling the clock frequencies while the card is in transfer
state would allow power savings. This change allows bus frequency
to be changed after the card initialization.

Change-Id: Iac064221199f69d162d91f5311becd735c15700a
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
2013-07-08 05:54:55 -07:00
Laura Abbott
28dd32a519 arm: dma-mapping: Add APIs for other memory types
Currently, the only attributes supported for DMA memory are
writecombine and coherent. Both of these allow speculative
prefetches to occur. For certain use cases (e.g. content
protection) there are requirements to disallow prefetching.
Relatedly, there may be cases where buffering is not enough
for high performance use cases and the full cache should
be used. Add appropriate APIs for the strongly ordered and
cached memory types for the needed use cases.

Change-Id: Ibe17b3d002f9615e2cb34183f47f6d1bcd045611
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-07-08 05:54:55 -07:00
Laura Abbott
fa236f7435 arm: dma: Expand the page protection attributes
Currently, the decision on which page protection to use
is limited to writecombine and coherent. Expand to include
strongly ordered memory and non consistent memory.

Change-Id: I7585fe3ce804cf321a5585c3d93deb7a7c95045c
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-07-08 05:54:55 -07:00
Laura Abbott
12423d3e4f common: DMA-mapping: Add strongly ordered memory attribute
Strongly ordered memory is occasionally needed for some DMA
allocations for specialized use cases. Add the corresponding
DMA attribute.

Change-Id: Idd9e756c242ef57d6fa6700e51cc38d0863b760d
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-07-08 05:54:54 -07:00
Shimrit Malichi
ead31d5027 usb: ehci: HBM require 64-byte aligned QH and qTD data structures
HBM block contains USB_OTG_HS_HBM_QH_MAP_PIPEn SW registers that map
BAM pipes to QHeads. However the USB_OTG_HS_HBM_QH_MAP_PIPEn registers
have only 31:6 valid bits, bits 5:0 are reserved, thus 64 bytes boundary
alignment is required.

CRs-Fixed: 395882
Change-Id: Ic921a95be3c2b6ded69b6f42afaa5dff3a25d5c8
Signed-off-by: Shimrit Malichi <smalichi@codeaurora.org>
2013-07-08 05:54:54 -07:00
Krishna Konda
ca4e2280f2 mmc: core: use mmc_try_claim_host in suspend path
mmc_cache_ctrl is called during the suspend path and it used
mmc_claim_host which is a blocking call and the device never
really suspends as it waits for the host to be available.
This also leads to race conditions during runtime power
management operation, for example, runtime suspend can start
while the device is being runtime resumed. So in order to
prevent this, mmc_try_claim_host should be used during
suspend path, which is non-blocking.

Change-Id: I01aa390964b2bedd91baa4b67fae6b08e9ba8e49
Signed-off-by: Krishna Konda <kkonda@codeaurora.org>
2013-07-08 05:54:54 -07:00
Vijayavardhan Vennapusa
7103778f36 USB: dwc3: gadget: Handle ENDPOINT CLEAR FEATURE reqeust
When mass storage function driver receives invalid class specific
request, stalls particular bulk endpoint. When Host sends mass storage
reset, as part of handling class specific reset, mass storage driver
requests Device controller driver for clearing endpoint halt. But DCD
is not clearing endpoint halt due to unwanted condition check and
results in MSC complaince tests fail. Fix this by removing unwanted
condition check.

Change-Id: I3b98e74dc940d538d7014348f03be15b3218f70c
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
2013-07-08 05:54:54 -07:00
Vijayavardhan Vennapusa
07449a3414 USB: dwc3: ep0: Fix set configuration issue for USB enumeration
When  Host sends set config request, composite layer enables
mass storage driver for which mass storage driver sends delayed
status to DCD. There is a possiblity that massstorage driver
queues status phase on control IN endpoint before delayed status
returned to DCD.

Due to this, TRB will be added to TRB queue instead of actually
queued to HW. Since delayed status is set, TRB will not be queued
to USB when recieved xfernotready interrupt. This leads to USB
enumeration failure. Fix this issue by queueing the TRB if request
queue of endpoint zero is not empty in xfernotready interrupt
handler.

Change-Id: Ia43068e7c94895bf1c29c78f2fab2f04069f8523
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
2013-07-08 05:54:53 -07:00
Taniya Das
297789e0f7 ARM: fiq: Add fiq_set_type to configure lines for FIQ
The lines to be used as FIQ needs to be configured to be
set for the type as EGDE/LEVEL.

Change-Id: Iee746662ecb3e36141aabfa5c5e9813144a836ad
Signed-off-by: Taniya Das <tdas@codeaurora.org>
2013-07-08 05:54:53 -07:00
Tatyana Brokhman
971c289cd3 block: ROW: Fix forced dispatch
This patch fixes forced dispatch in the ROW scheduling algorithm.
When the dispatch function is called with the forced flag on, we
can't delay the dispatch of the requests that are in scheduler queues.
Thus, when dispatch is called with forced turned on, we need to cancel
idling, or not to idle at all.

Change-Id: I3aa0da33ad7b59c0731c696f1392b48525b52ddc
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
2013-07-08 05:54:53 -07:00
Tatyana Brokhman
e021b54faf block: ROW: Correct minimum values of ROW tunable parameters
The ROW scheduling algorithm exposes several tunable parameters.
This patch updates the minimum allowed values for those parameters.

Change-Id: I5ec19d54b694e2e83ad5376bd99cc91f084967f5
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
2013-07-08 05:54:52 -07:00
Santosh Mardi
48b5a98152 ASoC: core: Update ALSA core to issue restart in underrun.
When compressed and pcm session is started the buffer pull will
Be from the DSP, in mmap mode for the scenario Hardware pointer
Is same as application pointer implies application has not filled the
Buffer to be send to DSP, and platform driver has to break and restart
The de queue process when the application has sufficient buffers.

When hardware pointer is same as application pointer it is an under run
Scenario where the ALSA framework has to trigger the under run and in HAL
The session has to re-prepare and re-triggered. based on the stop
Threshold, but in our system the stop threshold is INT_MAX which
Indicates that under run is not triggered in practical cases.

We have a brodcast usecase in which the mentioned under run case
Is hit mulitple times, and every time re-prepare and re-trigger will be
Expensive

Update the ASoC core framework to restart de queue process stopped
By platform Driver when the under run is hit, based on the available
Buffer and render flag, so the System will recover from the hang state.

To restart de queue process the ASoC core will be calling the restart
Callback registered by platform driver and this callback will be running in
Atomic context.

Change-Id: Ic9ea05a0dc6246346e9913493232882e2f5447d1
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
2013-07-08 05:54:52 -07:00
Taniya Das
a8f674309b mm: cache-pl310-erp: Add support for PL310 Error Reporting
PL310 is an external L2 Cache controller which reports
any errors such as decode on master/slave, read/write
parity errors on data/tag RAM using the L2CC interrupt
connected to the processor.
Once we receive interrupt we can read the status register
to determine the type of error occurred.

Change-Id: I66957d4bbd67a11b2bffbf919cf5aa177b5d2ebc
Signed-off-by: Taniya Das <tdas@codeaurora.org>
2013-07-08 05:54:52 -07:00
Ashwin Chaugule
7a643b174e Perf: Make L1 PMU IRQ name target independent
Remove target name from IRQ string, since the percpu IRQ API
is shared with all Qcomm targets.

Change-Id: Id0e7d9267654b373e9360806900259e00bf5a0ab
Signed-off-by: Ashwin Chaugule <ashwinc@codeaurora.org>
2013-07-08 05:54:52 -07:00
Amy Maloche
f07d315204 input: gpio-keys: Accept device name from device node
The device name is not properly set if the platform device
is created from device tree.  Read "input-name" property to
set the device name.

Change-Id: I04a5575cd775f7c66884d603de33a0a49b322432
Signed-off-by: Amy Maloche <amaloche@codeaurora.org>
2013-07-08 05:54:51 -07:00
Manu Gautam
de37e66c43 DWC3: gadget: Report error if RX buffer not aligned to EP's MTU
Synopsys USB3 Controller (DWC3) has a restriction where size
of OUT requests (TRB) queued to the controller must be aligned
with the endpoint's max packet size. Hence, report error in case
function driver tries to queue an unaligned request.

Change-Id: Id5f4a0ff9d2f9c55bba936d683608c524eadd260
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
2013-07-08 05:54:51 -07:00
Ashray Kulkarni
c97b05274a v4l2: Add V4L2 control for getting seq_hdr in syncframe
Add v4l2 control V4L2_CID_QCOM_VIDEO_SYNC_FRAME_SEQ_HDR, this control
configures video hardware to enable/disable codecconfig data to be
packed with every syncframe. This has to be configured before
encoding starts.

CRs-fixed: 396716
Change-Id: I14bf83cb8583656a6a040be4f38ec0e5dea36a25
Signed-off-by: Ashray Kulkarni <ashrayk@codeaurora.org>
2013-07-08 05:54:51 -07:00
Tatyana Brokhman
d8fa466602 block: Adding ROW scheduling algorithm
This patch adds the implementation of a new scheduling algorithm - ROW.
The policy of this algorithm is to prioritize READ requests over WRITE
as much as possible without starving the WRITE requests.

Change-Id: I4ed52ea21d43b0e7c0769b2599779a3d3869c519
Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>
2013-07-08 05:54:50 -07:00
Pushkar Joshi
e5e8d4ab9d tracing: ftrace events for user faults and undefined instructions
New ftrace events (user_fault and undef_instr) for data, prefetch
or undefined instruction aborts. The new ftrace events are under
events/exception.

Change-Id: Iea328b71a1f623861cac9b45d858c3bbe09e1b82
Signed-off-by: Pushkar Joshi <pushkarj@codeaurora.org>
2013-07-08 05:54:50 -07:00
Stephen Boyd
040c163e1b ARM: smp: Fix cpu_up() racing with sys_reboot
Nothing stops a process from hotplugging in a CPU concurrently
with a sys_reboot() call. In such a situation we could have
ipi_cpu_stop() mark a cpu as 'offline' and _cpu_up() ignore the
fact that the CPU is not really offline and call the
CPU_UP_PREPARE notifier. When this happens stop_machine code will
complain that the cpu thread already exists and BUG_ON().

CPU0                      CPU1

sys_reboot()
 kernel_restart()
  machine_restart()
   machine_shutdown()
    smp_send_stop()
    ...                   ipi_cpu_stop()
                           set_cpu_online(1, false)
                            local_irq_disable()
                             while(1)
    <PREEMPT>
cpu_up()
 _cpu_up()
   if (!cpu_online(1))
    __cpu_notify(CPU_UP_PREPARE...)

cpu_stop_cpu_callback()
  BUG_ON(stopper->thread)

This is easily reproducible by hotplugging in and out in a tight
loop while also rebooting.

Since the CPU is not really offline and hasn't gone through the
proper steps to be marked as such, let's mark the CPU as inactive.
This is just as easily testable as online and avoids any possibility
of _cpu_up() trying to bring the CPU back online when it never was
offline to begin with.

Change-Id: Ia1daea407220578d4212ef6c65c4be837ca370fd
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2013-07-08 05:54:50 -07:00
Steve Muckle
7f7c403ce6 topology: enable SD_SHARE_PKG_RESOURCES at CPU level
Enabling this feature will allow the use of
PF_WAKE_ON_IDLE, a per task flag that causes that task,
or tasks woken by that task, to wake on an idle CPU if
there is one available. Note that due to the PF_WAKE_ON_IDLE
feature this will not cause a change in behavior for tasks
that do not have the PF_WAKE_ON_IDLE flag set.

Change-Id: I9c222802f7e0e7e181ddd80b7a30297b94f6eaed
Signed-off-by: Steve Muckle <smuckle@codeaurora.org>
2013-07-08 05:54:49 -07:00
Stephen Boyd
f464adb282 ARM: Fix deadlock scenario with smp_send_stop()
If one process calls sys_reboot and that process then stops other
CPUs while those CPUs are within a spin_lock() region we can
potentially encounter a deadlock scenario like below.

CPU 0                   CPU 1
-----                   -----
                        spin_lock(my_lock)
smp_send_stop()
 send_IPI               handle_IPI()
                         disable_preemption/irqs
                          while(1);
 <PREEMPT>
spin_lock(my_lock) <--- Waits forever

We shouldn't attempt to run any other tasks after we send a stop
IPI to a CPU so disable preemption so that this task runs to
completion.

Change-Id: I528af0b4448433bd9d6ca12d6a0e2c422a55d4be
CRs-Fixed: 396169
Reported-by: Sundarajan Srinivasan <sundaraj@codeaurora.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2013-07-08 05:54:49 -07:00