Commit Graph

50136 Commits

Author SHA1 Message Date
Praveen Chidambaram
af014a3fc0 msm: thermal: Simplify kernel thermal safeguard mechanism
Using CPUFreq policy objects and setting the max frequency limit by
overriding the policy->max node, leads to race/overwrite conditions with
an user trying to use the scaling_max_frequency node.

The thermal limits are directly communicated to the 'msm' cpufreq driver
and use the cpufreq_update_policy() to ensure that the frequency is
limited as per the thermal safeguard requirements.

CRs-fixed: 370343
Change-Id: Iab5a15e0f0d25da4b9f6a9417dbfc01bf5d6f8f6
Signed-off-by: Praveen Chidambaram <pchidamb@codeaurora.org>
2013-02-27 18:12:38 -08:00
Amit Blay
042d742d21 usb: otg: Fix USB remote-wakeup with LPM
Some of USB clocks have to be enabled in order for A2 to
be able to wake up USB.
Since USB now enters LPM upon USB bus suspend, this fix keeps
USB pclk & core_clk enabled, to allow waking up from A2.

A similar fix was already introduced for HSIC driver. This
change adds similar fix for USB.

Change-Id: Icd434132bc3dc3466dc7a55bb40603a3de3b4b2f
CRs-Fixed: 369189
Signed-off-by: Amit Blay <ablay@codeaurora.org>
2013-02-27 18:12:38 -08:00
Santosh Mardi
387f28cf15 ASoC: msm: Add support for afe disconnect command
For compressed playback to bypass ADM, AFE connect command
Is used when the session is closed AFE disconnect command
Should be issued.

Add the support for AFE disconnect command.

Change-Id: I4cc4e867c1be36fbc2659520fd14a356c8405f7b
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
2013-02-27 18:12:37 -08:00
Andy Grover
144473d423 target: Rename target_allocate_tasks to target_setup_cmd_from_cdb
This patch renames a horribly misnamed function that no longer allocate
tasks to something more descriptive for it's modern use in target core.

(nab: Fix up ib_srpt to use this as well ahead of a target_submit_cmd
conversion)

Change-Id: Ib7ab2b67723753777084fffe19c47e6eac3b255e
Signed-off-by: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2013-02-27 18:12:37 -08:00
Sebastian Andrzej Siewior
a4f0e82e73 target: add unknown size flag to target_submit_cmd()
The UASP protocol does not inform the target device upfront how much
data it should expect so we have to learn in from the CDB.  So in order
to handle this case, add a TARGET_SCF_UNKNOWN_SIZE to target_submit_cmd()
and perform an explictly assignment for se_cmd->data_length from the
extracted CDB size in transport_generic_cmd_sequencer().

Change-Id: Ic654c46de72b263aea8aeb5e8a76136f47dd775e
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
2013-02-27 18:12:36 -08:00
Ido Shayevitz
1fc5741fd2 usb: msm_hsusb: Add include to linux/hrtimer
This fixes a compilation problem.

Change-Id: Ie8a8ffb5f16351a6590f8743b1b2639c1cb6da73
Signed-off-by: Ido Shayevitz <idos@codeaurora.org>
2013-02-27 18:12:25 -08:00
Vinay Kalia
1138ebaacf msm: vidc: Video driver update to kernel 3.4.
During the migration from kernel 3.0 to 3.4, V4L2 framework changed.
This requires changes from video driver. This change makes video
driver code compatible with kernel 3.4.

Change-Id: I12fb28e4b7c261c9755fbb62bb6bb8ea299d5272
Signed-off-by: Vinay Kalia <vkalia@codeaurora.org>
2013-02-27 18:12:22 -08:00
Kiran Kumar H N
2577a712ce msm: camera: Add IRQ Router subdev implementation.
Add initial driver code for IRQ Router hardware.
It shall be implemented as a v4l2 subdevice of the
msm cam server node.
Add logic in msm cam server to request for irqs configured
to the IRQ Router, which can be individual or composite.
When the individual camera hardware cores interrupt,
the cam server receives them through the common interrupt
handler and dispatches them to to the respective hardware
core's v4l2 subdevice.
If the usecase demands that the interrupts from two
different hw cores be composited into a single interrupt,
(for eg: VFE and ISPIF), then the cam server stores this
configuration in its interrupt lookup table. When the
interrupt is triggered on the composited interrupt,
it is dispatched to the individual hardware cores
which have been composited into that interrupt.

Change-Id: Iaadd60cc24de9b5ba8d09a151474658902244d7b
Signed-off-by: Kiran Kumar H N <hurlisal@codeaurora.org>
2013-02-27 18:12:20 -08:00
Laura Abbott
ad867bc45c gpu: ion: Add support for content protection 2.0 in CP heap
Add support to allow ion_cp_heap.c to secure according to new
requirements. This includes adding versioning to the secure
calls to allow other types of securing to take place.

Change-Id: I65e07ebaeefa1d0572b6531753a707a28284aa0d
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-02-27 18:12:19 -08:00
Helen Zeng
c7251a1675 ASoc: soc-pcm: Open/close share channel once if it is used by two streams
- During voice and normal recording concurrency case, both voice
and recording streams share the same tx channel. If one stream
already opens the tx channel, another stream will get error when
trying to open the same channel again. If one stream ends and closes
the channel, but another stream will lose the sound if it's still using
it.
- To prevent the above issues, only send SND_SOC_DAPM_STREAM_START event
when capture active count is one. And send SND_SOC_DAPM_STREAM_STOP event
when capture active count is zero.

Change-Id: Ic6dcd5d8d1949c2b96d46915a4399a454075fbb7
CRs-Fixed: 357022
Signed-off-by: Helen Zeng <xiaoyunz@codeaurora.org>
2013-02-27 18:12:17 -08:00
Kevin Chan
484598c16e msm: camera: Use image mode to get buffer
Use image mode instead of vfe operation mode to
get and free buffer

Change-Id: I33e912b0fa4e16d3a89161f98ab9a659b9c197f6
Signed-off-by: Kevin Chan <ktchan@codeaurora.org>
2013-02-27 18:12:14 -08:00
David Collins
5f1b9eef24 mfd: pm8038-core: Add support for PMIC thermal alarm
Add pm8xxx-tm subdevice into pm8038-core.  The pm8xxx-tm device
can be used to access the real-time PMIC die temperature.  It
can also be used to trigger an interrupt when critical
temperature thresholds are reached.

Change-Id: I4b8bda1d51cafaa6b77408da4c183bdb2dc4327a
Signed-off-by: David Collins <collinsd@codeaurora.org>
2013-02-27 18:12:12 -08:00
Laura Abbott
81303fbf94 gpu: ion: Add scm calls for content protection 2.0
The next generation of content protection has separate SCM
calls into TZ. Add these functions in a dedicated file so they
can be used by any Ion heap.

Change-Id: I197130f6a5fc33efcd6871b0f7c362fa99f18d20
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
2013-02-27 18:12:09 -08:00
Wentao Xu
1a4055c77b input: change mpu3050 driver to request regulator, add poll support
Needed on 8x30 MTP/MDP platforms, where interrupt line polled up and
does not work with driver's default configuration

Change-Id: I4827c7a1f7df147245336d18523088c013381f1e
Signed-off-by: Wentao Xu <wentaox@codeaurora.org>
2013-02-27 18:12:06 -08:00
Arun Menon
3658e5175d msm:vidc: provide support to raise afab and ebi1 clks to turbo mode.
This change provides support to raise the clks to turbo mode for mpeg4
clips with high number of slices. The firmware performance degrades if
the number of slices is more than 10. Without this fix, we see lot of
frame drops happening, causing a freeze effect.

Change-Id: Ia897854ef6d30bb97cd37810b22eb1ab5ad818fb
CRs-Fixed: 358615
Signed-off-by: Arun Menon <menon@codeaurora.org>
2013-02-27 18:11:59 -08:00
Anantha Krishnan
a5c636459d radio-tavarua: Add IOCTL commands to configure the SPUR Table
Provide interfaces to allow host to update the SPUR Table
with newly found spur frequencies and their RMSSI values.

CRs-Fixed: 352591
Change-Id: I84f296ea313971cc1995c644d604f96581be5f7f
Signed-off-by: Anantha Krishnan <ananthk@codeaurora.org>
2013-02-27 18:11:54 -08:00
Vinay Kalia
95b8044d54 V4L2: msm: Add events for video codecs.
Adds events for video codecs so that clients can be
notified of important events asynchronously.

Change-Id: I0177bdc6249306ed580aca5ec2ed434174a57ba7
Signed-off-by: Vinay Kalia <vkalia@codeaurora.org>
2013-02-27 18:11:47 -08:00
Sujit Reddy Thumma
3de43b3e2a msm: msm_sdcc: Set default clock gating timeout to 200msecs
With commit c84f15ae, the default clock gating delay in mmc host
init is set to zero. For MSM targets this can cause huge
performance hit as sometimes the clocks are non-local and
requires a request to other subsystem leading to significant
roundtrip delay.

Fix this to have atleast 200msecs delay in turning off the sdcc
clocks after a request is completed.

Change-Id: I5f434cf98373154d817735dba8f5bc8810d27611
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
2013-02-27 18:11:46 -08:00
Amit Blay
f7b891b01e usb: gadget: hsic: Add support for VDDCX corner voting
This change add support in ci13xxx_msm_hsic driver and
ehci-msm-hsic driver for VDDCX corner voting.
In case a VDDCX corner resource is supported by the platform,
it will be used. Else, the legacy voting for specific voltage
level will be used.

Change-Id: Iae91d1c945f9b61340628b2fc7c7727e4cca6a1e
CRs-Fixed: 354458
Signed-off-by: Amit Blay <ablay@codeaurora.org>
Signed-off-by: David Collins <collinsd@codeaurora.org>
2013-02-27 18:11:43 -08:00
David Keitel
d0d1363952 power: bms/ccadc: move ccadc calibration to ccadc driver
There is a dependency for the CCADC calibration work on the BMS
driver. This prevents some devices that do not use the BMS
to utilize the CCADC.

Remove this dependency by moving the ccadc calibration
work to the CCADC driver to avoid this.

Change-Id: If43c781d6d2bc27f64dbbe594b6e81c5a5642f0b
Signed-off-by: David Keitel <dkeitel@codeaurora.org>
2013-02-27 18:11:38 -08:00
Adrian Salido-Moreno
145cc2b53c mdss: display: Add Mobile Display SubSystem driver
- Implements Linux frame buffer interface to interact with userspace
  libraries and applications, based on msm_fb frame buffer.
- Implement MDP driver which handles MDP core data path setup and
  hardware blocks programming.
- Support for UI through Linux frame buffer FBIOPAN_DISPLAY ioctl.

Change-Id: Ib98677b8d81d74283b27dea08a9f1a705c101bce
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
2013-02-27 18:11:36 -08:00
Nishant Pandit
1741a46960 msm: camera: Decouple the ISPIF component from sensor
Ispif is a separate hardware block. Decouple
it from sensors so that it can be controlled for various
camera usecases.

Change-Id: I539fcb4166edc7a14d15a94c2f7f56b2f196a971
Signed-off-by: Nishant Pandit <npandit@codeaurora.org>
2013-02-27 18:11:34 -08:00
Ankit Premrajka
11ff341a25 msm: camera: add ion dev fd field to frame structure.
The ion dev fd field is required to represent the client
that allocated the buffer represented by the frame.

Change-Id: I8de791158251069275becc9f6413382fc6738492
Signed-off-by: Ankit Premrajka <ankitp@codeaurora.org>
2013-02-27 18:11:17 -08:00
Ramesh Masavarapu
1a2b7fcc56 tzcom: Remove tzcom driver components.
Remove tzcom driver components that includes files,
clock definitions. Currently tzcom driver has been replaced
by qseecom driver.

Change-Id: I1832d921a7b949057b84a7e0aa9afaa445be5194
Signed-off-by: Ramesh Masavarapu <rameshm@codeaurora.org>
2013-02-27 18:11:13 -08:00
Terence Hampson
2ea0cba354 msm: mpq8064: Allow power up and down to be more dynamic
To save power regulators are only powered on when needed. Also in
this change is that clock rate is not longer set to max rate.
Clock speed set to lowest rate and still remain properly functional

Change-Id: I7141c8d630e4dbf5c2593e0aea9a18dc3866a1fd
Signed-off-by: Terence Hampson <thampson@codeaurora.org>
2013-02-27 18:11:09 -08:00
Terence Hampson
0ce79bfa94 msm: mpq8064: Enable v4l2 event handle in VCAP
This will allow client to subscribe and receive events regarding
VCAP device

Change-Id: If8b6723feaa29dcf4e6a3bb9275ccc776081c830
Signed-off-by: Terence Hampson <thampson@codeaurora.org>
2013-02-27 18:11:07 -08:00
Kiran Kandi
3534eb6906 ASoC: wcd9320: Add intial driver for WCD9320 codec
The WCD9320 Codec Driver is an ALSA-compliant codec driver. This driver
constructs the internal codec audio paths with DAPM widgets and
controls and provides the controls to the upper layers to enable and
configure audio paths.

Change-Id: Iee29359bebfc838cd200732b7191a2eb6a2087ee
Signed-off-by: Kiran Kandi <kkandi@codeaurora.org>
2013-02-27 18:11:03 -08:00
Kevin Chan
87d4c4d1c2 msm: camera: Add v4l2 private ioctls
Add private ioctls s_ctrl, query_ctrl where
we need to get ctrl data from userspace.

Change-Id: I404236d072bafb3ef6ef3c0723a707f5805fe92b
Signed-off-by: Kevin Chan <ktchan@codeaurora.org>
2013-02-27 18:10:57 -08:00
Kiran Kumar H N
bd50cd17b0 msm: Allow VPE driver to be configured directly.
Currently VPE hardware is being controlled through
the config node. Since it is converted into a V4L2
subdevice, we could control it directly from
userspace by issuing open, close and ioctl system
calls.
The ACK from VPE hardware shall be routed directly
to userspace by putting the ACK event on the v4l2
event queue.

Change-Id: I7f82a750a28732382627349da362dbee8e27b149
Signed-off-by: Kiran Kumar H N <hurlisal@codeaurora.org>
2013-02-27 18:10:47 -08:00
Karthikeyan Ramasubramanian
2e378e8de8 msm: ipc: Update server lookup operation to return complete information
QMI Server lookup returns only node_id and port_id. This information is
not sufficient when the QMI clients look for a specific instance of a
service. Hence the server lookup routine returns the instance ID along
with the server address information.

Change-Id: I644e6c8bb9dc3108c0198b7779ef277aa65f7bc5
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
2013-02-27 18:10:43 -08:00
Stephen Boyd
567fec6a4b Add snapshot of mach-msm from beginning of msm-3.4
This also includes various documentation files and the devicetree
files for msm boards.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2013-02-27 18:09:25 -08:00
Arve Hjønnevåg
cb40a6a8cb rtc: alarm: Add in-kernel alarm interface
Drivers can now create alarms that will use an hrtimer while the
system is running and the rtc to wake up from suspend.

Signed-off-by: Arve Hjønnevåg <arve@android.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2013-02-25 11:41:25 -08:00
Patrick Lai
dcb77e20ae sound: Add MSM sound drivers
Signed-off-by: Patrick Lai <plai@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2013-02-25 11:41:24 -08:00
Gopikrishnaiah Anandan
e592653395 ASLA: sound: Add support for compressed formats
Change enables the compressed format ioctls for
ALSA driver clients.

Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2013-02-25 11:41:19 -08:00
Gopikrishnaiah Anandan
09ab9ae7ae ALSA: jack: Reduce delay in jack status notification
Change will bypass the dapm sync to report the jack status
with out delays.

Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2013-02-25 11:41:19 -08:00
Gopikrishnaiah Anandan
9a46cb4de9 ALSA: jack: update jack types
Change updates the jack types that will be supported
by the platform.

Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2013-02-25 11:41:18 -08:00
Gopikrishnaiah Anandan
2f22f117c5 ASoC: update the connected widgets functionality
ASoC core will scan for path, get the list of widgets
when playback and capture is started.When a mixer
command is issued it needs to scan only the path
to find if back end or front end dai needs to be shutdown.
Change ehances asoc core path finding functionality
to provide support for different usecases.

Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2013-02-25 11:41:16 -08:00
Gopikrishnaiah Anandan
fffcf82ba1 ASoC: Update alsa mixer/mux controls
Change updates the way mux and mixer controls
are registered with the Alsa core.

Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2013-02-25 11:41:15 -08:00
Gopikrishnaiah Anandan
30f8dcc8f1 ASoC: Update dapm widget power up and down sequence
Change the wigdet power up and power down sequnce
in the ASOC as per msm platform requirements.

Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2013-02-25 11:41:14 -08:00
Gopikrishnaiah Anandan
4fc0520f41 ALSA: core: Query Dai RX and TX channel information
When hardware params are set for the session alsa
core will query for the RX/TX channels for the
current back end dai.

Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2013-02-25 11:41:13 -08:00
Gopikrishnaiah Anandan
0de64fbea0 ASoC: pcm: Add support for Hostless pcm
Hostless PCM nodes will not exchange data with
the userspace clients.Control paths will
be setup by userspace clients.

Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2013-02-25 11:41:11 -08:00
Gopikrishnaiah Anandan
1f42244c54 ASoC: dpcm: Add Dynamic PCM core operations.
The Dynamic PCM core allows digital audio data to be dynamically
routed between different ALSA PCMs and DAI links on SoC CPUs with
on chip DSP devices. e.g. audio data could be played on pcm:0,0 and
routed to any (or all) SoC DAI links.

Dynamic PCM introduces the concept of Front End (FE) PCMs and Back
End (BE) PCMs. The FE PCMs are normal ALSA PCM devices except that
they can dynamically route digital audio data to any supported BE
PCM. A BE PCM has no ALSA device, but represents a DAI link and it's
substream and audio HW parameters.

Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2013-02-25 11:41:10 -08:00
Gopikrishnaiah Anandan
9e3cd79005 ASoC: pcm: Create PCM streams for ASOC backend
Change creates a PCM stream for ASOC backend which will only be used
internally by kernel drivers.It provides existing ASoC components
drivers with a substream and access to any private data.
2013-02-25 11:41:09 -08:00
Seungwon Jeon
eb072ec2c5 mmc: core: fix the decision of HS200/DDR card-type
Current implementation decides the card type exclusively. Even though
eMMC device can support both HS200 and DDR mode, card type will be
set only for HS200. If the host doesn't support HS200 but has DDR
capability, then DDR mode can't be selected.

Change-Id: Ifb5bb7fb0b7f4472734e10ec39d47e3f12e32cf8
Signed-off-by: Seungwon Jeon <tgih.jun@samsung.com>
Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
2013-02-25 11:41:03 -08:00
Asutosh Das
460cee698a mmc: core: fix improper clock frequency being passed to set_ios
This bug was introduced in the 'MMC-4.5 Power OFF Notify Rework' fix.

Prior to the aforementioned patch, during resume mmc_init_card was being
invoked. The aforesaid patch invokes mmc_card_awake, prior to which
mmc_power_up has already set the clock frequency to 400Khz. Since the card
init is not done again, this frequency stays as is and results in data
time-out errors.

Two new functions
	* mmc_save_ios
	* mmc_restore_ios
were added.
The mmc_save_ios is invoked during mmc_suspend process and it saves the
current ios values, while mmc_restore_ios is invoked during mmc_resume process
and restores the previous ios values before sending the awake command. This
ensures that the clock, timing, bus-width etc are set properly before any
request is sent to the driver.

Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
2013-02-25 11:41:01 -08:00
Saugata Das
06d8e2a3ad MMC-4.5 Power OFF Notify Rework
This is a rework of the existing POWER OFF NOTIFY patch. The current problem
with the patch comes from the ambiguity on the usage of POWER OFF NOTIFY
together with SLEEP and misunderstanding on the usage of MMC_POWER_OFF
power_mode from mmc_set_ios in different host controller drivers.

This new patch works around this problem by adding a new host CAP,
MMC_CAP2_POWER_OFF_VCCQ_DURING_SUSPEND, which when set sends a
POWER OFF NOTIFY from mmc_suspend instead of SLEEP. It is expected that host
controller drivers will set this CAP, if they switch off both Vcc and Vccq
from MMC_POWER_OFF condition within mmc_set_ios. However, note that there
is no harm in sending MMC_POWER_NOTIFY even if Vccq is not switched off.

This patch also sends POWER OFF NOTIFY from power management routines (e.g.
mmc_power_save_host, mmc_pm_notify/PM_SUSPEND_PREPARE, mmc_stop_host), which
does reinitialization of the eMMC on the return path of the power management
routines (e.g. mmc_power_restore_host, mmc_pm_notify/PM_POST_RESTORE,
mmc_start_host).

This patch sets POWER_OFF_NOTIFICATION to POWER_OFF_SHORT if it is sent from
the suspend sequence. If it is sent from shutdown sequence then it is set to
POWER_OFF_LONG.

Earlier implementation of PowerOff Notify as a core function is replaced as
a device's bus operation.

Signed-off-by: Saugata Das <saugata.das@linaro.org>
Signed-off-by: Girish K S <girish.shivananjappa@linaro.org>

changes in v5:
	modified the the handling of return value in mmc_poweroff_notify.
changes in v4:
	As suggested in review,
	- Moved mmc_can_poweroff_notify to core.c
	- Moved mmc_claim_host, mmc_release_host outside mmc_poweroff_notify
	- Added check for wrong initialization for poweroff_notify_type
	- mmc_poweroff_notify is modified to take as 2nd parameter
changes in v3:
	This version addresses the review comments given by Subhash and Ulf
changes in v2:
	This version addresses the changes suggested by Ulf
[smuckle@codeaurora.org: resolve minor merge conflicts]
Signed-off-by: Steve Muckle <smuckle@codeaurora.org>
2013-02-25 11:41:00 -08:00
Maya Erez
9a5a71e879 mmc: block: Add MMC write packing statistics
The write packing statistics are used for the packed commands unit tests
in order to determine test success or failure

Change-Id: I1b330033e59a775c64fb915038d58615aff0dbdd
Signed-off-by: Maya Erez <merez@codeaurora.org>
2013-02-25 11:40:58 -08:00
Maya Erez
081e5b9636 mmc: block: Add write packing control
The write packing control will ensure that read requests latency is
not increased due to long write packed commands.

The trigger for enabling the write packing is managing to pack several
write requests. The number of potential packed requests that will trigger
the packing can be configured via sysfs by writing the required value to:
/sys/block/<block_dev_name>/num_wr_reqs_to_start_packing.
The trigger for disabling the write packing is fetching a read request.

Change-Id: I982170fa6dca9150ea4310bb546b838b7fd30e9b
Signed-off-by: Maya Erez <merez@codeaurora.org>
2013-02-25 11:40:57 -08:00
Seungwon Jeon
4dc768ff31 mmc: core: Support packed write command for eMMC4.5 device
This patch supports packed write command of eMMC4.5 device.
Several writes can be grouped in packed command and all data
of the individual commands can be sent in a single transfer
on the bus.

Change-Id: I391c3e5f73b785a8b7d25eb8256051020cfb0631
Signed-off-by: Seungwon Jeon <tgih.jun@samsung.com>
Signed-off-by: Maya Erez <merez@codeaurora.org>
2013-02-25 11:40:55 -08:00
Jaehoon Chung
89c6b6a1a7 mmc: support BKOPS feature for eMMC v4.5
Enable eMMC background operations (BKOPS) feature.

If URGENT_BKOPS is set after a response, note that BKOPS
are required. After all I/O requests are finished, run
BKOPS if required. Should read/write operations be requested
during BKOPS, first issue HPI to interrupt the ongoing BKOPS
and then service the request.
If BKOPS-STATUS is upper than LEVEL2, need to check until clear
the BKOPS-STATUS vaule.

If you want to enable this feature, set MMC_CAP2_BKOPS.
And if you want to set the BKOPS_EN bit in ext_csd register,
use the MMC_CAP2_INIT_BKOPS.

Future considerations
 * Check BKOPS_LEVEL=1 and start BKOPS in a preventive manner.
 * Interrupt ongoing BKOPS before powering off the card.
 * How get BKOPS_STATUS value.(periodically send ext_csd command?)

Change-Id: Ia679c661a282072a7e54d10fc59d8ec1cbecae96
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Konstantin Dorfman <kdorfman@codeaurora.org>
2013-02-25 11:40:52 -08:00