lkml.org 
[lkml]   [2007]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 55/90] ARM: OMAP: H3 workqueue fixes
    Date
    From: Dirk Behme <dirk.behme_at_gmail.com>

    Signed-off-by: Dirk Behme <dirk.behme_at_gmail.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    ---
    arch/arm/mach-omap1/board-h3.c | 12 +++++++-----
    include/asm-arm/arch-omap/irda.h | 1 +
    2 files changed, 8 insertions(+), 5 deletions(-)
    diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c
    index 1ce0ec3..4167f34 100644
    --- a/arch/arm/mach-omap1/board-h3.c
    +++ b/arch/arm/mach-omap1/board-h3.c
    @@ -296,9 +296,11 @@ static int h3_select_irda(struct device *dev, int state)
    return err;
    }

    -static void set_trans_mode(void *data)
    +static void set_trans_mode(struct work_struct *work)
    {
    - int *mode = data;
    + struct omap_irda_config *irda_config =
    + container_of(work, struct omap_irda_config, gpio_expa.work);
    + int mode = irda_config->mode;
    unsigned char expa;
    int err = 0;

    @@ -308,7 +310,7 @@ static void set_trans_mode(void *data)

    expa &= ~0x03;

    - if (*mode & IR_SIRMODE) {
    + if (mode & IR_SIRMODE) {
    expa |= 0x01;
    } else { /* MIR/FIR */
    expa |= 0x03;
    @@ -323,9 +325,9 @@ static int h3_transceiver_mode(struct device *dev, int mode)
    {
    struct omap_irda_config *irda_config = dev->platform_data;

    + irda_config->mode = mode;
    cancel_delayed_work(&irda_config->gpio_expa);
    - PREPARE_WORK(&irda_config->gpio_expa, set_trans_mode, &mode);
    -#error this is not permitted - mode is an argument variable
    + PREPARE_DELAYED_WORK(&irda_config->gpio_expa, set_trans_mode);
    schedule_delayed_work(&irda_config->gpio_expa, 0);

    return 0;
    diff --git a/include/asm-arm/arch-omap/irda.h b/include/asm-arm/arch-omap/irda.h
    index 345a649..96bb12f 100644
    --- a/include/asm-arm/arch-omap/irda.h
    +++ b/include/asm-arm/arch-omap/irda.h
    @@ -31,6 +31,7 @@ struct omap_irda_config {
    unsigned long src_start;
    int tx_trigger;
    int rx_trigger;
    + int mode;
    };

    #endif
    --
    1.4.4.2
    -
    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: 2007-04-04 20:29    [from the cache]
    ©2003-2011 Jasper Spaans. Advertise on this site