diff options
Diffstat (limited to 'drivers/platform/surface/surface_hotplug.c')
| -rw-r--r-- | drivers/platform/surface/surface_hotplug.c | 13 | 
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/platform/surface/surface_hotplug.c b/drivers/platform/surface/surface_hotplug.c index f004a2495201..7b6d887dccdb 100644 --- a/drivers/platform/surface/surface_hotplug.c +++ b/drivers/platform/surface/surface_hotplug.c @@ -101,18 +101,12 @@ static void shps_dsm_notify_irq(struct platform_device *pdev, enum shps_irq_type  	param.type = ACPI_TYPE_INTEGER;  	param.integer.value = value; -	result = acpi_evaluate_dsm(handle, &shps_dsm_guid, SHPS_DSM_REVISION, -				   shps_dsm_fn_for_irq(type), ¶m); - +	result = acpi_evaluate_dsm_typed(handle, &shps_dsm_guid, SHPS_DSM_REVISION, +					 shps_dsm_fn_for_irq(type), ¶m, ACPI_TYPE_BUFFER);  	if (!result) {  		dev_err(&pdev->dev, "IRQ notification via DSM failed (irq=%d, gpio=%d)\n",  			type, value); -	} else if (result->type != ACPI_TYPE_BUFFER) { -		dev_err(&pdev->dev, -			"IRQ notification via DSM failed: unexpected result type (irq=%d, gpio=%d)\n", -			type, value); -  	} else if (result->buffer.length != 1 || result->buffer.pointer[0] != 0) {  		dev_err(&pdev->dev,  			"IRQ notification via DSM failed: unexpected result value (irq=%d, gpio=%d)\n", @@ -121,8 +115,7 @@ static void shps_dsm_notify_irq(struct platform_device *pdev, enum shps_irq_type  	mutex_unlock(&sdev->lock[type]); -	if (result) -		ACPI_FREE(result); +	ACPI_FREE(result);  }  static irqreturn_t shps_handle_irq(int irq, void *data)  |