diff --git a/core/linux-gru/0001-Input-atmel_mxt_ts-Use-KERN_DEBUG-loglevel-for-statu.patch b/core/linux-gru/0001-Input-atmel_mxt_ts-Use-KERN_DEBUG-loglevel-for-statu.patch index 1c27885fe..cbe4abb58 100644 --- a/core/linux-gru/0001-Input-atmel_mxt_ts-Use-KERN_DEBUG-loglevel-for-statu.patch +++ b/core/linux-gru/0001-Input-atmel_mxt_ts-Use-KERN_DEBUG-loglevel-for-statu.patch @@ -1,7 +1,7 @@ -From b28b17ba9afa1d09c0d9e15366b68fac8801fed6 Mon Sep 17 00:00:00 2001 +From 886b1c7c3588f365127e7119885bfd2b7fc1032d Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Wed, 15 Feb 2017 18:32:55 -0700 -Subject: [PATCH 1/2] Input: atmel_mxt_ts: Use KERN_DEBUG loglevel for status +Subject: [PATCH 1/4] Input: atmel_mxt_ts: Use KERN_DEBUG loglevel for status message Signed-off-by: Kevin Mihelich @@ -23,5 +23,5 @@ index 6a13f44e4cd8..4ee0679c5516 100644 if (status == 0x00) complete(&data->auto_cal_completion); -- -2.11.1 +2.12.1 diff --git a/core/linux-gru/0002-Revert-CHROMIUM-drm-rockchip-Add-PSR-residency-debug.patch b/core/linux-gru/0002-Revert-CHROMIUM-drm-rockchip-Add-PSR-residency-debug.patch new file mode 100644 index 000000000..b43f33fb8 --- /dev/null +++ b/core/linux-gru/0002-Revert-CHROMIUM-drm-rockchip-Add-PSR-residency-debug.patch @@ -0,0 +1,89 @@ +From e070341ce4eed1ccaab532704f42a1026aaecd1a Mon Sep 17 00:00:00 2001 +From: Kevin Mihelich +Date: Wed, 5 Apr 2017 22:55:05 -0600 +Subject: [PATCH 2/4] Revert "CHROMIUM: drm: rockchip: Add PSR residency debug + entry" + +This reverts commit 9f416401b95d3f1dee2ffb12e0e27339fce3ce1b. +--- + drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 21 +-------------------- + 1 file changed, 1 insertion(+), 20 deletions(-) + +diff --git a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c +index f2766cafd0b4..acd31ea3825d 100644 +--- a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c ++++ b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c +@@ -13,7 +13,6 @@ + */ + + #include +-#include + #include + #include + #include +@@ -68,17 +67,12 @@ struct rockchip_dp_device { + + struct analogix_dp_device *adp; + struct analogix_dp_plat_data plat_data; +- +- struct dentry *debugfs_psr; +- u64 psr_active_ms; +- ktime_t psr_start_time; + }; + + static int analogix_dp_psr_set(struct drm_encoder *encoder, bool enabled) + { + struct rockchip_dp_device *dp = to_dp(encoder); + struct drm_crtc *crtc = dp->encoder.crtc; +- s64 delta_ms; + int vact_end; + int ret; + +@@ -103,7 +97,6 @@ static int analogix_dp_psr_set(struct drm_encoder *encoder, bool enabled) + return ret; + } + rockchip_drm_set_win_enabled(crtc, false); +- dp->psr_start_time = ktime_get(); + } else { + rockchip_drm_set_win_enabled(crtc, true); + ret = analogix_dp_disable_psr(dp->adp); +@@ -111,9 +104,6 @@ static int analogix_dp_psr_set(struct drm_encoder *encoder, bool enabled) + dev_err(dp->dev, "failed to disable psr %d\n", ret); + return ret; + } +- delta_ms = ktime_ms_delta(ktime_get(), dp->psr_start_time); +- if (!WARN_ON(delta_ms < 0)) +- dp->psr_active_ms += delta_ms; + } + return 0; + } +@@ -397,17 +387,9 @@ static int rockchip_dp_bind(struct device *dev, struct device *master, + dp->plat_data.power_off = rockchip_dp_powerdown; + dp->plat_data.get_modes = rockchip_dp_get_modes; + +- dp->debugfs_psr = debugfs_create_u64("psr_active_ms", S_IRUGO, +- drm_dev->primary->debugfs_root, +- &dp->psr_active_ms); +- if (IS_ERR(dp->debugfs_psr)) +- return PTR_ERR(dp->debugfs_psr); +- + dp->adp = analogix_dp_bind(dev, dp->drm_dev, &dp->plat_data); +- if (IS_ERR(dp->adp)) { +- debugfs_remove(dp->debugfs_psr); ++ if (IS_ERR(dp->adp)) + return PTR_ERR(dp->adp); +- } + + rockchip_drm_psr_register(&dp->encoder, analogix_dp_psr_set); + +@@ -422,7 +404,6 @@ static void rockchip_dp_unbind(struct device *dev, struct device *master, + rockchip_drm_psr_unregister(&dp->encoder); + + analogix_dp_unbind(dp->adp); +- debugfs_remove(dp->debugfs_psr); + + dp->adp = ERR_PTR(-ENODEV); + } +-- +2.12.1 + diff --git a/core/linux-gru/0002-temporary-hack-to-fix-console-output.patch b/core/linux-gru/0003-temporary-hack-to-fix-console-output.patch similarity index 85% rename from core/linux-gru/0002-temporary-hack-to-fix-console-output.patch rename to core/linux-gru/0003-temporary-hack-to-fix-console-output.patch index 17b9fb220..32d4cff1a 100644 --- a/core/linux-gru/0002-temporary-hack-to-fix-console-output.patch +++ b/core/linux-gru/0003-temporary-hack-to-fix-console-output.patch @@ -1,14 +1,14 @@ -From 1318b64d6b132e2d8271c4afa1443dd9d29ac657 Mon Sep 17 00:00:00 2001 +From 0b864ff26059532ec58e430f7cd6e011f9ca353e Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Sun, 26 Feb 2017 19:14:10 -0700 -Subject: [PATCH 2/2] temporary hack to fix console output +Subject: [PATCH 3/4] temporary hack to fix console output --- drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c -index 784bea8a10fa..51bc27102daa 100644 +index acd31ea3825d..383129f82093 100644 --- a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c +++ b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c @@ -90,20 +90,6 @@ static int analogix_dp_psr_set(struct drm_encoder *encoder, bool enabled) @@ -33,5 +33,5 @@ index 784bea8a10fa..51bc27102daa 100644 return 0; } -- -2.11.1 +2.12.1 diff --git a/core/linux-gru/0004-Revert-CHROMIUM-drm-rockchip-cdn-dp-add-HDCP-1.4-sup.patch b/core/linux-gru/0004-Revert-CHROMIUM-drm-rockchip-cdn-dp-add-HDCP-1.4-sup.patch new file mode 100644 index 000000000..e0cf355d4 --- /dev/null +++ b/core/linux-gru/0004-Revert-CHROMIUM-drm-rockchip-cdn-dp-add-HDCP-1.4-sup.patch @@ -0,0 +1,488 @@ +From 8cb2f6088d8d6076d9ff0fd7b2a8639080887cae Mon Sep 17 00:00:00 2001 +From: Kevin Mihelich +Date: Thu, 6 Apr 2017 00:05:00 -0600 +Subject: [PATCH 4/4] Revert "CHROMIUM: drm/rockchip: cdn-dp: add HDCP 1.4 + support" + +This reverts commit 0a2145692ed04ff3aab64c0e3ef6d230caa99105. +--- + drivers/gpu/drm/rockchip/cdn-dp-core.c | 198 --------------------------------- + drivers/gpu/drm/rockchip/cdn-dp-core.h | 1 - + drivers/gpu/drm/rockchip/cdn-dp-reg.c | 112 ------------------- + drivers/gpu/drm/rockchip/cdn-dp-reg.h | 35 ------ + 4 files changed, 346 deletions(-) + +diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c +index c951d2280866..48cbad5963b5 100644 +--- a/drivers/gpu/drm/rockchip/cdn-dp-core.c ++++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c +@@ -26,7 +26,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -39,15 +38,10 @@ + #include "cdn-dp-reg.h" + #include "rockchip_drm_vop.h" + +-#define HDCP_RETRY_INTERVAL_MS 100 +-#define HDCP_EVENT_TIMEOUT_MS 500 +-#define HDCP_AUTHENTICATE_DELAY_MS 100 +- + #define HDCP_KEY_DATA_START_TRANSFER 0 + #define HDCP_KEY_DATA_START_DECRYPT 1 + + #define RK_SIP_HDCP_CONTROL 0x82000009 +-#define RK_SIP_HDCP_KEY_DATA64 0xC200000A + + #define connector_to_dp(c) \ + container_of(c, struct cdn_dp_device, connector) +@@ -196,50 +190,6 @@ static int cdn_dp_get_sink_count(struct cdn_dp_device *dp, u8 *sink_count) + return 0; + } + +-static int cdn_dp_start_hdcp1x_auth(struct cdn_dp_device *dp) +-{ +- int ret; +- struct arm_smccc_res res; +- uint64_t *buf; +- +- mutex_lock(&dp->lock); +- if (!dp->active) { +- dev_err(dp->dev, "firmware is not active\n"); +- goto out; +- } +- +- arm_smccc_smc(RK_SIP_HDCP_CONTROL, HDCP_KEY_DATA_START_TRANSFER, +- 0, 0, 0, 0, 0, 0, &res); +- +- buf = (uint64_t *)&dp->key; +- +- for (; !res.a0 && (u8 *)buf - (u8 *)&dp->key < sizeof(dp->key); +- buf += 6) +- arm_smccc_smc(RK_SIP_HDCP_KEY_DATA64, buf[0], buf[1], +- buf[2], buf[3], buf[4], buf[5], 0, &res); +- +- if (res.a0) { +- dev_err(dp->dev, "send hdcp keys failed: %ld\n", res.a0); +- ret = -EIO; +- goto out; +- } +- arm_smccc_smc(RK_SIP_HDCP_CONTROL, HDCP_KEY_DATA_START_DECRYPT, +- 0, 0, 0, 0, 0, 0, &res); +- +- ret = cdn_dp_hdcp_tx_configuration(dp, HDCP_TX_1, true); +- if (ret) { +- dev_err(dp->dev, "start hdcp authentication failed: %d\n", ret); +- goto out; +- } +- +- schedule_delayed_work(&dp->hdcp_event_work, +- msecs_to_jiffies(HDCP_AUTHENTICATE_DELAY_MS)); +- +-out: +- mutex_unlock(&dp->lock); +- return ret; +-} +- + static struct cdn_dp_port *cdn_dp_connected_port(struct cdn_dp_device *dp) + { + struct cdn_dp_port *port; +@@ -307,71 +257,12 @@ static void cdn_dp_connector_destroy(struct drm_connector *connector) + drm_connector_cleanup(connector); + } + +-static int cdn_dp_set_content_protection(struct cdn_dp_device *dp, +- struct drm_mode_object *obj, +- struct drm_property *property, +- uint64_t val) +-{ +- int ret; +- +- switch (val) { +- case DRM_MODE_CONTENT_PROTECTION_UNDESIRED: +- ret = cdn_dp_hdcp_tx_configuration(dp, HDCP_TX_1, false); +- break; +- +- case DRM_MODE_CONTENT_PROTECTION_DESIRED: +- ret = cdn_dp_start_hdcp1x_auth(dp); +- break; +- +- case DRM_MODE_CONTENT_PROTECTION_ENABLED: +- ret = -EINVAL; +- } +- return ret; +-} +- +-static int cdn_dp_connector_set_property(struct drm_connector *connector, +- struct drm_property *property, +- uint64_t val) +-{ +- struct cdn_dp_device *dp = connector_to_dp(connector); +- int ret = 0; +- +- if (strcmp(property->name, "Content Protection") == 0) +- ret = cdn_dp_set_content_protection(dp, &connector->base, +- property, val); +- +- return ret; +-} +- +-static int cdn_dp_connector_atomic_get_property( +- struct drm_connector *connector, +- const struct drm_connector_state *state, +- struct drm_property *property, +- uint64_t *val) +-{ +- struct drm_mode_config *mc = &connector->dev->mode_config; +- int i; +- +- if (property == mc->content_protection_property) { +- for (i = 0; i < connector->properties.count; i++) { +- if (connector->properties.properties[i] == property) { +- *val = connector->properties.values[i]; +- return 0; +- } +- } +- } +- +- return -EINVAL; +-} +- + static struct drm_connector_funcs cdn_dp_atomic_connector_funcs = { + .dpms = drm_atomic_helper_connector_dpms, + .detect = cdn_dp_connector_detect, + .destroy = cdn_dp_connector_destroy, + .fill_modes = drm_helper_probe_single_connector_modes, + .reset = drm_atomic_helper_connector_reset, +- .set_property = cdn_dp_connector_set_property, +- .atomic_get_property = cdn_dp_connector_atomic_get_property, + .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, + .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, + }; +@@ -1148,88 +1039,6 @@ static int cdn_dp_pd_event(struct notifier_block *nb, + return NOTIFY_DONE; + } + +-static int cdn_dp_set_hdcp_drm_property(struct cdn_dp_device *dp, uint64_t val) +-{ +- struct drm_connector *connector = &dp->connector; +- struct drm_mode_config *mc = &connector->dev->mode_config; +- +- return drm_object_property_set_value(&connector->base, +- mc->content_protection_property, +- val); +-} +- +-static bool cdn_dp_hdcp_authorize(struct cdn_dp_device *dp) +-{ +- bool auth_done = false; +- u16 tx_status; +- u32 sw_event; +- int ret; +- +- mutex_lock(&dp->lock); +- +- /* +- * HDCP authentication might cause the disconnect hpd event, just +- * stop the hdcp event SM. +- */ +- if (!dp->connected) { +- auth_done = true; +- goto out; +- } +- +- sw_event = cdn_dp_get_event(dp); +- +- if (sw_event & HDCP_TX_STATUS_EVENT) { +- auth_done = true; +- +- ret = cdn_dp_hdcp_tx_status_req(dp, &tx_status); +- if (ret) +- goto out; +- if (HDCP_TX_STATUS_ERROR(tx_status)) { +- dev_err(dp->dev, "hdcp status error: %x\n", +- HDCP_TX_STATUS_ERROR(tx_status)); +- goto out; +- } else if (tx_status & HDCP_TX_STATUS_AUTHENTICATED) { +- cdn_dp_set_hdcp_drm_property(dp, +- DRM_MODE_CONTENT_PROTECTION_ENABLED); +- goto out; +- } else { +- auth_done = false; +- } +- } +- +- if (sw_event & HDCP_TX_IS_RECEIVER_ID_VALID_EVENT) { +- ret = cdn_dp_hdcp_tx_is_receiver_id_valid_req(dp); +- if (ret) { +- auth_done = true; +- goto out; +- } +- ret = cdn_dp_hdcp_tx_respond_id_valid(dp, true); +- if (ret) +- auth_done = true; +- } +- +-out: +- mutex_unlock(&dp->lock); +- +- return auth_done; +-} +- +-static void cdn_dp_hdcp_event_work(struct work_struct *work) +-{ +- struct cdn_dp_device *dp = container_of(work, struct cdn_dp_device, +- hdcp_event_work.work); +- unsigned long timeout = jiffies + +- msecs_to_jiffies(HDCP_EVENT_TIMEOUT_MS); +- +- while (time_before(jiffies, timeout)) { +- if (cdn_dp_hdcp_authorize(dp)) +- return; +- msleep(HDCP_RETRY_INTERVAL_MS); +- } +- +- dev_err(dp->dev, "Failed to authorize hdcp\n"); +-} +- + static int cdn_dp_bind(struct device *dev, struct device *master, void *data) + { + struct cdn_dp_device *dp = dev_get_drvdata(dev); +@@ -1237,7 +1046,6 @@ static int cdn_dp_bind(struct device *dev, struct device *master, void *data) + struct drm_connector *connector; + struct cdn_dp_port *port; + struct drm_device *drm_dev = data; +- struct drm_mode_config *mode_config; + int ret, i; + + ret = cdn_dp_parse_dt(dp); +@@ -1250,7 +1058,6 @@ static int cdn_dp_bind(struct device *dev, struct device *master, void *data) + dp->active_port = -1; + + INIT_WORK(&dp->event_work, cdn_dp_pd_event_work); +- INIT_DELAYED_WORK(&dp->hdcp_event_work, cdn_dp_hdcp_event_work); + + encoder = &dp->encoder; + +@@ -1307,11 +1114,6 @@ static int cdn_dp_bind(struct device *dev, struct device *master, void *data) + + schedule_work(&dp->event_work); + +- mode_config = &connector->dev->mode_config; +- drm_object_attach_property(&connector->base, +- mode_config->content_protection_property, +- DRM_MODE_CONTENT_PROTECTION_UNDESIRED); +- + return 0; + + err_free_connector: +diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.h b/drivers/gpu/drm/rockchip/cdn-dp-core.h +index bd9f31183241..53778c769840 100644 +--- a/drivers/gpu/drm/rockchip/cdn-dp-core.h ++++ b/drivers/gpu/drm/rockchip/cdn-dp-core.h +@@ -127,6 +127,5 @@ struct cdn_dp_device { + bool sink_has_audio; + + struct cdn_dp_hdcp_key_1x key; +- struct delayed_work hdcp_event_work; + }; + #endif /* _CDN_DP_CORE_H */ +diff --git a/drivers/gpu/drm/rockchip/cdn-dp-reg.c b/drivers/gpu/drm/rockchip/cdn-dp-reg.c +index 63b35796fe26..39581986e722 100644 +--- a/drivers/gpu/drm/rockchip/cdn-dp-reg.c ++++ b/drivers/gpu/drm/rockchip/cdn-dp-reg.c +@@ -12,7 +12,6 @@ + * GNU General Public License for more details. + */ + +-#include + #include + #include + #include +@@ -978,114 +977,3 @@ err_audio_config: + DRM_DEV_ERROR(dp->dev, "audio config failed: %d\n", ret); + return ret; + } +- +-int cdn_dp_hdcp_tx_configuration(struct cdn_dp_device *dp, int tx_mode, +- bool active) +-{ +- u8 msg; +- +- msg = tx_mode; +- if (active) +- msg |= HDCP_TX_ACTIVATE; +- +- return cdn_dp_mailbox_send(dp, MB_MODULE_ID_HDCP_TX, +- HDCP_TX_CONFIGURATION, sizeof(msg), &msg); +-} +- +-int cdn_dp_hdcp_tx_status_req(struct cdn_dp_device *dp, uint16_t *tx_status) +-{ +- u8 status[5]; +- int ret; +- +- ret = cdn_dp_mailbox_send(dp, MB_MODULE_ID_HDCP_TX, +- HDCP_TX_STATUS_CHANGE, 0, NULL); +- if (ret) +- goto err_hdcp_tx_status_rq; +- +- ret = cdn_dp_mailbox_validate_receive(dp, MB_MODULE_ID_HDCP_TX, +- HDCP_TX_STATUS_CHANGE, +- sizeof(status)); +- if (ret) +- goto err_hdcp_tx_status_rq; +- +- ret = cdn_dp_mailbox_read_receive(dp, status, sizeof(status)); +- if (ret) +- goto err_hdcp_tx_status_rq; +- +- *tx_status = status[0] << 8 | status[1]; +- +-err_hdcp_tx_status_rq: +- if (ret) +- DRM_DEV_ERROR(dp->dev, "hdcp tx status failed: %d\n", ret); +- return ret; +-} +- +-int cdn_dp_hdcp_tx_is_receiver_id_valid_req(struct cdn_dp_device *dp) +-{ +- int ret; +- u32 mbox_size, i; +- u8 header[4], *resp; +- +- ret = cdn_dp_mailbox_send(dp, MB_MODULE_ID_HDCP_TX, +- HDCP_TX_IS_RECEIVER_ID_VALID, +- 0, NULL); +- if (ret) +- goto err_hdcp_tx_is_receiver_id_valid_req; +- +- /* +- * The size of HDCP_TX_IS_RECEIVER_ID_VALID_RESP is variable, which +- * is dependent on HDCP device type. It will response receiver ID +- * list if the device is a repeater. +- * So we need to distinguish the size. +- */ +- for (i = 0; i < 4; i++) { +- ret = cdn_dp_mailbox_read(dp); +- if (ret < 0) +- goto err_hdcp_tx_is_receiver_id_valid_req; +- +- header[i] = ret; +- } +- +- mbox_size = (header[2] << 8) | header[3]; +- +- if (header[0] != HDCP_TX_IS_RECEIVER_ID_VALID || +- header[1] != MB_MODULE_ID_HDCP_TX || +- !IS_HDCP_TX_RECEIVER_ID_VALID_RESP_SIZE_VALID(mbox_size)) { +- ret = -EINVAL; +- for (i = 0; i < mbox_size; i++) +- if (cdn_dp_mailbox_read(dp) < 0) +- break; +- +- goto err_hdcp_tx_is_receiver_id_valid_req; +- } +- +- resp = kzalloc(mbox_size, GFP_KERNEL); +- if (IS_ERR(resp) || IS_ERR_OR_NULL(resp)) { +- ret = -ENOMEM; +- goto err_hdcp_tx_is_receiver_id_valid_req; +- } +- +- ret = cdn_dp_mailbox_read_receive(dp, resp, mbox_size); +- +- /* TODO judge the all receivers are in revocation list. */ +- kfree(resp); +- +-err_hdcp_tx_is_receiver_id_valid_req: +- if (ret) +- DRM_DEV_ERROR(dp->dev, +- "hdcp receivers id verification failed: %d\n", +- ret); +- return ret; +-} +- +-int cdn_dp_hdcp_tx_respond_id_valid(struct cdn_dp_device *dp, bool valid) +-{ +- u8 msg = 0; +- +- if (valid) +- msg = 0x01; +- return cdn_dp_mailbox_send(dp, MB_MODULE_ID_HDCP_TX, +- HDCP_TX_RESPOND_RECEIVER_ID_VALID, +- sizeof(msg), &msg); +-} +- +diff --git a/drivers/gpu/drm/rockchip/cdn-dp-reg.h b/drivers/gpu/drm/rockchip/cdn-dp-reg.h +index d8935c0bcf87..a295b899450c 100644 +--- a/drivers/gpu/drm/rockchip/cdn-dp-reg.h ++++ b/drivers/gpu/drm/rockchip/cdn-dp-reg.h +@@ -329,22 +329,6 @@ + #define GENERAL_BUS_SETTINGS 0x03 + #define GENERAL_TEST_ACCESS 0x04 + +-/* hdcp opcode */ +-#define HDCP_TX_CONFIGURATION 0x00 +-#define HDCP2_TX_SET_PUBLIC_KEY_PARAMS 0x01 +-#define HDCP2_TX_SET_DEBUG_RANDOM_NUMBERS 0x02 +-#define HDCP2_TX_RESPOND_KM 0x03 +-#define HDCP1_TX_SEND_KEYS 0x04 +-#define HDCP1_TX_SEND_RANDOM_AN 0x05 +-#define HDCP_TX_STATUS_CHANGE 0x06 +-#define HDCP2_TX_IS_KM_STORED 0x07 +-#define HDCP2_TX_STORE_KM 0x08 +-#define HDCP_TX_IS_RECEIVER_ID_VALID 0x09 +-#define HDCP_TX_RESPOND_RECEIVER_ID_VALID 0x0a +- +-#define IS_HDCP_TX_RECEIVER_ID_VALID_RESP_SIZE_VALID(x) \ +- (((((x) - 2) % 5) == 0) || ((((x) - 4) % 5) == 0)) +- + #define DPTX_SET_POWER_MNG 0x00 + #define DPTX_SET_HOST_CAPABILITIES 0x01 + #define DPTX_GET_EDID 0x02 +@@ -411,14 +395,6 @@ + #define HDCP2_TX_STORE_KM_EVENT BIT(6) + #define HDCP_TX_IS_RECEIVER_ID_VALID_EVENT BIT(7) + +-#define HDCP_TX_ACTIVATE BIT(2) +- +-#define HDCP_TX_STATUS_AUTHENTICATED BIT(0) +-#define HDCP_TX_STATUS_RECEIVER_IS_REPEATER BIT(1) +-#define HDCP_TX_STATUS_RX_HDCP1 (0x01 << 2) +-#define HDCP_TX_STATUS_RX_HDCP2 (0x02 << 2) +-#define HDCP_TX_STATUS_ERROR(x) (((x) >> 5) & 0xf) +- + #define TU_SIZE 30 + #define CDN_DP_MAX_LINK_RATE DP_LINK_BW_5_4 + +@@ -484,12 +460,6 @@ enum vic_bt_type { + BT_709 = 0x1, + }; + +-enum HDCP_TX_SUPPORT { +- HDCP_TX_2, +- HDCP_TX_1, +- HDCP_TX_BOTH, +-}; +- + void cdn_dp_clock_reset(struct cdn_dp_device *dp); + + void cdn_dp_set_fw_clk(struct cdn_dp_device *dp, u32 clk); +@@ -510,9 +480,4 @@ int cdn_dp_config_video(struct cdn_dp_device *dp); + int cdn_dp_audio_stop(struct cdn_dp_device *dp, struct audio_info *audio); + int cdn_dp_audio_mute(struct cdn_dp_device *dp, bool enable); + int cdn_dp_audio_config(struct cdn_dp_device *dp, struct audio_info *audio); +-int cdn_dp_hdcp_tx_configuration(struct cdn_dp_device *dp, int tx_mode, +- bool active); +-int cdn_dp_hdcp_tx_status_req(struct cdn_dp_device *dp, uint16_t *tx_status); +-int cdn_dp_hdcp_tx_is_receiver_id_valid_req(struct cdn_dp_device *dp); +-int cdn_dp_hdcp_tx_respond_id_valid(struct cdn_dp_device *dp, bool valid); + #endif /* _CDN_DP_REG_H */ +-- +2.12.1 + diff --git a/core/linux-gru/PKGBUILD b/core/linux-gru/PKGBUILD index 870b48098..ff2d0ecd0 100644 --- a/core/linux-gru/PKGBUILD +++ b/core/linux-gru/PKGBUILD @@ -7,8 +7,8 @@ pkgbase=linux-gru _kernelname=${pkgbase#linux} _desc="Gru Chromebooks" pkgver=4.4.52 -pkgrel=2 -_commit=22201df26250dfd6cf647b984f259e6c4c6649b8 +pkgrel=3 +_commit=5a4b233ec6c1ca4291b3bcd2372e57b2b932738e arch=('aarch64') url="https://chromium.googlesource.com/chromiumos/third_party/kernel/+/chromeos-4.4" license=('GPL2') @@ -16,22 +16,28 @@ makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'git' 'uboot-tools' ' options=('!strip') source=("https://chromium.googlesource.com/chromiumos/third_party/kernel/+archive/${_commit}.tar.gz" '0001-Input-atmel_mxt_ts-Use-KERN_DEBUG-loglevel-for-statu.patch' - '0002-temporary-hack-to-fix-console-output.patch' + '0002-Revert-CHROMIUM-drm-rockchip-Add-PSR-residency-debug.patch' + '0003-temporary-hack-to-fix-console-output.patch' + '0004-Revert-CHROMIUM-drm-rockchip-cdn-dp-add-HDCP-1.4-sup.patch' 'config' 'kernel.its' 'kernel.keyblock' 'kernel_data_key.vbprivk') -md5sums=('9109e451b830b08af6453f6bb5355c5f' - 'a2b9f09a8701abce798f2b4854631e47' - '58f5619988f7b4253d618586c24bf085' - '1bd46f0bec891ea125b5c88a8c60c8a7' +md5sums=('e5459dbcd0197b41d654166ee9966df7' + 'a7fc13e2f5b0a3a4252e0d5c41a6ed69' + '65353ad970d088e5d778c8dcf506ee30' + '4c7730ef38df0d5e688e4fb10220489b' + 'a2d7572833eebdd2d36ef0f28dabf3e6' + 'ac126814e05a91a7456856cd9b1e8733' 'ded019b1c1e32c53b98e602f46ea1ba0' '61c5ff73c136ed07a7aadbf58db3d96a' '584777ae88bce2c5659960151b64c7d8') prepare() { git apply 0001-Input-atmel_mxt_ts-Use-KERN_DEBUG-loglevel-for-statu.patch - git apply 0002-temporary-hack-to-fix-console-output.patch + git apply 0002-Revert-CHROMIUM-drm-rockchip-Add-PSR-residency-debug.patch + git apply 0003-temporary-hack-to-fix-console-output.patch + git apply 0004-Revert-CHROMIUM-drm-rockchip-cdn-dp-add-HDCP-1.4-sup.patch cp config .config diff --git a/core/linux-gru/config b/core/linux-gru/config index 859642c6c..89381441d 100644 --- a/core/linux-gru/config +++ b/core/linux-gru/config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 4.4.52-2 Kernel Configuration +# Linux/arm64 4.4.52-3 Kernel Configuration # CONFIG_ARM64=y CONFIG_64BIT=y @@ -1930,7 +1930,6 @@ CONFIG_WLAN_VENDOR_INTEL=y # CONFIG_IWL4965 is not set # CONFIG_IWL3945 is not set # CONFIG_IWLWIFI is not set -# CONFIG_IWL7000 is not set CONFIG_WLAN_VENDOR_INTERSIL=y CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y