Re: [PATCH v0 02/14] drm/amdgpu,drm/radeon: Make I2C terminology more inclusive

From: Christian König
Date: Wed Apr 03 2024 - 10:27:58 EST


Am 03.04.24 um 15:12 schrieb Jani Nikula:
On Wed, 03 Apr 2024, Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> wrote:
On Fri, Mar 29, 2024 at 06:38:10PM +0100, Andi Shyti wrote:
Hi,

On Fri, Mar 29, 2024 at 10:28:14AM -0700, Easwar Hariharan wrote:
On 3/29/2024 10:16 AM, Andi Shyti wrote:
Hi Easwar,

On Fri, Mar 29, 2024 at 05:00:26PM +0000, Easwar Hariharan wrote:
I2C v7, SMBus 3.2, and I3C specifications have replaced "master/slave"
I don't understand why we forget that i3c is 1.1.1 :-)
That's because it's a copy-paste error from Wolfram's cover letter. :) I'll update
next go-around.
not a binding comment, though. Just for completeness, because we
are giving the version to the i2c and smbus, but not i3c.

with more appropriate terms. Inspired by and following on to Wolfram's
series to fix drivers/i2c/[1], fix the terminology for users of
I2C_ALGOBIT bitbanging interface, now that the approved verbiage exists
in the specification.
The specification talks about:

- master -> controller
- slave -> target (and not client)

But both you and Wolfram have used client. I'd like to reach
some more consistency here.
I had the impression that remote targets (i.e external to the device) were to be called clients,
e.g. the QSFP FRUs in drivers/infiniband, and internal ones targets.
I chose the terminology according to that understanding, but now I can't find where I got that
information.
The word "client" does not even appear in the documentation (only
one instance in the i3c document), so that the change is not
related to the document as stated in the commit log. Unless, of
course, I am missing something.

I'm OK with choosing a "customized" naming, but we need to reach
an agreement.

I raised the same question to Wolfram.
I don't know where that discussion happened, but my opinion
is NAK to "client". Life is already confusing enough with
these renames, so let's not make it even more confusing by
inventing new names nowhere to be found in the spec.

And let's especially not invent names that don't even fit
the purpose. "Client" makes me think of "client/server" or
some real world analogy. Neither of which seem to have any
resemblence to how the term would be used for i2c.
Agreed.

I2C 7.0, I3C 1.1.1, and SMBus 3.2 have all switched to controller/target
terminology. The SMBus spec has additionally converted generic host
references to controller.

At least for i915 where I have some say in the matter, controller/target
it shall be.

+1 for using the same vocabulary in amdgpu as in the specifications.

My personal opinion is that master/slave was actually a pretty good description of the relationship.

The "slave" or rather target of the communication is forced into operation, can't speak back and potentially won't get any payment for the serving.

If we remove the word slave from our vocabulary society will just sooner or later start to forget the meaning, and that is probably not a good thing.

Regards,
Christian.



BR,
Jani.