Re: [Outreachy kernel] [PATCH v3] staging: sm750fb: Code readability is improved

From: Geert Uytterhoeven
Date: Sun Mar 19 2017 - 12:06:39 EST


On Sun, Mar 19, 2017 at 4:52 PM, Arushi Singhal
<arushisinghal19971997@xxxxxxxxx> wrote:
> On Sun, Mar 19, 2017 at 7:34 PM, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> wrote:
>>
>> On Sun, Mar 19, 2017 at 2:11 PM, Julia Lawall <julia.lawall@xxxxxxx>
>> wrote:
>> > On Sun, 19 Mar 2017, Arushi Singhal wrote:
>> >> New variables are added to make the code more readable.
>> >>
>> >> Signed-off-by: Arushi Singhal <arushisinghal19971997@xxxxxxxxx>
>> >> ---
>> >> changes in v3
>> >> -try to make the code much more readable.
>> >>
>> >> drivers/staging/sm750fb/ddk750_mode.c | 61
>> >> ++++++++++++++++++++---------------
>> >> 1 file changed, 35 insertions(+), 26 deletions(-)
>> >>
>> >> diff --git a/drivers/staging/sm750fb/ddk750_mode.c
>> >> b/drivers/staging/sm750fb/ddk750_mode.c
>> >> index eea5aef2956f..5f18ce4d10de 100644
>> >> --- a/drivers/staging/sm750fb/ddk750_mode.c
>> >> +++ b/drivers/staging/sm750fb/ddk750_mode.c
>> >> @@ -81,33 +81,42 @@ static int programModeRegisters(mode_parameter_t
>> >> *pModeParam, struct pll_value *
>> >> if (pll->clockType == SECONDARY_PLL) {
>> >> /* programe secondary pixel clock */
>> >> poke32(CRT_PLL_CTRL, sm750_format_pll_reg(pll));
>> >> - poke32(CRT_HORIZONTAL_TOTAL,
>> >> - (((pModeParam->horizontal_total - 1) <<
>> >> - CRT_HORIZONTAL_TOTAL_TOTAL_SHIFT) &
>> >> - CRT_HORIZONTAL_TOTAL_TOTAL_MASK) |
>> >> - ((pModeParam->horizontal_display_end - 1) &
>> >> - CRT_HORIZONTAL_TOTAL_DISPLAY_END_MASK));
>> >> -
>> >> - poke32(CRT_HORIZONTAL_SYNC,
>> >> - ((pModeParam->horizontal_sync_width <<
>> >> - CRT_HORIZONTAL_SYNC_WIDTH_SHIFT) &
>> >> - CRT_HORIZONTAL_SYNC_WIDTH_MASK) |
>> >> - ((pModeParam->horizontal_sync_start - 1) &
>> >> - CRT_HORIZONTAL_SYNC_START_MASK));
>> >>
>> >> - poke32(CRT_VERTICAL_TOTAL,
>> >> - (((pModeParam->vertical_total - 1) <<
>> >> - CRT_VERTICAL_TOTAL_TOTAL_SHIFT) &
>> >> - CRT_VERTICAL_TOTAL_TOTAL_MASK) |
>> >> - ((pModeParam->vertical_display_end - 1) &
>> >> - CRT_VERTICAL_TOTAL_DISPLAY_END_MASK));
>> >> -
>> >> - poke32(CRT_VERTICAL_SYNC,
>> >> - ((pModeParam->vertical_sync_height <<
>> >> - CRT_VERTICAL_SYNC_HEIGHT_SHIFT) &
>> >> - CRT_VERTICAL_SYNC_HEIGHT_MASK) |
>> >> - ((pModeParam->vertical_sync_start - 1) &
>> >> - CRT_VERTICAL_SYNC_START_MASK));
>> >> + unsigned int a = (pModeParam->horizontal_total - 1) <<
>> >> + CRT_HORIZONTAL_TOTAL_TOTAL_SHIFT;
>> >> + unsigned int b = a & CRT_HORIZONTAL_TOTAL_TOTAL_MASK;
>> >> + unsigned int c = (pModeParam->horizontal_display_end - 1)
>> >> &
>> >> + CRT_HORIZONTAL_TOTAL_DISPLAY_END_MASK;
>> >> + unsigned int temp = b | c;
>> >> +
>> >> + poke32(CRT_HORIZONTAL_TOTAL, temp);
>> >> +
>> >> + unsigned int a = (pModeParam->horizontal_sync_width <<
>> >> + CRT_HORIZONTAL_SYNC_WIDTH_SHIFT);
>> >> + unsigned int b = a & CRT_HORIZONTAL_SYNC_WIDTH_MASK;
>> >> + unsigned int c = (pModeParam->horizontal_sync_start - 1)
>> >> &
>> >> + CRT_HORIZONTAL_SYNC_START_MASK;
>> >> + unsigned int temp = b | c;
>> >
>> > This is back to the original incorrect solution. You can't declare
>> > variables on the fly in Linux code. Variables have to be declared at
>> > the
>> > top of a block.
>>
>> Arushi: have you tried to compile this?
>
> Yes.
> It's not showing any error.

No, not an error.

> Is it not fine when you compiled :( ?

But you did introduce warnings, like:

drivers/staging/sm750fb/ddk750_mode.c: In function 'programModeRegisters':
drivers/staging/sm750fb/ddk750_mode.c:87:3: warning: ISO C90 forbids
mixed declarations and code [-Wdeclaration-after-statement]

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds