Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp890966imm; Wed, 4 Jul 2018 07:43:08 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdPcrLsOQmjgDjsApZ20p1Zgn7bPcZh9k294R0MTPeBk5hQIc/G9AV6Vs0SeI3T0TWezbV2 X-Received: by 2002:a63:6e0a:: with SMTP id j10-v6mr2192495pgc.321.1530715388447; Wed, 04 Jul 2018 07:43:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530715388; cv=none; d=google.com; s=arc-20160816; b=IV8BNV1aEuuiVZpoNE6UGdx4LIRPF8QnUy/LQmE6u+OmQJBuHGYqtBFWqoAzP7AcKV q8lBzS5cqR2Id+IHpTUcVeEfpyB7ROvU3mhnuWsrlote/DuVE4dWXqWiQwuZDwNt7/Ac HSrRy5czdP5putkm+L6MjpUBtTMwMQPJCegedPrE3zTFSPeVh6+iW0l7vbrpGFyLAC7h PY3AMLF0KOzkkacosKgQl82kPlilhBhcQb15tkbAW6x6KLovgdfZ1V9gkn7zeys+rl+c RzPSLKr4Hn3EHIfPLEPHMP8ToGiDBxA5q7BrVODZ6B5lAMOTNZ3g+igDBtyu8mRlHsqx 6fwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=hhTS07VxhS/Z1/hr/xP3MxTtB9G2BS1YH2wDM4fUTEY=; b=qqX2NfzdlbvNodopEqUNcO/tgGG5bfhaqA1APBbUZHtjuCpY80vrrNbNNZLCmGuttP pCllGJL0BhEZgehWCrPL+7852cLc8vC8BUgREziDXZSnjgZliwx4A1gCvqZuv7iIlFF4 gg7wEhHZAS6HeY7oi71abUTAySSPZf0gPFjC/VmH6y3A7SvFxXTea78u+9CibKOZsTdi mDanZLUTQ5YPzFaKEgcXmbV9uPA9mRLYbf8RsjOmn7a27e1WA/91o9fkuKgLgRp2devz 1RRsPxIbloR2d8ef/ui9LQVcMTxHS0+wjLA5GSUDBJ3J1HM/lYFPKgHf0azP00ppymz7 Qv9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rg3hOul8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e82-v6si4045083pfh.64.2018.07.04.07.42.54; Wed, 04 Jul 2018 07:43:08 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=rg3hOul8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753165AbeGDOki (ORCPT + 99 others); Wed, 4 Jul 2018 10:40:38 -0400 Received: from mail-ua0-f194.google.com ([209.85.217.194]:34383 "EHLO mail-ua0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752816AbeGDOkf (ORCPT ); Wed, 4 Jul 2018 10:40:35 -0400 Received: by mail-ua0-f194.google.com with SMTP id r10-v6so3586320uao.1; Wed, 04 Jul 2018 07:40:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=hhTS07VxhS/Z1/hr/xP3MxTtB9G2BS1YH2wDM4fUTEY=; b=rg3hOul8dlTQvzK8KIkpfR3esyZXmeZl4V2Row7znKsNfyAwx/7WjVhx6Mm03mWGYe 5IW1svksBdcX6NX6n2dY6hemBtLgRY+NMtQjDSbOHhCwwOk2m3msSYADklGqn8fEJPN8 lQ/kNegTmrO8vfNVz6PTmPrXzuhkUekV4KkVWDcRpu9FLRw6xVeWLBaZzu6BX/0i+PVa TV8yiy0ge6olic0yvVFj0CguupswVu1EDk8orTdW8l+GwuLRu093f8pHHn4wKLtkBtZJ j3+D1D8lLdXZ/GVwB9I8LibfyJI5aeSre3BOy8D8rqmoyhJstsZIlA3vXCf2QPbB093E 2osA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=hhTS07VxhS/Z1/hr/xP3MxTtB9G2BS1YH2wDM4fUTEY=; b=D/wizsq7kUh27Dn+L7t2sHtFdmO6/Y+RhqhGm32QhF+uLMtBx0nvRGpM03tgXpater RwXvthullLIhDKZHsSRLIXFz0v0F3OLrNPHMADxYHOlCew5MwACHbpQwyPERg9vne6V7 QJEGBS9CklyjpEA+846JiGYgmsrwDDjiYS239vp2u/Gb5jbBLxT4cXZoGl3NadGsxTAs ee57guEIGH5rQFbC8FPBc7SUiQg63GVsvS/c2rtx/yZ/AzYcEQgFAEhK4WXhCF3PjBE8 17/Z41bgyy6TM9xDIZfdeKfzNku9xuwEje5KhUo1WY9GowYhSUztM6jMR2jmK2kdfmDh WJKw== X-Gm-Message-State: APt69E32edboCdYUi0E8qu9wRN4CCw2k+gq0TAhs01Z9ylcxiHZBiHoa AbVIC8JY7kSJ+jzqzM8kVR1mKW0ZoI1va7xsCHM= X-Received: by 2002:ab0:6037:: with SMTP id n23-v6mr1364764ual.28.1530715235124; Wed, 04 Jul 2018 07:40:35 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a67:2149:0:0:0:0:0 with HTTP; Wed, 4 Jul 2018 07:40:34 -0700 (PDT) In-Reply-To: <950e8d0caf9f5f55df07eba8a11b2fa8cba9f9e1.1530708691.git.nikolaus.voss@loewensteinmedical.de> References: <950e8d0caf9f5f55df07eba8a11b2fa8cba9f9e1.1530708691.git.nikolaus.voss@loewensteinmedical.de> From: Andy Shevchenko Date: Wed, 4 Jul 2018 17:40:34 +0300 Message-ID: Subject: Re: [PATCH v2] ACPI: bus.c: Let acpi_device_get_match_data() return DT compatibility data To: Nikolaus Voss Cc: "Rafael J. Wysocki" , Len Brown , Jonathan Cameron , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Lorenzo Bianconi , Linus Walleij , Xiongfeng Wang , ACPI Devel Maling List , Linux Kernel Mailing List , Sudeep Holla , Ray Jui , Vladimir Olovyannikov , Vikram Prakash , Scott Branden , Srinath Mannam , Nikolaus Voss Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 3, 2018 at 9:09 AM, Nikolaus Voss wrote: > When using ACPI with ACPI_DT_NAMESPACE_HID/ PRP0001 HID and referring to > of_device_id table "compatible" strings in DSD, a pointer to the > corresponding DT table entry should be returned instead of a null > pointer. An acpi_device_id match still takes precedence. > Reviewed-by: Andy Shevchenko with a caveat that this is only an improvement for a _temporary_ PRP0001 users like I2C or SPI slave devices. Please, don't consider this change as a valid point to (ab)use PRP0001 in a cases where devices are not "hotpluggable". > v2: improve readability (as suggested by Andy Shevchenko) > > Signed-off-by: Nikolaus Voss > --- > drivers/acpi/bus.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c > index 84b4a62018eb..58575fdace78 100644 > --- a/drivers/acpi/bus.c > +++ b/drivers/acpi/bus.c > @@ -832,13 +832,22 @@ EXPORT_SYMBOL_GPL(acpi_match_device); > > const void *acpi_device_get_match_data(const struct device *dev) > { > - const struct acpi_device_id *match; > + const struct acpi_device_id *acpi_id = NULL; > + const struct of_device_id *of_id = NULL; > + const struct device_driver *drv = dev->driver; > + bool match; > + > + match = __acpi_match_device(acpi_companion_match(dev), > + drv->acpi_match_table, > + drv->of_match_table, &acpi_id, &of_id); > > - match = acpi_match_device(dev->driver->acpi_match_table, dev); > if (!match) > return NULL; > + > + if (of_id) > + return (const void*)of_id->data; > > - return (const void *)match->driver_data; > + return (const void*)acpi_id->driver_data; > } > EXPORT_SYMBOL_GPL(acpi_device_get_match_data); > > -- > 2.17.1 > -- With Best Regards, Andy Shevchenko