Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Nilawar, Badal" <badal.nilawar@intel.com>
To: Greg KH <gregkh@linuxfoundation.org>,
	"Gupta, Anshuman" <anshuman.gupta@intel.com>
Cc: "intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Vivi, Rodrigo" <rodrigo.vivi@intel.com>,
	"Usyskin, Alexander" <alexander.usyskin@intel.com>,
	"Ceraolo Spurio, Daniele" <daniele.ceraolospurio@intel.com>
Subject: Re: [PATCH v6 02/10] mei: late_bind: add late binding component driver
Date: Fri, 4 Jul 2025 18:33:38 +0530	[thread overview]
Message-ID: <01c93080-82a1-4968-9978-45cfd237cbd1@intel.com> (raw)
In-Reply-To: <2025070434-oversleep-amnesty-b4fd@gregkh>


On 04-07-2025 17:59, Greg KH wrote:
> On Fri, Jul 04, 2025 at 12:21:42PM +0000, Gupta, Anshuman wrote:
>>
>>> -----Original Message-----
>>> From: Greg KH <gregkh@linuxfoundation.org>
>>> Sent: Friday, July 4, 2025 5:31 PM
>>> To: Nilawar, Badal <badal.nilawar@intel.com>
>>> Cc: intel-xe@lists.freedesktop.org; dri-devel@lists.freedesktop.org; linux-
>>> kernel@vger.kernel.org; Gupta, Anshuman <anshuman.gupta@intel.com>;
>>> Vivi, Rodrigo <rodrigo.vivi@intel.com>; Usyskin, Alexander
>>> <alexander.usyskin@intel.com>; Ceraolo Spurio, Daniele
>>> <daniele.ceraolospurio@intel.com>
>>> Subject: Re: [PATCH v6 02/10] mei: late_bind: add late binding component
>>> driver
>>>
>>> On Fri, Jul 04, 2025 at 05:18:46PM +0530, Nilawar, Badal wrote:
>>>> On 04-07-2025 16:04, Greg KH wrote:
>>>>> On Fri, Jul 04, 2025 at 03:59:40PM +0530, Nilawar, Badal wrote:
>>>>>> On 04-07-2025 10:44, Greg KH wrote:
>>>>>>> On Fri, Jul 04, 2025 at 01:00:58AM +0530, Badal Nilawar wrote:
>>>>>>>> From: Alexander Usyskin <alexander.usyskin@intel.com>
>>>>>>>>
>>>>>>>> Add late binding component driver.
>>>>>>>> It allows pushing the late binding configuration from, for
>>>>>>>> example, the Xe graphics driver to the Intel discrete graphics card's
>>> CSE device.
>>>>>>>> Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
>>>>>>>> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
>>>>>>>> Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com>
>>>>>>>> ---
>>>>>>>>     drivers/misc/mei/Kconfig                    |   1 +
>>>>>>>>     drivers/misc/mei/Makefile                   |   1 +
>>>>>>>>     drivers/misc/mei/late_bind/Kconfig          |  13 +
>>>>>>>>     drivers/misc/mei/late_bind/Makefile         |   9 +
>>>>>>>>     drivers/misc/mei/late_bind/mei_late_bind.c  | 272
>>>>>>>> ++++++++++++++++++++
>>>>>>> Why do you have a whole subdir for a single .c file?  What's
>>>>>>> wrong with just keepign it in drivers/misc/mei/ ?
>>>>>> There is separate subdir for each component used by i915/xe, so
>>>>>> one was created for late_bind as well. Should we still drop late_bind
>>> subdir?
>>>>>> cd drivers/misc/mei/
>>>>>>         gsc_proxy/ hdcp/      late_bind/ pxp/
>>>>> For "modules" that are just a single file, yeah, that's silly, don't
>>>>> do that.
>>>> Another reason to maintain the sub_dir is to accommodate additional
>>>> files for future platforms. If you still insist, I'll remove the sub_dir.
>>> Move files around when it happens, for now, it's silly and not needed.
>>>
>>>>>>>> + * @payload_size: size of the payload data in bytes
>>>>>>>> + * @payload: data to be sent to the firmware  */ struct
>>>>>>>> +csc_heci_late_bind_req {
>>>>>>>> +	struct mkhi_msg_hdr header;
>>>>>>>> +	u32 type;
>>>>>>>> +	u32 flags;
>>>>>>>> +	u32 reserved[2];
>>>>>>>> +	u32 payload_size;
>>>>>>> As these cross the kernel boundry, they should be the correct
>>>>>>> type (__u32), but really, please define the endiness of them
>>>>>>> (__le32) and use the proper macros for that.
>>>>>> If we go with __le32 then while populating elements of structure
>>>>>> csc_heci_late_bind_req  I will be using cpu_to_le32().
>>>>>>
>>>>>> When mapping the response buffer from the firmware with struct
>>>>>> csc_heci_late_bind_rsp, there's no need to use le32_to_cpu() since
>>>>>> the response will already be in little-endian format.
>>>>> How do you know?  Where is that defined?  Where did the conversion
>>>>> happen?
>>>> Sorry, I got confused. Conversion is needed when assigning the
>>>> response structure elements.
>>>>
>>>> e.g ret = (int)(le32_to_cpu)rsp.status;
>>> But these are read directly from the hardware?  If not, why are they marked as
>>> packed?
>> Yes, these are read from firmware, that is the reason they marked as __packed.
>> IMHO, don't we need change the explicit endianness of response status to address your comment.
>> Are we missing something here?
> Yes.  The firmware defines these values as __le32, right?  And if you
> read a chunk of memory and cast it into this structure, those fields
> are now also __le32, right?  So to read them in the driver you need to
> then call le32_to_cpu() on those values.
Agreed. Therefore, the following assignment is valid and needed as ret 
can be BE if CPU is BE.

e.g. ret = (int)le32_to_cpu(rsp.status);

>
> Just like data on the USB bus, or any other hardware type.  You must
> define what endian the data is in and then convert it to "native" before
> accessing it properly.
Ok
>
> thanks,
>
> greg k-h

  reply	other threads:[~2025-07-04 13:04 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-03 19:30 [PATCH v6 00/10] Introducing firmware late binding Badal Nilawar
2025-07-03 19:30 ` [PATCH v6 01/10] mei: bus: add mei_cldev_mtu interface Badal Nilawar
2025-07-03 19:30 ` [PATCH v6 02/10] mei: late_bind: add late binding component driver Badal Nilawar
2025-07-04  5:14   ` Greg KH
2025-07-04 10:29     ` Nilawar, Badal
2025-07-04 10:34       ` Greg KH
2025-07-04 11:48         ` Nilawar, Badal
2025-07-04 12:00           ` Greg KH
2025-07-04 12:21             ` Gupta, Anshuman
2025-07-04 12:29               ` Greg KH
2025-07-04 13:03                 ` Nilawar, Badal [this message]
2025-07-03 19:30 ` [PATCH v6 03/10] drm/xe/xe_late_bind_fw: Introducing xe_late_bind_fw Badal Nilawar
2025-07-03 19:31 ` [PATCH v6 04/10] drm/xe/xe_late_bind_fw: Initialize late binding firmware Badal Nilawar
2025-07-03 19:31 ` [PATCH v6 05/10] drm/xe/xe_late_bind_fw: Load " Badal Nilawar
2025-07-03 21:38   ` Daniele Ceraolo Spurio
2025-07-03 19:31 ` [PATCH v6 06/10] drm/xe/xe_late_bind_fw: Reload late binding fw in rpm resume Badal Nilawar
2025-07-03 19:31 ` [PATCH v6 07/10] drm/xe/xe_late_bind_fw: Reload late binding fw during system resume Badal Nilawar
2025-07-03 19:31 ` [PATCH v6 08/10] drm/xe/xe_late_bind_fw: Introduce debug fs node to disable late binding Badal Nilawar
2025-07-03 19:31 ` [PATCH v6 09/10] drm/xe/xe_late_bind_fw: Extract and print version info Badal Nilawar
2025-07-03 19:31 ` [PATCH v6 10/10] drm/xe/xe_late_bind_fw: Select INTEL_MEI_LATE_BIND for CI Badal Nilawar
2025-07-03 20:01 ` ✗ CI.checkpatch: warning for Introducing firmware late binding Patchwork
2025-07-03 20:02 ` ✓ CI.KUnit: success " Patchwork
2025-07-03 20:20 ` ✗ CI.checksparse: warning " Patchwork
2025-07-03 20:56 ` ✓ Xe.CI.BAT: success " Patchwork
2025-07-05 12:50 ` ✗ Xe.CI.Full: failure " Patchwork

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=01c93080-82a1-4968-9978-45cfd237cbd1@intel.com \
    --to=badal.nilawar@intel.com \
    --cc=alexander.usyskin@intel.com \
    --cc=anshuman.gupta@intel.com \
    --cc=daniele.ceraolospurio@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rodrigo.vivi@intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox