lkml.org 
[lkml]   [2005]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[DVB patch 46/48] ttusb_dec: cleanup
    Cleanup patch from Peter Beutner:

    o unregister the input device on disconnect
    and move cleanup stuff of the RC to own function
    o keymap should be static not const
    o set up keymap correctly and completly for input device
    plus a more cosmetic one:
    o usb endpoints are only 4bit numbers[0...15], the 8th bit
    only specifies the direction and is set by the snd/rcvxxxpipe() macro

    Signed-off-by: Johannes Stezenbach <js@linuxtv.org>

    ttusb_dec.c | 49 +++++++++++++++++++++++++++++--------------------
    1 files changed, 29 insertions(+), 20 deletions(-)

    Index: linux-2.6.12-rc1-mm1/drivers/media/dvb/ttusb-dec/ttusb_dec.c
    ===================================================================
    --- linux-2.6.12-rc1-mm1.orig/drivers/media/dvb/ttusb-dec/ttusb_dec.c 2005-03-22 00:18:46.000000000 +0100
    +++ linux-2.6.12-rc1-mm1/drivers/media/dvb/ttusb-dec/ttusb_dec.c 2005-03-22 00:29:05.000000000 +0100
    @@ -58,10 +58,10 @@ MODULE_PARM_DESC(enable_rc, "Turn on/off
    #define DRIVER_NAME "TechnoTrend/Hauppauge DEC USB"

    #define COMMAND_PIPE 0x03
    -#define RESULT_PIPE 0x84
    -#define IN_PIPE 0x88
    +#define RESULT_PIPE 0x04
    +#define IN_PIPE 0x08
    #define OUT_PIPE 0x07
    -#define IRQ_PIPE 0x8A
    +#define IRQ_PIPE 0x0A

    #define COMMAND_PACKET_SIZE 0x3c
    #define ARM_PACKET_SIZE 0x1000
    @@ -170,7 +170,7 @@ struct filter_info {
    struct list_head filter_info_list;
    };

    -const uint16_t rc_keys[] = {
    +static u16 rc_keys[] = {
    KEY_POWER,
    KEY_MUTE,
    KEY_1,
    @@ -1191,8 +1191,9 @@ static void ttusb_init_rc( struct ttusb_

    dec->rc_input_dev.name = "ttusb_dec remote control";
    dec->rc_input_dev.evbit[0] = BIT(EV_KEY);
    - dec->rc_input_dev.keycodesize = sizeof(unsigned char);
    - dec->rc_input_dev.keycodemax = KEY_MAX;
    + dec->rc_input_dev.keycodesize = sizeof(u16);
    + dec->rc_input_dev.keycodemax = 0x1a;
    + dec->rc_input_dev.keycode = rc_keys;

    for (i = 0; i < sizeof(rc_keys)/sizeof(rc_keys[0]); i++)
    set_bit(rc_keys[i], dec->rc_input_dev.keybit);
    @@ -1498,6 +1499,26 @@ static void ttusb_dec_exit_dvb(struct tt
    dvb_unregister_adapter(dec->adapter);
    }

    +static void ttusb_dec_exit_rc(struct ttusb_dec *dec)
    +{
    +
    + dprintk("%s\n", __FUNCTION__);
    + /* we have to check whether the irq URB is already submitted.
    + * As the irq is submitted after the interface is changed,
    + * this is the best method i figured out.
    + * Any others?*/
    + if(dec->interface == TTUSB_DEC_INTERFACE_IN)
    + usb_kill_urb(dec->irq_urb);
    +
    + usb_free_urb(dec->irq_urb);
    +
    + usb_buffer_free(dec->udev,IRQ_PACKET_SIZE,
    + dec->irq_buffer, dec->irq_dma_handle);
    +
    + input_unregister_device(&dec->rc_input_dev);
    +}
    +
    +
    static void ttusb_dec_exit_usb(struct ttusb_dec *dec)
    {
    int i;
    @@ -1510,20 +1531,6 @@ static void ttusb_dec_exit_usb(struct tt
    usb_kill_urb(dec->iso_urb[i]);

    ttusb_dec_free_iso_urbs(dec);
    -
    - if(enable_rc) {
    - /* we have to check whether the irq URB is already submitted.
    - * As the irq is submitted after the interface is changed,
    - * this is the best method i figured out.
    - * Any other possibilities?*/
    - if(dec->interface == TTUSB_DEC_INTERFACE_IN)
    - usb_kill_urb(dec->irq_urb);
    -
    - usb_free_urb(dec->irq_urb);
    -
    - usb_buffer_free(dec->udev,IRQ_PACKET_SIZE,
    - dec->irq_buffer, dec->irq_dma_handle);
    - }
    }

    static void ttusb_dec_exit_tasklet(struct ttusb_dec *dec)
    @@ -1663,6 +1670,8 @@ static void ttusb_dec_disconnect(struct
    if (dec->active) {
    ttusb_dec_exit_tasklet(dec);
    ttusb_dec_exit_filters(dec);
    + if(enable_rc)
    + ttusb_dec_exit_rc(dec);
    ttusb_dec_exit_usb(dec);
    ttusb_dec_exit_dvb(dec);
    }
    --

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:11    [W:0.032 / U:0.728 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site