Commit c670ebf
Bluetooth: btintel_pcie: Add handshake between driver and firmware
[ Upstream commit 05c200c ]
The following handshake mechanism needs be followed after firmware
download is completed to bring the firmware to running state.
After firmware fragments of Operational image are downloaded and
secure sends result of the image succeeds,
1. Driver sends HCI Intel reset with boot option AMDESE#1 to switch FW image.
2. FW sends Alive GP[0] MSIx
3. Driver enables data path (doorbell 0x460 for RBDs, etc...)
4. Driver gets Bootup event from firmware
5. Driver performs D0 entry to device (WRITE to IPC_Sleep_Control =0x0)
6. FW sends Alive GP[0] MSIx
7. Device host interface is fully set for BT protocol stack operation.
8. Driver may optionally get debug event with ID 0x97 which can be dropped
For Intermediate loadger image, all the above steps are applicable
expcept AMDESE#5 and AMDESE#6.
On HCI_OP_RESET, firmware raises alive interrupt. Driver needs to wait
for it before passing control over to bluetooth stack.
Co-developed-by: Devegowda Chandrashekar <[email protected]>
Signed-off-by: Devegowda Chandrashekar <[email protected]>
Signed-off-by: Kiran K <[email protected]>
Signed-off-by: Luiz Augusto von Dentz <[email protected]>
Stable-dep-of: 510e838 ("Bluetooth: btintel: Do no pass vendor events to stack")
Signed-off-by: Sasha Levin <[email protected]>1 parent f11520f commit c670ebf
File tree
4 files changed
+329
-12
lines changed- drivers/bluetooth
4 files changed
+329
-12
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1841 | 1841 | | |
1842 | 1842 | | |
1843 | 1843 | | |
| 1844 | + | |
| 1845 | + | |
| 1846 | + | |
| 1847 | + | |
| 1848 | + | |
| 1849 | + | |
| 1850 | + | |
| 1851 | + | |
| 1852 | + | |
| 1853 | + | |
| 1854 | + | |
| 1855 | + | |
| 1856 | + | |
| 1857 | + | |
| 1858 | + | |
| 1859 | + | |
| 1860 | + | |
| 1861 | + | |
| 1862 | + | |
| 1863 | + | |
| 1864 | + | |
| 1865 | + | |
| 1866 | + | |
| 1867 | + | |
| 1868 | + | |
| 1869 | + | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
| 1874 | + | |
1844 | 1875 | | |
1845 | 1876 | | |
1846 | 1877 | | |
| |||
1849 | 1880 | | |
1850 | 1881 | | |
1851 | 1882 | | |
| 1883 | + | |
1852 | 1884 | | |
1853 | 1885 | | |
1854 | 1886 | | |
| |||
1861 | 1893 | | |
1862 | 1894 | | |
1863 | 1895 | | |
1864 | | - | |
| 1896 | + | |
1865 | 1897 | | |
1866 | 1898 | | |
1867 | | - | |
1868 | | - | |
| 1899 | + | |
| 1900 | + | |
1869 | 1901 | | |
| 1902 | + | |
| 1903 | + | |
1870 | 1904 | | |
| 1905 | + | |
| 1906 | + | |
| 1907 | + | |
| 1908 | + | |
| 1909 | + | |
| 1910 | + | |
| 1911 | + | |
| 1912 | + | |
| 1913 | + | |
| 1914 | + | |
| 1915 | + | |
| 1916 | + | |
| 1917 | + | |
1871 | 1918 | | |
1872 | 1919 | | |
1873 | 1920 | | |
| |||
3273 | 3320 | | |
3274 | 3321 | | |
3275 | 3322 | | |
3276 | | - | |
| 3323 | + | |
3277 | 3324 | | |
3278 | 3325 | | |
3279 | 3326 | | |
| |||
3301 | 3348 | | |
3302 | 3349 | | |
3303 | 3350 | | |
| 3351 | + | |
3304 | 3352 | | |
3305 | 3353 | | |
3306 | 3354 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
178 | 178 | | |
179 | 179 | | |
180 | 180 | | |
| 181 | + | |
181 | 182 | | |
182 | 183 | | |
183 | 184 | | |
| |||
249 | 250 | | |
250 | 251 | | |
251 | 252 | | |
| 253 | + | |
252 | 254 | | |
253 | 255 | | |
254 | 256 | | |
| |||
382 | 384 | | |
383 | 385 | | |
384 | 386 | | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
385 | 392 | | |
0 commit comments