ltib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Ltib] anti-freeze imx27 pm patch


From: Stuart Hughes
Subject: Re: [Ltib] anti-freeze imx27 pm patch
Date: Fri, 22 Feb 2008 11:25:05 +0000

Hi Peter,

You can find the patches for Freescale BSP at
http://www.bitshrine.org/gpp/ so if you can identify a likely patch in 
http://cvs.savannah.nongnu.org/viewvc/*checkout*/ltib/dist/lfs-5.1/kernel/kernel-2.6.22-mx.spec.in?root=ltib
then you can just directly download from bitshrine.

If that doesn't work then your best bet is to contact Freescale again,
they should be able to help.

Regards, Stuart

On Fri, 2008-02-22 at 11:05 +0000, Peter Wurmsdobler wrote:
> Hello,
> 
> In a previous post I mentioned that a imx27 ads loaded with the bsp 
> release from 22 may 2007 freezes if a key is pressed while the system is 
> in the suspend process (or resume which cannot be told). Freescale were 
> so nice and provided a fix for this problem for the imx31, attached. 
> Unfortunately, this patch cannot be applied to the imx27 kernel source 
> file mxc_keyb.c, because the patch assumes an already implemented 
> mxc_kpp_suspend() function which might be the case for a mx31, but is 
> not for the mx27.
> 
> Well, I could download the mx31 bsp, install it, extract the kernel, 
> etc, but would somebody simply have a mxc_keyb.c file to which I can 
> savely apply the pach and add the new implementation of the two 
> functions to the imx27 source tree. Afterwards I will be able to create 
> a mx27 patch.
> 
> Regards,
> peter
> --
> /drivers/input/keyboard/mxc_keyb.c
> @@ -622,6 +622,16 @@ static irqreturn_t mxc_kpp_interrupt(int irq, void
> *dev_id)
>                                 */
>                                reg_val &= ~KBD_STAT_KDIE;
>                                __raw_writew(reg_val, KPSR);
> +#ifdef CONFIG_PM
> +              } else if (reg_val & KBD_STAT_KPKR) {
> +                              reg_val &= ~KBD_STAT_KRIE;
> +                              __raw_writew(reg_val, KPSR);
> +#endif
>                } else {
>                                /* spurious interrupt */
>                                return IRQ_RETVAL(0);
> @@ -673,9 +683,17 @@ static void mxc_kpp_close(struct input_dev *dev)
>    */
>   static int mxc_kpp_suspend(struct platform_device *pdev, pm_message_t
> state)
>   {
> +              unsigned short reg_val;
> +
>                del_timer(&kpp_dev.poll_timer);
> 
>                if (device_may_wakeup(&pdev->dev)) {
> +                              reg_val = __raw_readw(KPSR);
> +                              if ((reg_val & KBD_STAT_KDIE) == 0) {
> +                                              reg_val |= KBD_STAT_KRIE;
> +                                              __raw_writew(reg_val, KPSR);
> +                              }
>                                enable_irq_wake(keypad->irq);
>                } else {
>                                disable_irq(keypad->irq);
> 
> 
> 
> _______________________________________________
> LTIB home page: http://bitshrine.org
> 
> Ltib mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/ltib





reply via email to

[Prev in Thread] Current Thread [Next in Thread]