diff options
Diffstat (limited to 'drivers/platform/x86/thinkpad_acpi.c')
| -rw-r--r-- | drivers/platform/x86/thinkpad_acpi.c | 26 | 
1 files changed, 19 insertions, 7 deletions
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c index d93108d148f..a848c7e20ae 100644 --- a/drivers/platform/x86/thinkpad_acpi.c +++ b/drivers/platform/x86/thinkpad_acpi.c @@ -1680,36 +1680,48 @@ static void tpacpi_remove_driver_attributes(struct device_driver *drv)  			  | (__bv1) << 8 | (__bv2) }  #define TPV_Q_X(__v, __bid1, __bid2, __bv1, __bv2,	\ -		__eid1, __eid2, __ev1, __ev2)		\ +		__eid, __ev1, __ev2)			\  	{ .vendor	= (__v),			\  	  .bios		= TPID(__bid1, __bid2),		\ -	  .ec		= TPID(__eid1, __eid2),		\ +	  .ec		= __eid,			\  	  .quirks	= (__ev1) << 24 | (__ev2) << 16 \  			  | (__bv1) << 8 | (__bv2) }  #define TPV_QI0(__id1, __id2, __bv1, __bv2) \  	TPV_Q(PCI_VENDOR_ID_IBM, __id1, __id2, __bv1, __bv2) +/* Outdated IBM BIOSes often lack the EC id string */  #define TPV_QI1(__id1, __id2, __bv1, __bv2, __ev1, __ev2) \  	TPV_Q_X(PCI_VENDOR_ID_IBM, __id1, __id2, 	\ -		__bv1, __bv2, __id1, __id2, __ev1, __ev2) +		__bv1, __bv2, TPID(__id1, __id2),	\ +		__ev1, __ev2),				\ +	TPV_Q_X(PCI_VENDOR_ID_IBM, __id1, __id2, 	\ +		__bv1, __bv2, TPACPI_MATCH_UNKNOWN,	\ +		__ev1, __ev2) +/* Outdated IBM BIOSes often lack the EC id string */  #define TPV_QI2(__bid1, __bid2, __bv1, __bv2,		\  		__eid1, __eid2, __ev1, __ev2) 		\  	TPV_Q_X(PCI_VENDOR_ID_IBM, __bid1, __bid2, 	\ -		__bv1, __bv2, __eid1, __eid2, __ev1, __ev2) +		__bv1, __bv2, TPID(__eid1, __eid2),	\ +		__ev1, __ev2),				\ +	TPV_Q_X(PCI_VENDOR_ID_IBM, __bid1, __bid2, 	\ +		__bv1, __bv2, TPACPI_MATCH_UNKNOWN,	\ +		__ev1, __ev2)  #define TPV_QL0(__id1, __id2, __bv1, __bv2) \  	TPV_Q(PCI_VENDOR_ID_LENOVO, __id1, __id2, __bv1, __bv2)  #define TPV_QL1(__id1, __id2, __bv1, __bv2, __ev1, __ev2) \  	TPV_Q_X(PCI_VENDOR_ID_LENOVO, __id1, __id2, 	\ -		__bv1, __bv2, __id1, __id2, __ev1, __ev2) +		__bv1, __bv2, TPID(__id1, __id2),	\ +		__ev1, __ev2)  #define TPV_QL2(__bid1, __bid2, __bv1, __bv2,		\  		__eid1, __eid2, __ev1, __ev2) 		\  	TPV_Q_X(PCI_VENDOR_ID_LENOVO, __bid1, __bid2, 	\ -		__bv1, __bv2, __eid1, __eid2, __ev1, __ev2) +		__bv1, __bv2, TPID(__eid1, __eid2),	\ +		__ev1, __ev2)  static const struct tpacpi_quirk tpacpi_bios_version_qtable[] __initconst = {  	/*  Numeric models ------------------ */ @@ -6313,7 +6325,7 @@ static int brightness_write(char *buf)  	 * Doing it this way makes the syscall restartable in case of EINTR  	 */  	rc = brightness_set(level); -	return (rc == -EINTR)? ERESTARTSYS : rc; +	return (rc == -EINTR)? -ERESTARTSYS : rc;  }  static struct ibm_struct brightness_driver_data = {  |