OSDN Git Service
Ray Zhang [Mon, 18 Jan 2016 07:31:25 +0000 (15:31 +0800)]
msm: mdss: fix deadlock between display and ESD check thread
Display thread holds ov_lock followed by mutex, while the ESD
check thread for cmd mode panel holds mutex followed by ov_lock.
Fix this deadlock by acquiring mutex before ov_lock in ESD check
thread.
Change-Id: I857f780e14a6ccb679e89ff16b19706d205df4b6
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
Ajay Singh Parmar [Tue, 22 Dec 2015 07:59:57 +0000 (23:59 -0800)]
msm: mdss: hdmi: hdcp2p2: fix hdcp 2.2 compliance issues
Send stream management message to sink after topology update. Poll
for new message or authentication required status after successful
receiver or repeater authentication. Also, DDC hardware polls sink
for a given time. Let the polling complete and do not treat intermediate
DDC errors as failures because DDC transaction can pass in next
iteration. Once polling ends, check for errors and timeouts and reset
polling data. Treat these errors as failure only after polling ends.
Change-Id: I286fb00cf935bff493e108c05df625d5ca3ade26
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Ping Li [Thu, 17 Dec 2015 02:46:12 +0000 (18:46 -0800)]
msm: mdss: maintain AD state through idle power collapse
When device enters the idle power collapse mode, the entire
AD HW block is powered down, which will cause the previous
AD settings get lost. So when device exits the idle power
collapse mode, we need to store AD to previous state.
In order to achieve this, we need to switch AD mode to 0x85 first
and manually write the last AD strength value to AD register. Keep
this setting for couple of frames, in the meantime, kick off AD
calculator with t_filter_control value of 0 to ramp up the AD
strength from 0 to current target strength. Then switch the mode
back to auto strength (0x81).
Change-Id: Iddc12dbb0da06675141fa9fe049cfe90110defb9
Signed-off-by: Ping Li <pingli@codeaurora.org>
Jayant Shekhar [Fri, 8 Jan 2016 11:05:29 +0000 (16:35 +0530)]
msm: mdss: fix NULL pointer dereferencing issues
This change fixes the errors reported in static analysis
of MDSS driver code. These changes include fix for various
potential NULL pointer dereferencing and array index out of
bounds issues in MDP, DSI and PP module of MDSS driver.
Change-Id: I49f65f0b4e5218f9fc90469e9d431a3aec811ee2
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Sandeep Panda [Wed, 6 Jan 2016 06:21:34 +0000 (11:51 +0530)]
msm: mdss: update PHY timing calculation logic for resolution change
In current implementation we are always overriding the PHY read
from dt entry with the ones we are calculating in driver. Update
the PHY timing only when there is a change in resolution.
Change-Id: I2ba936af6e55b27c7b28d38990b32e896c877e08
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Ping Li [Wed, 30 Dec 2015 23:49:20 +0000 (15:49 -0800)]
msm: mdss: Use the correct AD backlight for AD BL filter
Use the last backlight sent to AD core for AD backlight filter
threshold comparison.
Change-Id: I8ea26a8a95c700749aa83d5b70a3b16c44258767
Signed-off-by: Ping Li <pingli@codeaurora.org>
Ping Li [Wed, 30 Dec 2015 04:47:41 +0000 (20:47 -0800)]
msm: mdss: Optimize backlight mapping calculation for AD
Reduce the rounding error during AD backlight linearization and
attenuation.
Change-Id: Ibf181414512d457d3341bbccf8cf9338aef8ac76
Signed-off-by: Ping Li <pingli@codeaurora.org>
Ping Li [Wed, 16 Dec 2015 03:27:57 +0000 (19:27 -0800)]
msm: mdss: Correctly reset the ad_events count
Reset the ad_events count in the AD ioctl instead of ad_setup().
There are some time delay between AD ioctl and ad_setup, which is
part of the display commit path, so if we reset the ad_event count
in ad_setup, then it is possible that user space reads the ad_events
sysfs node after the AD ioctl but before the ad_setup(). In that
case, user space may get the incorrect ad_events count, and cause
the gradual AD off fail.
Change-Id: I13f2043a6a21be7e49b44a964b00b0aa4315dc17
Signed-off-by: Ping Li <pingli@codeaurora.org>
Ray Zhang [Thu, 3 Dec 2015 06:52:58 +0000 (14:52 +0800)]
msm: mdss: add multiple register support in ESD check
Current implementation cannot support multiple registers
in ESD check, and it does not work for many cases. For
example, some panels need check multiple registers to get
its status, and some panels might return several possible
values for one register read.
To support this kind of behaviors, a new property in dtsi
is added as "qcom,mdss-dsi-panel-status-valid-params" which
specifies the valid value length we should check in the
payload returned by panel, and the payload length panel
should return is specified by the property "qcom,mdss-dsi-
panel-status-read-length". "qcom,mdss-dsi-panel-status-value"
is also extended to an array which specifies all the possible
return values from panel.
Change-Id: I098d04281b819581f53c7c509778e7b594aa499a
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
Ping Li [Fri, 18 Dec 2015 00:54:47 +0000 (16:54 -0800)]
msm: mdss: Add support to retain AD RAMs
Modify the MDP_CBCR bits to retain the AD RAMs through idle power
collapse(IPC).
Bits setting when device enters IPC:
- MEM_CORE_ON: 1
- MEM_PERIPH_ON: 0
- MEM_PERIPH_OFF: 1
Bits setting when device exits the IPC:
- MEM_CORE_ON: 1
- MEM_PERIPH_ON: 1
- MEM_PERIPH_OFF: 0
Change-Id: I10749312d905eb4629e94e396b1604667738e84f
Signed-off-by: Ping Li <pingli@codeaurora.org>
Kalyan Thota [Thu, 7 Jan 2016 09:38:01 +0000 (15:08 +0530)]
msm: mdss: add min vote on the bus before iommu attach
MDSS needs a min vote on sysmmnoc clk to perform TZ and
IOMMU operations. This vote is needed for few low tier
chipsets.
Change-Id: Iff8c775bfc2001f0bae5118427334793bf392bc0
Signed-off-by: Kalyan Thota <kalyant@codeaurora.org>
Tatenda Chipeperekwa [Fri, 8 Jan 2016 00:32:20 +0000 (16:32 -0800)]
clk: msm: mdss: Read PLL/PHY status once during bootup
Read the PLL/PHY status once during bootup to avoid delays
due to polling. Polling for PLL/PHY status is only required
when handling HDMI use cases in which the cable is connected
after bootup is complete.
Change-Id: Ie1d5983a7784cb5f3472527d1b510f128ae9d325
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Ingrid Gallardo [Tue, 10 Nov 2015 18:13:17 +0000 (10:13 -0800)]
msm: mdss: debug: add xin id to pipe dump
Add the xin id information on the dump of the
pipes.
Change-Id: I20d63e02d0f36f1d173185c520b7c448ead7409d
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
Padmanabhan Komanduru [Wed, 30 Dec 2015 11:45:53 +0000 (17:15 +0530)]
msm: mdss: make sure backlight is off during suspend
The backlight of the display panel will not get turned off during
suspend if there are no display commits between suspend/resume
since allow_bl_update will only be set to 'true' after first
valid display commit after resume. This is possible for power
off charging use-case where there will be only one display
commit initially and later just the content of the buffer gets
updated without anymore display commits across suspend/resume.
Make sure the backlight is turned off during suspend by
explicitly setting allow_bl_update to 'true' before trying to
set the backlight to zero.
Change-Id: I10f39e3913e5b40a61066f0bbce3a7a8f1a9441b
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
Veera Sundaram Sankaran [Tue, 5 Jan 2016 21:32:57 +0000 (13:32 -0800)]
msm: mdss: move used pipes to cleanup list on overlay free
Avoid moving pipes to destroy list during overlay free based on
the pipe play count as it might not give the actual information.
The play count is set to 0 for all new or config changed pipes
during the validate call. And if we get a fb_release_all request
right after the validate, it would indicate an inconsistent state
for the play count. Instead, move the used pipes to cleanup list,
so that the NULL kickoff would handle the pipes to be unstaged
and destroyed.
Change-Id: I0026d512e92d0d59962ee8114873f7804a31c018
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Ray Zhang [Thu, 24 Dec 2015 09:28:51 +0000 (17:28 +0800)]
msm: mdss: remove interrupt handler when pingpong is not present
Remove pingpong interrupt handler when pingpong done interrupt is
not present. This will ensure no unexpected pingpong is reported
which might lead to confliction with the destroying ctx.
Change-Id: I9a7173fb19e55344cedcfeccdaf23efaba11892c
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
Sandeep Panda [Thu, 31 Dec 2015 05:03:31 +0000 (10:33 +0530)]
msm: mdss: set default resolution of DBA driver during boot
In cases of EDID read or parser failures, driver should expose
a default resolution to other modules to continue with the HDMI
initialization. So during bridge chip initialization sequence
update the default resolution.
Change-Id: Ia6a7f8b4d9e3f1650b9c11aafc118a2662801ba0
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Krishna Chaitanya Parimi [Tue, 17 Mar 2015 06:41:45 +0000 (12:11 +0530)]
msm: mdss: alter linear_map to incorporate rounding for AD
The helper function linear_map would take the integral part
of the calculated map, thereby causing issues with getting
the same value after consecutive map and inverse map calls.
For ex: linear_map(21, out, 255, 4095) would translate to
*out = 21 * 4095 / 255 = 337, whereas inverse case
linear_map(337, out, 4095, 255) would translate to
*out = 337 * 255 / 4095 = 20
Changing linear_map from ((in * out_max) / in_max) to a more
precise ((2 * (in * out_max) + in_max) / (2 * in_max)) for
incorporating rounding in the integral mapping.
Change-Id: I15cd8aa1326813ce3cb3a426cbb4e78374623c72
Signed-off-by: Krishna Chaitanya Parimi <cparimi@codeaurora.org>
Sandeep Panda [Fri, 4 Dec 2015 10:40:37 +0000 (16:10 +0530)]
msm: mdss: disable auto refresh before configuring tearcheck
If auto refresh mode is enabled in LK, then it needs be disabled
when kernel loads. Otherwise it might cause display corruption,
when in kernel display again configures tearcheck block.
Change-Id: I0b4dddee25e39cea4f32b8afd537993ad64ea812
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Kalyan Thota [Tue, 29 Dec 2015 10:04:32 +0000 (15:34 +0530)]
msm: mdss: turn on the mdss clocks when enabling vsync
Switch on the mdss clocks while enabling vsync irq.
Since mdss clocks are refcounted and irq is asynchronus
there can be case as clocks are off and irq is triggered.
This change will add a refcount while enabling irq so that
clocks are on when irq is triggered.
Change-Id: I90728f6d94b9d846b2c805a68ee49a6ef2a8ffc3
Signed-off-by: Kalyan Thota <kalyant@codeaurora.org>
Jayant Shekhar [Mon, 21 Dec 2015 04:51:16 +0000 (10:21 +0530)]
msm: mdss: ensure rotator clocks on for entire rotator session
Rotator clock and BW votes are updated on each rotator request
during same session. This is not required because rotator source
and destination does not change during session. Ensure that
rotator clocks are on throughout session such that extra overhead
of rpm calls are avoided.
Change-Id: I7a74aa2b8d8556b1d8ee4c52f871b9ebb149764a
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
Chandan Uddaraju [Wed, 23 Dec 2015 19:03:49 +0000 (11:03 -0800)]
mdss: fix dynamic FPS mode switch configuration
For dual DSI panels, DFPS mode switch configuration through
sysfs is not properly enabled for the second DSI interface.
Fix this by initializing the mode switch update variable.
While changing the DFPS mode, idle-time should be disabled
and the device should be configured to default FPS. Add
these checks when DFPS mode switch is initiated.
Change-Id: Ib9e67f20758e2fb1c72a747c31109364db1d1160
Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
Sandeep Panda [Thu, 24 Dec 2015 02:52:48 +0000 (08:22 +0530)]
msm: mdss: read DSI CTRL and PHY revision properly
In the current implementation DSI PHY revision is read once
DSI PHY initialization is complete. But this needs to be done
before initializing PHY, so that correct PHY initialization
sequence can be executed.
Change-Id: I6f0cd59d63d0a8c0a5d47284f2e86e72f37d099f
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Sandeep Panda [Fri, 6 Nov 2015 19:19:57 +0000 (00:49 +0530)]
msm: mdss: separate out DBA and CEC functionality from DSI
Currently, DBA (Display Bridge Abstract) related functionality
is being used in DSI files. Carve out DBA related functionality
into a new file which serves as a utility module and can be used
by any MDSS driver.
Define CEC on/enable functions in DBA (Display Bridge Abstract) so that
clients can enable disable CEC based on other dependent CEC modules.
Separate out CEC abstract data with CEC driver data and initialize and
release corresponding modules properly.
Change-Id: I84f53d99547dcd4ce0b8275401b03ed8e96e14d5
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Sandeep Panda [Wed, 16 Dec 2015 10:23:26 +0000 (15:53 +0530)]
msm: mdss: configure DSI PHY regulator when coming out of idle collapse
In command mode static screen usecase if DSI PHY was clamped and
then MDSS was reset by power collapsing it, in that case reconfigure
DSI PHY regulator while coming out of power collapse. This will avoid
DSI PHY stuck issue when there are two independent displays running.
Change-Id: I6c33244c332d97522b66cbb9191fce0a268bf9f4
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Sandeep Panda [Mon, 10 Aug 2015 08:18:05 +0000 (13:48 +0530)]
msm: mdss: properly handle dsi phy regulator for dual dsi case
In dual dsi case, if we do DSI PHY sw reset for one DSI controller
then it will reset the DSI PHY regulator also. Since DSI PHY
regulator is shared among both the DSI controllers, it might cause
side effects on the other DSI controller if that is active. So only
reset DSI PHY lane and PHY HW as when one of the DSI controller is
still in active state. Also avoid reconfiguring DSI PHY regulator in
dual dsi case if the other DSI controller is active.
Change-Id: I5ad1251c89e8ad3f521c4e5c11607494e14143cf
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Sandeep Panda [Sat, 19 Dec 2015 03:00:30 +0000 (08:30 +0530)]
msm: mdss: enable clocks before doing SW reset during recovery
There can be unclocked register access during DSI FIFO empty
error recovery case in command mode, so enable DSI core clocks
prior to doing SW reset.
Change-Id: Ic48561b979f1a13304dc2fa29f8008e8ff63c8ca
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Dhaval Patel [Thu, 17 Dec 2015 22:25:17 +0000 (14:25 -0800)]
msm: mdss: avoid panel status check when panel is off
Sending BTA or other panel check status commands to the
panel, when panel is off might lead to abnormal
behavior. Since client can poll for the panel status
anytime, add necessary checks to avoid sending commands
when panel is off.
Change-Id: I95acc3df464d0a4640b79963b5701fcde79646d5
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Naseer Ahmed [Mon, 11 Jan 2016 22:14:32 +0000 (17:14 -0500)]
video: msm: mdss: Fix error in log message
The log message which is only active in modem build is missing
an argument causing build error. This commit fixes it.
Change-Id: I7e66c34c22e13a0063af93cbf725cfd9c24ffb99
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
Vishnuvardhan Prodduturi [Fri, 18 Dec 2015 11:32:39 +0000 (17:02 +0530)]
msm: mdss: fix 32-bit compilation errors in HDMI driver
HDMI driver has compilation issue in 32-bit mode due to incorrect
type casting. This patche fixes the same.
Change-Id: Ie620b1059f37b858beadf61ff8e100312b1bb988
Signed-off-by: Vishnuvardhan Prodduturi <vproddut@codeaurora.org>
Padmanabhan Komanduru [Wed, 16 Dec 2015 12:05:13 +0000 (17:35 +0530)]
clk: msm: mdss: add DT support for SSC frequency and PPM values
The SSC frequency and PPM values are currently hardcoded in the
DSI PLL driver. Add DT properties to specify the SSC frequency
and SSC PPM values for DSI SSC feature.
Change-Id: I0faed9f48694f7407c6855b067ffa4510d7e3fdd
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
Jayant Shekhar [Thu, 17 Dec 2015 04:54:48 +0000 (10:24 +0530)]
msm: mdss: Remove redundant handoff pending check
In overlay start, currently there is a check that if
splash handoff is pending then fail the overlay start
for that particular fb. Remove this check as this is
not required anymore. HAL should take care that it
calls fb open (for HDMI) only after splash cleanup is
done.
Change-Id: Ie20bd778ba8df2bd54c3804870ad4e8bb45702b8
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
Benet Clark [Tue, 15 Dec 2015 06:24:16 +0000 (22:24 -0800)]
msm: mdss: Send backlight sysfs notification in all BL update locations
There are two places where the backlight can get updated. Currently, the
sysfs notification only happens in mdss_fb_set_backlight. If the backlight
is restored during the first display commit, the backlight update occurs
in mdss_fb_update_backlight. This change adds the sysfs notification in
update_backlight.
Change-Id: Iffa1e4f0aa0cdc8babb1b6683d3175795f4b4d27
Signed-off-by: Benet Clark <benetc@codeaurora.org>
Signed-off-by: Krishna Chaitanya Parimi <cparimi@codeaurora.org>
CRs-fixed: 949146
Dhaval Patel [Thu, 15 Oct 2015 21:52:16 +0000 (14:52 -0700)]
msm: mdss: update mdp capabilites with pipe status
Update mdp capabilities with pipe index, type,
handoff status and display interface number information.
Change-Id: I3ff1c66cb20bb1a45a67eb952d7cdaa7e360d377
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Sandeep Panda [Mon, 14 Dec 2015 14:19:01 +0000 (19:49 +0530)]
msm: mdss: update DSI PHY enable sequence based on PHY revision
In the current implementation DSI controller version is used to
determine which PHY enable sequence should be used. But this will
fail in case of platforms where DSI controller version is same as
older platforms but PHY version is new. So change the version check
to be based on PHY version instead for controller version.
Change-Id: I636a6442e84f1bd549b6a125cfb991402e53c796
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Veera Sundaram Sankaran [Fri, 11 Dec 2015 22:22:28 +0000 (14:22 -0800)]
msm: mdss: reset intf_stopped flag for sctl when exiting LP states
When exiting low power state (LP1 of LP2), ensure that the intf_stopped
flag is reset for the secondary ctl as well, otherwise it may result in
the display corruption for that ctl path.
Change-Id: I2ac9cff00e25a3cae6999e33c9f5a7a959413277
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Dhaval Patel [Fri, 4 Dec 2015 16:14:40 +0000 (08:14 -0800)]
msm: mdss: fix new and used pipe config in layer validation
Pipes present in destroy and cleanup list are considers
as used pipes during layer validation. This assumption
is wrong. Async update should not be supported for such
pipes because they are not stagged in current draw cycle.
These pipes should also go through destroy cleanup process
if any layer validation fails during the atomic ioctl check.
Change-Id: I11ba16db40634e32e7f55af4e19f6cb42530b1f4
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Veera Sundaram Sankaran [Wed, 9 Dec 2015 00:57:02 +0000 (16:57 -0800)]
msm: mdss: fix deadlock between display and dsi status check thread
The vsync handler in display thread holds ov_lock followed by
offlock. And the DSI status check thread for cmd mode panel holds
offlock followed by ovlock, causing a clear deadlock scenario.
Fix it by acquiring ov_lock before offlock in DSI status check
thread.
Change-Id: I54ef54b5ca7e4c87e909c510b28ff7770bb20a3b
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Ajay Singh Parmar [Mon, 19 Oct 2015 07:02:05 +0000 (00:02 -0700)]
msm: mdss: hdmi: add support for custom edid
Add sysfs node to provide a custome EDID to HDMI driver to
address some special requirements from user applications like
switching to a custom EDID in cases where sink doesn't support
EDID or DDC line to read EDID.
Change-Id: I75726e28722aa128cfc315b3b1b0e97e9a9cde56
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Ujwal Patel [Tue, 8 Dec 2015 21:16:40 +0000 (13:16 -0800)]
msm: mdss: force HW reprogram when ROI changes mixer layout
Current driver has various optimizations to skip pipe reprogramming if
certain layer parameters are not changed. However if mixer layout changes
then we need to reprogram all the staged pipes on that mixer. This
scenario can happen when partial update is enabled on a topology with
split layer mixers. Add a logic to find if the mixer layout is changing
between two consecutive updates and if it does, force reprogramming of
all the staged pipes.
CRs-fixed: 946164
Change-Id: I16caa4bb8b9587b804d6543d0bd340df970784ba
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
Ajay Singh Parmar [Mon, 27 Apr 2015 21:03:05 +0000 (14:03 -0700)]
msm: mdss: hdmi: create hardware independent CEC abstract module
Create a new CEC abstract module which is hardware independent and
interacts with other modules. Make hardware dependent CEC a separate
module and integrate with CEC abstract module. This makes it easy
to integrate multiple CEC hardwares without disturbing other modules
interacting with the abstract module.
Change-Id: I0cf4973e567fe82a1b714c03ae8b18508521260e
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Ajay Singh Parmar [Mon, 23 Nov 2015 02:06:34 +0000 (18:06 -0800)]
msm: mdss: hdmi: add dynamic encryption enable support
Implement qseecomm API to send command to TZ to enable/disable
encryption based on hdcp status. Enable encryption when hdcp
part 1 is successful and disable it when cable is disconnected
or authentication fails.
Change-Id: Ia5e1a5927dad36abc3093b16638879be823c84df
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Ajay Singh Parmar [Sun, 22 Nov 2015 22:48:22 +0000 (14:48 -0800)]
msm: mdss: hdmi: schedule link work from isr
Do not schedule link work periodically to check for new message
or authentication status. Hardware automatically poll sink for
the same. Once new message is available or sink indicates
re-authentication required, isr is triggered. Queue link check
work from isr to avoid unnecessary software polling.
Change-Id: I83c71f5151aa077e863b6578a89f6515f6497159
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Ajay Singh Parmar [Sun, 15 Nov 2015 09:56:08 +0000 (01:56 -0800)]
msm: mdss: hdmi: hdcp2p2: add tethered support
Provide user an option to let the HDCP2.2 authentication
run on main thread. Avoid processing on module threads
thus avoiding any scheduling delays. The user may choose
to switch to this mode based on its requirements.
Change-Id: I76ec4a18f0fc52e99bbe76b6707511d3af6151f3
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Ajay Singh Parmar [Sat, 14 Nov 2015 02:22:20 +0000 (18:22 -0800)]
msm: mdss: hdmi: clear ddc line before starting hdcp
Clear DDC line if scrambling and Rx status polling is still
going on. Check for all scrambling and Rx status errors and
stop polling in error cases. This needs to be done before
new hdcp authentication session is started to avoid any
authentication failures because of ddc line being busy.
Change-Id: I90957410172ca206d435a5549d689ada222f84db
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Sandeep Panda [Wed, 13 Jan 2016 04:39:56 +0000 (10:09 +0530)]
msm: mdss: update DSI PHY panel timing dt parsing logic
In current implementation there are two entries in DSI
panel specific dt file for specifying panel timing parameters.
But in case only one entry is specified in panel dt, then if the
first entry is not there in dt, driver is returning failure
and because of this the second entry is not getting parsed at all.
Update the parsing logic so that driver parses both the entries
to get proper dsi panel timing parameters.
Change-Id: I1774421fd9686de123cb669a745ac110fe8667da
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Ajay Singh Parmar [Sun, 22 Nov 2015 20:37:11 +0000 (12:37 -0800)]
msm: mdss: hdmi: update hdcp information at hdcp start
Update the hdcp related information when hdcp is started
and not before that. Updating hdcp information depends on
some modules which may not be ready during boot-up resulting
in hdcp failure. Update hdcp information on user thread to
make sure that kernel has completed boot-up and dependent
modules are ready.
Change-Id: I159ec55dbe3d6f109a97a15c2f22d96694727133
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Sarada Prasanna Garnayak [Wed, 9 Dec 2015 06:34:05 +0000 (12:04 +0530)]
net: cnss: add config flag for cnss common compilation
The cnss common kernel module export symbol to WLAN host
driver for ROME based wlan module. Add kernel config
flag CONFIG_CNSS to make this module compilation only
for ROME based target.
Change-Id: Ia352f0b561f3ec5a53f0d48fd849e43caf4e44a2
Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
Sarangdhar Joshi [Wed, 9 Dec 2015 03:11:02 +0000 (19:11 -0800)]
arm64: kernel: Update PERCPU_SECTION and RW_DATA_SECTION alignment
Update PERCPU_SECTION and RW_DATA_SECTION to align to L1_CACHE_BYTES
instead of hard coded 64 bytes since L1_CACHE_BYTES could get
updated to more than 64 bytes cacheline size.
Change-Id: I0bc1f0420675cf65e958c53a230357918f05aabc
Signed-off-by: Sarangdhar Joshi <spjoshi@codeaurora.org>
Ajay Singh Parmar [Wed, 9 Dec 2015 03:12:53 +0000 (19:12 -0800)]
msm: mdss: hdmi: check clk state before power on
Clocks should be enabled and running at proper rates before
powering on hdmi transmitter. In fast plug in/plug out of
hdmi cable cases or fast suspend resume cases, there can be
a race condition related to enable/disable of clocks and
hdmi power on/off. Make sure, in such corner cases, hdmi
transmitter core is not being programmed to avoid any
possible un-clocked register access issue.
Change-Id: Ide3db0d0947f4bb5deee26aee95111be27523924
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Krishnankutty Kolathappilly [Wed, 9 Dec 2015 00:13:25 +0000 (16:13 -0800)]
msm: cpp: Ensure CPP RX fifo is empty before writing payload
CPP RX FIFO empty status is not checked for payload start code and
trailer. A continuous counter must be used across the payload
instead of separate check for CPP RX FIFO empty status for
stripe and plane based. Ensure that CPP RX FIFO empty before
writing the second payload.
Change-Id: I11d0f77798addf4d654122e346dc6ec736a47113
Signed-off-by: Krishnankutty Kolathappilly <kkolatha@codeaurora.org>
Lakshmi Narayana Kalavala [Tue, 8 Dec 2015 23:35:25 +0000 (15:35 -0800)]
msm: camera: Identify invalid buf done's on vb2 buffer
Observed camera module drivers doing invalid buf done's on
vb2 buffers even after the buffers are cleaned up from
the vb2 queue, Hence adding WARN_ON to identify the clients.
Change-Id: Iaca6fc7c481d7c06cd15e94fbbf9aebe2cc7e110
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
Siddharth Zaveri [Thu, 3 Dec 2015 21:26:01 +0000 (16:26 -0500)]
ARM: dts: msm: Remove support for ADV7533 from apq8096 automotive dtsi file
Remove support for ADV7533 from automotive dragonboard file as dragonboard
should boot up with native panel by default
Change-Id: Id0444a8edaf645a56b68ccd039ee6250d188822e
Signed-off-by: Siddharth Zaveri <szaveri@codeaurora.org>
Liam Mark [Tue, 1 Dec 2015 01:24:46 +0000 (17:24 -0800)]
defconfig: msm: enable CMA debugfs
Enable CMA debugfs to make it easier to test CMA.
Change-Id: Ib1f07f3a0d681b28af082c386d28796049b7f61f
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Liam Mark [Wed, 25 Nov 2015 22:37:54 +0000 (14:37 -0800)]
mm: cma: add trace events for CMA alloc perf testing
Add cma and migrate trace events to enable CMA allocation
performance to be measured via ftrace.
Change-Id: I1e471e9e21f1a14ce2ed167d8515ccb5f83eb88c
Signed-off-by: Liam Mark <lmark@codeaurora.org>
Manaf Meethalavalappu Pallikunhi [Thu, 19 Nov 2015 14:40:33 +0000 (20:10 +0530)]
msm: thermal: Initialize Vdd scaling max frequency variable
Currently Vdd scaling max frequency variable is not initialized,
which leads to wrong aggregation of thermal cpu scaling max frequency
request especially during KTM boot up mitigation. Initialize low
temperature scaling max frequency variable to UINT_MAX at
probe function.
Change-Id: I0220b9390cac33d40af0e4419d7451553ba6c5b5
Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
Vinu Deokaran [Mon, 23 Nov 2015 18:19:20 +0000 (13:19 -0500)]
msm: mdss: read display id from device tree
Add support to read display ID string from device tree. The string
could be empty if it's not defined in the device tree.
Change-Id: I70584a1e20b7394145e40d83a2af7775f0117506
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
Vinu Deokaran [Thu, 19 Nov 2015 15:36:56 +0000 (10:36 -0500)]
msm: mdss: add support to report display id
Add support to report display ID back to user space through
panel_info node.
Change-Id: I0d711400b02f441bce17b27bd747034bd5b61b1a
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
Vinu Deokaran [Tue, 24 Nov 2015 19:55:33 +0000 (14:55 -0500)]
msm: mdss: add a new display id for panel destination
Since driver could support four displays running concurrently, adding
one more display id for setting up panel destination.
Change-Id: I0999b3787e1a329538d6513fc3c9a43a3da9999a
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
Vinu Deokaran [Tue, 24 Nov 2015 18:51:12 +0000 (13:51 -0500)]
msm: mdss: setup dsi control index before using it
The ndx variable of dsi control structure needs to be configured
correctly in the early stage of probe. Otherwise, subsequent function
could dereference to a wrong value.
Change-Id: Icdcdf6713271af25c5135702d8479f5213909560
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
Sandeep Panda [Wed, 22 Jul 2015 01:58:09 +0000 (07:28 +0530)]
msm: mdss: set proper primary panel flag for dual DSI case
In case of dual DSI configuration if any of the DSI
controller is using bridge chip(HDMI) then consider that
as secondary display or else consider DSI1 controller as
secondary always. This change takes care of this assumption.
Change-Id: Ia24c45de2af41144e76b102232b7481ca5c5acf2
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
Padmanabhan Komanduru [Wed, 6 May 2015 05:45:30 +0000 (22:45 -0700)]
msm: mdss: add support to register secondary fb on DSI device
In the current implementation, DSI0/DSI1 device is always mapped
to frame buffer-0. For dual DSI configuration, we need to
register both the DSI devices to different frame buffers. Add driver
and dtsi support to register DSI device on primary/secondary
frame buffer at runtime based on the DSI configuration.
Change-Id: Iac872723711c5d0264088c4f3b53d1385fd9ffe0
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Sandeep Panda [Tue, 24 Nov 2015 04:55:07 +0000 (10:25 +0530)]
ARM: dts: msm: update timing db property for MDSS nodes
For some platforms due to HW limitation timing db property
can not be a shared property, so making this property as interface
specific for MDSS, instead of shared.
Change-Id: I6e1a482dd23f475c332200f857494a7c848c58c1
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Sandeep Panda [Fri, 20 Nov 2015 05:16:18 +0000 (10:46 +0530)]
msm: mdss: make timing db property DSI controller specific
If timing db(Double Buffered) property is enabled, then MDP FLUSH
bit needs to be set in order to push the data to video interface.
Currently this property is used as a shared property for both DSI
interfaces. But in case of chipsets where there is no FLUSH bit
defined for the secondary DSI interface, this will cause issue.
So moving the property to each controller specific instead of shared.
Change-Id: I25913867da41ca2fb2848ab96f5be5d9228a8f63
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Zhen Kong [Thu, 3 Dec 2015 07:40:16 +0000 (23:40 -0800)]
qseecom: make change to support sg list entry number larger than 512
qseecom_send_modfd_cmd_64 converts non-contiguous ION memory fd to
scatter-gather physical address list, and supports up to 512 SG list
entries. Now, 512 is not enough if client wants to send large data
in a fragmented system. In this change, if SG list entry number is
larger than 512, we will allocate a new contiguous kernel buffer,
then save all SG entries into this new buffer.
Change-Id: Id90eefb98b63bf16db755dae8e1482e448090f47
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
Skylar Chang [Thu, 5 Nov 2015 21:42:53 +0000 (13:42 -0800)]
msm: ipa3: make ipa3 compile for corbalt rumi
Configure the new IPA-interrupt register to get
the IPA-HW irq, also change the tag process to
be compatible to 64 bits platform.
Change-Id: I29a8805cacc8d8df2f0e60ee8e1d2243c718d248
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
Atish Kumar Patra [Sat, 25 Apr 2015 00:16:28 +0000 (18:16 -0600)]
net: ipc_router: Add support for IPC Router version negotiation
Currently, IPC Router statically associates the version of the
protocol to be used with each link. Thus, dynamic version negotiation
is not possible.
Add support for version negotiation that sets IPC Router version
after a successful negotiation.
Change-Id: Iea04742ef30443c1e36760561e7f20175c4fbaa6
Signed-off-by: Atish Kumar Patra <apatra@codeaurora.org>
Phani Kumar Uppalapati [Fri, 26 Jun 2015 07:00:22 +0000 (00:00 -0700)]
ASoC: wcd-mbhc: Add support for 5-pole plug detection
MBHC hardware block on WCD9335 supports 5-pole plug
detection. Add support for 5-pole plug detection in
MBHC driver.
Change-Id: Ia2620b5cc3ef5065f350549d29cde063fdd1bf04
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Phani Kumar Uppalapati [Tue, 17 Nov 2015 23:00:47 +0000 (15:00 -0800)]
ASoC: wcd-mbhc: Fix unbalanced irq enable/disable
Fix unbalanced mbhc electrial irq enable/disable to
avoid detection failures when headset or headphone
is inserted into an extension cable at the other
end.
Change-Id: I2eb9096f1cb45957a3d511af86cb630348581e0b
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Dhaval Patel [Thu, 8 Oct 2015 01:40:42 +0000 (18:40 -0700)]
msm: mdss: move handoff pipes to used list
MDSS client may want to reuse the pipe during
boot up which are currently in use. The pipe
allocation fails when these pipes are in handoff
state and atomic API tries to reallocate them.
Moving them to used list allows client to reuse
them at early stage without waiting for first valid
kickoff.
Change-Id: Ia6f1282ea192e3a0e948488ba833c2580bebb9bf
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Chris Lew [Wed, 2 Dec 2015 01:24:53 +0000 (17:24 -0800)]
diag: Remove null pointer dereference from diag_md_session_close
Remove reference to session_info after handle is closed.
Store the peripheral masks in a local variable before closing the
session. Use stored value instead of closed session_info handle.
CRs-fixed: 930676
Change-Id: I08179b100926883f0cb84e0de35cc356e9cc9a03
Signed-off-by: Chris Lew <clew@codeaurora.org>
Ajay Singh Parmar [Fri, 4 Dec 2015 02:29:03 +0000 (18:29 -0800)]
msm: mdss: hdmi: add support for triggering hot plug
Add sysfs node to trigger cable disconnect/connect hot plug
interrupts. Power off 5v regulator which provides 5v to sink
which in turn pulls hpd line low resulting in disconnect hot
plug interrupt. Similarly, power on 5v regulator to get connect
hot plug interrupt. This is needed to simulate cable connect
and disconnect for some special requirements like resolution
switch from the user applications.
Change-Id: I882358ddb40acf07a5e7be692aac590880e012c2
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Atish Kumar Patra [Sat, 25 Apr 2015 00:19:24 +0000 (18:19 -0600)]
soc: qcom: ipc_rtr_xprt: Add support to set version in transport
Currently, there is no option to set the version in IPC Router transport.
Add support to set a version in the transport so that the version can be
modified from initial entry after the version negotiation.
Change-Id: Ie6d823a3b4f2608efe2ac992a248a4f0884b856d
Signed-off-by: Atish Kumar Patra <apatra@codeaurora.org>
Deven Patel [Sat, 5 Dec 2015 01:31:11 +0000 (17:31 -0800)]
ASoC: codecs: Skip bandwidth voting for I2C interface
For audio usecases bus bandwidth voting is required only for
slimbus. Add the check to gracefully handle I2C cases.
Change-Id: I4dcbd0e6a84f8ca9f5429ed0ec0b4795e591981d
Signed-off-by: Deven Patel <cdevenp@codeaurora.org>
Oleg Perelet [Tue, 17 Nov 2015 22:23:24 +0000 (14:23 -0800)]
msm: kgsl: Add A540 limits management
Add ISENSE based limit management, provide interfaces to GPMU
and hardware LLM and BCL subsystems.
Change-Id: Ic0419509bdc6d4d9d478277cc90ae75dc527ca66
Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
Tarun Karra [Wed, 21 Oct 2015 22:41:25 +0000 (15:41 -0700)]
msm: kgsl: Add support for the A540 GPU
Add support for the A540 GPU device:
* Add entry to the GPU list and add adreno_is_a540() functions
* Add VBIF settings
* Add hardware clock gating values
Change-Id: Ibd653597400ded01ca05607fbbdafea3e86e177f
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>
Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
Carter Cooper [Thu, 27 Aug 2015 21:25:01 +0000 (15:25 -0600)]
msm: kgsl: Remove tracking virtual map sizes
mmapsize is no longer important to the memory descriptor
and the APIs that would use it never materialized. It currently
just tracks the size of the memdesc and is no longer needed.
Change-Id: I8fa1001c2f89f23034029de7de6ab77532bf45fa
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Carter Cooper [Thu, 17 Sep 2015 18:02:47 +0000 (12:02 -0600)]
msm: kgsl: Verify the pointer isn't NULL before using it for kref
Probably overkill, but ensure that the struct pointer we are going
to dereference to send into kref calls is valid before we dereference.
Change-Id: I308176df9f7476a2a9f1357612381a93160ad698
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Carter Cooper [Tue, 15 Sep 2015 20:13:35 +0000 (14:13 -0600)]
msm: kgsl: Rework page allocation sizes
Alignment checks only need to be done once and can be moved down to
the lower layers.
Change-Id: Ia4683cf9db08506db810e80854c006d94dc80310
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Carter Cooper [Mon, 19 Oct 2015 21:30:52 +0000 (15:30 -0600)]
msm: kgsl: Cleanup iommu interactions for secured MMU cases
The code has gotten bloated and repeats the same logic in several
places leading to very stringy code. Consolidate this code to
enable easier readability as well as prep the code for future
changes to this area.
Change-Id: Ibb70cbae3a8a5157e589020ccebefff11b6ffaf1
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Jeremy Gebben [Fri, 23 Oct 2015 21:01:34 +0000 (15:01 -0600)]
msm: crypto: move compat_qcedev.h
The uapi directory shouldn't contain compat definitions,
so move this file out of there.
Change-Id: I1ee862e522d0b7f9bc4e22fb0e375b4cc1a53504
Signed-off-by: Jeremy Gebben <jgebben@codeaurora.org>
Domi Papoi [Mon, 2 Nov 2015 21:01:27 +0000 (16:01 -0500)]
adv7481: Add driver code for adv7481
Adding adv7481 driver for db-platform.
Change-Id: I7729d310578b61357f0d7297851f3c412b166699
Signed-off-by: Domi Papoi <dpapoi@codeaurora.org>
Sandeep Panda [Mon, 24 Aug 2015 15:43:21 +0000 (21:13 +0530)]
msm: mdss: update panel PHY timings during resolution switch
During dynamic resolution switch update the DSI PHY timings
for panel based on the new porch values. Also calculate the
new frame rate as per new porch values.
Change-Id: I683bf1255c77a2575567847cef5edcfb5529b69d
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Sandeep Panda [Mon, 17 Aug 2015 09:20:46 +0000 (14:50 +0530)]
msm: mdss: check for change in panel timing parameters
Add support to check for change in panel video timing
parameters when DSI controller is used for a pluggable
interface.
Change-Id: Ia7ff6b3adf778283c1fc893f2c2eb4335ae4dd68
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Deepak Katragadda [Tue, 17 Nov 2015 20:53:04 +0000 (12:53 -0800)]
clk: msm: gdsc: Add the "qcom,gds-timeout" DT property for GDSC polling
Instead of hard-coding the GDSC polling timeouts, use the
"qcom,gds-timeout" property to load the desired values.
These polling times vary for the votable GDSCs especially
depending on the sequence, clock rates and the clock SLEEP
and WAKEUP settings.
Change-Id: Id43ce13fcb5f386d5659280f2b561b6065eb0248
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
Deepak Katragadda [Wed, 18 Nov 2015 01:17:56 +0000 (17:17 -0800)]
ARM: dts: msm: Add the timeout properties to SMMU GDSCs on MSM8996
The votable SMMU GDSCs might take longer to enable than the
default limit of 100usecs depending on the clock WAKE and SLEEP
settings and the clock rates. Make this polling timeout limit
more configurable.
Change-Id: I26cb00cefa5d45ed2a92f306921e2d95938795af
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
Sarada Prasanna Garnayak [Fri, 4 Dec 2015 14:42:29 +0000 (20:12 +0530)]
net: cnss: Enable cnss for QCA SDIO/PCIe WLAN Module
WLAN module needs platform driver support to power up QCA Chip.
Build Platform component independent of CONFIG_CNSS.
Change-Id: I644a42d500c864f7997b9ad6038852fc907ff480
Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
Signed-off-by: Sridhar Ancha <sancha@codeaurora.org>
Amir Samuelov [Sun, 6 Dec 2015 09:58:26 +0000 (11:58 +0200)]
include: uapi: fix spcom.h using bitops
The include file <linux/bitops.h> is not available on user space.
remove it from the spcom.h uapi file.
Change-Id: I1a2ea14a4fc1154b63776e83909389cc73398f7d
Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
Abhishek Kondaveeti [Sun, 6 Dec 2015 06:39:10 +0000 (12:09 +0530)]
msm-camera: Optimize logs in ISR
Optimize logs in ISR as it effects normal thread
execution and causes frequent preemption.
Change-Id: Iff70f7838408a6abfd68cb501524e3913c8df29c
Signed-off-by: Abhishek Kondaveeti <akondave@codeaurora.org>
Trilok Soni [Fri, 4 Dec 2015 21:19:51 +0000 (13:19 -0800)]
soc: qcom: scm: Skip Kasan sanitization of the SCM driver
SCM (Secure Channel Manager) driver is used to communicate
with the secure world entities like trustzone and hypervisor.
As a part of the communication we expect to give certain
input, output operands and the caller of the scm_callX
API would expect that output values or return values
of the scm_callX should not get corrupted (if they depend on it).
Due to Kasan instrumentation of the SCM driver following
code is getting instrumented with Kasan __asan_store8_noabort
APIs which would internally check if the memory access is allowed
and it is the functionality of the Kasan to check/instrument
the load and stores.
if (ret1)
*ret1 = r1;
if (ret2)
*ret2 = r2;
if (ret3)
*ret3 = r2;
All will be fine for the first *ret1 = r1; execution since
GCC has generated the code which saves the x1 value (r1)
into the another register but the execution of the
__asan_store8_noabort API after the saving of the register
corrupts the x2 and x3 when it returns. GCC has no knowledge
at this point to save the x2 and x3.
Due to this x2 and x3 is loaded with the Kasan shadow
offset value and Kasan shifted (>> 3) address.
Since x2 and x3 (r2 and r3 in the code above) would be used
as the ret2 and ret3 for the caller of the scm_callX API
the caller would get the wrong return values (if it needs them).
QSEECOM is one such driver which uses these ret2 and ret3 values
and due to this corruption QSEECOM driver was treating it as
SCM call failure, though the bug described above due to Kasan
instrumentation would be applicable to any caller needing
the right values of the ret2 and ret3.
SCM driver is very small and simple and we would not expect
the Out of bound or use-after-free errors for it, so it would
be fine to skip it from the Kasan instrumentation.
Change-Id: I8b2a17759295375c21abc520110f855f349faf4b
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
Phani Kumar Uppalapati [Sat, 5 Dec 2015 01:44:04 +0000 (17:44 -0800)]
ASoC: wcd-mbhc: Avoid fake microphone insert/removal events
If headphones is removed during 3-sec polling interval,
it is possible that hs_comp_result is zero while mechanical
switch level will be low. Currently driver reports microphone
insertion followed immediately by removal in this scenario.
These fake events cause audio to continue to play on speaker
even headphones is removed during playback.
Change-Id: Ibf559e207b3370cb2cec5149f8e794cb55ca27ac
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Karthikeyan Ramasubramanian [Thu, 3 Dec 2015 18:53:08 +0000 (11:53 -0700)]
soc: qcom: glink_smd_xprt: Introduce receive command lock
G-Link uses queue concept per transport to handle the incoming commands.
Introduce the transport receive command lock to pass the commands in a
sequential manner.
CRs-Fixed: 945724
Change-Id: Id6e485bb1d3be360a996fd9ae6745b67bded08d1
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
Bhalchandra Gajare [Sat, 5 Dec 2015 01:18:52 +0000 (17:18 -0800)]
ASoC: wcd_cpe_core: Fix memory leak
During sound model de-registration, the message to be sent to CPE is
dynamically allocated but not freed. This causes memory leak in the
driver. Fix by adding kfree() to free the memory once the message
transfer is completed.
CRs-fixed: 933901
Change-Id: I02f25fc3457d530de436eb33da1709517b597e7b
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Steven Cahail [Thu, 3 Dec 2015 20:41:45 +0000 (13:41 -0700)]
soc: qcom: glink: Introduce RX intent request timeout in SSR
The G-Link SSR driver currently does not specify a timeout for
requesting RX intents. If the remote processor is not responding, the
glink_tx() call for sending the SSR notification could wait forever for
an RX intent and block SSR processing for the entire system.
Introduce a 500ms timeout, and restart the remote processor in question
if an intent is not queued within that time. This unblocks SSR
processing in addition to resetting the remote processor.
Change-Id: I2b00afa4e9a1b81355eedcfd7cc786afb058bee7
Signed-off-by: Steven Cahail <scahail@codeaurora.org>
Steven Cahail [Thu, 3 Dec 2015 20:23:30 +0000 (13:23 -0700)]
soc: qcom: glink: Add RX intent request timeout to G-Link channels
During glink_tx(), G-Link can wait for an unlimited amount of time for
the remote side to queue an RX intent. In some cases, e.g. SSR, the wait
must be restricted to a short time, but in the current implementation,
glink_tx() can continue to block indefinitely.
Add a configurable timeout value to the G-Link channel context, which is
set in the channel open configuration. If the value is set to 0, treat
it as an infinite timeout. This allows a timeout to be put in place by
the client for sensitive cases such as SSR where a very limited amount of
time can be spent waiting for an intent.
Change-Id: I1e480fac286d285f871fe3059de7ae761fc4581e
Signed-off-by: Steven Cahail <scahail@codeaurora.org>
Dhaval Patel [Sat, 5 Dec 2015 00:13:29 +0000 (16:13 -0800)]
msm: mdss: fix vbif debug bus dump in log
Invalid memory access during vbif debug bus
dump in log leads to crash. This adds null
check before accessing debug bus memory.
Change-Id: I54b74ce1004c4246398f18cd1a262e29a0a20d20
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Sagar Dharia [Fri, 4 Dec 2015 23:44:49 +0000 (16:44 -0700)]
slim_msm: Gracefully handle QMI timeout failures
QMI timeout can happen if other processor doesn't respond within the
time expected by slimbus driver on apps. It has been noticed that QMI
call to power-on slimbus rarely takes more than 500msec. Timeout
is increased to allow that possibility. Additionally, QMI channel is
drained out of left-over messages and runtime-PM state check is
modified to allow graceful handling of timeout if at all any timeout
still happens.
Change-Id: I392a4fa761735135a261fb543815823cee5eba41
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
Honghao Liu [Thu, 3 Dec 2015 16:53:25 +0000 (11:53 -0500)]
ARM: dts: msm: update TDM device info for MSM8996
Update the TDM device information for slot and channel mapping
configuration for MSM8996 device tree.
Change-Id: Ie893184acb1361c5dcf8a6ad7bf9eb7cdf5dbafd
Signed-off-by: Honghao Liu <honghaol@codeaurora.org>
Honghao Liu [Fri, 27 Nov 2015 22:44:35 +0000 (17:44 -0500)]
ARM: dts: msm: add auto snd card and update TDM for APQ8096 and MSM8996
Add automotive sound card for Agave and MMXF platform. Update the
TDM device information for slot and channel mapping configuration
for Dragonboard, Agave and MMXF platforms.
Change-Id: If41e6fad527897cf4f0ee164f606357466bbbd52
Signed-off-by: Honghao Liu <honghaol@codeaurora.org>
Honghao Liu [Fri, 27 Nov 2015 22:21:21 +0000 (17:21 -0500)]
ASoC: msm: add slot and channel config support for TDM devices
Add support for slot and channel configuration in CPU dai driver
for TDM devices. Remove the probing of slot and channel info from
device tree.
Change-Id: I9d65779b7ef70fac741569f0584b15db29093e0c
Signed-off-by: Honghao Liu <honghaol@codeaurora.org>