[U-Boot] [PATCH] dm: video: fix abuse of enum

Simon Glass sjg at chromium.org
Thu Jul 6 04:49:28 UTC 2017


Hi Lothar,

On 23 June 2017 at 00:30, Lothar Waßmann <LW at karo-electronics.de> wrote:
> Hi,
>
> On Wed, 21 Jun 2017 09:59:05 +0200 Lothar Waßmann wrote:
>> Hi,
>>
>> On Tue, 20 Jun 2017 12:26:29 -0600 Simon Glass wrote:
>> > Hi Lothar,
>> >
>> > On 20 June 2017 at 04:25, Lothar Waßmann <LW at karo-electronics.de> wrote:
>> > > LCD_MAX_WIDTH, LCD_MAX_HEIGHT and LCD_MAX_LSBPP are not alternative
>> > > values for one specific variable, but unrelated entities with distinct
>> > > purposes. There is no use defining them as values of an 'enum'.
>> >
>> > Can you explain why #define is better? I prefer enum since they are a
>> > compiler construct instead of preprocessor (thus no need for brackets,
>> > no strange conversion things) and the debugger knows about them.
>> >
>> An enum defines alternative values for one specific entity (e.g.
>> clauses for a switch construct), but not a collection of arbitrary data
>> items.
>>
>> > > The 'enum' construct would fail miserably for an LCD controller that
>> > > has a square max. frame size (e.g. 4096x4096).
>> >
>> > What does this mean? I don't understand sorry.
>> >
>> Try your enum with MAX_LCD_WITDH == MAC_LCD_HEIGHT.

Can you please be explicit as to what the problem is? Sorry but I
don't understand what you are driving at. Do you have a test program
which shows the problem?

>>
> Are you still not convinced, that the use of 'enum' is inappropriate in
> this context?

Not yet. I don't know of any problem with it, and I prefer enum to
#define in many situations for the reasons I list above.

Regards,
Simon


More information about the U-Boot mailing list