On Fri, Jul 04, 2025 at 12:21:42PM +0000, Gupta, Anshuman wrote:Agreed. Therefore, the following assignment is valid and needed as ret can be BE if CPU is BE.
Yes. The firmware defines these values as __le32, right? And if you
-----Original Message-----Yes, these are read from firmware, that is the reason they marked as __packed.
From: Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx>
Sent: Friday, July 4, 2025 5:31 PM
To: Nilawar, Badal <badal.nilawar@xxxxxxxxx>
Cc: intel-xe@xxxxxxxxxxxxxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx; linux-
kernel@xxxxxxxxxxxxxxx; Gupta, Anshuman <anshuman.gupta@xxxxxxxxx>;
Vivi, Rodrigo <rodrigo.vivi@xxxxxxxxx>; Usyskin, Alexander
<alexander.usyskin@xxxxxxxxx>; Ceraolo Spurio, Daniele
<daniele.ceraolospurio@xxxxxxxxx>
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:CSE device.
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@xxxxxxxxx>
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
subdir?There is separate subdir for each component used by i915/xe, soSigned-off-by: Alexander Usyskin <alexander.usyskin@xxxxxxxxx>Why do you have a whole subdir for a single .c file? What's
Signed-off-by: Badal Nilawar <badal.nilawar@xxxxxxxxx>
Reviewed-by: Anshuman Gupta <anshuman.gupta@xxxxxxxxx>
---
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
++++++++++++++++++++
wrong with just keepign it in drivers/misc/mei/ ?
one was created for late_bind as well. Should we still drop late_bind
Move files around when it happens, for now, it's silly and not needed.Another reason to maintain the sub_dir is to accommodate additionalcd drivers/misc/mei/For "modules" that are just a single file, yeah, that's silly, don't
gsc_proxy/ hdcp/ late_bind/ pxp/
do that.
files for future platforms. If you still insist, I'll remove the sub_dir.
But these are read directly from the hardware? If not, why are they marked asSorry, I got confused. Conversion is needed when assigning theHow do you know? Where is that defined? Where did the conversionIf we go with __le32 then while populating elements of structure+ * @payload_size: size of the payload data in bytesAs these cross the kernel boundry, they should be the correct
+ * @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;
type (__u32), but really, please define the endiness of them
(__le32) and use the proper macros for that.
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.
happen?
response structure elements.
e.g ret = (int)(le32_to_cpu)rsp.status;
packed?
IMHO, don't we need change the explicit endianness of response status to address your comment.
Are we missing something here?
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.
Ok
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.
thanks,
greg k-h