Hi, On Wed, Mar 12, 2025, at 13:03, Aditya Garg wrote: >> On 12 Mar 2025, at 5:29 PM, Thomas Zimmermann <tzimmermann@xxxxxxx> wrote: >> >> Hi >> >>> Am 12.03.25 um 12:49 schrieb Aditya Garg: >>> >>>>> On 12 Mar 2025, at 5:16 PM, Thomas Zimmermann <tzimmermann@xxxxxxx> wrote: >>>> >>>> Hi >>>> >>>>> Am 12.03.25 um 10:05 schrieb Aditya Garg: >>>>> From: Hector Martin <marcan@xxxxxxxxx> >>>>> >>>>> %p4cc is designed for DRM/V4L2 FourCCs with their specific quirks, but >>>>> it's useful to be able to print generic 4-character codes formatted as >>>>> an integer. Extend it to add format specifiers for printing generic >>>>> 32-bit FourCCs with various endian semantics: >>>>> >>>>> %p4ch Host byte order >>>>> %p4cn Network byte order >>>>> %p4cl Little-endian >>>>> %p4cb Big-endian >>>> That looks like someone trying to be too clever for their own good. Just my 2 cts. >>> I don't understand what you are trying to say. Anyways, I thought it's obvious, but Petr's Ack is still left and thus cannot be merged into DRM for now unless he says so in this thread. >> >> I'm trying to say that the author of this patch found the %p4cc functionality and over-generalized the feature. Source code should express the idea of what it's doing in clear terms. %p4ch somehow doesn't do that for me. Printing 4 bytes in various orders without context seems arbitrary and confusing. >> >> (I don't really have a say here. I'm just asking to reconsider this change.) > > Ah I see. I'll checkout the macros you sent. The Asahi Linux SMC > drivers would need these as well, so I'll probably first wait for the > vsprintf maintainers and also Asahi Linux maintainers for their views. I don't have a strong opinion either way: for SMC I just need to print FourCC keys for debugging / information in a few places. I'm preparing the SMC driver for upstreaming again (after a two year delay :-() and was just going to use macros to print the SMC FourCC keys similar to DRM_MODE_FMT/DRM_MODE_ARG for now to keep the series smaller and revisit the topic later. Right now I have these in my local tree (only compile tested so far): #define SMC_KEY_FMT "%c%c%c%c (0x%08x)" #define SMC_KEY_ARG(k) (k)>>24, (k)>>16, (k)>>8, (k), (k) which are then used like this: dev_info(dev, "Initialized (%d keys " SMC_KEY_FMT " .. " SMC_KEY_FMT ")\n", smc->key_count, SMC_KEY_ARG(smc->first_key), SMC_KEY_ARG(smc->last_key)); Best, Sven