diff options
| author | Hans Verkuil <hans.verkuil@cisco.com> | 2016-08-14 08:27:09 -0300 |
|---|---|---|
| committer | Ray Zhang <rayz@codeaurora.org> | 2017-05-25 11:22:07 +0800 |
| commit | bbb3e5fd19bbd3635f11703bd7331c2de1e1e452 (patch) | |
| tree | 973f41e3f6d08f7b7f8cd2dce536a1b738655a1e | |
| parent | a86a0e6978f6b14f73d14aa23edd6377194c8a0c (diff) | |
[media] cec: set unclaimed addresses to CEC_LOG_ADDR_INVALID
Up to 4 logical addresses can be claimed. Make sure that any
unclaimed logical addresses are set to CEC_LOG_ADDR_INVALID as
per the documentation.
Take special care in the unregistered case: when falling back to
unregistered num_log_addrs may be > 1, so mark those as invalid.
Change-Id: Ice29d220b658a942ddbec09afc89777178681904
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Git-commit: 0c1d61b0e4ed68d125b21fed375c38b6e3c2a658
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
| -rw-r--r-- | drivers/staging/media/cec/cec-adap.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/staging/media/cec/cec-adap.c b/drivers/staging/media/cec/cec-adap.c index 2458a6c87642..6cc7d7904446 100644 --- a/drivers/staging/media/cec/cec-adap.c +++ b/drivers/staging/media/cec/cec-adap.c @@ -1056,6 +1056,8 @@ configured: /* Fall back to unregistered */ las->log_addr[0] = CEC_LOG_ADDR_UNREGISTERED; las->log_addr_mask = 1 << las->log_addr[0]; + for (i = 1; i < las->num_log_addrs; i++) + las->log_addr[i] = CEC_LOG_ADDR_INVALID; } adap->is_configured = true; adap->is_configuring = false; @@ -1074,6 +1076,8 @@ configured: cec_report_features(adap, i); cec_report_phys_addr(adap, i); } + for (i = las->num_log_addrs; i < CEC_MAX_LOG_ADDRS; i++) + las->log_addr[i] = CEC_LOG_ADDR_INVALID; mutex_lock(&adap->lock); adap->kthread_config = NULL; mutex_unlock(&adap->lock); |
