Linux 2.6.36-git8
This commit is contained in:
parent
c22cea221f
commit
3daa57b3d9
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@ patch-*.bz2
|
||||
clog
|
||||
*.rpm
|
||||
kernel-2.6.*/
|
||||
/patch-2.6.36-git8.bz2
|
||||
|
2
Makefile
2
Makefile
@ -77,6 +77,7 @@ debug:
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_CFQ_IOSCHED is not set/CONFIG_DEBUG_CFQ_IOSCHED=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DRBD_FAULT_INJECTION is not set/CONFIG_DRBD_FAULT_INJECTION=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_ATH_DEBUG is not set/CONFIG_ATH_DEBUG=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_CARL9170_DEBUGFS is not set/CONFIG_CARL9170_DEBUGFS=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_IWLWIFI_DEVICE_TRACING is not set/CONFIG_IWLWIFI_DEVICE_TRACING=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_OBJECTS_WORK is not set/CONFIG_DEBUG_OBJECTS_WORK=y/' config-nodebug
|
||||
@perl -pi -e 's/# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set/CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y/' config-nodebug
|
||||
@ -149,6 +150,7 @@ release:
|
||||
@perl -pi -e 's/CONFIG_DEBUG_CFQ_IOSCHED=y/# CONFIG_DEBUG_CFQ_IOSCHED is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DRBD_FAULT_INJECTION=y/# CONFIG_DRBD_FAULT_INJECTION is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_ATH_DEBUG=y/# CONFIG_ATH_DEBUG is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_CARL9170_DEBUGFS=y/# CONFIG_CARL9170_DEBUGFS is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_IWLWIFI_DEVICE_TRACING=y/# CONFIG_IWLWIFI_DEVICE_TRACING is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DEBUG_OBJECTS_WORK=y/# CONFIG_DEBUG_OBJECTS_WORK is not set/' config-nodebug
|
||||
@perl -pi -e 's/CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y/# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set/' config-nodebug
|
||||
|
@ -1,41 +0,0 @@
|
||||
From kernel-bounces@lists.fedoraproject.org Fri Sep 17 17:09:15 2010
|
||||
From: Will Woods <wwoods@redhat.com>
|
||||
To: Marcel Holtmann <marcel@holtmann.org>
|
||||
Subject: [PATCH 2/2] bluetooth: add support for controller in MacBookPro6,2
|
||||
Date: Fri, 17 Sep 2010 17:09:21 -0400
|
||||
|
||||
Once again the device class is ff(vend.) instead of e0(wlcon).
|
||||
|
||||
output from 'usb-devices':
|
||||
T: Bus=01 Lev=03 Prnt=03 Port=02 Cnt=03 Dev#= 8 Spd=12 MxCh= 0
|
||||
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
|
||||
P: Vendor=05ac ProdID=8218 Rev=00.22
|
||||
S: Manufacturer=Apple Inc.
|
||||
S: Product=Bluetooth USB Host Controller
|
||||
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
|
||||
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
|
||||
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
|
||||
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
|
||||
I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
|
||||
|
||||
Signed-off-by: Will Woods <wwoods@redhat.com>
|
||||
---
|
||||
drivers/bluetooth/btusb.c | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
|
||||
index eac44e4..320e798 100644
|
||||
--- a/drivers/bluetooth/btusb.c
|
||||
+++ b/drivers/bluetooth/btusb.c
|
||||
@@ -65,6 +65,9 @@ static struct usb_device_id btusb_table[] = {
|
||||
/* Apple iMac11,1 */
|
||||
{ USB_DEVICE(0x05ac, 0x8215) },
|
||||
|
||||
+ /* Apple MacBookPro6,2 */
|
||||
+ { USB_DEVICE(0x05ac, 0x8218) },
|
||||
+
|
||||
/* AVM BlueFRITZ! USB v2.0 */
|
||||
{ USB_DEVICE(0x057c, 0x3800) },
|
||||
|
||||
--
|
||||
1.7.2.3
|
@ -1,42 +0,0 @@
|
||||
From kernel-bounces@lists.fedoraproject.org Fri Sep 17 17:09:18 2010
|
||||
From: Will Woods <wwoods@redhat.com>
|
||||
To: Marcel Holtmann <marcel@holtmann.org>
|
||||
Subject: [PATCH 1/2] bluetooth: add support for controller in MacBookPro7,1
|
||||
Date: Fri, 17 Sep 2010 17:09:20 -0400
|
||||
|
||||
As with iMac11,1 the device class is ff(vend.) instead of e0(wlcon).
|
||||
|
||||
output from 'usb-devices':
|
||||
T: Bus=04 Lev=02 Prnt=04 Port=00 Cnt=01 Dev#= 5 Spd=12 MxCh= 0
|
||||
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
|
||||
P: Vendor=05ac ProdID=8213 Rev=01.86
|
||||
S: Manufacturer=Apple Inc.
|
||||
S: Product=Bluetooth USB Host Controller
|
||||
S: SerialNumber=58B0359C28ED
|
||||
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
|
||||
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
|
||||
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
|
||||
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
|
||||
I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=00 Driver=(none)
|
||||
|
||||
Signed-off-by: Will Woods <wwoods@redhat.com>
|
||||
---
|
||||
drivers/bluetooth/btusb.c | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
|
||||
index d22ce3c..eac44e4 100644
|
||||
--- a/drivers/bluetooth/btusb.c
|
||||
+++ b/drivers/bluetooth/btusb.c
|
||||
@@ -59,6 +59,9 @@ static struct usb_device_id btusb_table[] = {
|
||||
/* Generic Bluetooth USB device */
|
||||
{ USB_DEVICE_INFO(0xe0, 0x01, 0x01) },
|
||||
|
||||
+ /* Apple MacBookPro7,1 */
|
||||
+ { USB_DEVICE(0x05ac, 0x8213) },
|
||||
+
|
||||
/* Apple iMac11,1 */
|
||||
{ USB_DEVICE(0x05ac, 0x8215) },
|
||||
|
||||
--
|
||||
1.7.2.3
|
@ -74,6 +74,7 @@ CONFIG_DEBUG_CFQ_IOSCHED=y
|
||||
CONFIG_DRBD_FAULT_INJECTION=y
|
||||
|
||||
CONFIG_ATH_DEBUG=y
|
||||
CONFIG_CARL9170_DEBUGFS=y
|
||||
CONFIG_IWLWIFI_DEVICE_TRACING=y
|
||||
|
||||
CONFIG_DEBUG_OBJECTS_WORK=y
|
||||
|
@ -154,6 +154,7 @@ CONFIG_INFINIBAND_AMSO1100=m
|
||||
# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
|
||||
CONFIG_INFINIBAND_CXGB3=m
|
||||
CONFIG_INFINIBAND_CXGB4=m
|
||||
CONFIG_SCSI_CXGB4_ISCSI=m
|
||||
# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
|
||||
CONFIG_MLX4_INFINIBAND=m
|
||||
CONFIG_INFINIBAND_NES=m
|
||||
@ -365,6 +366,7 @@ CONFIG_BLK_DEV_DELKIN=m
|
||||
CONFIG_LBDAF=y
|
||||
CONFIG_BLK_DEV_BSG=y
|
||||
CONFIG_BLK_DEV_INTEGRITY=y
|
||||
CONFIG_BLK_DEV_THROTTLING=y
|
||||
|
||||
|
||||
#
|
||||
@ -759,6 +761,7 @@ CONFIG_IP_ROUTE_VERBOSE=y
|
||||
CONFIG_IP_NF_SECURITY=m
|
||||
# CONFIG_IP_PNP is not set
|
||||
CONFIG_NET_IPIP=m
|
||||
CONFIG_NET_IPGRE_DEMUX=m
|
||||
CONFIG_NET_IPGRE=m
|
||||
CONFIG_NET_IPGRE_BROADCAST=y
|
||||
CONFIG_IP_MROUTE=y
|
||||
@ -797,6 +800,7 @@ CONFIG_IP_VS_SH=m
|
||||
CONFIG_IP_VS_SED=m
|
||||
CONFIG_IP_VS_NQ=m
|
||||
CONFIG_IP_VS_FTP=m
|
||||
CONFIG_IP_VS_PE_SIP=m
|
||||
|
||||
CONFIG_IPV6=m
|
||||
CONFIG_IPV6_PRIVACY=y
|
||||
@ -1100,6 +1104,7 @@ CONFIG_NET_ACT_NAT=m
|
||||
CONFIG_NET_ACT_PEDIT=m
|
||||
CONFIG_NET_ACT_POLICE=m
|
||||
CONFIG_NET_ACT_SIMP=m
|
||||
CONFIG_NET_ACT_CSUM=m
|
||||
|
||||
CONFIG_DCB=y
|
||||
|
||||
@ -1150,6 +1155,7 @@ CONFIG_ATM_FORE200E_TX_RETRY=16
|
||||
CONFIG_ATM_FORE200E_DEBUG=0
|
||||
|
||||
CONFIG_ATM_HE=m
|
||||
CONFIG_PPTP=m
|
||||
CONFIG_PPPOATM=m
|
||||
CONFIG_PPPOL2TP=m
|
||||
CONFIG_ATM_NICSTAR=m
|
||||
@ -1195,6 +1201,7 @@ CONFIG_FIXED_PHY=y
|
||||
CONFIG_MDIO_BITBANG=m
|
||||
CONFIG_NATIONAL_PHY=m
|
||||
CONFIG_ICPLUS_PHY=m
|
||||
CONFIG_BCM63XX_PHY=m
|
||||
CONFIG_LSI_ET1011C_PHY=m
|
||||
CONFIG_LXT_PHY=m
|
||||
CONFIG_MARVELL_PHY=m
|
||||
@ -1212,6 +1219,12 @@ CONFIG_NET_VENDOR_3COM=y
|
||||
CONFIG_VORTEX=m
|
||||
CONFIG_TYPHOON=m
|
||||
CONFIG_DNET=m
|
||||
CONFIG_STMMAC_ETH=m
|
||||
# CONFIG_STMMAC_DA is not set
|
||||
# CONFIG_STMMAC_DUAL_MAC is not set
|
||||
# CONFIG_STMMAC_TIMER is not set
|
||||
|
||||
# CONFIG_PCH_GBE is not set
|
||||
|
||||
#
|
||||
# Tulip family network device support
|
||||
@ -1329,6 +1342,7 @@ CONFIG_MLX4_EN=m
|
||||
# CONFIG_MLX4_DEBUG is not set
|
||||
CONFIG_QLCNIC=m
|
||||
CONFIG_QLGE=m
|
||||
CONFIG_BNA=m
|
||||
CONFIG_SFC=m
|
||||
CONFIG_SFC_MTD=y
|
||||
CONFIG_BE2NET=m
|
||||
@ -1408,6 +1422,9 @@ CONFIG_ATH9K=m
|
||||
CONFIG_ATH9K_DEBUGFS=y
|
||||
CONFIG_ATH9K_HTC=m
|
||||
# CONFIG_ATH9K_HTC_DEBUGFS is not set
|
||||
CONFIG_ATH9K_RATE_CONTROL=y
|
||||
CONFIG_CARL9170=m
|
||||
CONFIG_CARL9170_LEDS=y
|
||||
CONFIG_AT76C50X_USB=m
|
||||
CONFIG_AIRO=m
|
||||
CONFIG_AIRO_CS=m
|
||||
@ -1462,6 +1479,7 @@ CONFIG_IWL4965=y
|
||||
CONFIG_IWL5000=y
|
||||
CONFIG_IWL3945=m
|
||||
CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
|
||||
# CONFIG_IWLWIFI_DEBUG_EXPERIMENTAL_UCODE is not set
|
||||
CONFIG_IWM=m
|
||||
# CONFIG_IWM_DEBUG is not set
|
||||
# CONFIG_IWM_TRACING is not set
|
||||
@ -1800,6 +1818,7 @@ CONFIG_INPUT_TABLET=y
|
||||
CONFIG_TABLET_USB_ACECAD=m
|
||||
CONFIG_TABLET_USB_AIPTEK=m
|
||||
CONFIG_TABLET_USB_GTCO=m
|
||||
CONFIG_TABLET_USB_HANWANG=m
|
||||
CONFIG_TABLET_USB_KBTAB=m
|
||||
CONFIG_TABLET_USB_WACOM=m
|
||||
|
||||
@ -1823,6 +1842,7 @@ CONFIG_SERIO_I8042=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
CONFIG_SERIO_RAW=m
|
||||
CONFIG_SERIO_ALTERA_PS2=m
|
||||
# CONFIG_SERIO_PS2MULT is not set
|
||||
|
||||
# CONFIG_SERIO_CT82C710 is not set
|
||||
# CONFIG_SERIO_PARKBD is not set
|
||||
@ -1916,6 +1936,7 @@ CONFIG_TOUCHSCREEN_USB_E2I=y
|
||||
CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
|
||||
# CONFIG_TOUCHSCREEN_WM97XX is not set
|
||||
CONFIG_TOUCHSCREEN_W90X900=m
|
||||
# CONFIG_TOUCHSCREEN_BU21013 is not set
|
||||
|
||||
CONFIG_INPUT_MISC=y
|
||||
CONFIG_INPUT_PCSPKR=m
|
||||
@ -2159,13 +2180,16 @@ CONFIG_SENSORS_ADT7411=m
|
||||
CONFIG_SENSORS_ASC7621=m
|
||||
CONFIG_SENSORS_EMC1403=m
|
||||
CONFIG_SENSORS_TMP102=m
|
||||
CONFIG_SENSORS_LTC4261=m
|
||||
# CONFIG_SENSORS_BH1780 is not set
|
||||
# CONFIG_SENSORS_JC42 is not set
|
||||
# CONFIG_SENSORS_SMM665 is not set
|
||||
# CONFIG_SENSORS_EMC2103 is not set
|
||||
# CONFIG_SENSORS_GPIO_FAN is not set
|
||||
|
||||
# CONFIG_HMC6352 is not set
|
||||
# CONFIG_BMP085 is not set
|
||||
# CONFIG_PCH_PHUB is not set
|
||||
|
||||
CONFIG_W1=m
|
||||
CONFIG_W1_CON=y
|
||||
@ -2747,6 +2771,7 @@ CONFIG_SND_DYNAMIC_MINORS=y
|
||||
# Generic devices
|
||||
#
|
||||
CONFIG_SND_DUMMY=m
|
||||
CONFIG_SND_ALOOP=m
|
||||
CONFIG_SND_VIRMIDI=m
|
||||
CONFIG_SND_MTPAV=m
|
||||
CONFIG_SND_MTS64=m
|
||||
@ -2765,6 +2790,8 @@ CONFIG_SND_AD1889=m
|
||||
# CONFIG_SND_WAVEFRONT is not set
|
||||
# CONFIG_SND_MSND_PINNACLE is not set
|
||||
# CONFIG_SND_MSND_CLASSIC is not set
|
||||
# CONFIG_SND_AZT1605 is not set
|
||||
# CONFIG_SND_AZT2316 is not set
|
||||
|
||||
#
|
||||
# PCI devices
|
||||
@ -2819,6 +2846,7 @@ CONFIG_SND_HDA_CODEC_CMEDIA=y
|
||||
CONFIG_SND_HDA_CODEC_INTELHDMI=y
|
||||
CONFIG_SND_HDA_CODEC_SI3054=y
|
||||
CONFIG_SND_HDA_CODEC_NVHDMI=y
|
||||
CONFIG_SND_HDA_CODEC_HDMI=y
|
||||
CONFIG_SND_HDA_GENERIC=y
|
||||
CONFIG_SND_HDA_POWER_SAVE=y
|
||||
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
|
||||
@ -2936,6 +2964,8 @@ CONFIG_USB_STORAGE_ONETOUCH=y
|
||||
CONFIG_USB_STORAGE_ALAUDA=y
|
||||
CONFIG_USB_STORAGE_KARMA=y
|
||||
# CONFIG_USB_LIBUSUAL is not set
|
||||
CONFIG_USB_UAS=m
|
||||
|
||||
|
||||
#
|
||||
# USB Human Interface Devices (HID)
|
||||
@ -2949,6 +2979,7 @@ CONFIG_HID=m
|
||||
CONFIG_HIDRAW=y
|
||||
CONFIG_HID_PID=y
|
||||
CONFIG_LOGITECH_FF=y
|
||||
CONFIG_LOGIWII_FF=y
|
||||
CONFIG_LOGIRUMBLEPAD2_FF=y
|
||||
CONFIG_PANTHERLORD_FF=y
|
||||
CONFIG_THRUSTMASTER_FF=y
|
||||
@ -2990,7 +3021,9 @@ CONFIG_HID_ZEROPLUS=m
|
||||
CONFIG_HID_ZYDACRON=m
|
||||
CONFIG_HID_ACRUX_FF=m
|
||||
CONFIG_HID_ELECOM=m
|
||||
|
||||
CONFIG_HID_UCLOGIC=m
|
||||
CONFIG_HID_WALTOP=m
|
||||
CONFIG_HID_ROCCAT_PYRA=m
|
||||
|
||||
#
|
||||
# USB Imaging devices
|
||||
@ -3091,6 +3124,7 @@ CONFIG_USB_NET_RNDIS_HOST=m
|
||||
CONFIG_USB_NET_CDC_SUBSET=m
|
||||
CONFIG_USB_NET_CDC_EEM=m
|
||||
CONFIG_USB_NET_ZAURUS=m
|
||||
CONFIG_USB_NET_CX82310_ETH=m
|
||||
CONFIG_USB_NET_INT51X1=m
|
||||
CONFIG_USB_CDC_PHONET=m
|
||||
CONFIG_USB_IPHETH=m
|
||||
@ -3183,6 +3217,7 @@ CONFIG_USB_SERIAL_QCAUX=m
|
||||
CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
|
||||
CONFIG_USB_SERIAL_DEBUG=m
|
||||
CONFIG_USB_SERIAL_SSU100=m
|
||||
CONFIG_USB_SERIAL_SAMBA=m
|
||||
|
||||
CONFIG_USB_EZUSB=y
|
||||
CONFIG_USB_EMI62=m
|
||||
@ -3216,6 +3251,7 @@ CONFIG_USB_FILE_STORAGE=m
|
||||
# CONFIG_USB_OXU210HP_HCD is not set
|
||||
CONFIG_USB_IOWARRIOR=m
|
||||
CONFIG_USB_ISIGHTFW=m
|
||||
CONFIG_USB_YUREX=m
|
||||
CONFIG_USB_VST=m
|
||||
CONFIG_USB_LCD=m
|
||||
CONFIG_USB_LD=m
|
||||
@ -3445,6 +3481,7 @@ CONFIG_NFSD_V3_ACL=y
|
||||
CONFIG_NFSD_V4=y
|
||||
CONFIG_NFS_FSCACHE=y
|
||||
# CONFIG_NFS_USE_LEGACY_DNS is not set
|
||||
# CONFIG_NFS_USE_NEW_IDMAPPER is not set
|
||||
CONFIG_LOCKD=m
|
||||
CONFIG_LOCKD_V4=y
|
||||
CONFIG_EXPORTFS=m
|
||||
@ -3747,6 +3784,7 @@ CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
|
||||
CONFIG_BLK_CGROUP=y
|
||||
# CONFIG_DEBUG_BLK_CGROUP is not set
|
||||
|
||||
# CONFIG_SYSFS_DEPRECATED is not set
|
||||
# CONFIG_SYSFS_DEPRECATED_V2 is not set
|
||||
|
||||
CONFIG_RELAY=y
|
||||
@ -4065,8 +4103,6 @@ CONFIG_RESOURCE_COUNTERS=y
|
||||
#FIXME: x86 generic?
|
||||
CONFIG_LEDS_CLEVO_MAIL=m
|
||||
CONFIG_I8K=m
|
||||
CONFIG_EDAC_I3000=m
|
||||
CONFIG_EDAC_X38=m
|
||||
CONFIG_INPUT_APANEL=m
|
||||
|
||||
# CONFIG_INTEL_MENLOW is not set
|
||||
@ -4117,6 +4153,7 @@ CONFIG_NET_SCH_MULTIQ=m
|
||||
CONFIG_NET_ACT_SKBEDIT=m
|
||||
|
||||
CONFIG_PHONET=m
|
||||
# CONFIG_PHONET_PIPECTRLR is not set
|
||||
|
||||
CONFIG_ICS932S401=m
|
||||
# CONFIG_C2PORT is not set
|
||||
|
@ -74,6 +74,7 @@ CONFIG_DEBUG_CFQ_IOSCHED=y
|
||||
CONFIG_DRBD_FAULT_INJECTION=y
|
||||
|
||||
CONFIG_ATH_DEBUG=y
|
||||
CONFIG_CARL9170_DEBUGFS=y
|
||||
CONFIG_IWLWIFI_DEVICE_TRACING=y
|
||||
|
||||
CONFIG_DEBUG_OBJECTS_WORK=y
|
||||
|
@ -334,3 +334,5 @@ CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
|
||||
# CONFIG_GPIO_SCH is not set
|
||||
|
||||
# CONFIG_PPC_MPC512x is not set
|
||||
|
||||
CONFIG_KVM_GUEST=y
|
||||
|
@ -284,6 +284,9 @@ CONFIG_EDAC_R82600=m
|
||||
CONFIG_EDAC_AMD8131=m
|
||||
CONFIG_EDAC_AMD8111=m
|
||||
CONFIG_EDAC_I7CORE=m
|
||||
CONFIG_EDAC_I3000=m
|
||||
CONFIG_EDAC_I7300=m
|
||||
CONFIG_EDAC_X38=m
|
||||
|
||||
CONFIG_SCHED_MC=y
|
||||
|
||||
@ -309,6 +312,7 @@ CONFIG_EEEPC_LAPTOP=m
|
||||
CONFIG_EEEPC_WMI=m
|
||||
CONFIG_FUJITSU_LAPTOP=m
|
||||
# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
|
||||
CONFIG_IDEAPAD_LAPTOP=m
|
||||
CONFIG_MSI_LAPTOP=m
|
||||
CONFIG_SONY_LAPTOP=m
|
||||
CONFIG_DELL_LAPTOP=m
|
||||
@ -352,6 +356,7 @@ CONFIG_PARAVIRT=y
|
||||
# CONFIG_PARAVIRT_SPINLOCKS is not set
|
||||
CONFIG_KVM_CLOCK=y
|
||||
CONFIG_KVM_GUEST=y
|
||||
CONFIG_KVM_MMU_AUDIT=y # default $x would be nice...
|
||||
CONFIG_LGUEST_GUEST=y
|
||||
CONFIG_VMI=y
|
||||
|
||||
@ -506,9 +511,14 @@ CONFIG_XEN_PLATFORM_PCI=m
|
||||
# CONFIG_ACPI_QUICKSTART is not set
|
||||
CONFIG_IDEAPAD_ACPI=m
|
||||
CONFIG_INTEL_IPS=m
|
||||
# CONFIG_IBM_RTL is not set
|
||||
|
||||
CONFIG_OLPC_XO1=m
|
||||
CONFIG_XO1_RFKILL=m
|
||||
|
||||
CONFIG_EDAC_MCE_INJ=m
|
||||
CONFIG_IRQ_TIME_ACCOUNTING=y
|
||||
CONFIG_X86_RESERVE_LOW=64
|
||||
|
||||
CONFIG_PCH_GBE=m
|
||||
CONFIG_PCH_PHUB=m
|
||||
|
@ -204,6 +204,9 @@ CONFIG_EDAC_AMD64=m
|
||||
# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
|
||||
CONFIG_EDAC_DECODE_MCE=m
|
||||
CONFIG_EDAC_I7CORE=m
|
||||
CONFIG_EDAC_I3000=m
|
||||
CONFIG_EDAC_I7300=m
|
||||
CONFIG_EDAC_X38=m
|
||||
|
||||
CONFIG_SCHED_MC=y
|
||||
|
||||
@ -284,6 +287,7 @@ CONFIG_PARAVIRT=y
|
||||
# CONFIG_PARAVIRT_SPINLOCKS is not set
|
||||
CONFIG_KVM_CLOCK=y
|
||||
CONFIG_KVM_GUEST=y
|
||||
CONFIG_KVM_MMU_AUDIT=y
|
||||
|
||||
CONFIG_XEN=y
|
||||
CONFIG_XEN_MAX_DOMAIN_MEMORY=32
|
||||
@ -419,7 +423,12 @@ CONFIG_XEN_PLATFORM_PCI=m
|
||||
# CONFIG_ACPI_QUICKSTART is not set
|
||||
CONFIG_IDEAPAD_ACPI=m
|
||||
CONFIG_INTEL_IPS=m
|
||||
CONFIG_IDEAPAD_LAPTOP=m
|
||||
# CONFIG_IBM_RTL is not set
|
||||
|
||||
CONFIG_EDAC_MCE_INJ=m
|
||||
CONFIG_IRQ_TIME_ACCOUNTING=y
|
||||
CONFIG_X86_RESERVE_LOW=64
|
||||
|
||||
CONFIG_PCH_GBE=m
|
||||
CONFIG_PCH_PHUB=m
|
||||
|
39
kernel.spec
39
kernel.spec
@ -84,7 +84,7 @@ Summary: The Linux kernel
|
||||
# The rc snapshot level
|
||||
%define rcrev 0
|
||||
# The git snapshot level
|
||||
%define gitrev 2
|
||||
%define gitrev 8
|
||||
# Set rpm version accordingly
|
||||
%define rpmversion 2.6.%{upstream_sublevel}
|
||||
%endif
|
||||
@ -696,36 +696,19 @@ Patch12018: neuter_intel_microcode_load.patch
|
||||
|
||||
Patch12030: tpm-fix-stall-on-boot.patch
|
||||
|
||||
# Wacom Bamboo
|
||||
Patch12100: wacom-01-add-fuzz-parameters-to-features.patch
|
||||
Patch12105: wacom-02-parse-the-bamboo-device-family.patch
|
||||
Patch12110: wacom-03-collect-device-quirks-into-single-function.patch
|
||||
Patch12115: wacom-04-add-support-for-the-bamboo-touch-trackpad.patch
|
||||
Patch12120: wacom-05-add-a-quirk-for-low-resolution-bamboo-devices.patch
|
||||
Patch12125: wacom-06-request-tablet-data-for-bamboo-pens.patch
|
||||
Patch12130: wacom-07-move-bamboo-touch-irq-to-its-own-function.patch
|
||||
Patch12135: wacom-08-add-support-for-bamboo-pen.patch
|
||||
Patch12140: wacom-09-disable-bamboo-touchpad-when-pen-is-being-used.patch
|
||||
|
||||
# Runtime power management
|
||||
Patch12200: linux-2.6-bluetooth-autosuspend.patch
|
||||
Patch12201: linux-2.6-uvc-autosuspend.patch
|
||||
Patch12202: linux-2.6-qcserial-autosuspend.patch
|
||||
Patch12203: linux-2.6-usb-pci-autosuspend.patch
|
||||
Patch12204: linux-2.6-enable-more-pci-autosuspend.patch
|
||||
Patch12205: runtime_pm_fixups.patch
|
||||
|
||||
Patch12225: pci-crs-fixes.patch
|
||||
|
||||
Patch12300: btusb-macbookpro-7-1.patch
|
||||
Patch12301: btusb-macbookpro-6-2.patch
|
||||
|
||||
Patch12302: pnpacpi-cope-with-invalid-device-ids.patch
|
||||
|
||||
Patch12303: dmar-disable-when-ricoh-multifunction.patch
|
||||
|
||||
Patch12305: xhci_hcd-suspend-resume.patch
|
||||
|
||||
%endif
|
||||
|
||||
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
|
||||
@ -1306,21 +1289,9 @@ ApplyPatch neuter_intel_microcode_load.patch
|
||||
# try to fix stalls during boot (#530393)
|
||||
ApplyPatch tpm-fix-stall-on-boot.patch
|
||||
|
||||
# Wacom Bamboo
|
||||
ApplyPatch wacom-01-add-fuzz-parameters-to-features.patch
|
||||
ApplyPatch wacom-02-parse-the-bamboo-device-family.patch
|
||||
ApplyPatch wacom-03-collect-device-quirks-into-single-function.patch
|
||||
ApplyPatch wacom-04-add-support-for-the-bamboo-touch-trackpad.patch
|
||||
ApplyPatch wacom-05-add-a-quirk-for-low-resolution-bamboo-devices.patch
|
||||
ApplyPatch wacom-06-request-tablet-data-for-bamboo-pens.patch
|
||||
ApplyPatch wacom-07-move-bamboo-touch-irq-to-its-own-function.patch
|
||||
ApplyPatch wacom-08-add-support-for-bamboo-pen.patch
|
||||
ApplyPatch wacom-09-disable-bamboo-touchpad-when-pen-is-being-used.patch
|
||||
|
||||
# Runtime PM
|
||||
ApplyPatch linux-2.6-bluetooth-autosuspend.patch
|
||||
ApplyPatch linux-2.6-uvc-autosuspend.patch
|
||||
ApplyPatch linux-2.6-qcserial-autosuspend.patch
|
||||
ApplyPatch linux-2.6-usb-pci-autosuspend.patch
|
||||
ApplyPatch linux-2.6-enable-more-pci-autosuspend.patch
|
||||
ApplyPatch runtime_pm_fixups.patch
|
||||
@ -1329,17 +1300,12 @@ ApplyPatch runtime_pm_fixups.patch
|
||||
# ( from linux-pci list )
|
||||
ApplyPatch pci-crs-fixes.patch
|
||||
|
||||
ApplyPatch btusb-macbookpro-7-1.patch
|
||||
ApplyPatch btusb-macbookpro-6-2.patch
|
||||
|
||||
# rhbz#641468
|
||||
ApplyPatch pnpacpi-cope-with-invalid-device-ids.patch
|
||||
|
||||
# rhbz#605888
|
||||
ApplyPatch dmar-disable-when-ricoh-multifunction.patch
|
||||
|
||||
ApplyPatch xhci_hcd-suspend-resume.patch
|
||||
|
||||
# END OF PATCH APPLICATIONS
|
||||
|
||||
%endif
|
||||
@ -1947,6 +1913,9 @@ fi
|
||||
# || ||
|
||||
|
||||
%changelog
|
||||
* Tue Oct 26 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.1.rc0.git8
|
||||
- Linux 2.6.36-git8
|
||||
|
||||
* Fri Oct 22 2010 Kyle McMartin <kyle@redhat.com> 2.6.37-0.1.rc0.git2
|
||||
- Switch to tracking git snapshots of what will become 2.6.37.
|
||||
- Fix context rejects in utrace and a few other patches.
|
||||
|
@ -1,23 +0,0 @@
|
||||
commit 0fe584342da141957c8642191b508ad39e9b19e6
|
||||
Author: Matthew Garrett <mjg@redhat.com>
|
||||
Date: Thu Sep 16 13:39:31 2010 -0400
|
||||
|
||||
usbserial: Enable USB autosuspend by default on qcserial
|
||||
|
||||
Seems to work fine in my testing.
|
||||
|
||||
Signed-off-by: Matthew Garrett <mjg@redhat.com>
|
||||
|
||||
diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
|
||||
index cde67ca..2846ad8 100644
|
||||
--- a/drivers/usb/serial/qcserial.c
|
||||
+++ b/drivers/usb/serial/qcserial.c
|
||||
@@ -118,6 +118,8 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
|
||||
|
||||
spin_lock_init(&data->susp_lock);
|
||||
|
||||
+ usb_enable_autosuspend(serial->dev);
|
||||
+
|
||||
switch (nintf) {
|
||||
case 1:
|
||||
/* QDL mode */
|
@ -44,7 +44,7 @@ index 34929f2..884c36b 100644
|
||||
+++ b/Documentation/DocBook/Makefile
|
||||
@@ -14,7 +14,7 @@ DOCBOOKS := z8530book.xml mcabook.xml de
|
||||
genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
|
||||
mac80211.xml debugobjects.xml sh.xml regulator.xml \
|
||||
80211.xml debugobjects.xml sh.xml regulator.xml \
|
||||
alsa-driver-api.xml writing-an-alsa-driver.xml \
|
||||
- tracepoint.xml media.xml drm.xml
|
||||
+ tracepoint.xml utrace.xml media.xml drm.xml
|
||||
|
1
sources
1
sources
@ -1 +1,2 @@
|
||||
61f3739a73afb6914cb007f37fb09b62 linux-2.6.36.tar.bz2
|
||||
1ae3ad96ed31fb8d40384add909bf994 patch-2.6.36-git8.bz2
|
||||
|
@ -1,69 +0,0 @@
|
||||
From: Henrik Rydberg <rydberg@euromail.se>
|
||||
Date: Sun, 5 Sep 2010 19:25:11 +0000 (-0700)
|
||||
Subject: Input: wacom - add fuzz parameters to features
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdtor%2Finput.git;a=commitdiff_plain;h=fed87e655a2c20468d628b37424af58287803afe
|
||||
|
||||
Input: wacom - add fuzz parameters to features
|
||||
|
||||
The signal-to-noise ratio varies between devices, but currently all
|
||||
devices are treated the same way. Add fuzz parameters to the feature
|
||||
struct, allowing for tailored treatment of devices.
|
||||
|
||||
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
||||
Acked-by: Ping Cheng <pingc@wacom.com>
|
||||
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
---
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
|
||||
index 42ba369..e510e4f 100644
|
||||
--- a/drivers/input/tablet/wacom_sys.c
|
||||
+++ b/drivers/input/tablet/wacom_sys.c
|
||||
@@ -333,8 +333,12 @@ static int wacom_retrieve_hid_descriptor(struct usb_interface *intf,
|
||||
struct usb_host_interface *interface = intf->cur_altsetting;
|
||||
struct hid_descriptor *hid_desc;
|
||||
|
||||
- /* default device to penabled */
|
||||
+ /* default features */
|
||||
features->device_type = BTN_TOOL_PEN;
|
||||
+ features->x_fuzz = 4;
|
||||
+ features->y_fuzz = 4;
|
||||
+ features->pressure_fuzz = 0;
|
||||
+ features->distance_fuzz = 0;
|
||||
|
||||
/* only Tablet PCs need to retrieve the info */
|
||||
if ((features->type != TABLETPC) && (features->type != TABLETPC2FG))
|
||||
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
|
||||
index 6e29bad..6d7e164 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.c
|
||||
+++ b/drivers/input/tablet/wacom_wac.c
|
||||
@@ -951,9 +951,12 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
|
||||
|
||||
__set_bit(BTN_TOUCH, input_dev->keybit);
|
||||
|
||||
- input_set_abs_params(input_dev, ABS_X, 0, features->x_max, 4, 0);
|
||||
- input_set_abs_params(input_dev, ABS_Y, 0, features->y_max, 4, 0);
|
||||
- input_set_abs_params(input_dev, ABS_PRESSURE, 0, features->pressure_max, 0, 0);
|
||||
+ input_set_abs_params(input_dev, ABS_X, 0, features->x_max,
|
||||
+ features->x_fuzz, 0);
|
||||
+ input_set_abs_params(input_dev, ABS_Y, 0, features->y_max,
|
||||
+ features->y_fuzz, 0);
|
||||
+ input_set_abs_params(input_dev, ABS_PRESSURE, 0, features->pressure_max,
|
||||
+ features->pressure_fuzz, 0);
|
||||
|
||||
__set_bit(ABS_MISC, input_dev->absbit);
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
|
||||
index 99e1a54..d769e9a 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.h
|
||||
+++ b/drivers/input/tablet/wacom_wac.h
|
||||
@@ -73,6 +73,10 @@ struct wacom_features {
|
||||
int y_phy;
|
||||
unsigned char unit;
|
||||
unsigned char unitExpo;
|
||||
+ int x_fuzz;
|
||||
+ int y_fuzz;
|
||||
+ int pressure_fuzz;
|
||||
+ int distance_fuzz;
|
||||
};
|
||||
|
||||
struct wacom_shared {
|
@ -1,122 +0,0 @@
|
||||
From: Ping Cheng <pinglinux@gmail.com>
|
||||
Date: Sun, 5 Sep 2010 19:25:40 +0000 (-0700)
|
||||
Subject: Input: wacom - parse the Bamboo device family
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdtor%2Finput.git;a=commitdiff_plain;h=4a88081e739a41d6d70bace7e0a027f9054ab540
|
||||
|
||||
Input: wacom - parse the Bamboo device family
|
||||
|
||||
The Bamboo devices have multiple interfaces which need to be setup
|
||||
separately. Use the HID parsing mechanism to achieve that.
|
||||
|
||||
Signed-off-by: Ping Cheng <pinglinux@gmail.com>
|
||||
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
||||
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
---
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
|
||||
index e510e4f..98cba08 100644
|
||||
--- a/drivers/input/tablet/wacom_sys.c
|
||||
+++ b/drivers/input/tablet/wacom_sys.c
|
||||
@@ -195,17 +195,30 @@ static int wacom_parse_hid(struct usb_interface *intf, struct hid_descriptor *hi
|
||||
features->pktlen = WACOM_PKGLEN_TPC2FG;
|
||||
features->device_type = BTN_TOOL_TRIPLETAP;
|
||||
}
|
||||
- features->x_max =
|
||||
- get_unaligned_le16(&report[i + 3]);
|
||||
- features->x_phy =
|
||||
- get_unaligned_le16(&report[i + 6]);
|
||||
- features->unit = report[i + 9];
|
||||
- features->unitExpo = report[i + 11];
|
||||
- i += 12;
|
||||
+ if (features->type == BAMBOO_PT) {
|
||||
+ /* need to reset back */
|
||||
+ features->pktlen = WACOM_PKGLEN_BBTOUCH;
|
||||
+ features->device_type = BTN_TOOL_TRIPLETAP;
|
||||
+ features->x_phy =
|
||||
+ get_unaligned_le16(&report[i + 5]);
|
||||
+ features->x_max =
|
||||
+ get_unaligned_le16(&report[i + 8]);
|
||||
+ i += 15;
|
||||
+ } else {
|
||||
+ features->x_max =
|
||||
+ get_unaligned_le16(&report[i + 3]);
|
||||
+ features->x_phy =
|
||||
+ get_unaligned_le16(&report[i + 6]);
|
||||
+ features->unit = report[i + 9];
|
||||
+ features->unitExpo = report[i + 11];
|
||||
+ i += 12;
|
||||
+ }
|
||||
} else if (pen) {
|
||||
/* penabled only accepts exact bytes of data */
|
||||
if (features->type == TABLETPC2FG)
|
||||
features->pktlen = WACOM_PKGLEN_GRAPHIRE;
|
||||
+ if (features->type == BAMBOO_PT)
|
||||
+ features->pktlen = WACOM_PKGLEN_BBFUN;
|
||||
features->device_type = BTN_TOOL_PEN;
|
||||
features->x_max =
|
||||
get_unaligned_le16(&report[i + 3]);
|
||||
@@ -234,6 +247,15 @@ static int wacom_parse_hid(struct usb_interface *intf, struct hid_descriptor *hi
|
||||
features->y_phy =
|
||||
get_unaligned_le16(&report[i + 6]);
|
||||
i += 7;
|
||||
+ } else if (features->type == BAMBOO_PT) {
|
||||
+ /* need to reset back */
|
||||
+ features->pktlen = WACOM_PKGLEN_BBTOUCH;
|
||||
+ features->device_type = BTN_TOOL_TRIPLETAP;
|
||||
+ features->y_phy =
|
||||
+ get_unaligned_le16(&report[i + 3]);
|
||||
+ features->y_max =
|
||||
+ get_unaligned_le16(&report[i + 6]);
|
||||
+ i += 12;
|
||||
} else {
|
||||
features->y_max =
|
||||
features->x_max;
|
||||
@@ -245,6 +267,8 @@ static int wacom_parse_hid(struct usb_interface *intf, struct hid_descriptor *hi
|
||||
/* penabled only accepts exact bytes of data */
|
||||
if (features->type == TABLETPC2FG)
|
||||
features->pktlen = WACOM_PKGLEN_GRAPHIRE;
|
||||
+ if (features->type == BAMBOO_PT)
|
||||
+ features->pktlen = WACOM_PKGLEN_BBFUN;
|
||||
features->device_type = BTN_TOOL_PEN;
|
||||
features->y_max =
|
||||
get_unaligned_le16(&report[i + 3]);
|
||||
@@ -341,7 +365,8 @@ static int wacom_retrieve_hid_descriptor(struct usb_interface *intf,
|
||||
features->distance_fuzz = 0;
|
||||
|
||||
/* only Tablet PCs need to retrieve the info */
|
||||
- if ((features->type != TABLETPC) && (features->type != TABLETPC2FG))
|
||||
+ if ((features->type != TABLETPC) && (features->type != TABLETPC2FG) &&
|
||||
+ (features->type != BAMBOO_PT))
|
||||
goto out;
|
||||
|
||||
if (usb_get_extra_descriptor(interface, HID_DEVICET_HID, &hid_desc)) {
|
||||
@@ -499,7 +524,8 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
|
||||
|
||||
strlcpy(wacom_wac->name, features->name, sizeof(wacom_wac->name));
|
||||
|
||||
- if (features->type == TABLETPC || features->type == TABLETPC2FG) {
|
||||
+ if (features->type == TABLETPC || features->type == TABLETPC2FG ||
|
||||
+ features->type == BAMBOO_PT) {
|
||||
/* Append the device type to the name */
|
||||
strlcat(wacom_wac->name,
|
||||
features->device_type == BTN_TOOL_PEN ?
|
||||
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
|
||||
index d769e9a..fb30895 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.h
|
||||
+++ b/drivers/input/tablet/wacom_wac.h
|
||||
@@ -21,6 +21,7 @@
|
||||
#define WACOM_PKGLEN_INTUOS 10
|
||||
#define WACOM_PKGLEN_TPC1FG 5
|
||||
#define WACOM_PKGLEN_TPC2FG 14
|
||||
+#define WACOM_PKGLEN_BBTOUCH 20
|
||||
|
||||
/* device IDs */
|
||||
#define STYLUS_DEVICE_ID 0x02
|
||||
@@ -44,6 +45,7 @@ enum {
|
||||
PTU,
|
||||
PL,
|
||||
DTU,
|
||||
+ BAMBOO_PT,
|
||||
INTUOS,
|
||||
INTUOS3S,
|
||||
INTUOS3,
|
@ -1,107 +0,0 @@
|
||||
From: Henrik Rydberg <rydberg@euromail.se>
|
||||
Date: Sun, 5 Sep 2010 19:26:16 +0000 (-0700)
|
||||
Subject: Input: wacom - collect device quirks into single function
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdtor%2Finput.git;a=commitdiff_plain;h=bc73dd39e78dd6e5b34cd938b7f037a8bc041bdd
|
||||
|
||||
Input: wacom - collect device quirks into single function
|
||||
|
||||
Collect device-specific code into a single function, and use quirks to
|
||||
flag specific behavior instead.
|
||||
|
||||
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
||||
Acked-by: Ping Cheng <pingc@wacom.com>
|
||||
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
---
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom.h b/drivers/input/tablet/wacom.h
|
||||
index 284dfaa..de5adb1 100644
|
||||
--- a/drivers/input/tablet/wacom.h
|
||||
+++ b/drivers/input/tablet/wacom.h
|
||||
@@ -118,6 +118,7 @@ struct wacom {
|
||||
extern const struct usb_device_id wacom_ids[];
|
||||
|
||||
void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len);
|
||||
+void wacom_setup_device_quirks(struct wacom_features *features);
|
||||
void wacom_setup_input_capabilities(struct input_dev *input_dev,
|
||||
struct wacom_wac *wacom_wac);
|
||||
#endif
|
||||
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
|
||||
index 98cba08..fc6fd53 100644
|
||||
--- a/drivers/input/tablet/wacom_sys.c
|
||||
+++ b/drivers/input/tablet/wacom_sys.c
|
||||
@@ -381,12 +381,6 @@ static int wacom_retrieve_hid_descriptor(struct usb_interface *intf,
|
||||
if (error)
|
||||
goto out;
|
||||
|
||||
- /* touch device found but size is not defined. use default */
|
||||
- if (features->device_type == BTN_TOOL_DOUBLETAP && !features->x_max) {
|
||||
- features->x_max = 1023;
|
||||
- features->y_max = 1023;
|
||||
- }
|
||||
-
|
||||
out:
|
||||
return error;
|
||||
}
|
||||
@@ -522,10 +516,11 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
|
||||
if (error)
|
||||
goto fail2;
|
||||
|
||||
+ wacom_setup_device_quirks(features);
|
||||
+
|
||||
strlcpy(wacom_wac->name, features->name, sizeof(wacom_wac->name));
|
||||
|
||||
- if (features->type == TABLETPC || features->type == TABLETPC2FG ||
|
||||
- features->type == BAMBOO_PT) {
|
||||
+ if (features->quirks & WACOM_QUIRK_MULTI_INPUT) {
|
||||
/* Append the device type to the name */
|
||||
strlcat(wacom_wac->name,
|
||||
features->device_type == BTN_TOOL_PEN ?
|
||||
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
|
||||
index 6d7e164..44b4a59 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.c
|
||||
+++ b/drivers/input/tablet/wacom_wac.c
|
||||
@@ -941,6 +941,22 @@ static void wacom_setup_intuos(struct wacom_wac *wacom_wac)
|
||||
input_set_abs_params(input_dev, ABS_THROTTLE, -1023, 1023, 0, 0);
|
||||
}
|
||||
|
||||
+
|
||||
+void wacom_setup_device_quirks(struct wacom_features *features)
|
||||
+{
|
||||
+
|
||||
+ /* touch device found but size is not defined. use default */
|
||||
+ if (features->device_type == BTN_TOOL_DOUBLETAP && !features->x_max) {
|
||||
+ features->x_max = 1023;
|
||||
+ features->y_max = 1023;
|
||||
+ }
|
||||
+
|
||||
+ /* these device have multiple inputs */
|
||||
+ if (features->type == TABLETPC || features->type == TABLETPC2FG ||
|
||||
+ features->type == BAMBOO_PT)
|
||||
+ features->quirks |= WACOM_QUIRK_MULTI_INPUT;
|
||||
+}
|
||||
+
|
||||
void wacom_setup_input_capabilities(struct input_dev *input_dev,
|
||||
struct wacom_wac *wacom_wac)
|
||||
{
|
||||
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
|
||||
index fb30895..6a1ff10 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.h
|
||||
+++ b/drivers/input/tablet/wacom_wac.h
|
||||
@@ -38,6 +38,9 @@
|
||||
#define WACOM_REPORT_TPC1FG 6
|
||||
#define WACOM_REPORT_TPC2FG 13
|
||||
|
||||
+/* device quirks */
|
||||
+#define WACOM_QUIRK_MULTI_INPUT 0x0001
|
||||
+
|
||||
enum {
|
||||
PENPARTNER = 0,
|
||||
GRAPHIRE,
|
||||
@@ -79,6 +82,7 @@ struct wacom_features {
|
||||
int y_fuzz;
|
||||
int pressure_fuzz;
|
||||
int distance_fuzz;
|
||||
+ unsigned quirks;
|
||||
};
|
||||
|
||||
struct wacom_shared {
|
@ -1,172 +0,0 @@
|
||||
From: Henrik Rydberg <rydberg@euromail.se>
|
||||
Date: Sun, 5 Sep 2010 19:53:16 +0000 (-0700)
|
||||
Subject: Input: wacom - add support for the Bamboo Touch trackpad
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdtor%2Finput.git;a=commitdiff_plain;h=cb734c03680eaaad64a20a666300eafd1ac260b2
|
||||
|
||||
Input: wacom - add support for the Bamboo Touch trackpad
|
||||
|
||||
Add support for the Bamboo Touch trackpad, and make it work with
|
||||
both the Synaptics X Driver and the Multitouch X Driver. The device
|
||||
uses MT slots internally, so the choice of protocol is a given.
|
||||
|
||||
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
||||
Acked-by: Ping Cheng <pingc@wacom.com>
|
||||
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
---
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
|
||||
index 44b4a59..4e9b1dd 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.c
|
||||
+++ b/drivers/input/tablet/wacom_wac.c
|
||||
@@ -855,6 +855,53 @@ static int wacom_tpc_irq(struct wacom_wac *wacom, size_t len)
|
||||
return retval;
|
||||
}
|
||||
|
||||
+static int wacom_bpt_irq(struct wacom_wac *wacom, size_t len)
|
||||
+{
|
||||
+ struct input_dev *input = wacom->input;
|
||||
+ unsigned char *data = wacom->data;
|
||||
+ int sp = 0, sx = 0, sy = 0, count = 0;
|
||||
+ int i;
|
||||
+
|
||||
+ if (len != WACOM_PKGLEN_BBTOUCH)
|
||||
+ return 0;
|
||||
+
|
||||
+ for (i = 0; i < 2; i++) {
|
||||
+ int p = data[9 * i + 2];
|
||||
+ input_mt_slot(input, i);
|
||||
+ if (p) {
|
||||
+ int x = get_unaligned_be16(&data[9 * i + 3]) & 0x7ff;
|
||||
+ int y = get_unaligned_be16(&data[9 * i + 5]) & 0x7ff;
|
||||
+ input_report_abs(input, ABS_MT_PRESSURE, p);
|
||||
+ input_report_abs(input, ABS_MT_POSITION_X, x);
|
||||
+ input_report_abs(input, ABS_MT_POSITION_Y, y);
|
||||
+ if (wacom->id[i] < 0)
|
||||
+ wacom->id[i] = wacom->trk_id++ & MAX_TRACKING_ID;
|
||||
+ if (!count++)
|
||||
+ sp = p, sx = x, sy = y;
|
||||
+ } else {
|
||||
+ wacom->id[i] = -1;
|
||||
+ }
|
||||
+ input_report_abs(input, ABS_MT_TRACKING_ID, wacom->id[i]);
|
||||
+ }
|
||||
+
|
||||
+ input_report_key(input, BTN_TOUCH, count > 0);
|
||||
+ input_report_key(input, BTN_TOOL_FINGER, count == 1);
|
||||
+ input_report_key(input, BTN_TOOL_DOUBLETAP, count == 2);
|
||||
+
|
||||
+ input_report_abs(input, ABS_PRESSURE, sp);
|
||||
+ input_report_abs(input, ABS_X, sx);
|
||||
+ input_report_abs(input, ABS_Y, sy);
|
||||
+
|
||||
+ input_report_key(input, BTN_LEFT, (data[1] & 0x08) != 0);
|
||||
+ input_report_key(input, BTN_FORWARD, (data[1] & 0x04) != 0);
|
||||
+ input_report_key(input, BTN_BACK, (data[1] & 0x02) != 0);
|
||||
+ input_report_key(input, BTN_RIGHT, (data[1] & 0x01) != 0);
|
||||
+
|
||||
+ input_sync(input);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len)
|
||||
{
|
||||
bool sync;
|
||||
@@ -900,6 +947,10 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len)
|
||||
sync = wacom_tpc_irq(wacom_wac, len);
|
||||
break;
|
||||
|
||||
+ case BAMBOO_PT:
|
||||
+ sync = wacom_bpt_irq(wacom_wac, len);
|
||||
+ break;
|
||||
+
|
||||
default:
|
||||
sync = false;
|
||||
break;
|
||||
@@ -955,6 +1006,13 @@ void wacom_setup_device_quirks(struct wacom_features *features)
|
||||
if (features->type == TABLETPC || features->type == TABLETPC2FG ||
|
||||
features->type == BAMBOO_PT)
|
||||
features->quirks |= WACOM_QUIRK_MULTI_INPUT;
|
||||
+
|
||||
+ /* quirks for bamboo touch */
|
||||
+ if (features->type == BAMBOO_PT &&
|
||||
+ features->device_type == BTN_TOOL_TRIPLETAP) {
|
||||
+ features->pressure_max = 256;
|
||||
+ features->pressure_fuzz = 16;
|
||||
+ }
|
||||
}
|
||||
|
||||
void wacom_setup_input_capabilities(struct input_dev *input_dev,
|
||||
@@ -1095,6 +1153,33 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
|
||||
case PENPARTNER:
|
||||
__set_bit(BTN_TOOL_RUBBER, input_dev->keybit);
|
||||
break;
|
||||
+
|
||||
+ case BAMBOO_PT:
|
||||
+ __clear_bit(ABS_MISC, input_dev->absbit);
|
||||
+
|
||||
+ if (features->device_type == BTN_TOOL_TRIPLETAP) {
|
||||
+ __set_bit(BTN_LEFT, input_dev->keybit);
|
||||
+ __set_bit(BTN_FORWARD, input_dev->keybit);
|
||||
+ __set_bit(BTN_BACK, input_dev->keybit);
|
||||
+ __set_bit(BTN_RIGHT, input_dev->keybit);
|
||||
+
|
||||
+ __set_bit(BTN_TOOL_FINGER, input_dev->keybit);
|
||||
+ __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
|
||||
+
|
||||
+ input_mt_create_slots(input_dev, 2);
|
||||
+ input_set_abs_params(input_dev, ABS_MT_POSITION_X,
|
||||
+ 0, features->x_max,
|
||||
+ features->x_fuzz, 0);
|
||||
+ input_set_abs_params(input_dev, ABS_MT_POSITION_Y,
|
||||
+ 0, features->y_max,
|
||||
+ features->y_fuzz, 0);
|
||||
+ input_set_abs_params(input_dev, ABS_MT_PRESSURE,
|
||||
+ 0, features->pressure_max,
|
||||
+ features->pressure_fuzz, 0);
|
||||
+ input_set_abs_params(input_dev, ABS_MT_TRACKING_ID, 0,
|
||||
+ MAX_TRACKING_ID, 0, 0);
|
||||
+ }
|
||||
+ break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1232,6 +1317,8 @@ static const struct wacom_features wacom_features_0xE3 =
|
||||
{ "Wacom ISDv4 E3", WACOM_PKGLEN_TPC2FG, 26202, 16325, 255, 0, TABLETPC2FG };
|
||||
static const struct wacom_features wacom_features_0x47 =
|
||||
{ "Wacom Intuos2 6x8", WACOM_PKGLEN_INTUOS, 20320, 16240, 1023, 31, INTUOS };
|
||||
+static struct wacom_features wacom_features_0xD0 =
|
||||
+ { "Wacom Bamboo 2FG", WACOM_PKGLEN_BBFUN, 14720, 9200, 1023, 63, BAMBOO_PT };
|
||||
|
||||
#define USB_DEVICE_WACOM(prod) \
|
||||
USB_DEVICE(USB_VENDOR_ID_WACOM, prod), \
|
||||
@@ -1296,6 +1383,7 @@ const struct usb_device_id wacom_ids[] = {
|
||||
{ USB_DEVICE_WACOM(0xC6) },
|
||||
{ USB_DEVICE_WACOM(0xC7) },
|
||||
{ USB_DEVICE_WACOM(0xCE) },
|
||||
+ { USB_DEVICE_WACOM(0xD0) },
|
||||
{ USB_DEVICE_WACOM(0xF0) },
|
||||
{ USB_DEVICE_WACOM(0xCC) },
|
||||
{ USB_DEVICE_WACOM(0x90) },
|
||||
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
|
||||
index 6a1ff10..a23d6a5 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.h
|
||||
+++ b/drivers/input/tablet/wacom_wac.h
|
||||
@@ -41,6 +41,9 @@
|
||||
/* device quirks */
|
||||
#define WACOM_QUIRK_MULTI_INPUT 0x0001
|
||||
|
||||
+/* largest reported tracking id */
|
||||
+#define MAX_TRACKING_ID 0xfff
|
||||
+
|
||||
enum {
|
||||
PENPARTNER = 0,
|
||||
GRAPHIRE,
|
||||
@@ -96,6 +99,7 @@ struct wacom_wac {
|
||||
int id[3];
|
||||
__u32 serial[2];
|
||||
int last_finger;
|
||||
+ int trk_id;
|
||||
struct wacom_features features;
|
||||
struct wacom_shared *shared;
|
||||
struct input_dev *input;
|
@ -1,69 +0,0 @@
|
||||
From: Henrik Rydberg <rydberg@euromail.se>
|
||||
Date: Sun, 5 Sep 2010 19:57:13 +0000 (-0700)
|
||||
Subject: Input: wacom - add a quirk for low resolution Bamboo devices
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdtor%2Finput.git;a=commitdiff_plain;h=f4ccbef2886968ed409939531f6dd0474d53a12a
|
||||
|
||||
Input: wacom - add a quirk for low resolution Bamboo devices
|
||||
|
||||
The Bamboo Touch reports a sub-screen resolution of 480x320. The
|
||||
signal-to-noise ratio is only about 100, so filtering is needed in
|
||||
order to reduce the jitter to a usable level. However, the low
|
||||
resolution leads to round-off errors in the EWMA filter, resulting in
|
||||
extremely jerky pointer motion. This patch explicitly sets a higher
|
||||
resolution for those devices, and tells this to the completion handler
|
||||
via a low-resolution quirk.
|
||||
|
||||
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
|
||||
Acked-by: Ping Cheng <pingc@wacom.com>
|
||||
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
---
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
|
||||
index 4e9b1dd..2f4411a 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.c
|
||||
+++ b/drivers/input/tablet/wacom_wac.c
|
||||
@@ -857,6 +857,7 @@ static int wacom_tpc_irq(struct wacom_wac *wacom, size_t len)
|
||||
|
||||
static int wacom_bpt_irq(struct wacom_wac *wacom, size_t len)
|
||||
{
|
||||
+ struct wacom_features *features = &wacom->features;
|
||||
struct input_dev *input = wacom->input;
|
||||
unsigned char *data = wacom->data;
|
||||
int sp = 0, sx = 0, sy = 0, count = 0;
|
||||
@@ -871,6 +872,10 @@ static int wacom_bpt_irq(struct wacom_wac *wacom, size_t len)
|
||||
if (p) {
|
||||
int x = get_unaligned_be16(&data[9 * i + 3]) & 0x7ff;
|
||||
int y = get_unaligned_be16(&data[9 * i + 5]) & 0x7ff;
|
||||
+ if (features->quirks & WACOM_QUIRK_BBTOUCH_LOWRES) {
|
||||
+ x <<= 5;
|
||||
+ y <<= 5;
|
||||
+ }
|
||||
input_report_abs(input, ABS_MT_PRESSURE, p);
|
||||
input_report_abs(input, ABS_MT_POSITION_X, x);
|
||||
input_report_abs(input, ABS_MT_POSITION_Y, y);
|
||||
@@ -1010,8 +1015,13 @@ void wacom_setup_device_quirks(struct wacom_features *features)
|
||||
/* quirks for bamboo touch */
|
||||
if (features->type == BAMBOO_PT &&
|
||||
features->device_type == BTN_TOOL_TRIPLETAP) {
|
||||
+ features->x_max <<= 5;
|
||||
+ features->y_max <<= 5;
|
||||
+ features->x_fuzz <<= 5;
|
||||
+ features->y_fuzz <<= 5;
|
||||
features->pressure_max = 256;
|
||||
features->pressure_fuzz = 16;
|
||||
+ features->quirks |= WACOM_QUIRK_BBTOUCH_LOWRES;
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
|
||||
index a23d6a5..00ca015 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.h
|
||||
+++ b/drivers/input/tablet/wacom_wac.h
|
||||
@@ -40,6 +40,7 @@
|
||||
|
||||
/* device quirks */
|
||||
#define WACOM_QUIRK_MULTI_INPUT 0x0001
|
||||
+#define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002
|
||||
|
||||
/* largest reported tracking id */
|
||||
#define MAX_TRACKING_ID 0xfff
|
@ -1,55 +0,0 @@
|
||||
From: Chris Bagwell <chris@cnpbagwell.com>
|
||||
Date: Sun, 12 Sep 2010 07:08:40 +0000 (-0700)
|
||||
Subject: Input: wacom - request tablet data for Bamboo Pens
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdtor%2Finput.git;a=commitdiff_plain;h=3dc9f40de4dddf9147b80cf15be633189a2b70f4
|
||||
|
||||
Input: wacom - request tablet data for Bamboo Pens
|
||||
|
||||
Bamboo P&T need to use second form of usb_set_report() to
|
||||
ask to report tablet data.
|
||||
|
||||
With previous addition of Bamboo Touch, BTN_TOOL_TRIPLETAP is now used
|
||||
for both TABLETPC2FG and BAMBOO_PT types. So reduced check to
|
||||
match type=TABLETPC2FG.
|
||||
|
||||
This change shows redundant check for !TABLETPC2FG in else statement.
|
||||
|
||||
Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
|
||||
Acked-by: Ping Cheng <pingc@wacom.com>
|
||||
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
---
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
|
||||
index fc6fd53..1e3af29 100644
|
||||
--- a/drivers/input/tablet/wacom_sys.c
|
||||
+++ b/drivers/input/tablet/wacom_sys.c
|
||||
@@ -319,8 +319,9 @@ static int wacom_query_tablet_data(struct usb_interface *intf, struct wacom_feat
|
||||
if (!rep_data)
|
||||
return error;
|
||||
|
||||
- /* ask to report tablet data if it is 2FGT or not a Tablet PC */
|
||||
- if (features->device_type == BTN_TOOL_TRIPLETAP) {
|
||||
+ /* ask to report tablet data if it is 2FGT Tablet PC or
|
||||
+ * not a Tablet PC */
|
||||
+ if (features->type == TABLETPC2FG) {
|
||||
do {
|
||||
rep_data[0] = 3;
|
||||
rep_data[1] = 4;
|
||||
@@ -332,7 +333,7 @@ static int wacom_query_tablet_data(struct usb_interface *intf, struct wacom_feat
|
||||
WAC_HID_FEATURE_REPORT, report_id,
|
||||
rep_data, 3);
|
||||
} while ((error < 0 || rep_data[1] != 4) && limit++ < 5);
|
||||
- } else if (features->type != TABLETPC && features->type != TABLETPC2FG) {
|
||||
+ } else if (features->type != TABLETPC) {
|
||||
do {
|
||||
rep_data[0] = 2;
|
||||
rep_data[1] = 2;
|
||||
@@ -364,7 +365,7 @@ static int wacom_retrieve_hid_descriptor(struct usb_interface *intf,
|
||||
features->pressure_fuzz = 0;
|
||||
features->distance_fuzz = 0;
|
||||
|
||||
- /* only Tablet PCs need to retrieve the info */
|
||||
+ /* only Tablet PCs and Bamboo P&T need to retrieve the info */
|
||||
if ((features->type != TABLETPC) && (features->type != TABLETPC2FG) &&
|
||||
(features->type != BAMBOO_PT))
|
||||
goto out;
|
@ -1,52 +0,0 @@
|
||||
From: Chris Bagwell <chris@cnpbagwell.com>
|
||||
Date: Sun, 12 Sep 2010 07:09:27 +0000 (-0700)
|
||||
Subject: Input: wacom - move Bamboo Touch irq to its own function
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdtor%2Finput.git;a=commitdiff_plain;h=e1d38e49ad97eec5024342e1244279b645e36688
|
||||
|
||||
Input: wacom - move Bamboo Touch irq to its own function
|
||||
|
||||
This is in preparation of pen support in same irq handler.
|
||||
|
||||
Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
|
||||
Acked-by: Ping Cheng <pingc@wacom.com>
|
||||
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
---
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
|
||||
index 2f4411a..2f7ed9a 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.c
|
||||
+++ b/drivers/input/tablet/wacom_wac.c
|
||||
@@ -855,7 +855,7 @@ static int wacom_tpc_irq(struct wacom_wac *wacom, size_t len)
|
||||
return retval;
|
||||
}
|
||||
|
||||
-static int wacom_bpt_irq(struct wacom_wac *wacom, size_t len)
|
||||
+static int wacom_bpt_touch(struct wacom_wac *wacom)
|
||||
{
|
||||
struct wacom_features *features = &wacom->features;
|
||||
struct input_dev *input = wacom->input;
|
||||
@@ -863,9 +863,6 @@ static int wacom_bpt_irq(struct wacom_wac *wacom, size_t len)
|
||||
int sp = 0, sx = 0, sy = 0, count = 0;
|
||||
int i;
|
||||
|
||||
- if (len != WACOM_PKGLEN_BBTOUCH)
|
||||
- return 0;
|
||||
-
|
||||
for (i = 0; i < 2; i++) {
|
||||
int p = data[9 * i + 2];
|
||||
input_mt_slot(input, i);
|
||||
@@ -907,6 +904,14 @@ static int wacom_bpt_irq(struct wacom_wac *wacom, size_t len)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int wacom_bpt_irq(struct wacom_wac *wacom, size_t len)
|
||||
+{
|
||||
+ if (len == WACOM_PKGLEN_BBTOUCH)
|
||||
+ return wacom_bpt_touch(wacom);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len)
|
||||
{
|
||||
bool sync;
|
@ -1,130 +0,0 @@
|
||||
From: Chris Bagwell <chris@cnpbagwell.com>
|
||||
Date: Sun, 12 Sep 2010 07:11:35 +0000 (-0700)
|
||||
Subject: Input: wacom - add support for Bamboo Pen
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdtor%2Finput.git;a=commitdiff_plain;h=2aaacb153689dbe9064e4db7e9d00de0edfc1fa0
|
||||
|
||||
Input: wacom - add support for Bamboo Pen
|
||||
|
||||
This adds support for Pen on Bamboo Pen and Bamboo Pen&Touch devices.
|
||||
Touchpad is handled by previous Bamboo Touch logic.
|
||||
|
||||
Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
|
||||
Acked-by: Ping Cheng <pingc@wacom.com>
|
||||
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
---
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
|
||||
index 2f7ed9a..536156b 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.c
|
||||
+++ b/drivers/input/tablet/wacom_wac.c
|
||||
@@ -904,10 +904,75 @@ static int wacom_bpt_touch(struct wacom_wac *wacom)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static int wacom_bpt_pen(struct wacom_wac *wacom)
|
||||
+{
|
||||
+ struct input_dev *input = wacom->input;
|
||||
+ unsigned char *data = wacom->data;
|
||||
+ int prox = 0, x = 0, y = 0, p = 0, d = 0, pen = 0, btn1 = 0, btn2 = 0;
|
||||
+
|
||||
+ /*
|
||||
+ * Similar to Graphire protocol, data[1] & 0x20 is proximity and
|
||||
+ * data[1] & 0x18 is tool ID. 0x30 is safety check to ignore
|
||||
+ * 2 unused tool ID's.
|
||||
+ */
|
||||
+ prox = (data[1] & 0x30) == 0x30;
|
||||
+
|
||||
+ /*
|
||||
+ * All reports shared between PEN and RUBBER tool must be
|
||||
+ * forced to a known starting value (zero) when transitioning to
|
||||
+ * out-of-prox.
|
||||
+ *
|
||||
+ * If not reset then, to userspace, it will look like lost events
|
||||
+ * if new tool comes in-prox with same values as previous tool sent.
|
||||
+ *
|
||||
+ * Hardware does report zero in most out-of-prox cases but not all.
|
||||
+ */
|
||||
+ if (prox) {
|
||||
+ if (!wacom->shared->stylus_in_proximity) {
|
||||
+ if (data[1] & 0x08) {
|
||||
+ wacom->tool[0] = BTN_TOOL_RUBBER;
|
||||
+ wacom->id[0] = ERASER_DEVICE_ID;
|
||||
+ } else {
|
||||
+ wacom->tool[0] = BTN_TOOL_PEN;
|
||||
+ wacom->id[0] = STYLUS_DEVICE_ID;
|
||||
+ }
|
||||
+ wacom->shared->stylus_in_proximity = true;
|
||||
+ }
|
||||
+ x = le16_to_cpup((__le16 *)&data[2]);
|
||||
+ y = le16_to_cpup((__le16 *)&data[4]);
|
||||
+ p = le16_to_cpup((__le16 *)&data[6]);
|
||||
+ d = data[8];
|
||||
+ pen = data[1] & 0x01;
|
||||
+ btn1 = data[1] & 0x02;
|
||||
+ btn2 = data[1] & 0x04;
|
||||
+ }
|
||||
+
|
||||
+ input_report_key(input, BTN_TOUCH, pen);
|
||||
+ input_report_key(input, BTN_STYLUS, btn1);
|
||||
+ input_report_key(input, BTN_STYLUS2, btn2);
|
||||
+
|
||||
+ input_report_abs(input, ABS_X, x);
|
||||
+ input_report_abs(input, ABS_Y, y);
|
||||
+ input_report_abs(input, ABS_PRESSURE, p);
|
||||
+ input_report_abs(input, ABS_DISTANCE, d);
|
||||
+
|
||||
+ if (!prox) {
|
||||
+ wacom->id[0] = 0;
|
||||
+ wacom->shared->stylus_in_proximity = false;
|
||||
+ }
|
||||
+
|
||||
+ input_report_key(input, wacom->tool[0], prox); /* PEN or RUBBER */
|
||||
+ input_report_abs(input, ABS_MISC, wacom->id[0]); /* TOOL ID */
|
||||
+
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
static int wacom_bpt_irq(struct wacom_wac *wacom, size_t len)
|
||||
{
|
||||
if (len == WACOM_PKGLEN_BBTOUCH)
|
||||
return wacom_bpt_touch(wacom);
|
||||
+ else if (len == WACOM_PKGLEN_BBFUN)
|
||||
+ return wacom_bpt_pen(wacom);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1193,6 +1258,11 @@ void wacom_setup_input_capabilities(struct input_dev *input_dev,
|
||||
features->pressure_fuzz, 0);
|
||||
input_set_abs_params(input_dev, ABS_MT_TRACKING_ID, 0,
|
||||
MAX_TRACKING_ID, 0, 0);
|
||||
+ } else if (features->device_type == BTN_TOOL_PEN) {
|
||||
+ __set_bit(BTN_TOOL_RUBBER, input_dev->keybit);
|
||||
+ __set_bit(BTN_TOOL_PEN, input_dev->keybit);
|
||||
+ __set_bit(BTN_STYLUS, input_dev->keybit);
|
||||
+ __set_bit(BTN_STYLUS2, input_dev->keybit);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1334,6 +1404,12 @@ static const struct wacom_features wacom_features_0x47 =
|
||||
{ "Wacom Intuos2 6x8", WACOM_PKGLEN_INTUOS, 20320, 16240, 1023, 31, INTUOS };
|
||||
static struct wacom_features wacom_features_0xD0 =
|
||||
{ "Wacom Bamboo 2FG", WACOM_PKGLEN_BBFUN, 14720, 9200, 1023, 63, BAMBOO_PT };
|
||||
+static struct wacom_features wacom_features_0xD1 =
|
||||
+ { "Wacom Bamboo 2FG 4x5", WACOM_PKGLEN_BBFUN, 14720, 9200, 1023, 63, BAMBOO_PT };
|
||||
+static struct wacom_features wacom_features_0xD2 =
|
||||
+ { "Wacom Bamboo Craft", WACOM_PKGLEN_BBFUN, 14720, 9200, 1023, 63, BAMBOO_PT };
|
||||
+static struct wacom_features wacom_features_0xD3 =
|
||||
+ { "Wacom Bamboo 2FG 6x8", WACOM_PKGLEN_BBFUN, 21648, 13530, 1023, 63, BAMBOO_PT };
|
||||
|
||||
#define USB_DEVICE_WACOM(prod) \
|
||||
USB_DEVICE(USB_VENDOR_ID_WACOM, prod), \
|
||||
@@ -1399,6 +1475,9 @@ const struct usb_device_id wacom_ids[] = {
|
||||
{ USB_DEVICE_WACOM(0xC7) },
|
||||
{ USB_DEVICE_WACOM(0xCE) },
|
||||
{ USB_DEVICE_WACOM(0xD0) },
|
||||
+ { USB_DEVICE_WACOM(0xD1) },
|
||||
+ { USB_DEVICE_WACOM(0xD2) },
|
||||
+ { USB_DEVICE_WACOM(0xD3) },
|
||||
{ USB_DEVICE_WACOM(0xF0) },
|
||||
{ USB_DEVICE_WACOM(0xCC) },
|
||||
{ USB_DEVICE_WACOM(0x90) },
|
@ -1,31 +0,0 @@
|
||||
From: Chris Bagwell <chris@cnpbagwell.com>
|
||||
Date: Sun, 12 Sep 2010 07:12:28 +0000 (-0700)
|
||||
Subject: Input: wacom - disable Bamboo touchpad when pen is being used
|
||||
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fdtor%2Finput.git;a=commitdiff_plain;h=33d5f713a19b0f5cb93e0594f7206d2730cf39da
|
||||
|
||||
Input: wacom - disable Bamboo touchpad when pen is being used
|
||||
|
||||
Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
|
||||
Acked-by: Ping Cheng <pingc@wacom.com>
|
||||
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
||||
---
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
|
||||
index 536156b..e1b65ba 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.c
|
||||
+++ b/drivers/input/tablet/wacom_wac.c
|
||||
@@ -866,7 +866,13 @@ static int wacom_bpt_touch(struct wacom_wac *wacom)
|
||||
for (i = 0; i < 2; i++) {
|
||||
int p = data[9 * i + 2];
|
||||
input_mt_slot(input, i);
|
||||
- if (p) {
|
||||
+ /*
|
||||
+ * Touch events need to be disabled while stylus is
|
||||
+ * in proximity because user's hand is resting on touchpad
|
||||
+ * and sending unwanted events. User expects tablet buttons
|
||||
+ * to continue working though.
|
||||
+ */
|
||||
+ if (p && !wacom->shared->stylus_in_proximity) {
|
||||
int x = get_unaligned_be16(&data[9 * i + 3]) & 0x7ff;
|
||||
int y = get_unaligned_be16(&data[9 * i + 5]) & 0x7ff;
|
||||
if (features->quirks & WACOM_QUIRK_BBTOUCH_LOWRES) {
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user