Skip to content

Commit 722ea05

Browse files
committed
Fix for Steam Controller after firmware update
It previously used report ID 66 and now it uses 69.
1 parent edabbc5 commit 722ea05

1 file changed

Lines changed: 354 additions & 0 deletions

File tree

firmware/src/quirks.cc

Lines changed: 354 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1567,6 +1567,360 @@ void apply_quirks(uint16_t vendor_id, uint16_t product_id, std::unordered_map<ui
15671567
.logical_minimum = -32768,
15681568
.logical_maximum = 32767,
15691569
};
1570+
usage_map[69][0x00090002] = (usage_def_t){
1571+
.report_id = 69,
1572+
.size = 1,
1573+
.bitpos = 8,
1574+
.is_relative = false,
1575+
.logical_minimum = 0,
1576+
};
1577+
usage_map[69][0x00090003] = (usage_def_t){
1578+
.report_id = 69,
1579+
.size = 1,
1580+
.bitpos = 9,
1581+
.is_relative = false,
1582+
.logical_minimum = 0,
1583+
};
1584+
usage_map[69][0x00090001] = (usage_def_t){
1585+
.report_id = 69,
1586+
.size = 1,
1587+
.bitpos = 10,
1588+
.is_relative = false,
1589+
.logical_minimum = 0,
1590+
};
1591+
usage_map[69][0x00090004] = (usage_def_t){
1592+
.report_id = 69,
1593+
.size = 1,
1594+
.bitpos = 11,
1595+
.is_relative = false,
1596+
.logical_minimum = 0,
1597+
};
1598+
usage_map[69][0x00090005] = (usage_def_t){
1599+
.report_id = 69,
1600+
.size = 1,
1601+
.bitpos = 27,
1602+
.is_relative = false,
1603+
.logical_minimum = 0,
1604+
};
1605+
usage_map[69][0x00090006] = (usage_def_t){
1606+
.report_id = 69,
1607+
.size = 1,
1608+
.bitpos = 17,
1609+
.is_relative = false,
1610+
.logical_minimum = 0,
1611+
};
1612+
usage_map[69][0x00090007] = (usage_def_t){
1613+
.report_id = 69,
1614+
.size = 1,
1615+
.bitpos = 35,
1616+
.is_relative = false,
1617+
.logical_minimum = 0,
1618+
};
1619+
usage_map[69][0x00090008] = (usage_def_t){
1620+
.report_id = 69,
1621+
.size = 1,
1622+
.bitpos = 31,
1623+
.is_relative = false,
1624+
.logical_minimum = 0,
1625+
};
1626+
usage_map[69][0x00090009] = (usage_def_t){
1627+
.report_id = 69,
1628+
.size = 1,
1629+
.bitpos = 22,
1630+
.is_relative = false,
1631+
.logical_minimum = 0,
1632+
};
1633+
usage_map[69][0x0009000a] = (usage_def_t){
1634+
.report_id = 69,
1635+
.size = 1,
1636+
.bitpos = 14,
1637+
.is_relative = false,
1638+
.logical_minimum = 0,
1639+
};
1640+
usage_map[69][0x0009000d] = (usage_def_t){
1641+
.report_id = 69,
1642+
.size = 1,
1643+
.bitpos = 24,
1644+
.is_relative = false,
1645+
.logical_minimum = 0,
1646+
};
1647+
usage_map[69][0x0009000e] = (usage_def_t){
1648+
.report_id = 69,
1649+
.size = 1,
1650+
.bitpos = 12,
1651+
.is_relative = false,
1652+
.logical_minimum = 0,
1653+
};
1654+
usage_map[69][0x0009000b] = (usage_def_t){
1655+
.report_id = 69,
1656+
.size = 1,
1657+
.bitpos = 23,
1658+
.is_relative = false,
1659+
.logical_minimum = 0,
1660+
};
1661+
usage_map[69][0x0009000c] = (usage_def_t){
1662+
.report_id = 69,
1663+
.size = 1,
1664+
.bitpos = 13,
1665+
.is_relative = false,
1666+
.logical_minimum = 0,
1667+
};
1668+
usage_map[69][0x0009000f] = (usage_def_t){
1669+
.report_id = 69,
1670+
.size = 1,
1671+
.bitpos = 25,
1672+
.is_relative = false,
1673+
.logical_minimum = 0,
1674+
};
1675+
usage_map[69][0x00090010] = (usage_def_t){
1676+
.report_id = 69,
1677+
.size = 1,
1678+
.bitpos = 15,
1679+
.is_relative = false,
1680+
.logical_minimum = 0,
1681+
};
1682+
usage_map[69][0x00090011] = (usage_def_t){
1683+
.report_id = 69,
1684+
.size = 1,
1685+
.bitpos = 26,
1686+
.is_relative = false,
1687+
.logical_minimum = 0,
1688+
};
1689+
usage_map[69][0x00090012] = (usage_def_t){
1690+
.report_id = 69,
1691+
.size = 1,
1692+
.bitpos = 16,
1693+
.is_relative = false,
1694+
.logical_minimum = 0,
1695+
};
1696+
usage_map[69][0x00090013] = (usage_def_t){
1697+
.report_id = 69,
1698+
.size = 1,
1699+
.bitpos = 32,
1700+
.is_relative = false,
1701+
.logical_minimum = 0,
1702+
};
1703+
usage_map[69][0x00090014] = (usage_def_t){
1704+
.report_id = 69,
1705+
.size = 1,
1706+
.bitpos = 28,
1707+
.is_relative = false,
1708+
.logical_minimum = 0,
1709+
};
1710+
usage_map[69][0x00090015] = (usage_def_t){
1711+
.report_id = 69,
1712+
.size = 1,
1713+
.bitpos = 37,
1714+
.is_relative = false,
1715+
.logical_minimum = 0,
1716+
};
1717+
usage_map[69][0x00090016] = (usage_def_t){
1718+
.report_id = 69,
1719+
.size = 1,
1720+
.bitpos = 36,
1721+
.is_relative = false,
1722+
.logical_minimum = 0,
1723+
};
1724+
usage_map[69][0x00090017] = (usage_def_t){
1725+
.report_id = 69,
1726+
.size = 1,
1727+
.bitpos = 33,
1728+
.is_relative = false,
1729+
.logical_minimum = 0,
1730+
};
1731+
usage_map[69][0x00090018] = (usage_def_t){
1732+
.report_id = 69,
1733+
.size = 1,
1734+
.bitpos = 29,
1735+
.is_relative = false,
1736+
.logical_minimum = 0,
1737+
};
1738+
usage_map[69][0x00090019] = (usage_def_t){
1739+
.report_id = 69,
1740+
.size = 1,
1741+
.bitpos = 34,
1742+
.is_relative = false,
1743+
.logical_minimum = 0,
1744+
};
1745+
usage_map[69][0x0009001a] = (usage_def_t){
1746+
.report_id = 69,
1747+
.size = 1,
1748+
.bitpos = 30,
1749+
.is_relative = false,
1750+
.logical_minimum = 0,
1751+
};
1752+
usage_map[69][0xfff90001] = (usage_def_t){
1753+
.report_id = 69,
1754+
.size = 1,
1755+
.bitpos = 20,
1756+
.is_relative = false,
1757+
.logical_minimum = 0,
1758+
};
1759+
usage_map[69][0xfff90002] = (usage_def_t){
1760+
.report_id = 69,
1761+
.size = 1,
1762+
.bitpos = 19,
1763+
.is_relative = false,
1764+
.logical_minimum = 0,
1765+
};
1766+
usage_map[69][0xfff90003] = (usage_def_t){
1767+
.report_id = 69,
1768+
.size = 1,
1769+
.bitpos = 21,
1770+
.is_relative = false,
1771+
.logical_minimum = 0,
1772+
};
1773+
usage_map[69][0xfff90004] = (usage_def_t){
1774+
.report_id = 69,
1775+
.size = 1,
1776+
.bitpos = 18,
1777+
.is_relative = false,
1778+
.logical_minimum = 0,
1779+
};
1780+
usage_map[69][0x00010030] = (usage_def_t){
1781+
.report_id = 69,
1782+
.size = 16,
1783+
.bitpos = 72,
1784+
.is_relative = false,
1785+
.logical_minimum = -32767,
1786+
.logical_maximum = 32767,
1787+
};
1788+
usage_map[69][0x00010031] = (usage_def_t){
1789+
.report_id = 69,
1790+
.size = 16,
1791+
.bitpos = 88,
1792+
.is_relative = false,
1793+
.logical_minimum = 32767, // sic
1794+
.logical_maximum = -32767,
1795+
};
1796+
usage_map[69][0x00010032] = (usage_def_t){
1797+
.report_id = 69,
1798+
.size = 16,
1799+
.bitpos = 104,
1800+
.is_relative = false,
1801+
.logical_minimum = -32767,
1802+
.logical_maximum = 32767,
1803+
};
1804+
usage_map[69][0x00010035] = (usage_def_t){
1805+
.report_id = 69,
1806+
.size = 16,
1807+
.bitpos = 120,
1808+
.is_relative = false,
1809+
.logical_minimum = 32767, // sic
1810+
.logical_maximum = -32767,
1811+
};
1812+
usage_map[69][0x00010033] = (usage_def_t){
1813+
.report_id = 69,
1814+
.size = 16,
1815+
.bitpos = 40,
1816+
.is_relative = false,
1817+
.logical_minimum = 0,
1818+
.logical_maximum = 32767,
1819+
};
1820+
usage_map[69][0x00010034] = (usage_def_t){
1821+
.report_id = 69,
1822+
.size = 16,
1823+
.bitpos = 56,
1824+
.is_relative = false,
1825+
.logical_minimum = 0,
1826+
.logical_maximum = 32767,
1827+
};
1828+
usage_map[69][0xfffb0001] = (usage_def_t){
1829+
.report_id = 69,
1830+
.size = 16,
1831+
.bitpos = 136,
1832+
.is_relative = false,
1833+
.logical_minimum = -32767,
1834+
.logical_maximum = 32767,
1835+
};
1836+
usage_map[69][0xfffb0002] = (usage_def_t){
1837+
.report_id = 69,
1838+
.size = 16,
1839+
.bitpos = 152,
1840+
.is_relative = false,
1841+
.logical_minimum = -32767,
1842+
.logical_maximum = 32767,
1843+
};
1844+
usage_map[69][0xfffb0003] = (usage_def_t){
1845+
.report_id = 69,
1846+
.size = 16,
1847+
.bitpos = 168,
1848+
.is_relative = false,
1849+
.logical_minimum = 0,
1850+
.logical_maximum = 32767,
1851+
};
1852+
usage_map[69][0xfffb0004] = (usage_def_t){
1853+
.report_id = 69,
1854+
.size = 16,
1855+
.bitpos = 184,
1856+
.is_relative = false,
1857+
.logical_minimum = -32767,
1858+
.logical_maximum = 32767,
1859+
};
1860+
usage_map[69][0xfffb0005] = (usage_def_t){
1861+
.report_id = 69,
1862+
.size = 16,
1863+
.bitpos = 200,
1864+
.is_relative = false,
1865+
.logical_minimum = -32767,
1866+
.logical_maximum = 32767,
1867+
};
1868+
usage_map[69][0xfffb0006] = (usage_def_t){
1869+
.report_id = 69,
1870+
.size = 16,
1871+
.bitpos = 216,
1872+
.is_relative = false,
1873+
.logical_minimum = 0,
1874+
.logical_maximum = 32767,
1875+
};
1876+
usage_map[69][0x00200453] = (usage_def_t){
1877+
.report_id = 69,
1878+
.size = 16,
1879+
.bitpos = 264,
1880+
.is_relative = false,
1881+
.logical_minimum = -32768,
1882+
.logical_maximum = 32767,
1883+
};
1884+
usage_map[69][0x00200454] = (usage_def_t){
1885+
.report_id = 69,
1886+
.size = 16,
1887+
.bitpos = 280,
1888+
.is_relative = false,
1889+
.logical_minimum = -32768,
1890+
.logical_maximum = 32767,
1891+
};
1892+
usage_map[69][0x00200455] = (usage_def_t){
1893+
.report_id = 69,
1894+
.size = 16,
1895+
.bitpos = 296,
1896+
.is_relative = false,
1897+
.logical_minimum = -32768,
1898+
.logical_maximum = 32767,
1899+
};
1900+
usage_map[69][0x00200457] = (usage_def_t){
1901+
.report_id = 69,
1902+
.size = 16,
1903+
.bitpos = 312,
1904+
.is_relative = false,
1905+
.logical_minimum = -32768,
1906+
.logical_maximum = 32767,
1907+
};
1908+
usage_map[69][0x00200458] = (usage_def_t){
1909+
.report_id = 69,
1910+
.size = 16,
1911+
.bitpos = 328,
1912+
.is_relative = false,
1913+
.logical_minimum = -32768,
1914+
.logical_maximum = 32767,
1915+
};
1916+
usage_map[69][0x00200459] = (usage_def_t){
1917+
.report_id = 69,
1918+
.size = 16,
1919+
.bitpos = 344,
1920+
.is_relative = false,
1921+
.logical_minimum = -32768,
1922+
.logical_maximum = 32767,
1923+
};
15701924
}
15711925

15721926
// apply user-defined quirks

0 commit comments

Comments
 (0)