From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752015AbdF3Rhq (ORCPT ); Fri, 30 Jun 2017 13:37:46 -0400 Received: from mx1.redhat.com ([209.132.183.28]:37364 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751203AbdF3Rho (ORCPT ); Fri, 30 Jun 2017 13:37:44 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 45B926B222 Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=hdegoede@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 45B926B222 Subject: Re: [PATCH v2] ACPI: surface3_power: MSHW0011 rev-eng implementation To: Andy Shevchenko , Benjamin Tissoires Cc: Bastien Nocera , Stephen Just , Sebastian Reichel , "Rafael J . Wysocki" , Len Brown , Robert Moore , Lv Zheng , Mika Westerberg , "linux-acpi@vger.kernel.org" , devel@acpica.org, "linux-pm@vger.kernel.org" , "linux-kernel@vger.kernel.org" References: <20170629121009.30234-1-benjamin.tissoires@redhat.com> <20170630155706.GL26073@mail.corp.redhat.com> From: Hans de Goede Message-ID: <7d8201bf-b05e-6235-7eb0-54b1a393f99f@redhat.com> Date: Fri, 30 Jun 2017 19:37:34 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 30 Jun 2017 17:37:43 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On 30-06-17 18:37, Andy Shevchenko wrote: > On Fri, Jun 30, 2017 at 6:57 PM, Benjamin Tissoires >>>> +static const struct i2c_device_id mshw0011_id[] = { >>>> + { } >>>> +}; >>>> +MODULE_DEVICE_TABLE(i2c, mshw0011_id); >>> >>> ->probe_new(), please. >> >> Correct >> >>> >>> If I2C framework is _still_ broken we need to fix that part. >> >> I haven't check, so let's see for v3. > > Cc: Wolfram for v3 and ask him directly. Last time I checked it looks > like I2C core doesn't care about ACPI when ->probe_new() is used. ACPI i2c drivers still need an empty i2c_device_id table I've fixing this on my TODO but it has been buried in other stuff. Benjamin if (not saying you should, but if) you want to take a look at this, fixing the need for the empty table for ACPI devices should be easy. The problem is these lines in drivers/i2c/i2c-core.c: i2c_device_probe(): /* * An I2C ID table is not mandatory, if and only if, a suitable Device * Tree match table entry is supplied for the probing device. */ if (!driver->id_table && !i2c_of_match_device(dev->driver->of_match_table, client)) return -ENODEV; Which needs to be extended to also check for an ACPI match AFAIK you can NOT just replace this with i2c_device_match because that would break manually binding a driver through sysfs. Regards, Hans