From: InKi Dae on 30 Mar 2010 23:00 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 <hartleys(a)visionengravers.com>: > On Tuesday, March 30, 2010 4:03 PM, Andrew Morton wrote: >> On Fri, 26 Mar 2010 12:24:24 +0900 >> InKi Dae <daeinki(a)gmail.com> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: sched: question on group_capacity when SMT > 2 Next: [GIT PULL v2] perf fixes |