1. Both ir-kbd-i2c and lirc_zilog provide support for RX events for
the chips supported by lirc_zilog.  Before moving lirc_zilog out of staging:

a. ir-kbd-i2c needs a module parameter added to allow the user to tell
   ir-kbd-i2c to ignore Z8 IR units.

b. lirc_zilog should provide Rx key presses to the rc core like ir-kbd-i2c
   does.


2. lirc_zilog module ref-counting need examination.  It has not been
verified that cdev and lirc_dev will take the proper module references on
lirc_zilog to prevent removal of lirc_zilog when the /dev/lircN device node
is open.

(The good news is ref-counting of lirc_zilog internal structures appears to be
complete.  Testing has shown the cx18 module can be unloaded out from under
irw + lircd + lirc_dev, with the /dev/lirc0 device node open, with no adverse
effects.  The cx18 module could then be reloaded and irw properly began
receiving button presses again and ir_send worked without error.)


3. Bridge drivers, if able, should provide a chip reset() callback
to lirc_zilog via struct IR_i2c_init_data.  cx18 and ivtv already have routines
to perform Z8 chip resets via GPIO manipulations.  This would allow lirc_zilog
to bring the chip back to normal when it hangs, in the same places the
original lirc_pvr150 driver code does.  This is not strictly needed, so it
is not required to move lirc_zilog out of staging.

Note: Both lirc_zilog and ir-kbd-i2c support the Zilog Z8 for IR, as programmed
and installed on Hauppauge products.  When working on either module, developers
must consider at least the following bridge drivers which mention an IR Rx unit
at address 0x71 (indicative of a Z8):

	ivtv cx18 hdpvr pvrusb2 bt8xx cx88 saa7134

