The Content Protection properties in 4.4 used v2 of the upstream
patches, but chrome (and upstream) prefer v1. This patch removes the ksv
property and reinstates the ENABLED enum value to the content protection
property.
BUG=b:63816472
TEST=Watch protected content on external display, ensure CP is
enabled/disabled properly by chrome
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/687800
Commit-Ready: Sean Paul <seanpaul@google.com>
Tested-by: Sean Paul <seanpaul@google.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@chromium.org>
Change-Id: I38cecce2d15b4d4b1ce95ef0e572a08f1bc97131
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
I've seen this:
sysfs: cannot create duplicate filename '/devices/platform/fec00000.dp/hdcp_key'
Presumably because component_add() can -EPROBE_DEFER.
At any rate, we shouldn't leave the sysfs file hanging around. Clean it
up on probe failure, and on removal.
BUG=b:36566733
TEST=boot
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/458836
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Change-Id: Ic10f45c0d67cfcc41ab89af108a78f641f424872
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Implement HDCP 1.4 authentication function for DP driver.
First, userspace write HDCP cipher to driver via "hdcp_key" sysfs node,
it contains ksv and device private key. DP connector object has a
"Content Proection" property which it's 'Undesired' default. Userspace
set it to 'Desired' as a HDCP authentication request, and it will be set
to 'Enabled' once HDCP authenticated.
BUG=chrome-os-partner:56883
TEST=WITH HDCP KEY SITUATION:
1.flash encrypt key to vpd area, and reboot chromebook.
$ vpd -O; vpd -s hdcp_key_v1_4=something...;dump_vpd_log
--force;
2.write key to DP driver.
$ grep hdcp_key /var/cache/vpd/full-v2.txt | cut -s -d \" -f 4 |
tr -d "\n" > /sys/devices/platform/fec00000.dp/hdcp_key
3.set "Content Protection" property to 'Desired'
$ proptest 36 connector 23 1
4.if the HDCP 1.4 authenticated, the 'Content Proection' will be
changed to 'Enabled'
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
Reviewed-on: https://chromium-review.googlesource.com/403975
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Change-Id: I58f11535dd68d9517a3c7b0b9a61ed9fa6d9a1c0
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Although this property value have been deleted from the latest
FROMLIST version (CL:266854), but the chromeos would want driver
to report the property to "Enabled" when hardware HDCP have been
enabled successfully, so let's add this back.
BUG=chrome-os-partner:56883
TEST=None
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
Reviewed-on: https://chromium-review.googlesource.com/403974
Reviewed-by: Sean Paul <seanpaul@google.com>
Change-Id: Icc52d4a83ac434e898be1190cf934ed8333e78bf
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Add new standard connector properties to track whether content protection
(ex: hdcp) is desired by userspace. There are two properties involved,
"Content Protection" and "Content Protection KSV".
The "Content Protection" property allows userspace to request protection
on a connector. Set "Desired" to enable, "Undesired" to disable.
The "Content Protection KSV" property reflects the current state of
protection. If the KSV is 0, the connection is not protected. Once the
driver has enabled protection, it will update the the value with the KSV
(or similarly unique identifier, if not using HDCP) of the first-hop
device (sink or repeater).
(am from https://patchwork.kernel.org/patch/5439871/)
BUG=chrome-os-partner:56883
TEST=Tested on kevin, ensured the sysfs file showed up, and
reflected the correct
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
Reviewed-on: https://chromium-review.googlesource.com/403973
Reviewed-by: Sean Paul <seanpaul@google.com>
Change-Id: I6bef13729f77de6e37d2da5e12fc69f810a2e286
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Provide the "hdcp_key" debug node in sysfs, so that userspace can pass
the legitimate HDCP key to driver.
For ATF security, we should transmit HDCP key data via smc argument one
by one.
Moreover, driver request one page SRAM space as share memory for HDCP
key transmission.
BUG=chrome-os-partner:56883
TEST=WITH HDCP KEY SITUATION:
1.flash encrypt key to vpd area, and reboot chromebook.
$ vpd -O; vpd -s hdcp_key_v1_4=something...; dump_vpd_log
--force
2.write key to DP driver.
$ grep hdcp_key /var/cache/vpd/full-v2.txt | cut -s -d \" -f 4 |
tr -d "\n" > /sys/devices/platform/fec00000.dp/hdcp_key
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
Reviewed-on: https://chromium-review.googlesource.com/403972
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Sean Paul <seanpaul@google.com>
Change-Id: I0b97dcf938623685b6938d8a40285fac3b1d5045
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
This goes all the way back to the original KMS commit aeons ago
commit f453ba0460
Author: Dave Airlie <airlied@redhat.com>
Date: Fri Nov 7 14:05:41 2008 -0800
DRM: add mode setting support
But it seems to be completely unused. Only i915 and nouveau even
register these properties, and the corresponding DDX don't even look
at them. Also the sysfs files are read-only, so not useful to
configure anything.
I suspect that this was added with the goal to have read-only access
to all properties in sysfs, but we never followed through on that.
Also, that should be done in a more generic fashion.
Since it would be real work to fix up the locking (with atomic we're
now chasing pointers when reading properties) and it seems unused lets
just nuke this all. It's easier. Of course we'll keep the properties
themselves, those are still exposed through the KMS ioctls.
Change-Id: I35a54c6850127287de0c3f82cafb084900d76b97
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1459331120-27864-5-git-send-email-daniel.vetter@ffwll.ch
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
(cherry picked from commit aa2e2996b1)
With atomic modesetting the hardware will be powered off when the
mode_set function is called. We should configure the hardware in the
enable function.
backport: merge output_mode change from Mark yao efd11cc8fa
("drm/rockchip: Correct vop out_mode configure")
Change-Id: Ic68911e7faa24b2e482448346585e3f7c19da1a6
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
(cherry picked from commit ef1844b7ed)
The clk_get_rate return 0 if something goes wrong, so it can never be
less then zero, the ret should be set a error code, otherwise the
cdn_dp_clk_enable will return 0 when it failed at clk_get_rate.
In addition, clk_get_rate() returns an "unsigned long", so use
"unsigned long" instead of "u32" is better.
Change-Id: I0da9a07b5b9fda5f1586e8179013739d47d7ea35
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: http://patchwork.freedesktop.org/patch/msgid/1488940077-22297-2-git-send-email-zyw@rock-chips.com
(cherry picked from commit a68b5bb670)
Sometimes the Dock is disconnected, but cdn_dp_encoder_disable is not
triggered by DRM. For example, unplug the Dock in console mode, and
re-plug it again, the cdn_dp_event_work will try to get the sink count
of Dock, since the DP is still active. But the Dock has been powered
down, it need re-power on, and wait for a while until it is ready to
DPCD communication.
Change-Id: I59c17a7ce41d5697b33195894eaf4bb49ac85171
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
(cherry picked from commit 13e0e20694)
We're trying to lock mutex when cdn-dp shutdown, so we need to make
sure the mutex is inited in cdn-dp's probe.
Change-Id: Id414cb9441dbaa245ef9899c7972b080fba44d6b
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Reviewed-by: Chris Zhong <zyw@rock-chips.com>
Signed-off-by: Chris Zhong <zyw@rock-chips.com>
(cherry picked from commit be0270e4d1)
Split DT source files to separate out android fireware specific DT
bindings.
Change-Id: I106afeff0485fa8346986693fb227e2c6e4913c2
Signed-off-by: Zhangbin Tong <zebulun.tong@rock-chips.com>
There are multiple devfreq events and they may be used simultaneously.
Change-Id: I6f4c8754d3bcf5c20215a0689eb843a8f617b7a6
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Make the function rockchip_dmcfreq_probe() clearer.
Change-Id: Ia752b57000be6fb8135a2576e4892fd489130461
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
as-master = <1>: will set ov9750 as master mode
as-master = <0>: will set ov9750 as slave mode
as-master inexistence: will set ov9750 as normal mode
Change-Id: Ibea5769be6c126b9365ed9333ac931d20ca20f2f
Signed-off-by: Lin Jinhan <troy.lin@rock-chips.com>
If the gpio IRQ type changes, it is possible to accidentally trigger
an interrupt, such as when the input is high, changed from level to
rise edge. For now, the best way to do this is to disable the INTEN
bit first, then configure the type to stagger this period of time.
Change-Id: I71351b9ed6f7920958c7451c2e51ab5f699875d1
Signed-off-by: David Wu <david.wu@rock-chips.com>
RK1808 SoCs support 2*A35, so add cpu1 node to support.
And add xin24m.
Change-Id: Iebac460c8eb55362e7093f2906f4041a69e581dc
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
This is needed to enable the AVB specific dm-verity error handler.
Change-Id: Ic367b266d0e39232a6303eb59c82b9b69fc1b9cc
Signed-off-by: Zhangbin Tong <zebulun.tong@rock-chips.com>
This is needed to enable the AVB specific dm-verity error handler.
Change-Id: I331ba1e6f459ec51ff8584cf1471ad05dd90f6db
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Since msleep is based on jiffies the panel could take longer
than expected. So use msleep for values greater than 20 msec
otherwise usleep_range.
Change-Id: Ib03c6e381b44a31dd57aeaaa3a88a459578de313
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Zram allows Linux to make more efficient use of RAM, since
the system can then hold more pages of memory in the compressed
swap than if the same amount of RAM had been used as application
memory or disk cache. This is particularly effective on machines
that do not have much ram space.
Enable:
echo 16M > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon /dev/zram0
More detial: Documentation/blockdev/zram.txt
Change-Id: I23954dbc7df79d4faac02cf7f393dbfc37858ee6
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
PVTM use "cpu-supply" as the name of regulator to get PVTM value to
select opp level, but old dts use "cpu0-supply" as the name of cpu,
so we need be compatible with the old regulator name of cpu.
Change-Id: Id6dbb0b4a85e6154b9be38ffb373e7eab7199781
Signed-off-by: Liang Chen <cl@rock-chips.com>
The latest Vmin test result on evb board is as the following.
/* KHz uV */
1296000 1250000
1200000 1200000
1008000 1075000
816000 975000
600000 850000
408000 850000
Each frequency should add 50000uV margin.
Change-Id: Icbe99d2a4d88466381fd418fb74a8b8e9cac7323
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Add devicetree bindings for Rockchip cru which found on
Rockchip SoCs.
Change-Id: I56e151b20f44c13b9f2c55e63860abef4cf586ad
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
The GRF values may be kept the previous status after hot reboot,
if the property 'rockchip,adc-grps-route' is not set, we need to
recover default the order of sdi/sdo for i2s2_8ch/i2s3_8ch/i2s1_2ch.
Change-Id: Ic35b96388aaeca0ed4e0efd4e6ae3de178f88b06
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>