On Sat, Sep 01, 2012 at 09:57:09AM +0800, Du, Changbin wrote: > From: "Du, Changbin" <changbin.du@xxxxxxxxx> > > Each rc-raw device has a property "allowed_protos" stored in structure > ir_raw_event_ctrl. But it didn't work because all decoders would be > called when decoding. This path makes only allowed protocol decoders > been invoked. > > Signed-off-by: Du, Changbin <changbin.du@xxxxxxxxx> > --- > drivers/media/rc/ir-raw.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/rc/ir-raw.c b/drivers/media/rc/ir-raw.c > index a820251..198b6d8 100644 > --- a/drivers/media/rc/ir-raw.c > +++ b/drivers/media/rc/ir-raw.c > @@ -63,8 +63,12 @@ static int ir_raw_event_thread(void *data) > spin_unlock_irq(&raw->lock); > > mutex_lock(&ir_raw_handler_lock); > - list_for_each_entry(handler, &ir_raw_handler_list, list) > - handler->decode(raw->dev, ev); > + list_for_each_entry(handler, &ir_raw_handler_list, list) { > + /* use all protocol by default */ > + if (raw->dev->allowed_protos == RC_TYPE_UNKNOWN || > + raw->dev->allowed_protos & handler->protocols) > + handler->decode(raw->dev, ev); > + } Each IR protocol decoder already checks whether it is enabled or not; should it not be so that only allowed protocols can be enabled rather than checking both enabled_protocols and allowed_protocols? Just from reading store_protocols it looks like decoders which aren't in allowed_protocols can be enabled, which makes no sense. Also ir_raw_event_register all protocols are enabled rather than the allowed ones. Lastely I don't know why raw ir drivers should dictate which protocols can be enabled. Would it not be better to remove it entirely? > raw->prev_ev = ev; > mutex_unlock(&ir_raw_handler_lock); > } > -- > 1.7.9.5 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html