ASoC: Intel: hdac_hdmi: add Icelake support#256
ASoC: Intel: hdac_hdmi: add Icelake support#256plbossart merged 1 commit intothesofproject:topic/sof-devfrom
Conversation
b9219e3 to
bc78fc6
Compare
sound/soc/codecs/hdac_hdmi.c
Outdated
There was a problem hiding this comment.
NID 2 is vendor node is very strange based on my old knowledge. Where do you find the information? I need to have a check.
There was a problem hiding this comment.
@libinyang I will send you the link of the spec.
Thanks Bard. After checking with SPEC, I think the HW registers are different from previous ones and the mapping are changed. The legacy HDA audio driver need changes. I will do it on the legacy driver later when I have time.
There was a problem hiding this comment.
I think we need to revisit this. This 0x2 NID is correct but not limited to ICL, so we should have the NID information defined in less-ICL specific terms, e.g. INTEL_VENDOR_NID_0x2 - same for GLK.
There was a problem hiding this comment.
@plbossart How about using magic number directly? The define is only used in the _dra_data struct and we can know it is a vendor nid from the field's name (.vendor_nid).
There was a problem hiding this comment.
we want to keep the info that this is an INTEL VENDOR thingy. This is lost if you use 0x2, people might assume it's a standard value instead of a vendor one. So yes while the define brings no value from a compilation perspective, it's semantically useful for the code reviews.
|
@plbossart @lgirdwood CI complains
But that is how the existing code does. So I was wondering should we fix all of these or just leave as it is? |
|
@bardliao I think we can change the alignment for glk and cnl together in a shot, add some comments about that if you feel it helpful for upstreaming. |
|
@keyonjie Actually, the upstreaming code has the same style. So I don't think that will be blocked by the reason. |
sound/soc/codecs/hdac_hdmi.c
Outdated
There was a problem hiding this comment.
can you comment here what you are searching for
sound/soc/codecs/hdac_hdmi.c
Outdated
There was a problem hiding this comment.
comment here, what is port_map ?
There was a problem hiding this comment.
i would move the static table just above this to help the reviewer connect the dots
sound/soc/codecs/hdac_hdmi.c
Outdated
There was a problem hiding this comment.
I wasn't able to figure out how those values were determined, can you share a private email on what parts of the hardware spec you are looking at?
plbossart
left a comment
There was a problem hiding this comment.
looks mostly good but we can make the patch cleaner and more self-explanatory - this will be needed to share upstream. Thanks!
sound/soc/codecs/hdac_hdmi.c
Outdated
There was a problem hiding this comment.
i would move the static table just above this to help the reviewer connect the dots
sound/soc/codecs/hdac_hdmi.c
Outdated
There was a problem hiding this comment.
I wasn't able to figure out how those values were determined, can you share a private email on what parts of the hardware spec you are looking at?
sound/soc/codecs/hdac_hdmi.c
Outdated
There was a problem hiding this comment.
I think we need to revisit this. This 0x2 NID is correct but not limited to ICL, so we should have the NID information defined in less-ICL specific terms, e.g. INTEL_VENDOR_NID_0x2 - same for GLK.
sound/soc/codecs/hdac_hdmi.c
Outdated
|
@bardliao don't worry about the checkpatch report, it's better to avoid changing the alignment in existing code already upstream. It's more for new code that I care. |
1a6d2fe to
68650a2
Compare
|
@plbossart @lgirdwood I just pushed a new version. Could you review it? |
68650a2 to
2c3e967
Compare
Add Icelake device id. Also, Icelake's pin2port mapping table is complicated. So we use a mapping table to do the pin2port mapping. Signed-off-by: Bard liao <bard.liao@intel.com>
|
@plbossart Sure. I will do it. |
Add various tests to check maximum number of supported programs being attached: # ./vmtest.sh -- ./test_progs -t tc_opts [...] ./test_progs -t tc_opts [ 1.185325] bpf_testmod: loading out-of-tree module taints kernel. [ 1.186826] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel [ 1.270123] tsc: Refined TSC clocksource calibration: 3407.988 MHz [ 1.272428] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns [ 1.276408] clocksource: Switched to clocksource tsc #252 tc_opts_after:OK #253 tc_opts_append:OK #254 tc_opts_basic:OK #255 tc_opts_before:OK #256 tc_opts_chain_classic:OK #257 tc_opts_chain_mixed:OK #258 tc_opts_delete_empty:OK #259 tc_opts_demixed:OK #260 tc_opts_detach:OK #261 tc_opts_detach_after:OK #262 tc_opts_detach_before:OK #263 tc_opts_dev_cleanup:OK #264 tc_opts_invalid:OK #265 tc_opts_max:OK <--- (new test) #266 tc_opts_mixed:OK #267 tc_opts_prepend:OK #268 tc_opts_replace:OK #269 tc_opts_revision:OK Summary: 18/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20230929204121.20305-2-daniel@iogearbox.net
Add a new test case which performs double query of the bpf_mprog through libbpf API, but also via raw bpf(2) syscall. This is testing to gather first the count and then in a subsequent probe the full information with the program array without clearing passed structs in between. # ./vmtest.sh -- ./test_progs -t tc_opts [...] ./test_progs -t tc_opts [ 1.398818] tsc: Refined TSC clocksource calibration: 3407.999 MHz [ 1.400263] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fd336761, max_idle_ns: 440795243819 ns [ 1.402734] clocksource: Switched to clocksource tsc [ 1.426639] bpf_testmod: loading out-of-tree module taints kernel. [ 1.428112] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel #252 tc_opts_after:OK #253 tc_opts_append:OK #254 tc_opts_basic:OK #255 tc_opts_before:OK #256 tc_opts_chain_classic:OK #257 tc_opts_chain_mixed:OK #258 tc_opts_delete_empty:OK #259 tc_opts_demixed:OK #260 tc_opts_detach:OK #261 tc_opts_detach_after:OK #262 tc_opts_detach_before:OK #263 tc_opts_dev_cleanup:OK #264 tc_opts_invalid:OK #265 tc_opts_max:OK #266 tc_opts_mixed:OK #267 tc_opts_prepend:OK #268 tc_opts_query:OK <--- (new test) #269 tc_opts_replace:OK #270 tc_opts_revision:OK Summary: 19/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/r/20231006220655.1653-4-daniel@iogearbox.net Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Add a new test case to query on an empty bpf_mprog and pass the revision directly into expected_revision for attachment to assert that this does succeed. ./test_progs -t tc_opts [ 1.406778] tsc: Refined TSC clocksource calibration: 3407.990 MHz [ 1.408863] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fcaf6eb0, max_idle_ns: 440795321766 ns [ 1.412419] clocksource: Switched to clocksource tsc [ 1.428671] bpf_testmod: loading out-of-tree module taints kernel. [ 1.430260] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel #252 tc_opts_after:OK #253 tc_opts_append:OK #254 tc_opts_basic:OK #255 tc_opts_before:OK #256 tc_opts_chain_classic:OK #257 tc_opts_chain_mixed:OK #258 tc_opts_delete_empty:OK #259 tc_opts_demixed:OK #260 tc_opts_detach:OK #261 tc_opts_detach_after:OK #262 tc_opts_detach_before:OK #263 tc_opts_dev_cleanup:OK #264 tc_opts_invalid:OK #265 tc_opts_max:OK #266 tc_opts_mixed:OK #267 tc_opts_prepend:OK #268 tc_opts_query:OK #269 tc_opts_query_attach:OK <--- (new test) #270 tc_opts_replace:OK #271 tc_opts_revision:OK Summary: 20/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/r/20231006220655.1653-6-daniel@iogearbox.net Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Add Icelake device id. Also, Icelake's pin2port mapping table is
complicated. So we use a mapping table to do the pin2port mapping.
Signed-off-by: Bard liao bard.liao@intel.com