Re: [Linux-fbdev-devel] [PATCH] added S6E63M0 AMOLED LCD Panel driver.
InKi Dae <[email protected]> Wed, 31 Mar 2010 11:56:50 +0900
| Newsgroups | gmane.linux.kernel,gmane.linux.fbdev.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Hertley, it's a good way. this way is more clear and also Andrew's concern could be solved. I'd like to apply it to local repository and then I will send the patch in the near future. and Andrew, If you think that Hertley's way is clear then I would make the patch. maybe it would become second patch. Thank you. 2010/3/31 H Hartley Sweeten <[email protected]>: > On Tuesday, March 30, 2010 4:03 PM, Andrew Morton wrote: >> On Fri, 26 Mar 2010 12:24:24 +0900 >> InKi Dae <[email protected]> wrote: >> >>> +static int s6e63m0_ldi_init(struct s6e63m0 *lcd) >>> +{ >>> + int ret; >>> + >>> + ret = s6e63m0_panel_send_sequence(lcd, SEQ_PANEL_CONDITION_SET); >>> + ret |= s6e63m0_panel_send_sequence(lcd, SEQ_DISPLAY_CONDITION_SET); >>> + ret |= s6e63m0_panel_send_sequence(lcd, SEQ_GAMMA_SETTING); >>> + ret |= s6e63m0_panel_send_sequence(lcd, SEQ_ETC_CONDITION_SET); >>> + ret |= s6e63m0_panel_send_sequence(lcd, SEQ_ACL_ON); >>> + ret |= s6e63m0_panel_send_sequence(lcd, SEQ_ELVSS_ON); >>> + >>> + return ret; >>> +} >> >> Well. If one call to s6e63m0_panel_send_sequence() returns -ENOMEM and >> another call returns -EIO (for example), this function will return some >> other, incorrect errno. >> >> Which is a rather minor problem, unless some caller is explicitly >> looking for some particular error code, which doesn't happen often. > > Why not handle the calls with a loop? > > +static int s6e63m0_ldi_init(struct s6e63m0 *lcd) > +{ > + const unsigned short *init_seq[] = { > + SEQ_PANEL_CONDITION_SET, > + SEQ_DISPLAY_CONDITION_SET, > + SEQ_GAMMA_SETTING, > + SEQ_ETC_CONDITION_SET, > + SEQ_ACL_ON, > + SEQ_ELVSS_ON, > + }; > + int i, ret; > + > + for (i = 0; i < ARRAY_SIZE(init_seq); i++) { > + ret = s6e63m0_panel_send_sequence(lcd, init_seq[i]); > + if (ret) > + break; > + } > + return ret; > +} > > Note that _s6e63m0_gamma_ctl has the same issue. Actually, the whole > driver has issues with returning errors properly. > > Regards, > Hartley