All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Nikula <jarkko.nikula@linux.intel.com>
To: Wolfram Sang <wsa@the-dreams.de>
Cc: linux-i2c@vger.kernel.org, alsa-devel@alsa-project.org,
	linux-acpi@vger.kernel.org, lm-sensors@lm-sensors.org,
	Mark Brown <broonie@kernel.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Jean Delvare <jdelvare@suse.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Dustin Byford <dustin@cumulusnetworks.com>,
	linux@roeck-us.net
Subject: Re: [RFC] i2c: Revert back to old device naming for ACPI enumerated I2C slaves
Date: Mon, 12 Oct 2015 11:32:23 +0300	[thread overview]
Message-ID: <561B7017.8090004@linux.intel.com> (raw)
In-Reply-To: <20151009214712.GD1481@katana>

Hi
On 10/10/2015 12:47 AM, Wolfram Sang wrote:
> On Fri, Oct 02, 2015 at 12:27:16PM +0300, Jarkko Nikula wrote:
>> On 10/01/2015 11:37 PM, Wolfram Sang wrote:
>>> Do you foresee troubles already? I am still in favour of a symlink.
>>>
>> I haven't looked at this for a while but one problem was that devices/
>> directory belongs to private structure of struct bus_type and in order to
>> create a symlink there it needs to done in drivers/base/bus.c:
>> bus_add_device() which felt quite hackish to me.
>
> This is just a quick prototype and untested; but I did something similar
> in the i2c-mux code:
>
> diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
> index 5f89f1e3c2f24f..715dca57ba68fd 100644
> --- a/drivers/i2c/i2c-core.c
> +++ b/drivers/i2c/i2c-core.c
> @@ -970,13 +970,15 @@ static void i2c_dev_set_name(struct i2c_adapter *adap,
>   {
>   	struct acpi_device *adev = ACPI_COMPANION(&client->dev);
>
> -	if (adev) {
> -		dev_set_name(&client->dev, "i2c-%s", acpi_dev_name(adev));
> -		return;
> -	}
> -
>   	dev_set_name(&client->dev, "%d-%04x", i2c_adapter_id(adap),
>   		     i2c_encode_flags_to_addr(client));
> +
> +	if (adev) {
> +		char symlink_name[256];
> +
> +		snprintf(symlink_name, sizeof(symlink_name), "i2c-%s", acpi_dev_name(adev));
> +		sysfs_create_link(&client->dev.kobj, &adap->dev.kobj, symlink_name);
> +	}
>   }
>
>   /**
>
> Shouldn't something like this be enough?
>
Not really. It would create the symlink under the device not under 
/sys/bus/i2c/devices/. Please note the sysfs_create_link() must be 
called after device_register(). I moved the symlink creation into 
i2c_new_device() for the example below.

Now:

/sys/bus/i2c/devices/i2c-ATML3432:00 -> 
../../../devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-9/i2c-ATML3432:00

After modified patch:

/sys/bus/i2c/devices/9-004c -> 
../../../devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-9/9-004c

which has now the symlink pointing to adapter

/sys/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-9/9-004c/
i2c-ATML3432:00 -> ../../i2c-9

We would need a following symlink but I didn't figure out how to do it 
without touching drivers/base/bus.c.

/sys/bus/i2c/devices/i2c-ATML3432:00 -> 9-004c

Symlinks there are added/removed by using &bus->p->devices_kset->kobj 
where p is a private for driver core only.

-- 
Jarkko

      reply	other threads:[~2015-10-12  8:32 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-24 10:52 [RFC] i2c: Revert back to old device naming for ACPI enumerated I2C slaves Jarkko Nikula
2015-08-24 10:52 ` [lm-sensors] " Jarkko Nikula
     [not found] ` <1440413522-7855-1-git-send-email-jarkko.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-08-24 13:26   ` Wolfram Sang
2015-08-24 13:26     ` [lm-sensors] " Wolfram Sang
2015-08-25  0:19     ` Rafael J. Wysocki
2015-08-25  0:19       ` [lm-sensors] " Rafael J. Wysocki
2015-08-25 14:59       ` Wolfram Sang
2015-08-25 14:59         ` [lm-sensors] " Wolfram Sang
2015-08-25  5:03   ` Dustin Byford
2015-08-25  5:03     ` [lm-sensors] " Dustin Byford
     [not found]     ` <20150825050306.GB21569-qUQiAmfTcIp+XZJcv9eMoEEOCMrvLtNR@public.gmane.org>
2015-08-25 14:50       ` Jarkko Nikula
2015-08-25 14:50         ` [lm-sensors] " Jarkko Nikula
2015-08-25  5:25   ` Mark Brown
2015-08-25  5:25     ` [lm-sensors] " Mark Brown
2015-08-25 14:57     ` Wolfram Sang
2015-08-25 14:57       ` [lm-sensors] " Wolfram Sang
     [not found]       ` <20150825145756.GA4066-oo5tB6JMkjKRinMKxDlMNPwbnWRJjS81@public.gmane.org>
2015-08-25 15:18         ` Guenter Roeck
2015-08-25 15:18           ` [lm-sensors] " Guenter Roeck
     [not found]           ` <55DC8746.1060809-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2015-08-25 16:18             ` Wolfram Sang
2015-08-25 16:18               ` [lm-sensors] " Wolfram Sang
2015-08-25 16:22               ` Wolfram Sang
2015-08-25 16:22                 ` [lm-sensors] " Wolfram Sang
2015-08-25 17:12               ` Guenter Roeck
2015-08-25 17:12                 ` [lm-sensors] " Guenter Roeck
2015-08-25 16:14       ` Mark Brown
2015-08-25 16:14         ` [lm-sensors] " Mark Brown
2015-10-01 20:37 ` Wolfram Sang
2015-10-02  9:27   ` Jarkko Nikula
2015-10-09 21:47     ` Wolfram Sang
2015-10-12  8:32       ` Jarkko Nikula [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=561B7017.8090004@linux.intel.com \
    --to=jarkko.nikula@linux.intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=dustin@cumulusnetworks.com \
    --cc=jdelvare@suse.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=lm-sensors@lm-sensors.org \
    --cc=rjw@rjwysocki.net \
    --cc=wsa@the-dreams.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.