Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow DSC for DCP #272

Closed
wants to merge 912 commits into from
Closed
Changes from 5 commits
Commits
Show all changes
912 commits
Select commit Hold shift + click to select a range
7daa50b
wifi: brcmfmac: Handle watchdog properly in newer cores
marcan Oct 3, 2023
d102896
wifi: brcmfmac: pcie: Access pcie core registers via dedicated window
marcan Oct 3, 2023
5be76c7
wifi: brcmfmac: pcie: Initialize IRQs before firmware boot
marcan Oct 3, 2023
91f16aa
wifi: brcmfmac: Do not set reset vector when signatures are in use
marcan Oct 3, 2023
3d767c8
wifi: brcmfmac: Mask all IRQs before starting firmware
marcan Oct 3, 2023
423b8a4
wifi: brcmfmac: Add support for SCAN_V3
marcan Oct 3, 2023
50c3005
wifi: brcmfmac: Implement event_msgs_ext
marcan Oct 4, 2023
5aa1db0
wifi: brcmfmac: Support bss_info up to v112
marcan Oct 4, 2023
d4249d7
wifi: brcmfmac: Extend brcmf_wsec_pmk_le
marcan Oct 4, 2023
1a6a955
wifi: brcmfmac: Add BCM4388 support
marcan Oct 2, 2023
33d6892
brcmfmac: Fix AP mode
pblass Sep 3, 2023
fbda529
[brcmfmac] Finish firmware mem map, fix heap start calculation bug.
dberlin Oct 24, 2023
c183ece
[brcmfmac] Add support for encoding/decoding 6g chanspecs
dberlin Oct 14, 2023
4c41195
[brcmfmac] Dynamically configure VHT settings to match firmware
dberlin Oct 9, 2023
b993e55
[brcmfmac] Compute number of available antennas and set it in wiphy s…
dberlin Oct 9, 2023
bb69f62
[brcmfmac] Support GCMP cipher suite, used by WPA3.
dberlin Oct 10, 2023
61db7d5
[brcmfmac] Don't issue wrong insufficient headroom warning
dberlin Oct 15, 2023
07aa8d0
[brcmfmac] Support high power/low power/etc scan flags
dberlin Oct 18, 2023
0bb189b
[brcmfmac] Add support for 6G bands and HE
dberlin Oct 15, 2023
db18333
[brcmfmac] Fix regulatory domain handling to reset bands properly
dberlin Oct 19, 2023
474500e
fixup! fix FWIL definition to use SSID length constant
dberlin Nov 12, 2023
25fc29b
fixup! define missing event message extension
dberlin Nov 12, 2023
790f0f3
[brcmfmac] Structurize PNF scan and add support for latest version
dberlin Nov 12, 2023
ab266df
[brcmfmac] Structurize scan parameter handling
dberlin Oct 22, 2023
55fdad1
[brcmfmac] Support new join parameter structure versions
marcan Oct 4, 2023
9a9d12e
[brcmfmac] Let feature attachment fail, and fail if we can't
dberlin Oct 31, 2023
a349ce5
[brcmfmac] Add support for more auth suites in roaming offload
dberlin Oct 18, 2023
38b6909
[brcmfmac] Set chanspec during join.
dberlin Oct 29, 2023
51e2312
[brcmfmac] Add support for more rate info in station dumps
dberlin Oct 31, 2023
52a7deb
drm/apple: Add missing sound Kconfig dependencies
asahilina Nov 22, 2023
75d2274
drm: apple: HACK: Do not delete piodma platform device
jannau Nov 20, 2023
f793a67
drm: apple: afk: Update read pointer before processing message
jannau Nov 6, 2023
5c94a14
drm: apple: Implement D592 callback
jannau Nov 19, 2023
93070a0
drm: apple: Keep information at which swap_id fb are still referenced
jannau Nov 19, 2023
51bd031
Revert "drm: apple: iomfb: Do not match/create PMU service for dcpext"
jannau Nov 20, 2023
86f1bfc
drm: apple: dptx: Implement APCALL_DEACTIVATE and reset the phy
jannau Nov 20, 2023
a9a37de
drm: apple: Disconnect dptx When the CRTC is powered down
jannau Nov 20, 2023
b28bc9f
drm: apple: dptx: Wait for completion of dptx_connect.
jannau Nov 21, 2023
b071ee5
drm: apple: HPD: Only act on connect IRQs
jannau Nov 21, 2023
ddd996d
drm: apple: iomfb: Improve hotplug related logging
jannau Nov 21, 2023
99d7bb8
drm: apple: Extract modeset crtc's atomic_flush()
jannau Nov 22, 2023
0d53d6a
drm: apple: dptx: Log connect/disconnect calls
jannau Nov 22, 2023
8a3bd9a
phy: apple: atc: support mode switches in atcphy_dpphy_set_mode()
jannau Nov 20, 2023
4931e8e
fixup! phy: apple: Add DP TX phy driver
jannau Nov 20, 2023
a71782f
rust: types: Add Opaque::zeroed()
asahilina May 27, 2023
bef75c8
rust: Use absolute paths to build Rust objects
asahilina May 27, 2023
161d497
rust: kernel: Add simple siphash abstraction
asahilina May 27, 2023
487dd2d
rust: sync: Add dummy LockClassKey implementation for !CONFIG_LOCKDEP
asahilina May 27, 2023
0f6debb
rust: sync: Replace static LockClassKey refs with a pointer wrapper
asahilina May 27, 2023
238b213
rust: sync: Implement dynamic lockdep class creation
asahilina May 27, 2023
ac703a3
rust: sync: Classless Lock::new() and pin_init()
asahilina May 27, 2023
7a699b0
rust: init: Update documentation for new mutex init style
asahilina May 27, 2023
247b218
rust: sync: Add LockdepMap abstraction
asahilina May 27, 2023
373a2e0
rust: sync: arc: Add lockdep integration
asahilina May 27, 2023
c8cb8a5
rust: time: New module for timekeeping functions
asahilina Oct 19, 2022
31c42c8
rust: xarray: Add an abstraction for XArray
asahilina Jan 11, 2023
cb58819
rust: Add a Sealed trait
asahilina Feb 5, 2023
51bc67b
rust: device: Add an abstraction for devices
wedsonaf Nov 18, 2021
faea7d8
rust: io_pgtable: Add io_pgtable abstraction
asahilina Sep 7, 2022
54624a9
rust: soc: apple: rtkit: Add Apple RTKit abstraction
asahilina Aug 17, 2022
18999ea
rust: Add `container_of` and `offset_of` macros
wedsonaf Apr 1, 2021
66a17ae
rust: Fix container_of!()
asahilina Apr 5, 2023
ac9a8d4
*RFL import: kernel::types::Bool
asahilina Feb 11, 2023
a0d3123
*RFL import: kernel::io_buffer
asahilina Feb 16, 2023
ed12a2c
*RFL import: kernel::user_ptr
asahilina Feb 16, 2023
26620b4
MISSING SIGNOFFS: rust: Add PAGE_SIZE constant to kernel crate
asahilina Feb 16, 2023
faa1698
rust: Enable const_mut_refs feature for the kernel crate
asahilina Feb 16, 2023
bc4e9a7
*RFL import: kernel::module_param
asahilina Feb 16, 2023
b840120
rust: module_param: Tolerate a trailing newline when parsing
asahilina Oct 21, 2022
e8b160a
rust: Add `name` argument to Module::init()
asahilina Feb 16, 2023
b3645fa
*RFL import: kernel::driver
asahilina Feb 16, 2023
61397e1
*RFL import: The rest of kernel::device (minus clk stuff)
asahilina Feb 16, 2023
b25e0ba
*RFL import: kernel::io_mem
asahilina Feb 16, 2023
293723f
*RFL import: kernel::of
asahilina Feb 16, 2023
410d548
*RFL import: kernel::platform
asahilina Feb 16, 2023
56092c8
*RFL import: kernel::delay
asahilina Feb 16, 2023
ca33345
rust: of: Add OF node abstraction
asahilina Oct 21, 2022
9d4f135
rust: driver,of: Support passing ID tables to modpost for alias gener…
asahilina Dec 8, 2022
999c116
rust: platform: add `ioremap_resource` and `get_resource` methods
Feb 8, 2022
12ccdf8
rust: kernel: platform: Add Device.set_dma_masks()
asahilina Sep 7, 2022
8fdd008
rust: Add ioremap_np support to io_mem & friends
asahilina Sep 21, 2022
a737608
*RFL import: macros::module params functionality & deps
asahilina Feb 16, 2023
1e508ae
*RFL import: Rest of kernel::error::code::*
asahilina Feb 16, 2023
5b486eb
rust: bindings: Add resource_size wrapper
asahilina Sep 7, 2022
bb1c998
rust: Allow feature allocator_api
asahilina Feb 16, 2023
979301e
*RFL import: kernel::KParamGuard & friends
asahilina Feb 16, 2023
816d2df
iommu/io-pgtable: Add Apple UAT variant format
asahilina Aug 17, 2022
aa3ecee
iommu/io-pgtable: Hack in FW-RW/GPU-RO mode into UAT io_pgtable
asahilina Apr 19, 2023
57fc14f
rust: io_pgtable: Add the Apple UAT format abstraction
asahilina Feb 16, 2023
4822ac0
drm/scheduler: Clean up jobs when the scheduler is torn down.
asahilina Mar 6, 2023
05c6526
drm/scheduler: Fix UAF in drm_sched_fence_get_timeline_name
asahilina Apr 5, 2023
266a944
rust: dma_fence: Add DMA Fence abstraction
asahilina Feb 11, 2023
abff9f3
rust: helpers: Add bindings/wrappers for dma_resv
asahilina Nov 22, 2023
6bf4b0b
rust: drm: ioctl: Add DRM ioctl abstraction
asahilina Feb 5, 2023
df931b7
rust: drm: Add Device and Driver abstractions
asahilina Feb 5, 2023
5776c1d
rust: drm: file: Add File abstraction
asahilina Feb 5, 2023
c304339
rust: drm: device: Convert Device to AlwaysRefCounted
asahilina May 19, 2023
0aeeb91
rust: drm: gem: Add GEM object abstraction
asahilina Feb 5, 2023
fd75ad4
rust: drm: device: Convert Device to AlwaysRefCounted
asahilina May 19, 2023
e95eccb
rust: drm: gem: Allow pinning GEM object driver data
asahilina Apr 28, 2023
2ade72f
drm/gem-shmem: Export VM ops functions
asahilina Sep 7, 2022
2d4d8c8
rust: drm: gem: shmem: Add DRM shmem helper abstraction
asahilina Feb 5, 2023
00dac07
rust: drm: device: Convert Device to AlwaysRefCounted
asahilina May 19, 2023
3e718a8
rust: drm: gem: Allow pinning GEM object driver data
asahilina Apr 28, 2023
a42e452
rust: drm: mm: Add DRM MM Range Allocator abstraction
asahilina Feb 11, 2023
b22ef72
rust: drm: syncobj: Add DRM Sync Object abstraction
asahilina Feb 11, 2023
92f4fb7
rust: drm: sched: Add GPU scheduler abstraction
asahilina Feb 11, 2023
55027ce
drm/gem: Add a flag to control whether objects can be exported
asahilina Feb 10, 2023
7391bd0
rust: drm: gem: Add set_exportable() method
asahilina Feb 11, 2023
27dd993
drm/asahi: Add the Asahi driver UAPI
asahilina Feb 16, 2023
734c97d
rust: bindings: Bind the Asahi DRM UAPI
asahilina Feb 16, 2023
2787327
rust: macros: Add versions macro
asahilina Feb 16, 2023
6941675
drm/asahi: Add the Asahi driver for Apple AGX GPUs
asahilina Feb 16, 2023
3be2060
DO NOT MERGE: drm/asahi: Add an experimental UAPI extension
asahilina Apr 26, 2023
006df12
drm/asahi: render: Implement unknown value UAPI extension
asahilina Apr 26, 2023
e8002ce
drm/asahi: hw,initdata: Initdata fixes for G14S
asahilina Jul 19, 2023
4e54982
drm/asahi: hw: Drop max_dies
asahilina Jul 19, 2023
9ba97fb
drm/asahi: initdata: Fix ver_info for G13 V13.5
asahilina Jul 19, 2023
ca47fcd
drm/asahi: fw/channels: Identify subpipe (?) field in tvb ack
asahilina Aug 2, 2023
1e641ed
drm/asahi: fw/channels: Document more message types a bit
asahilina Aug 2, 2023
fe5f2c9
drm/asahi: initdata: Fix 13.5 field position for G13X
asahilina Aug 2, 2023
267655e
drm/asahi: initdata: Document more stuff
asahilina Aug 2, 2023
6d00005
drm/asahi: fw/microseq: Document bits of has_attachments
asahilina Aug 2, 2023
8c35aae
drm/asahi: hw/t600x: Expand some mappings
asahilina Aug 2, 2023
96fb509
drm/asahi: hw/t8112: Make last IOMapping read-only
asahilina Aug 2, 2023
3cdc0f7
drm/asahi: render: Correct some values for G14
asahilina Aug 2, 2023
2abb1f3
drm/asahi: initdata: Initialize GpuStatsFrag properly
asahilina Aug 3, 2023
0fdc185
drm/asahi: slotalloc: Allow initializing empty slots
asahilina Aug 3, 2023
f27388b
drm/asahi: fw.channels: Add static assertions for message sizes
asahilina Aug 3, 2023
cc5a597
drm/asahi: hw.t602x: Fixes for t6022
asahilina Aug 9, 2023
6a854a1
drm/asahi: regs: Fix cluster count for G14D
asahilina Aug 9, 2023
dd4766b
drm/asahi: Enable probing for t6022
asahilina Aug 9, 2023
b63f5d3
drm/asahi: Increase recursion limit
asahilina Aug 9, 2023
ad7e428
drm/asahi: initdata: Fixes for G14D
asahilina Aug 9, 2023
c4e59c0
drm/asahi: initdata,hw: Identify & set idle_off_standby_timer
asahilina Aug 9, 2023
060d748
drm/asahi: initdata: Fudge t3 calculation a bit
asahilina Aug 9, 2023
89b8f54
drm/asahi: gpu,hw: Fix array IOMappings
asahilina Aug 9, 2023
1dbae0b
drm/asahi: hw/t602x: Increase meta/preempt sizes for G14D
asahilina Aug 9, 2023
ff1b6f7
drm/asahi: Expose firmware version to userspace
asahilina Aug 16, 2023
9a8386f
drm/asahi: alloc: Support tagging array allocs
asahilina Aug 16, 2023
13e2f6c
drm/asahi: alloc: Use tag as the guard marker
asahilina Aug 16, 2023
ea6a463
drm/asahi: buffer: Add tags to all the buffers
asahilina Aug 16, 2023
8360059
drm/asahi: initdata: Tag more arrays
asahilina Aug 16, 2023
0439041
drm/asahi: queue/compute: Tag preempt buf
asahilina Aug 16, 2023
165c8f3
drm/asahi: render: Tag AuxFB
asahilina Aug 16, 2023
1f71640
drm/asahi: workqueue: Tag GPU buf
asahilina Aug 16, 2023
3761d4f
drm/asahi: buffer,render: Identify and provide layer meta buf
asahilina Aug 16, 2023
393cff6
drm/asahi: compute: Implement bindless samplers
asahilina Aug 16, 2023
cdb5c89
drm/asahi: render: Implement bindless samplers
asahilina Aug 16, 2023
4172495
drm/asahi: fw,queue: Implement helper programs
asahilina Aug 16, 2023
394d357
drm/asahi: render: Identify and set Z/S strides for layered rendering
asahilina Aug 16, 2023
7980cd2
drm/asahi: queue: Quieten some debugs
asahilina Aug 17, 2023
06195c6
drm/asahi: Add verbose UAPI error reporting
asahilina Aug 30, 2023
7386228
drm/asahi: file: Remove sync limit
asahilina Sep 1, 2023
c6a7723
drm/asahi: render: Remove sync TVB growth support
asahilina Sep 1, 2023
fbfeca1
drm/asahi: buffer: Complain more loudly about sync requests
asahilina Sep 1, 2023
0a4d8da
Rust 1.72 compat
asahilina Sep 9, 2023
03811aa
drm/asahi: Identify & add render VS spills flag
asahilina Nov 8, 2023
887b591
drm/asahi: Identify and allocate clustered layering metadata buf
asahilina Nov 10, 2023
091b530
drm/asahi: Fix Clippy complaints
asahilina Nov 10, 2023
47476b1
drm/asahi: render: Fix layered rendering on G14X
asahilina Nov 10, 2023
8c64975
rust: Fix x86 build
marcan Nov 12, 2023
63cbe11
rust: Fix x86 build more
marcan Nov 12, 2023
93fd085
drm/asahi: render, buffer: Fix layered rendering on G13X (again)
asahilina Nov 17, 2023
6c23cc7
drm/asahi: initdata: New init chain API for rebase
marcan Nov 19, 2023
8a260f0
rust: Add missing impl_trait_in_assoc_type feature
marcan Nov 19, 2023
97763ca
rust: bindgen: Exclude list functions with unsupported ABIs
asahilina Nov 22, 2023
a4a7598
drm/shmem-helper: Add lockdep asserts to vmap/vunmap
asahilina Nov 22, 2023
4a2b4a4
rust: alloc: Rust 1.73 compat fixes
asahilina Nov 22, 2023
71e6c52
driver, of: Mangle the device ID machinery further to remove const_tr…
asahilina Nov 22, 2023
d59eeb8
drm/asahi: workqueue: Work around ICE in Rust 1.74
asahilina Nov 22, 2023
97c6280
drm/asahi: queue: Alocate the NotifierList as shared
asahilina Nov 22, 2023
998fd7c
iommu: apple-dart: Check for fwspec in the device probe path
marcan Nov 23, 2023
128a7d4
drm: apple: Move modeset into drm_crtc's atomic_enable
jannau Nov 23, 2023
ba8d4f2
drm: apple: Fix DPTX hotplug handling
jannau Nov 23, 2023
2cccd35
drm: apple: iomfb: Use drm_kms_helper_connector_hotplug_event
jannau Nov 23, 2023
2bf9b38
fixup! ASoC: tas2764: Add optional 'Apple quirks'
jannau Nov 25, 2023
0f7a9a2
fixup! drm: apple: Disconnect dptx When the CRTC is powered down
jannau Nov 25, 2023
2302652
fixup! drm/apple: Add support for the macOS 13.2 DCP firmware
jannau Nov 25, 2023
b176e77
fixup! mux: apple dp crossbar: Support t602x DP cross bar variant
jannau Nov 25, 2023
56a2410
fixup! drm: apple: iomfb: Use drm_kms_helper_connector_hotplug_event
jannau Nov 25, 2023
e19e19a
fixup! drm: apple: Disconnect dptx When the CRTC is powered down
jannau Nov 25, 2023
5f2ac9b
drm : apple: iomfb: Handle OOB ASYNC/CB context
jannau Nov 26, 2023
a0943d4
fixup! drm: apple: DCP AFK/EPIC support
jannau Nov 26, 2023
7db5176
drm: apple: iomfb: Extend hotplug/mode parsing logging
jannau Nov 26, 2023
741b581
drm: apple: pasrser: Reject high refresh / resolution modes
jannau Nov 26, 2023
2a6c77d
drm: apple: Adjust startup sequence and timing for dptx
jannau Nov 26, 2023
760ed8e
arm64: dts: apple: j474s/j475c: Use dcpext0 for HDMI out
jannau Nov 26, 2023
49e2ee8
fixup! arm64: dts: apple: t6022-{j180,j475}: Enable dcpext0/dptx-phy/…
jannau Nov 26, 2023
10c3cca
arm64: dts: apple: t8112-j473: Use dcpext for HDMI out
jannau Nov 26, 2023
1f6d945
fixup! ASoC: tas2764: Set the SDOUT polarity correctly
marcan Nov 28, 2023
7eaa5f4
drm: apple: dcp: Fix resume with DPTX based display outputs
jannau Nov 28, 2023
177c899
fixup! ASoC: tas2764: Enable some Apple quirks by default
marcan Nov 28, 2023
7f20eab
fixup! arm64: dts: apple: Add initial t602x device trees
marcan Nov 30, 2023
c6a3acd
[brcmfmac] Support bandwidth caps for all bands
dberlin Oct 20, 2023
cc0f803
[brcmfmac] Clean up and common interface creation handling
dberlin Nov 12, 2023
794d473
[brcmfmac] Disable partial SAE offload
dberlin Nov 30, 2023
d5e65b9
fixup! hid: Add Apple DockChannel HID transport driver
marcan Dec 3, 2023
7be2d4c
HID: transport: spi: Implement GET FEATURE
marcan Dec 3, 2023
2536456
HID: magicmouse: Query device dimensions via HID report
marcan Dec 3, 2023
88e53b5
macaudio: Set the card name explicitly
marcan Dec 3, 2023
d5081e4
fixup! [brcmfmac] Structurize scan parameter handling
marcan Dec 3, 2023
c6da2ce
macaudio: Change device ID form Jxxx to AppleJxxx
marcan Dec 5, 2023
ae55806
macaudio: Turn please_blow_up_my_speakers into an int
marcan Dec 11, 2023
4a77992
macaudio: Sync all gains with macOS
marcan Dec 11, 2023
c545edf
fixup! ASoC: apple: Add macaudio machine driver
marcan Dec 12, 2023
80b5100
fixup! ASoC: macaudio: Start speaker sense capture support
marcan Dec 12, 2023
aa14d74
macaudio: Fix CHECK return condition checking
marcan Dec 12, 2023
ea38732
macaudio: Avoid matches against cs42l84's constrols
jannau Dec 12, 2023
5bfd508
drm: apple: Be less noisy about teardown notifies without service
jannau Dec 2, 2023
1d26b13
drm: apple: dptx: Wait for link config on connect
jannau Dec 3, 2023
8997bef
drm: apple: Prefer RGB SDR modes
jannau Dec 1, 2023
6511bd6
drm: apple: iomfb: Always parse DisplayAttributes
jannau Dec 4, 2023
3c4e00b
drm: apple: parser: constify parser data
jannau Dec 10, 2023
b8904df
drm: apple: epic: Pass full notfiy/report payload to handler
jannau Dec 10, 2023
b07f7c0
drm: apple: epic: systemep: Parse "mNits" log events
jannau Dec 10, 2023
9c00c62
fixup! mux: apple DP xbar: Add Apple silicon DisplayPort crossbar
jannau Dec 11, 2023
cb05ac2
ASoC: apple: mca: Add delay after configuring clock
marcan Dec 14, 2023
a550cfe
macaudio: Disable j313 and j274
marcan Dec 15, 2023
fa15c0a
ASoC: apple: mca: Add more delay after configuring clock
marcan Dec 17, 2023
0e2755f
ASoC: apple: mca: More delay
marcan Dec 19, 2023
b99db9d
drm/asahi: compute: Allow no preemption flag
asahilina Jan 5, 2024
3b8a0ad
fixup! drm/asahi: Add the Asahi driver UAPI
asahilina Jan 17, 2024
c6e227f
fixup! DO NOT MERGE: drm/asahi: Add an experimental UAPI extension
asahilina Jan 17, 2024
f8cda1c
drm/asahi: Identify and implement helper config register
asahilina Jan 17, 2024
9e26996
fixup! drm/asahi: render: Implement unknown value UAPI extension
asahilina Jan 17, 2024
81b2647
drm/asahi: Check command structure sizes
asahilina Jan 17, 2024
431da82
Merge branch 'refs/heads/bits/005-maintainers' into asahi-wip
marcan Jan 19, 2024
a53291b
Merge branch 'refs/heads/bits/010-soc' into asahi-wip
marcan Jan 19, 2024
e77c48c
Merge branch 'refs/heads/bits/020-dart' into asahi-wip
marcan Jan 19, 2024
37a8a14
Merge branch 'refs/heads/bits/030-misc' into asahi-wip
marcan Jan 19, 2024
88994b3
Merge branch 'refs/heads/bits/040-dwc3' into asahi-wip
marcan Jan 19, 2024
f43e458
Merge branch 'refs/heads/bits/050-nvme' into asahi-wip
marcan Jan 19, 2024
f9c3ae7
Merge branch 'refs/heads/bits/060-spi' into asahi-wip
marcan Jan 19, 2024
ee67648
Merge branch 'refs/heads/bits/070-audio' into asahi-wip
marcan Jan 19, 2024
90bad8d
Merge branch 'refs/heads/bits/080-wifi' into asahi-wip
marcan Jan 19, 2024
8fcf91a
Merge branch 'refs/heads/bits/090-spi-hid' into asahi-wip
marcan Jan 19, 2024
1be7a11
Merge branch 'refs/heads/bits/100-bluetooth' into asahi-wip
marcan Jan 19, 2024
92d181e
Merge branch 'refs/heads/bits/110-smc' into asahi-wip
marcan Jan 19, 2024
6dfd8db
Merge branch 'refs/heads/bits/120-spmi' into asahi-wip
marcan Jan 19, 2024
a35fbcc
Merge branch 'refs/heads/bits/130-cpufreq' into asahi-wip
marcan Jan 19, 2024
74b7031
Merge branch 'refs/heads/bits/140-pci' into asahi-wip
marcan Jan 19, 2024
70115ca
Merge branch 'refs/heads/bits/150-xhci-firmware' into asahi-wip
marcan Jan 19, 2024
245a18d
Merge branch 'refs/heads/bits/170-atcphy' into asahi-wip
marcan Jan 19, 2024
a7c4bc4
Merge branch 'refs/heads/bits/200-dcp' into asahi-wip
marcan Jan 19, 2024
576a82a
Merge branch 'refs/heads/bits/210-gpu' into asahi-wip
marcan Jan 19, 2024
61779ab
Merge branch 'refs/heads/bits/220-tso' into asahi-wip
marcan Jan 19, 2024
71e28dd
Merge branch 'refs/heads/bits/230-touchbar' into asahi-wip
marcan Jan 19, 2024
c492633
Merge branch 'refs/heads/bits/240-isp' into asahi-wip
marcan Jan 19, 2024
cc0d942
Revert "drm: apple: pasrser: Reject high refresh / resolution modes"
leio Feb 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 50 additions & 15 deletions drivers/bluetooth/hci_bcm4377.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,16 @@ enum bcm4377_chip {
BCM4377 = 0,
BCM4378,
BCM4387,
BCM4388,
};

#define BCM4377_DEVICE_ID 0x5fa0
#define BCM4378_DEVICE_ID 0x5f69
#define BCM4387_DEVICE_ID 0x5f71
#define BCM4388_DEVICE_ID 0x5f72

#define BCM4377_TIMEOUT 1000
#define BCM4377_TIMEOUT msecs_to_jiffies(1000)
#define BCM4377_BOOT_TIMEOUT msecs_to_jiffies(5000)

/*
* These devices only support DMA transactions inside a 32bit window
Expand Down Expand Up @@ -506,12 +509,14 @@ struct bcm4377_hw {
u32 bar0_window1;
u32 bar0_window2;
u32 bar0_core2_window2;
u32 bar2_offset;

unsigned long has_bar0_core2_window2 : 1;
unsigned long clear_pciecfg_subsystem_ctrl_bit19 : 1;
unsigned long disable_aspm : 1;
unsigned long broken_ext_scan : 1;
unsigned long broken_mws_transport_config : 1;
unsigned long broken_le_coded : 1;

int (*send_calibration)(struct bcm4377_data *bcm4377);
int (*send_ptb)(struct bcm4377_data *bcm4377,
Expand Down Expand Up @@ -715,7 +720,7 @@ static void bcm4377_handle_ack(struct bcm4377_data *bcm4377,
ring->events[msgid] = NULL;
}

bitmap_release_region(ring->msgids, msgid, ring->n_entries);
bitmap_release_region(ring->msgids, msgid, 0);

unlock:
spin_unlock_irqrestore(&ring->lock, flags);
Expand Down Expand Up @@ -829,8 +834,8 @@ static irqreturn_t bcm4377_irq(int irq, void *data)
struct bcm4377_data *bcm4377 = data;
u32 bootstage, rti_status;

bootstage = ioread32(bcm4377->bar2 + BCM4377_BAR2_BOOTSTAGE);
rti_status = ioread32(bcm4377->bar2 + BCM4377_BAR2_RTI_STATUS);
bootstage = ioread32(bcm4377->bar2 + bcm4377->hw->bar2_offset + BCM4377_BAR2_BOOTSTAGE);
rti_status = ioread32(bcm4377->bar2 + bcm4377->hw->bar2_offset + BCM4377_BAR2_RTI_STATUS);

if (bootstage != bcm4377->bootstage ||
rti_status != bcm4377->rti_status) {
Expand Down Expand Up @@ -1190,6 +1195,14 @@ static int bcm4387_send_calibration(struct bcm4377_data *bcm4377)
bcm4377->taurus_cal_size);
}

static int bcm4388_send_calibration(struct bcm4377_data *bcm4377)
{
/* Guess that these always use beamforming */
return __bcm4378_send_calibration(
bcm4377, bcm4377->taurus_beamforming_cal_blob,
bcm4377->taurus_beamforming_cal_size);
}

static const struct firmware *bcm4377_request_blob(struct bcm4377_data *bcm4377,
const char *suffix)
{
Expand Down Expand Up @@ -1813,8 +1826,8 @@ static int bcm4377_boot(struct bcm4377_data *bcm4377)
int ret = 0;
u32 bootstage, rti_status;

bootstage = ioread32(bcm4377->bar2 + BCM4377_BAR2_BOOTSTAGE);
rti_status = ioread32(bcm4377->bar2 + BCM4377_BAR2_RTI_STATUS);
bootstage = ioread32(bcm4377->bar2 + bcm4377->hw->bar2_offset + BCM4377_BAR2_BOOTSTAGE);
rti_status = ioread32(bcm4377->bar2 + bcm4377->hw->bar2_offset + BCM4377_BAR2_RTI_STATUS);

if (bootstage != 0) {
dev_err(&bcm4377->pdev->dev, "bootstage is %d and not 0\n",
Expand Down Expand Up @@ -1848,15 +1861,18 @@ static int bcm4377_boot(struct bcm4377_data *bcm4377)
iowrite32(BCM4377_DMA_MASK,
bcm4377->bar0 + BCM4377_BAR0_HOST_WINDOW_SIZE);

iowrite32(lower_32_bits(fw_dma), bcm4377->bar2 + BCM4377_BAR2_FW_LO);
iowrite32(upper_32_bits(fw_dma), bcm4377->bar2 + BCM4377_BAR2_FW_HI);
iowrite32(fw->size, bcm4377->bar2 + BCM4377_BAR2_FW_SIZE);
iowrite32(lower_32_bits(fw_dma),
bcm4377->bar2 + bcm4377->hw->bar2_offset + BCM4377_BAR2_FW_LO);
iowrite32(upper_32_bits(fw_dma),
bcm4377->bar2 + bcm4377->hw->bar2_offset + BCM4377_BAR2_FW_HI);
iowrite32(fw->size,
bcm4377->bar2 + bcm4377->hw->bar2_offset + BCM4377_BAR2_FW_SIZE);
iowrite32(0, bcm4377->bar0 + BCM4377_BAR0_FW_DOORBELL);

dev_dbg(&bcm4377->pdev->dev, "waiting for firmware to boot\n");

ret = wait_for_completion_interruptible_timeout(&bcm4377->event,
BCM4377_TIMEOUT);
BCM4377_BOOT_TIMEOUT);
if (ret == 0) {
ret = -ETIMEDOUT;
goto out_dma_free;
Expand Down Expand Up @@ -1907,16 +1923,16 @@ static int bcm4377_setup_rti(struct bcm4377_data *bcm4377)
dev_dbg(&bcm4377->pdev->dev, "RTI is in state 1\n");

/* allow access to the entire IOVA space again */
iowrite32(0, bcm4377->bar2 + BCM4377_BAR2_RTI_WINDOW_LO);
iowrite32(0, bcm4377->bar2 + BCM4377_BAR2_RTI_WINDOW_HI);
iowrite32(0, bcm4377->bar2 + bcm4377->hw->bar2_offset + BCM4377_BAR2_RTI_WINDOW_LO);
iowrite32(0, bcm4377->bar2 + bcm4377->hw->bar2_offset + BCM4377_BAR2_RTI_WINDOW_HI);
iowrite32(BCM4377_DMA_MASK,
bcm4377->bar2 + BCM4377_BAR2_RTI_WINDOW_SIZE);
bcm4377->bar2 + bcm4377->hw->bar2_offset + BCM4377_BAR2_RTI_WINDOW_SIZE);

/* setup "Converged IPC" context */
iowrite32(lower_32_bits(bcm4377->ctx_dma),
bcm4377->bar2 + BCM4377_BAR2_CONTEXT_ADDR_LO);
bcm4377->bar2 + bcm4377->hw->bar2_offset + BCM4377_BAR2_CONTEXT_ADDR_LO);
iowrite32(upper_32_bits(bcm4377->ctx_dma),
bcm4377->bar2 + BCM4377_BAR2_CONTEXT_ADDR_HI);
bcm4377->bar2 + bcm4377->hw->bar2_offset + BCM4377_BAR2_CONTEXT_ADDR_HI);
iowrite32(2, bcm4377->bar0 + BCM4377_BAR0_RTI_CONTROL);

ret = wait_for_completion_interruptible_timeout(&bcm4377->event,
Expand Down Expand Up @@ -2372,6 +2388,8 @@ static int bcm4377_probe(struct pci_dev *pdev, const struct pci_device_id *id)
set_bit(HCI_QUIRK_BROKEN_MWS_TRANSPORT_CONFIG, &hdev->quirks);
if (bcm4377->hw->broken_ext_scan)
set_bit(HCI_QUIRK_BROKEN_EXT_SCAN, &hdev->quirks);
if (bcm4377->hw->broken_le_coded)
set_bit(HCI_QUIRK_BROKEN_LE_CODED, &hdev->quirks);

pci_set_drvdata(pdev, bcm4377);
hci_set_drvdata(hdev, bcm4377);
Expand Down Expand Up @@ -2461,6 +2479,7 @@ static const struct bcm4377_hw bcm4377_hw_variants[] = {
.bar0_core2_window2 = 0x18107000,
.has_bar0_core2_window2 = true,
.broken_mws_transport_config = true,
.broken_le_coded = true,
.send_calibration = bcm4378_send_calibration,
.send_ptb = bcm4378_send_ptb,
},
Expand All @@ -2474,9 +2493,24 @@ static const struct bcm4377_hw bcm4377_hw_variants[] = {
.has_bar0_core2_window2 = true,
.clear_pciecfg_subsystem_ctrl_bit19 = true,
.broken_mws_transport_config = true,
.broken_le_coded = true,
.send_calibration = bcm4387_send_calibration,
.send_ptb = bcm4378_send_ptb,
},

[BCM4388] = {
.id = 0x4388,
.otp_offset = 0x415c,
.bar2_offset = 0x200000,
.bar0_window1 = 0x18002000,
.bar0_window2 = 0x18109000,
.bar0_core2_window2 = 0x18106000,
.has_bar0_core2_window2 = true,
.broken_mws_transport_config = true,
.broken_le_coded = true,
.send_calibration = bcm4388_send_calibration,
.send_ptb = bcm4378_send_ptb,
},
};

#define BCM4377_DEVID_ENTRY(id) \
Expand All @@ -2490,6 +2524,7 @@ static const struct pci_device_id bcm4377_devid_table[] = {
BCM4377_DEVID_ENTRY(4377),
BCM4377_DEVID_ENTRY(4378),
BCM4377_DEVID_ENTRY(4387),
BCM4377_DEVID_ENTRY(4388),
{},
};
MODULE_DEVICE_TABLE(pci, bcm4377_devid_table);
Expand Down