Message ID | 20170809093731.3572-1-javierm@redhat.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers |
Received: from vger.kernel.org ([209.132.180.67]) by www.linuxtv.org with esmtp (Exim 4.84_2) (envelope-from <linux-media-owner@vger.kernel.org>) id 1dfNR4-0003yt-Ks; Wed, 09 Aug 2017 09:37:54 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751890AbdHIJhi (ORCPT <rfc822;mkrufky@linuxtv.org> + 1 other); Wed, 9 Aug 2017 05:37:38 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47770 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751429AbdHIJhi (ORCPT <rfc822;linux-media@vger.kernel.org>); Wed, 9 Aug 2017 05:37:38 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E8C44D5F13; Wed, 9 Aug 2017 09:37:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com E8C44D5F13 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=javierm@redhat.com Received: from minerva.redhat.com (ovpn-116-235.ams2.redhat.com [10.36.116.235]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7A0A56C213; Wed, 9 Aug 2017 09:37:33 +0000 (UTC) From: Javier Martinez Canillas <javierm@redhat.com> To: linux-kernel@vger.kernel.org Cc: Javier Martinez Canillas <javierm@redhat.com>, Kieran Bingham <kieran.bingham@ideasonboard.com>, Mauro Carvalho Chehab <mchehab@kernel.org>, linux-media@vger.kernel.org Subject: [PATCH] media: i2c: adv748x: Export I2C device table entries as module aliases Date: Wed, 9 Aug 2017 11:37:30 +0200 Message-Id: <20170809093731.3572-1-javierm@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Wed, 09 Aug 2017 09:37:38 +0000 (UTC) Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org |
Commit Message
Javier Martinez Canillas
Aug. 9, 2017, 9:37 a.m. UTC
The I2C core always reports a MODALIAS of the form i2c:<foo> even if the
device was registered via OF, and the driver is only exporting the OF ID
table entries as module aliases.
So if the driver is built as module, autoload won't work since udev/kmod
won't be able to match the registered OF device with its driver module.
Before this patch:
$ modinfo drivers/media/i2c/adv748x/adv748x.ko | grep alias
alias: of:N*T*Cadi,adv7482C*
alias: of:N*T*Cadi,adv7482
alias: of:N*T*Cadi,adv7481C*
alias: of:N*T*Cadi,adv7481
After this patch:
modinfo drivers/media/i2c/adv748x/adv748x.ko | grep alias
alias: of:N*T*Cadi,adv7482C*
alias: of:N*T*Cadi,adv7482
alias: of:N*T*Cadi,adv7481C*
alias: of:N*T*Cadi,adv7481
alias: i2c:adv7482
alias: i2c:adv7481
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---
drivers/media/i2c/adv748x/adv748x-core.c | 1 +
1 file changed, 1 insertion(+)
Comments
Hi Javier, Thankyou for the patch On 09/08/17 10:37, Javier Martinez Canillas wrote: > The I2C core always reports a MODALIAS of the form i2c:<foo> even if the > device was registered via OF, and the driver is only exporting the OF ID > table entries as module aliases. > > So if the driver is built as module, autoload won't work since udev/kmod > won't be able to match the registered OF device with its driver module. Good catch, and perhaps I should have known better :D I've only worked on this driver as a built-in so far :-) #BadExcuses > Before this patch: > > $ modinfo drivers/media/i2c/adv748x/adv748x.ko | grep alias > alias: of:N*T*Cadi,adv7482C* > alias: of:N*T*Cadi,adv7482 > alias: of:N*T*Cadi,adv7481C* > alias: of:N*T*Cadi,adv7481 > > After this patch: > > modinfo drivers/media/i2c/adv748x/adv748x.ko | grep alias > alias: of:N*T*Cadi,adv7482C* > alias: of:N*T*Cadi,adv7482 > alias: of:N*T*Cadi,adv7481C* > alias: of:N*T*Cadi,adv7481 > alias: i2c:adv7482 > alias: i2c:adv7481 > > Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> > --- > > drivers/media/i2c/adv748x/adv748x-core.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/media/i2c/adv748x/adv748x-core.c b/drivers/media/i2c/adv748x/adv748x-core.c > index aeb6ae80cb18..5ee14f2c2747 100644 > --- a/drivers/media/i2c/adv748x/adv748x-core.c > +++ b/drivers/media/i2c/adv748x/adv748x-core.c > @@ -807,6 +807,7 @@ static const struct i2c_device_id adv748x_id[] = { > { "adv7482", 0 }, > { }, > }; > +MODULE_DEVICE_TABLE(i2c, adv748x_id); > > static const struct of_device_id adv748x_of_table[] = { > { .compatible = "adi,adv7481", }, >
Hi Kieran, On 08/09/2017 12:29 PM, Kieran Bingham wrote: > Hi Javier, > > Thankyou for the patch > You are welcome. > On 09/08/17 10:37, Javier Martinez Canillas wrote: >> The I2C core always reports a MODALIAS of the form i2c:<foo> even if the >> device was registered via OF, and the driver is only exporting the OF ID >> table entries as module aliases. >> >> So if the driver is built as module, autoload won't work since udev/kmod >> won't be able to match the registered OF device with its driver module. > > Good catch, and perhaps I should have known better :D > > I've only worked on this driver as a built-in so far :-) #BadExcuses > A better excuse I think is that after all these years, one would had thought that the I2C OF modalias issue would had been finally fixed, but not yet :) >> Before this patch: >> >> $ modinfo drivers/media/i2c/adv748x/adv748x.ko | grep alias >> alias: of:N*T*Cadi,adv7482C* >> alias: of:N*T*Cadi,adv7482 >> alias: of:N*T*Cadi,adv7481C* >> alias: of:N*T*Cadi,adv7481 >> >> After this patch: >> >> modinfo drivers/media/i2c/adv748x/adv748x.ko | grep alias >> alias: of:N*T*Cadi,adv7482C* >> alias: of:N*T*Cadi,adv7482 >> alias: of:N*T*Cadi,adv7481C* >> alias: of:N*T*Cadi,adv7481 >> alias: i2c:adv7482 >> alias: i2c:adv7481 >> >> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> > > Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> > Thanks! Best regards,
On 09/08/17 11:58, Javier Martinez Canillas wrote: > Hi Kieran, > > On 08/09/2017 12:29 PM, Kieran Bingham wrote: >> Hi Javier, >> >> Thankyou for the patch > > You are welcome. > >> On 09/08/17 10:37, Javier Martinez Canillas wrote: >>> The I2C core always reports a MODALIAS of the form i2c:<foo> even if the >>> device was registered via OF, and the driver is only exporting the OF ID >>> table entries as module aliases. >>> >>> So if the driver is built as module, autoload won't work since udev/kmod >>> won't be able to match the registered OF device with its driver module. >> >> Good catch, and perhaps I should have known better :D >> >> I've only worked on this driver as a built-in so far :-) #BadExcuses >> > > A better excuse I think is that after all these years, one would had thought > that the I2C OF modalias issue would had been finally fixed, but not yet :) Quite! Let's try to bubble that back up the todo list. Now - where did I put my free time. I'm sure I left it around here somewhere :-) -- Kieran
On 08/09/2017 01:05 PM, Kieran Bingham wrote: > On 09/08/17 11:58, Javier Martinez Canillas wrote: >> Hi Kieran, >> >> On 08/09/2017 12:29 PM, Kieran Bingham wrote: >>> Hi Javier, >>> >>> Thankyou for the patch >> >> You are welcome. >> >>> On 09/08/17 10:37, Javier Martinez Canillas wrote: >>>> The I2C core always reports a MODALIAS of the form i2c:<foo> even if the >>>> device was registered via OF, and the driver is only exporting the OF ID >>>> table entries as module aliases. >>>> >>>> So if the driver is built as module, autoload won't work since udev/kmod >>>> won't be able to match the registered OF device with its driver module. >>> >>> Good catch, and perhaps I should have known better :D >>> >>> I've only worked on this driver as a built-in so far :-) #BadExcuses >>> >> >> A better excuse I think is that after all these years, one would had thought >> that the I2C OF modalias issue would had been finally fixed, but not yet :) > > Quite! Let's try to bubble that back up the todo list. > Now - where did I put my free time. I'm sure I left it around here somewhere :-) > We are getting there though. I'm just waiting for the patches in this [0] series to land and then I'll be able to post the I2C core uevent modalias patch. I've asked Wolfram if he can at least pick the driver patches [1], but he didn't answer me yet... [0]: https://www.spinics.net/lists/arm-kernel/msg588431.html [1]: https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1457427.html Best regards,
diff --git a/drivers/media/i2c/adv748x/adv748x-core.c b/drivers/media/i2c/adv748x/adv748x-core.c index aeb6ae80cb18..5ee14f2c2747 100644 --- a/drivers/media/i2c/adv748x/adv748x-core.c +++ b/drivers/media/i2c/adv748x/adv748x-core.c @@ -807,6 +807,7 @@ static const struct i2c_device_id adv748x_id[] = { { "adv7482", 0 }, { }, }; +MODULE_DEVICE_TABLE(i2c, adv748x_id); static const struct of_device_id adv748x_of_table[] = { { .compatible = "adi,adv7481", },