On 7/12/19 4:24 PM, Michal Suchánek wrote:
> On Fri, 12 Jul 2019 06:05:45 +0200
> Marek Vasut <ma...@denx.de> wrote:
> 
>> On 7/10/19 5:47 PM, Michal Suchánek wrote:
>>> On Fri, 5 Jul 2019 14:12:36 +0200
>>> Marek Vasut <ma...@denx.de> wrote:
>>>   
>>>> On 7/5/19 12:44 PM, Michal Suchanek wrote:  
>>>>> Causes unbound key repeat on error otherwise.
>>>>>
>>>>> Signed-off-by: Michal Suchanek <msucha...@suse.de>
>>>>> ---
>>>>> v2: fix indentation    
>>>>
>>>> What changed in V3 ?
>>>>  
>>>>> ---
>>>>>  common/usb_kbd.c | 7 +++----
>>>>>  1 file changed, 3 insertions(+), 4 deletions(-)
>>>>>
>>>>> diff --git a/common/usb_kbd.c b/common/usb_kbd.c
>>>>> index cc99c6be0720..fc9419e0238a 100644
>>>>> --- a/common/usb_kbd.c
>>>>> +++ b/common/usb_kbd.c
>>>>> @@ -339,10 +339,9 @@ static inline void usb_kbd_poll_for_event(struct 
>>>>> usb_device *dev)
>>>>>   struct usb_kbd_pdata *data = dev->privptr;
>>>>>  
>>>>>   /* Submit a interrupt transfer request */
>>>>> - usb_submit_int_msg(dev, data->intpipe, &data->new[0], data->intpktsize,
>>>>> -                    data->intinterval);
>>>>> -
>>>>> - usb_kbd_irq_worker(dev);
>>>>> + if (!usb_submit_int_msg(dev, data->intpipe, &data->new[0],
>>>>> +                           data->intpktsize, data->intinterval))    
>>>>
>>>> This still doesn't propagate errors.  
>>>
>>> Yes, it does not. I don't have a grand design that would make use of
>>> these propagated errors so I don't know what errors to propagate.  
>>
>> Each and every called of usb_kbd_poll_for_event() returns some return
>> value, 
> A void
>> so these functions should at least be aware of the new errors
>> which might come from usb_kbd_poll_for_event().
> 
> No errors come from the function. The u-boot input flow is designed for
> usb_kbd_poll_for_event handling errors internally.
> 
> The function is only used by the usb_kbd specific testc and getc. The
> input users are supposed to use testc to see if there is input
> available and getc to get input (and it should not block if testc
> indicated that there is input). The result of testc is treated as
> boolean so there is no room for error handling. The result of getc is
> treated as character input and I found no user that implements any kind
> of error handling. Also at the getc time the testc error is no longer
> available.
> 
> If you want to redesign it to handle errors in the caller then please
> do share the design. Without that it is not clear which errors make
> sense to propagate.

Presumably, usb_kbd_tstc() should return 0 if usb_kbd_poll_for_event()
returns an error code or somesuch ?
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to