@@ -1525,7 +1525,7 @@ static size_t wacom_compute_pktlen(struct hid_device *hdev)
1525
1525
return size ;
1526
1526
}
1527
1527
1528
- static void wacom_update_name (struct wacom * wacom )
1528
+ static void wacom_update_name (struct wacom * wacom , const char * suffix )
1529
1529
{
1530
1530
struct wacom_wac * wacom_wac = & wacom -> wacom_wac ;
1531
1531
struct wacom_features * features = & wacom_wac -> features ;
@@ -1561,14 +1561,14 @@ static void wacom_update_name(struct wacom *wacom)
1561
1561
1562
1562
/* Append the device type to the name */
1563
1563
snprintf (wacom_wac -> pen_name , sizeof (wacom_wac -> pen_name ),
1564
- "%s Pen" , name );
1564
+ "%s%s Pen" , name , suffix );
1565
1565
snprintf (wacom_wac -> touch_name , sizeof (wacom_wac -> touch_name ),
1566
- "%s Finger" , name );
1566
+ "%s%s Finger" , name , suffix );
1567
1567
snprintf (wacom_wac -> pad_name , sizeof (wacom_wac -> pad_name ),
1568
- "%s Pad" , name );
1568
+ "%s%s Pad" , name , suffix );
1569
1569
}
1570
1570
1571
- static int wacom_parse_and_register (struct wacom * wacom )
1571
+ static int wacom_parse_and_register (struct wacom * wacom , bool wireless )
1572
1572
{
1573
1573
struct wacom_wac * wacom_wac = & wacom -> wacom_wac ;
1574
1574
struct wacom_features * features = & wacom_wac -> features ;
@@ -1622,7 +1622,7 @@ static int wacom_parse_and_register(struct wacom *wacom)
1622
1622
1623
1623
wacom_calculate_res (features );
1624
1624
1625
- wacom_update_name (wacom );
1625
+ wacom_update_name (wacom , wireless ? " (WL)" : "" );
1626
1626
1627
1627
error = wacom_add_shared_data (hdev );
1628
1628
if (error )
@@ -1649,8 +1649,10 @@ static int wacom_parse_and_register(struct wacom *wacom)
1649
1649
goto fail_hw_start ;
1650
1650
}
1651
1651
1652
- /* Note that if query fails it is not a hard failure */
1653
- wacom_query_tablet_data (hdev , features );
1652
+ if (!wireless ) {
1653
+ /* Note that if query fails it is not a hard failure */
1654
+ wacom_query_tablet_data (hdev , features );
1655
+ }
1654
1656
1655
1657
/* touch only Bamboo doesn't support pen */
1656
1658
if ((features -> type == BAMBOO_TOUCH ) &&
@@ -1745,22 +1747,10 @@ static void wacom_wireless_work(struct work_struct *work)
1745
1747
/* Stylus interface */
1746
1748
wacom_wac1 -> features =
1747
1749
* ((struct wacom_features * )id -> driver_data );
1748
- wacom_wac1 -> features .device_type |= WACOM_DEVICETYPE_PEN ;
1749
- wacom_set_default_phy (& wacom_wac1 -> features );
1750
- wacom_calculate_res (& wacom_wac1 -> features );
1751
- snprintf (wacom_wac1 -> pen_name , WACOM_NAME_MAX , "%s (WL) Pen" ,
1752
- wacom_wac1 -> features .name );
1753
- if (wacom_wac1 -> features .type < BAMBOO_PEN ||
1754
- wacom_wac1 -> features .type > BAMBOO_PT ) {
1755
- snprintf (wacom_wac1 -> pad_name , WACOM_NAME_MAX ,
1756
- "%s (WL) Pad" , wacom_wac1 -> features .name );
1757
- wacom_wac1 -> features .device_type |= WACOM_DEVICETYPE_PAD ;
1758
- }
1759
- wacom_wac1 -> shared -> touch_max = wacom_wac1 -> features .touch_max ;
1760
- wacom_wac1 -> shared -> type = wacom_wac1 -> features .type ;
1750
+
1761
1751
wacom_wac1 -> pid = wacom_wac -> pid ;
1762
- error = wacom_allocate_inputs ( wacom1 ) ||
1763
- wacom_register_inputs (wacom1 );
1752
+ hid_hw_stop ( hdev1 );
1753
+ error = wacom_parse_and_register (wacom1 , true );
1764
1754
if (error )
1765
1755
goto fail ;
1766
1756
@@ -1770,30 +1760,11 @@ static void wacom_wireless_work(struct work_struct *work)
1770
1760
wacom_wac1 -> features .type <= BAMBOO_PT )) {
1771
1761
wacom_wac2 -> features =
1772
1762
* ((struct wacom_features * )id -> driver_data );
1773
- wacom_wac2 -> features .pktlen = WACOM_PKGLEN_BBTOUCH3 ;
1774
- wacom_set_default_phy (& wacom_wac2 -> features );
1775
- wacom_wac2 -> features .x_max = wacom_wac2 -> features .y_max = 4096 ;
1776
- wacom_calculate_res (& wacom_wac2 -> features );
1777
- snprintf (wacom_wac2 -> touch_name , WACOM_NAME_MAX ,
1778
- "%s (WL) Finger" , wacom_wac2 -> features .name );
1779
- if (wacom_wac1 -> features .touch_max )
1780
- wacom_wac2 -> features .device_type |= WACOM_DEVICETYPE_TOUCH ;
1781
- if (wacom_wac1 -> features .type >= INTUOSHT &&
1782
- wacom_wac1 -> features .type <= BAMBOO_PT ) {
1783
- snprintf (wacom_wac2 -> pad_name , WACOM_NAME_MAX ,
1784
- "%s (WL) Pad" , wacom_wac2 -> features .name );
1785
- wacom_wac2 -> features .device_type |= WACOM_DEVICETYPE_PAD ;
1786
- }
1787
1763
wacom_wac2 -> pid = wacom_wac -> pid ;
1788
- error = wacom_allocate_inputs ( wacom2 ) ||
1789
- wacom_register_inputs (wacom2 );
1764
+ hid_hw_stop ( hdev2 );
1765
+ error = wacom_parse_and_register (wacom2 , true );
1790
1766
if (error )
1791
1767
goto fail ;
1792
-
1793
- if ((wacom_wac1 -> features .type == INTUOSHT ||
1794
- wacom_wac1 -> features .type == INTUOSHT2 ) &&
1795
- wacom_wac1 -> features .touch_max )
1796
- wacom_wac -> shared -> touch_input = wacom_wac2 -> touch_input ;
1797
1768
}
1798
1769
1799
1770
error = wacom_initialize_battery (wacom );
@@ -1855,7 +1826,7 @@ static int wacom_probe(struct hid_device *hdev,
1855
1826
goto fail_parse ;
1856
1827
}
1857
1828
1858
- error = wacom_parse_and_register (wacom );
1829
+ error = wacom_parse_and_register (wacom , false );
1859
1830
if (error )
1860
1831
goto fail_parse ;
1861
1832
0 commit comments