Regenerate patch nokia-20103103+0m5.diff to match original nokia version, move revert...
authorPali Rohár <pali.rohar@gmail.com>
Sun, 16 Dec 2012 12:59:43 +0000 (13:59 +0100)
committerPali Rohár <pali.rohar@gmail.com>
Sun, 16 Dec 2012 12:59:43 +0000 (13:59 +0100)
kernel-power-2.6.28/debian/patches/musb_core_revert_20103103+0m5.diff [new file with mode: 0644]
kernel-power-2.6.28/debian/patches/nokia-20103103+0m5.diff
kernel-power-2.6.28/debian/patches/nokia-20103103+0m5_usb.diff [deleted file]
kernel-power-2.6.28/debian/patches/series

diff --git a/kernel-power-2.6.28/debian/patches/musb_core_revert_20103103+0m5.diff b/kernel-power-2.6.28/debian/patches/musb_core_revert_20103103+0m5.diff
new file mode 100644 (file)
index 0000000..8c6de91
--- /dev/null
@@ -0,0 +1,43 @@
+--- kernel-power-2.6.28.orig/drivers/usb/musb/musb_core.c
++++ kernel-power-2.6.28/drivers/usb/musb/musb_core.c
+@@ -297,23 +297,28 @@
+                       break;
+       }
++      if (vdat) {
++              /* REVISIT: This code works only with dedicated chargers!
++               * When support for HOST/HUB chargers is added, don't
++               * forget this.
++               */
+-      /* enable interrupts */
+-      musb_writeb(musb->mregs, MUSB_INTRUSBE, ctx.intrusbe);
+-
+-      /* Make sure the communication starts normally */
+-      r = musb_readb(musb->mregs, MUSB_POWER);
+-      musb_writeb(musb->mregs, MUSB_POWER,
+-                      r | MUSB_POWER_RESUME);
+-      msleep(10);
+-      musb_writeb(musb->mregs, MUSB_POWER,
+-                      r & ~MUSB_POWER_RESUME);
+-      if (vdat && musb->xceiv->state != OTG_STATE_B_IDLE) {
+               musb_stop(musb);
+               /* Regulators off */
+               otg_set_suspend(musb->xceiv, 1);
++              musb->is_charger = 1;
++      } else {
++              /* enable interrupts */
++              musb_writeb(musb->mregs, MUSB_INTRUSBE, ctx.intrusbe);
++
++              /* Make sure the communication starts normally */
++              r = musb_readb(musb->mregs, MUSB_POWER);
++              musb_writeb(musb->mregs, MUSB_POWER,
++                              r | MUSB_POWER_RESUME);
++              msleep(10);
++              musb_writeb(musb->mregs, MUSB_POWER,
++                              r & ~MUSB_POWER_RESUME);
+       }
+-      musb->is_charger = vdat;
+       check_charger = 0;
+       return vdat;
index ced2b28..78d7cc5 100644 (file)
@@ -1,5 +1,6 @@
---- kernel-power-2.6.28.orig/arch/arm/include/asm/cacheflush.h
-+++ kernel-power-2.6.28/arch/arm/include/asm/cacheflush.h
+diff -Nurp kernel-2.6.28-20101501+0m5/arch/arm/include/asm/cacheflush.h kernel-2.6.28-20103103+0m5/arch/arm/include/asm/cacheflush.h
+--- kernel-2.6.28-20101501+0m5/arch/arm/include/asm/cacheflush.h       2008-12-25 00:26:37.000000000 +0100
++++ kernel-2.6.28-20103103+0m5/arch/arm/include/asm/cacheflush.h       2012-12-16 13:35:56.024308851 +0100
 @@ -138,16 +138,16 @@
   *    Please note that the implementation of these, and the required
   *    effects are cache-type (VIVT/VIPT/PIPT) specific.
@@ -41,7 +42,7 @@
   *    DMA Cache Coherency
   *    ===================
   *
-@@ -375,7 +389,7 @@
+@@ -375,7 +389,7 @@ extern void flush_ptrace_access(struct v
   * Harvard caches are synchronised for the user space address range.
   * This is used for the ARM private sys_cacheflush system call.
   */
        __cpuc_coherent_user_range((start) & PAGE_MASK, PAGE_ALIGN(end))
  
  /*
---- kernel-power-2.6.28.orig/arch/arm/kernel/traps.c
-+++ kernel-power-2.6.28/arch/arm/kernel/traps.c
-@@ -418,7 +418,9 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/arch/arm/kernel/traps.c kernel-2.6.28-20103103+0m5/arch/arm/kernel/traps.c
+--- kernel-2.6.28-20101501+0m5/arch/arm/kernel/traps.c 2012-12-16 13:28:45.468315523 +0100
++++ kernel-2.6.28-20103103+0m5/arch/arm/kernel/traps.c 2012-12-16 13:35:56.024308851 +0100
+@@ -418,7 +418,9 @@ do_cache_op(unsigned long start, unsigne
                if (end > vma->vm_end)
                        end = vma->vm_end;
  
        }
        up_read(&mm->mmap_sem);
  }
---- kernel-power-2.6.28.orig/arch/arm/mach-omap2/smartreflex.c
-+++ kernel-power-2.6.28/arch/arm/mach-omap2/smartreflex.c
-@@ -890,7 +890,7 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/arch/arm/mach-omap2/smartreflex.c kernel-2.6.28-20103103+0m5/arch/arm/mach-omap2/smartreflex.c
+--- kernel-2.6.28-20101501+0m5/arch/arm/mach-omap2/smartreflex.c       2012-12-16 13:30:17.084314106 +0100
++++ kernel-2.6.28-20103103+0m5/arch/arm/mach-omap2/smartreflex.c       2012-12-16 13:35:56.024308851 +0100
+@@ -890,7 +890,7 @@ int sr_voltagescale_vcbypass(u32 target_
                return SR_FAIL;
        }
  
                WARN(1, "SR: Must not transmit VCBYPASS command while SR is "
                     "active");
                return SR_FAIL;
---- kernel-power-2.6.28.orig/arch/arm/mm/fault.c
-+++ kernel-power-2.6.28/arch/arm/mm/fault.c
-@@ -387,6 +387,9 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/arch/arm/mm/fault.c kernel-2.6.28-20103103+0m5/arch/arm/mm/fault.c
+--- kernel-2.6.28-20101501+0m5/arch/arm/mm/fault.c     2012-12-16 13:28:45.472315523 +0100
++++ kernel-2.6.28-20103103+0m5/arch/arm/mm/fault.c     2012-12-16 13:35:56.024308851 +0100
+@@ -387,6 +387,9 @@ do_translation_fault(unsigned long addr,
        if (addr < TASK_SIZE)
                return do_page_fault(addr, fsr, regs);
  
@@ -86,7 +90,7 @@
        index = pgd_index(addr);
  
        /*
-@@ -449,7 +452,12 @@
+@@ -449,7 +452,12 @@ static struct fsr_info {
        { do_bad,               SIGILL,  BUS_ADRALN,    "alignment exception"              },
        { do_bad,               SIGKILL, 0,             "terminal exception"               },
        { do_bad,               SIGILL,  BUS_ADRALN,    "alignment exception"              },
        { do_translation_fault, SIGSEGV, SEGV_MAPERR,   "section translation fault"        },
        { do_bad,               SIGBUS,  0,             "external abort on linefetch"      },
        { do_page_fault,        SIGSEGV, SEGV_MAPERR,   "page translation fault"           },
---- kernel-power-2.6.28.orig/arch/arm/mm/mmu.c
-+++ kernel-power-2.6.28/arch/arm/mm/mmu.c
-@@ -953,4 +953,6 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/arch/arm/mm/mmu.c kernel-2.6.28-20103103+0m5/arch/arm/mm/mmu.c
+--- kernel-2.6.28-20101501+0m5/arch/arm/mm/mmu.c       2012-12-16 13:28:30.840315752 +0100
++++ kernel-2.6.28-20103103+0m5/arch/arm/mm/mmu.c       2012-12-16 13:35:56.028308851 +0100
+@@ -953,4 +953,6 @@ void setup_mm_for_reboot(char mode)
                pmd[1] = __pmd(pmdval + (1 << (PGDIR_SHIFT - 1)));
                flush_pmd_entry(pmd);
        }
 +
 +      local_flush_tlb_all();
  }
---- kernel-power-2.6.28.orig/arch/arm/mm/proc-v6.S
-+++ kernel-power-2.6.28/arch/arm/mm/proc-v6.S
-@@ -56,8 +56,6 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/arch/arm/mm/proc-v6.S kernel-2.6.28-20103103+0m5/arch/arm/mm/proc-v6.S
+--- kernel-2.6.28-20101501+0m5/arch/arm/mm/proc-v6.S   2008-12-25 00:26:37.000000000 +0100
++++ kernel-2.6.28-20103103+0m5/arch/arm/mm/proc-v6.S   2012-12-16 13:35:56.028308851 +0100
+@@ -56,8 +56,6 @@ ENTRY(cpu_v6_proc_fin)
   *    to what would be the reset vector.
   *
   *    - loc   - location to jump to for soft reset
   */
        .align  5
  ENTRY(cpu_v6_reset)
---- kernel-power-2.6.28.orig/arch/arm/mm/proc-v7.S
-+++ kernel-power-2.6.28/arch/arm/mm/proc-v7.S
-@@ -28,7 +28,14 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/arch/arm/mm/proc-v7.S kernel-2.6.28-20103103+0m5/arch/arm/mm/proc-v7.S
+--- kernel-2.6.28-20101501+0m5/arch/arm/mm/proc-v7.S   2008-12-25 00:26:37.000000000 +0100
++++ kernel-2.6.28-20103103+0m5/arch/arm/mm/proc-v7.S   2012-12-16 13:35:56.028308851 +0100
+@@ -28,7 +28,14 @@ ENTRY(cpu_v7_proc_init)
  ENDPROC(cpu_v7_proc_init)
  
  ENTRY(cpu_v7_proc_fin)
  ENDPROC(cpu_v7_proc_fin)
  
  /*
-@@ -39,8 +46,6 @@
+@@ -39,8 +46,6 @@ ENDPROC(cpu_v7_proc_fin)
   *    to what would be the reset vector.
   *
   *    - loc   - location to jump to for soft reset
   */
        .align  5
  ENTRY(cpu_v7_reset)
---- kernel-power-2.6.28.orig/block/cfq-iosched.c
-+++ kernel-power-2.6.28/block/cfq-iosched.c
-@@ -84,6 +84,11 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/block/cfq-iosched.c kernel-2.6.28-20103103+0m5/block/cfq-iosched.c
+--- kernel-2.6.28-20101501+0m5/block/cfq-iosched.c     2008-12-25 00:26:37.000000000 +0100
++++ kernel-2.6.28-20103103+0m5/block/cfq-iosched.c     2012-12-16 13:35:56.028308851 +0100
+@@ -84,6 +84,11 @@ struct cfq_data {
         */
        struct cfq_rb_root service_tree;
        unsigned int busy_queues;
  
        int rq_in_driver;
        int sync_flight;
-@@ -155,6 +160,7 @@
+@@ -155,6 +160,7 @@ struct cfq_queue {
  
        unsigned long slice_end;
        long slice_resid;
  
        /* pending metadata requests */
        int meta_pending;
-@@ -171,13 +177,12 @@
+@@ -171,13 +177,12 @@ struct cfq_queue {
  enum cfqq_state_flags {
        CFQ_CFQQ_FLAG_on_rr = 0,        /* on round-robin busy list */
        CFQ_CFQQ_FLAG_wait_request,     /* waiting for a request */
        CFQ_CFQQ_FLAG_slice_new,        /* no requests dispatched in slice */
        CFQ_CFQQ_FLAG_sync,             /* synchronous queue */
  };
-@@ -198,13 +203,12 @@
+@@ -198,13 +203,12 @@ static inline int cfq_cfqq_##name(const
  
  CFQ_CFQQ_FNS(on_rr);
  CFQ_CFQQ_FNS(wait_request);
  CFQ_CFQQ_FNS(slice_new);
  CFQ_CFQQ_FNS(sync);
  #undef CFQ_CFQQ_FNS
-@@ -562,6 +566,8 @@
+@@ -562,6 +566,8 @@ static void cfq_add_cfqq_rr(struct cfq_d
        BUG_ON(cfq_cfqq_on_rr(cfqq));
        cfq_mark_cfqq_on_rr(cfqq);
        cfqd->busy_queues++;
  
        cfq_resort_rr_list(cfqd, cfqq);
  }
-@@ -581,6 +587,8 @@
+@@ -581,6 +587,8 @@ static void cfq_del_cfqq_rr(struct cfq_d
  
        BUG_ON(!cfqd->busy_queues);
        cfqd->busy_queues--;
  }
  
  /*
-@@ -765,10 +773,15 @@
+@@ -765,10 +773,15 @@ static void __cfq_set_active_queue(struc
        if (cfqq) {
                cfq_log_cfqq(cfqd, cfqq, "set_active");
                cfqq->slice_end = 0;
        }
  
        cfqd->active_queue = cfqq;
-@@ -786,7 +799,6 @@
+@@ -786,7 +799,6 @@ __cfq_slice_expired(struct cfq_data *cfq
        if (cfq_cfqq_wait_request(cfqq))
                del_timer(&cfqd->idle_slice_timer);
  
        cfq_clear_cfqq_wait_request(cfqq);
  
        /*
-@@ -915,7 +927,6 @@
+@@ -915,7 +927,6 @@ static void cfq_arm_slice_timer(struct c
            (sample_valid(cic->ttime_samples) && cic->ttime_mean > 2))
                return;
  
        cfq_mark_cfqq_wait_request(cfqq);
  
        /*
-@@ -1001,10 +1012,24 @@
+@@ -1001,10 +1012,24 @@ static struct cfq_queue *cfq_select_queu
        /*
         * The active queue has run out of time, expire it and select new.
         */
         * The active queue has requests and isn't expired, allow it to
         * dispatch.
         */
-@@ -1030,59 +1055,6 @@
+@@ -1030,59 +1055,6 @@ keep_queue:
        return cfqq;
  }
  
  static int __cfq_forced_dispatch_cfqq(struct cfq_queue *cfqq)
  {
        int dispatched = 0;
-@@ -1116,11 +1088,45 @@
+@@ -1116,11 +1088,45 @@ static int cfq_forced_dispatch(struct cf
        return dispatched;
  }
  
  
        if (!cfqd->busy_queues)
                return 0;
-@@ -1128,33 +1134,63 @@
+@@ -1128,33 +1134,63 @@ static int cfq_dispatch_requests(struct
        if (unlikely(force))
                return cfq_forced_dispatch(cfqd);
  
 +      cfqq = cfq_select_queue(cfqd);
 +      if (!cfqq)
 +              return 0;
-+
+-              max_dispatch = cfqd->cfq_quantum;
 +      /*
 +       * If this is an async queue and we have sync IO in flight, let it wait
 +       */
 +      max_dispatch = cfqd->cfq_quantum;
 +      if (cfq_class_idle(cfqq))
 +              max_dispatch = 1;
--              max_dispatch = cfqd->cfq_quantum;
++
 +      /*
 +       * Does this cfqq already have too much IO in flight?
 +       */
  }
  
  /*
-@@ -1318,7 +1354,15 @@
+@@ -1318,7 +1354,15 @@ static void cfq_exit_single_io_context(s
                unsigned long flags;
  
                spin_lock_irqsave(q->queue_lock, flags);
                spin_unlock_irqrestore(q->queue_lock, flags);
        }
  }
-@@ -1472,7 +1516,6 @@
+@@ -1472,7 +1516,6 @@ retry:
                cfqq->cfqd = cfqd;
  
                cfq_mark_cfqq_prio_changed(cfqq);
  
                cfq_init_prio_data(cfqq, ioc);
  
-@@ -1797,6 +1840,12 @@
+@@ -1797,6 +1840,12 @@ cfq_should_preempt(struct cfq_data *cfqd
        if (rq_is_meta(rq) && !cfqq->meta_pending)
                return 1;
  
        if (!cfqd->active_cic || !cfq_cfqq_wait_request(cfqq))
                return 0;
  
-@@ -1853,23 +1902,28 @@
+@@ -1853,23 +1902,28 @@ cfq_rq_enqueued(struct cfq_data *cfqd, s
  
        if (cfqq == cfqd->active_queue) {
                /*
                blk_start_queueing(cfqd->queue);
        }
  }
-@@ -2129,6 +2183,12 @@
+@@ -2129,6 +2183,12 @@ static void cfq_idle_slice_timer(unsigne
                timed_out = 0;
  
                /*
                 * expired
                 */
                if (cfq_slice_used(cfqq))
-@@ -2144,10 +2204,8 @@
+@@ -2144,10 +2204,8 @@ static void cfq_idle_slice_timer(unsigne
                /*
                 * not expired and it has a request pending, let it dispatch
                 */
        }
  expire:
        cfq_slice_expired(cfqd, timed_out);
---- kernel-power-2.6.28.orig/drivers/dsp/bridge/rmgr/drv.c
-+++ kernel-power-2.6.28/drivers/dsp/bridge/rmgr/drv.c
-@@ -517,11 +517,12 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/drivers/dsp/bridge/rmgr/drv.c kernel-2.6.28-20103103+0m5/drivers/dsp/bridge/rmgr/drv.c
+--- kernel-2.6.28-20101501+0m5/drivers/dsp/bridge/rmgr/drv.c   2012-12-16 13:29:16.884315037 +0100
++++ kernel-2.6.28-20103103+0m5/drivers/dsp/bridge/rmgr/drv.c   2012-12-16 13:35:56.028308851 +0100
+@@ -517,11 +517,12 @@ DSP_STATUS DRV_ProcFreeDMMRes(HANDLE hPC
                pDMMRes = pDMMList;
                pDMMList = pDMMList->next;
                if (pDMMRes->dmmAllocated) {
                }
        }
        return status;
---- kernel-power-2.6.28.orig/drivers/dsp/bridge/rmgr/proc.c
-+++ kernel-power-2.6.28/drivers/dsp/bridge/rmgr/proc.c
-@@ -750,6 +750,7 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/drivers/dsp/bridge/rmgr/proc.c kernel-2.6.28-20103103+0m5/drivers/dsp/bridge/rmgr/proc.c
+--- kernel-2.6.28-20101501+0m5/drivers/dsp/bridge/rmgr/proc.c  2012-12-16 13:29:16.888315037 +0100
++++ kernel-2.6.28-20103103+0m5/drivers/dsp/bridge/rmgr/proc.c  2012-12-16 13:35:56.032308853 +0100
+@@ -750,6 +750,7 @@ static int memory_sync_vma(unsigned long
                        break;
  
                start = vma->vm_end;
        }
  
        if (!vma)
---- kernel-power-2.6.28.orig/drivers/i2c/chips/lis302dl.c
-+++ kernel-power-2.6.28/drivers/i2c/chips/lis302dl.c
+diff -Nurp kernel-2.6.28-20101501+0m5/drivers/i2c/chips/lis302dl.c kernel-2.6.28-20103103+0m5/drivers/i2c/chips/lis302dl.c
+--- kernel-2.6.28-20101501+0m5/drivers/i2c/chips/lis302dl.c    2012-12-16 13:29:16.928315036 +0100
++++ kernel-2.6.28-20103103+0m5/drivers/i2c/chips/lis302dl.c    2012-12-16 13:35:56.032308853 +0100
 @@ -44,6 +44,7 @@
  #     define LIS302_CTRL1_Y           (1 << 1)
  #     define LIS302_CTRL1_X           (1 << 0)
  #define LIS302_CTRL_3                 0x22
  #     define  LIS302_CTRL3_GND        0x00
  #     define  LIS302_CTRL3_FF_WU_1    0x01
-@@ -161,8 +162,13 @@
+@@ -161,8 +162,13 @@ static int lis302dl_configure(struct i2c
        if (ret < 0)
                goto out;
  
  
        /* REG 3
         * Interrupt CTRL register. One interrupt pin is used for
---- kernel-power-2.6.28.orig/drivers/leds/leds-lp5523.c
-+++ kernel-power-2.6.28/drivers/leds/leds-lp5523.c
+diff -Nurp kernel-2.6.28-20101501+0m5/drivers/leds/leds-lp5523.c kernel-2.6.28-20103103+0m5/drivers/leds/leds-lp5523.c
+--- kernel-2.6.28-20101501+0m5/drivers/leds/leds-lp5523.c      2012-12-16 13:28:34.784315691 +0100
++++ kernel-2.6.28-20103103+0m5/drivers/leds/leds-lp5523.c      2012-12-16 13:35:56.032308853 +0100
 @@ -32,6 +32,7 @@
  #include <linux/wait.h>
  #include <linux/leds.h>
  
  #define LP5523_DRIVER_NAME            "lp5523"
  #define LP5523_REG_ENABLE             0x00
-@@ -120,6 +121,8 @@
+@@ -120,6 +121,8 @@ struct lp5523_led {
        u8                      led_nr;
        u8                      led_current;
        struct led_classdev     cdev;
  };
  
  struct lp5523_chip {
-@@ -161,6 +164,8 @@
+@@ -161,6 +164,8 @@ static int lp5523_load_program(struct lp
  static void lp5523_work(struct work_struct  *work);
  static irqreturn_t lp5523_irq(int irq, void *_chip);
  
  
  static int lp5523_write(struct i2c_client *client, u8 reg, u8 value)
  {
-@@ -476,6 +481,16 @@
+@@ -476,6 +481,16 @@ static void lp5523_set_brightness(struct
                             enum led_brightness brightness)
  {
        struct lp5523_led *led = cdev_to_led(cdev);
        struct lp5523_chip *chip = led_to_lp5523(led);
        struct i2c_client *client = chip->client;
  
-@@ -483,7 +498,7 @@
+@@ -483,7 +498,7 @@ static void lp5523_set_brightness(struct
  
        lp5523_write(client,
                     LP5523_REG_LED_PWM_BASE + led->led_nr,
  
        mutex_unlock(&chip->lock);
  }
-@@ -907,6 +922,8 @@
+@@ -907,6 +922,8 @@ static int lp5523_probe(struct i2c_clien
                        dev_err(&client->dev, "error initializing leds\n");
                        goto fail2;
                }
        }
  
        ret = lp5523_register_sysfs(client);
-@@ -916,8 +933,10 @@
+@@ -916,8 +933,10 @@ static int lp5523_probe(struct i2c_clien
        }
        return ret;
  fail2:
  
  fail1:
        kfree(chip);
-@@ -931,8 +950,10 @@
+@@ -931,8 +950,10 @@ static int lp5523_remove(struct i2c_clie
  
        lp5523_unregister_sysfs(client);
  
  
        kfree(chip);
  
---- kernel-power-2.6.28.orig/drivers/media/radio/radio-si4713.c
-+++ kernel-power-2.6.28/drivers/media/radio/radio-si4713.c
+diff -Nurp kernel-2.6.28-20101501+0m5/drivers/media/radio/radio-si4713.c kernel-2.6.28-20103103+0m5/drivers/media/radio/radio-si4713.c
+--- kernel-2.6.28-20101501+0m5/drivers/media/radio/radio-si4713.c      2012-12-16 13:28:34.784315691 +0100
++++ kernel-2.6.28-20103103+0m5/drivers/media/radio/radio-si4713.c      2012-12-16 13:35:56.032308853 +0100
 @@ -54,6 +54,25 @@
  /* module parameters */
  static int radio_nr = -1;     /* radio device minor (-1 ==> auto assign) */
  /*
   * Sysfs properties
   * Read and write functions
-@@ -167,6 +186,37 @@
+@@ -167,6 +186,37 @@ static DEVICE_ATTR(prop, S_IRUGO | S_IWU
                                        si4713_##prop##_write);
  
  /*
   * Power level property
   */
  /* power_level (rw) 88 - 115 or 0 */
-@@ -179,6 +229,9 @@
+@@ -179,6 +229,9 @@ static ssize_t si4713_power_level_write(
        unsigned int p;
        int rval, pl;
  
        if (!sdev) {
                rval = -ENODEV;
                goto exit;
-@@ -320,6 +373,7 @@
+@@ -320,6 +373,7 @@ DEFINE_SYSFS_PROPERTY(tone_off_time, uns
                        value > MAX_TONE_OFF_TIME)
  
  static struct attribute *attrs[] = {
        &dev_attr_power_level.attr,
        &dev_attr_antenna_capacitor.attr,
        &dev_attr_rds_pi.attr,
-@@ -366,13 +420,118 @@
+@@ -366,13 +420,118 @@ static irqreturn_t si4713_handler(int ir
        return IRQ_HANDLED;
  }
  
        .compat_ioctl   = v4l_compat_ioctl32,
  };
  
-@@ -747,6 +906,9 @@
+@@ -747,6 +906,9 @@ static int si4713_i2c_driver_probe(struc
                goto free_sysfs;
        }
  
        return 0;
  
  free_sysfs:
---- kernel-power-2.6.28.orig/drivers/media/radio/radio-si4713.h
-+++ kernel-power-2.6.28/drivers/media/radio/radio-si4713.h
+diff -Nurp kernel-2.6.28-20101501+0m5/drivers/media/radio/radio-si4713.h kernel-2.6.28-20103103+0m5/drivers/media/radio/radio-si4713.h
+--- kernel-2.6.28-20101501+0m5/drivers/media/radio/radio-si4713.h      2012-12-16 13:28:30.960315749 +0100
++++ kernel-2.6.28-20103103+0m5/drivers/media/radio/radio-si4713.h      2012-12-16 13:35:56.032308853 +0100
 @@ -21,6 +21,9 @@
  #define SI4713_I2C_ADDR_BUSEN_HIGH    0x63
  #define SI4713_I2C_ADDR_BUSEN_LOW     0x11
  /*
   * Platform dependent definition
   */
---- kernel-power-2.6.28.orig/drivers/media/video/omap34xxcam.c
-+++ kernel-power-2.6.28/drivers/media/video/omap34xxcam.c
-@@ -1833,6 +1833,7 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/drivers/media/video/omap34xxcam.c kernel-2.6.28-20103103+0m5/drivers/media/video/omap34xxcam.c
+--- kernel-2.6.28-20101501+0m5/drivers/media/video/omap34xxcam.c       2012-12-16 13:29:16.928315036 +0100
++++ kernel-2.6.28-20103103+0m5/drivers/media/video/omap34xxcam.c       2012-12-16 13:35:56.032308853 +0100
+@@ -1833,6 +1833,7 @@ static int omap34xxcam_release(struct in
        struct omap34xxcam_videodev *vdev = fh->vdev;
        struct device *isp = vdev->cam->isp;
        int i;
  
        if (omap34xxcam_daemon_release(vdev, file))
                goto daemon_out;
-@@ -1844,6 +1845,7 @@
+@@ -1844,6 +1845,7 @@ static int omap34xxcam_release(struct in
                omap34xxcam_slave_power_set(vdev, V4L2_POWER_STANDBY,
                                            OMAP34XXCAM_SLAVE_POWER_ALL);
                vdev->streaming = NULL;
        }
  
        if (atomic_dec_return(&vdev->users) == 0) {
-@@ -1853,6 +1855,10 @@
+@@ -1853,6 +1855,10 @@ static int omap34xxcam_release(struct in
        }
        mutex_unlock(&vdev->mutex);
  
  daemon_out:
        file->private_data = NULL;
  
---- kernel-power-2.6.28.orig/drivers/mmc/host/omap_hsmmc.c
-+++ kernel-power-2.6.28/drivers/mmc/host/omap_hsmmc.c
+diff -Nurp kernel-2.6.28-20101501+0m5/drivers/mmc/host/omap_hsmmc.c kernel-2.6.28-20103103+0m5/drivers/mmc/host/omap_hsmmc.c
+--- kernel-2.6.28-20101501+0m5/drivers/mmc/host/omap_hsmmc.c   2012-12-16 13:30:14.172314148 +0100
++++ kernel-2.6.28-20103103+0m5/drivers/mmc/host/omap_hsmmc.c   2012-12-16 13:35:56.036308854 +0100
 @@ -115,6 +115,7 @@
  /* Timeouts for entering power saving states on inactivity, msec */
  #define OMAP_MMC_DISABLED_TIMEOUT     100
  #define OMAP_MMC_OFF_TIMEOUT          8000
  
  /*
-@@ -1249,21 +1250,21 @@
+@@ -1249,21 +1250,21 @@ static void omap_hsmmc_conf_bus_power(st
  
  /*
   * Dynamic power saving handling, FSM:
  
  /* Handler for [ENABLED -> DISABLED] transition */
  static int omap_hsmmc_enabled_to_disabled(struct omap_hsmmc_host *host)
-@@ -1300,7 +1301,21 @@
+@@ -1300,7 +1301,21 @@ static int omap_hsmmc_full_sleep(struct
        return 1;
  }
  
  static int omap_hsmmc_disabled_to_sleep(struct omap_hsmmc_host *host)
  {
        int err, new_state, sleep;
-@@ -1319,12 +1334,12 @@
+@@ -1319,12 +1334,12 @@ static int omap_hsmmc_disabled_to_sleep(
                }
                new_state = CARDSLEEP;
        } else {
                mmc_slot(host).set_sleep(host->dev, host->slot_id, 1, 0,
                                        sleep);
        /* FIXME: turn off bus power and perhaps interrupts too */
-@@ -1334,18 +1349,20 @@
+@@ -1334,18 +1349,20 @@ static int omap_hsmmc_disabled_to_sleep(
        mmc_release_host(host->mmc);
  
        dev_dbg(mmc_dev(host->mmc), "DISABLED -> %s\n",
  static int omap_hsmmc_sleep_to_off(struct omap_hsmmc_host *host)
  {
        if (!mmc_try_claim_host(host->mmc))
-@@ -1364,7 +1381,8 @@
+@@ -1364,7 +1381,8 @@ static int omap_hsmmc_sleep_to_off(struc
        host->power_mode = MMC_POWER_OFF;
  
        dev_dbg(mmc_dev(host->mmc), "%s -> OFF\n",
  
        host->dpm_state = OFF;
  
-@@ -1405,14 +1423,15 @@
+@@ -1405,14 +1423,15 @@ static int omap_hsmmc_sleep_to_enabled(s
        omap_hsmmc_context_restore(host);
        asleep = omap_hsmmc_full_sleep(host->mmc->card) &&
                (host->dpm_state == CARDSLEEP);
  
        if (host->pdata->set_pm_constraints)
                host->pdata->set_pm_constraints(host->dev, 1);
-@@ -1454,6 +1473,7 @@
+@@ -1454,6 +1473,7 @@ static int omap_hsmmc_enable(struct mmc_
        switch (host->dpm_state) {
        case DISABLED:
                return omap_hsmmc_disabled_to_enabled(host);
        case CARDSLEEP:
        case REGSLEEP:
                return omap_hsmmc_sleep_to_enabled(host);
-@@ -1484,6 +1504,7 @@
+@@ -1484,6 +1504,7 @@ static int omap_hsmmc_disable(struct mmc
        }
        case DISABLED:
                return omap_hsmmc_disabled_to_sleep(host);
        case CARDSLEEP:
        case REGSLEEP:
                return omap_hsmmc_sleep_to_off(host);
---- kernel-power-2.6.28.orig/drivers/net/wireless/wl12xx/wl1251_acx.c
-+++ kernel-power-2.6.28/drivers/net/wireless/wl12xx/wl1251_acx.c
-@@ -910,7 +910,7 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/drivers/net/wireless/wl12xx/wl1251_acx.c kernel-2.6.28-20103103+0m5/drivers/net/wireless/wl12xx/wl1251_acx.c
+--- kernel-2.6.28-20101501+0m5/drivers/net/wireless/wl12xx/wl1251_acx.c        2012-12-16 13:29:16.928315036 +0100
++++ kernel-2.6.28-20103103+0m5/drivers/net/wireless/wl12xx/wl1251_acx.c        2012-12-16 13:35:56.036308854 +0100
+@@ -910,7 +910,7 @@ int wl1251_acx_tsf_info(struct wl1251 *w
        }
  
        *mactime = tsf_info->current_tsf_lsb |
  
  out:
        kfree(tsf_info);
---- kernel-power-2.6.28.orig/drivers/net/wireless/wl12xx/wl1251_cmd.c
-+++ kernel-power-2.6.28/drivers/net/wireless/wl12xx/wl1251_cmd.c
-@@ -242,7 +242,7 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/drivers/net/wireless/wl12xx/wl1251_cmd.c kernel-2.6.28-20103103+0m5/drivers/net/wireless/wl12xx/wl1251_cmd.c
+--- kernel-2.6.28-20101501+0m5/drivers/net/wireless/wl12xx/wl1251_cmd.c        2012-12-16 13:28:34.812315688 +0100
++++ kernel-2.6.28-20103103+0m5/drivers/net/wireless/wl12xx/wl1251_cmd.c        2012-12-16 13:35:56.036308854 +0100
+@@ -242,7 +242,7 @@ int wl1251_cmd_data_path(struct wl1251 *
        if (ret < 0) {
                wl1251_error("tx %s cmd for channel %d failed",
                             enable ? "start" : "stop", channel);
        }
  
        wl1251_debug(DEBUG_BOOT, "tx %s cmd channel %d",
---- kernel-power-2.6.28.orig/include/linux/sched.h
-+++ kernel-power-2.6.28/include/linux/sched.h
-@@ -1665,11 +1665,11 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/drivers/usb/musb/musb_core.c kernel-2.6.28-20103103+0m5/drivers/usb/musb/musb_core.c
+--- kernel-2.6.28-20101501+0m5/drivers/usb/musb/musb_core.c    2012-12-16 13:29:04.852315222 +0100
++++ kernel-2.6.28-20103103+0m5/drivers/usb/musb/musb_core.c    2012-12-16 13:35:59.224308804 +0100
+@@ -297,28 +297,23 @@ static int musb_charger_detect(struct mu
+                       break;
+       }
+-      if (vdat) {
+-              /* REVISIT: This code works only with dedicated chargers!
+-               * When support for HOST/HUB chargers is added, don't
+-               * forget this.
+-               */
++      /* enable interrupts */
++      musb_writeb(musb->mregs, MUSB_INTRUSBE, ctx.intrusbe);
++
++      /* Make sure the communication starts normally */
++      r = musb_readb(musb->mregs, MUSB_POWER);
++      musb_writeb(musb->mregs, MUSB_POWER,
++                      r | MUSB_POWER_RESUME);
++      msleep(10);
++      musb_writeb(musb->mregs, MUSB_POWER,
++                      r & ~MUSB_POWER_RESUME);
++      if (vdat && musb->xceiv->state != OTG_STATE_B_IDLE) {
+               musb_stop(musb);
+               /* Regulators off */
+               otg_set_suspend(musb->xceiv, 1);
+-              musb->is_charger = 1;
+-      } else {
+-              /* enable interrupts */
+-              musb_writeb(musb->mregs, MUSB_INTRUSBE, ctx.intrusbe);
+-
+-              /* Make sure the communication starts normally */
+-              r = musb_readb(musb->mregs, MUSB_POWER);
+-              musb_writeb(musb->mregs, MUSB_POWER,
+-                              r | MUSB_POWER_RESUME);
+-              msleep(10);
+-              musb_writeb(musb->mregs, MUSB_POWER,
+-                              r & ~MUSB_POWER_RESUME);
+       }
++      musb->is_charger = vdat;
+       check_charger = 0;
+       return vdat;
+diff -Nurp kernel-2.6.28-20101501+0m5/include/linux/sched.h kernel-2.6.28-20103103+0m5/include/linux/sched.h
+--- kernel-2.6.28-20101501+0m5/include/linux/sched.h   2012-12-16 13:28:34.848315688 +0100
++++ kernel-2.6.28-20103103+0m5/include/linux/sched.h   2012-12-16 13:35:56.036308854 +0100
+@@ -1665,11 +1665,11 @@ extern void wake_up_idle_cpu(int cpu);
  static inline void wake_up_idle_cpu(int cpu) { }
  #endif
  
  extern unsigned int sysctl_sched_features;
  extern unsigned int sysctl_sched_migration_cost;
  extern unsigned int sysctl_sched_nr_migrate;
---- kernel-power-2.6.28.orig/include/linux/swap.h
-+++ kernel-power-2.6.28/include/linux/swap.h
-@@ -130,6 +130,17 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/include/linux/swap.h kernel-2.6.28-20103103+0m5/include/linux/swap.h
+--- kernel-2.6.28-20101501+0m5/include/linux/swap.h    2012-12-16 13:28:34.848315688 +0100
++++ kernel-2.6.28-20103103+0m5/include/linux/swap.h    2012-12-16 13:35:56.036308854 +0100
+@@ -130,6 +130,17 @@ enum {
  #define SWAP_MAP_MAX  0x7fff
  #define SWAP_MAP_BAD  0x8000
  
  /*
   * The in-memory structure used to track swap areas.
   */
-@@ -157,6 +168,9 @@
+@@ -157,6 +168,9 @@ struct swap_info_struct {
        unsigned int gap_next;
        unsigned int gap_end;
        unsigned int gaps_exist;
        unsigned int lowest_bit;
        unsigned int highest_bit;
        unsigned int cluster_next;
---- kernel-power-2.6.28.orig/include/net/bluetooth/sco.h
-+++ kernel-power-2.6.28/include/net/bluetooth/sco.h
+diff -Nurp kernel-2.6.28-20101501+0m5/include/net/bluetooth/sco.h kernel-2.6.28-20103103+0m5/include/net/bluetooth/sco.h
+--- kernel-2.6.28-20101501+0m5/include/net/bluetooth/sco.h     2008-12-25 00:26:37.000000000 +0100
++++ kernel-2.6.28-20103103+0m5/include/net/bluetooth/sco.h     2012-12-16 13:35:56.036308854 +0100
 @@ -29,7 +29,7 @@
  #define SCO_DEFAULT_MTU               500
  #define SCO_DEFAULT_FLUSH_TO  0xFFFF
  #define SCO_DISCONN_TIMEOUT   (HZ * 2)
  #define SCO_CONN_IDLE_TIMEOUT (HZ * 60)
  
---- kernel-power-2.6.28.orig/kernel/sched_fair.c
-+++ kernel-power-2.6.28/kernel/sched_fair.c
-@@ -48,10 +48,10 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/kernel/sched_fair.c kernel-2.6.28-20103103+0m5/kernel/sched_fair.c
+--- kernel-2.6.28-20101501+0m5/kernel/sched_fair.c     2008-12-25 00:26:37.000000000 +0100
++++ kernel-2.6.28-20103103+0m5/kernel/sched_fair.c     2012-12-16 13:35:56.036308854 +0100
+@@ -48,10 +48,10 @@ unsigned int sysctl_sched_min_granularit
  static unsigned int sched_nr_latency = 5;
  
  /*
  
  /*
   * sys_sched_yield() compat mode
---- kernel-power-2.6.28.orig/kernel/sysctl.c
-+++ kernel-power-2.6.28/kernel/sysctl.c
-@@ -235,6 +235,14 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/kernel/sysctl.c kernel-2.6.28-20103103+0m5/kernel/sysctl.c
+--- kernel-2.6.28-20101501+0m5/kernel/sysctl.c 2008-12-25 00:26:37.000000000 +0100
++++ kernel-2.6.28-20103103+0m5/kernel/sysctl.c 2012-12-16 13:35:56.036308854 +0100
+@@ -235,6 +235,14 @@ static int max_wakeup_granularity_ns = N
  #endif
  
  static struct ctl_table kern_table[] = {
  #ifdef CONFIG_SCHED_DEBUG
        {
                .ctl_name       = CTL_UNNUMBERED,
-@@ -289,14 +297,6 @@
+@@ -289,14 +297,6 @@ static struct ctl_table kern_table[] = {
        },
        {
                .ctl_name       = CTL_UNNUMBERED,
                .procname       = "sched_features",
                .data           = &sysctl_sched_features,
                .maxlen         = sizeof(unsigned int),
---- kernel-power-2.6.28.orig/mm/swapfile.c
-+++ kernel-power-2.6.28/mm/swapfile.c
-@@ -996,11 +996,55 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/mm/swapfile.c kernel-2.6.28-20103103+0m5/mm/swapfile.c
+--- kernel-2.6.28-20101501+0m5/mm/swapfile.c   2012-12-16 13:29:04.852315222 +0100
++++ kernel-2.6.28-20103103+0m5/mm/swapfile.c   2012-12-16 13:35:56.036308854 +0100
+@@ -996,11 +996,55 @@ static void drain_mmlist(void)
        spin_unlock(&mmlist_lock);
  }
  
        int in_gap = 0;
  
        spin_unlock(&sis->remap_lock);
-@@ -1017,6 +1061,11 @@
+@@ -1017,6 +1061,11 @@ int find_gap(struct swap_info_struct *si
                mutex_unlock(&sis->remap_mutex);
                return -1;
        }
        spin_unlock(&sis->remap_lock);
  
        /*
-@@ -1028,11 +1077,7 @@
+@@ -1028,11 +1077,7 @@ int find_gap(struct swap_info_struct *si
                if (in_gap) {
                        if (!(sis->swap_remap[i] & 0x80000000))
                                continue;
                        in_gap = 0;
                } else {
                        if (sis->swap_remap[i] & 0x80000000)
-@@ -1043,13 +1088,14 @@
+@@ -1043,13 +1088,14 @@ int find_gap(struct swap_info_struct *si
                cond_resched();
        }
        spin_lock(&sis->remap_lock);
        mutex_unlock(&sis->remap_mutex);
        return 0;
  }
-@@ -1471,6 +1517,7 @@
+@@ -1471,6 +1517,7 @@ asmlinkage long sys_swapoff(const char _
        p->flags = 0;
        spin_unlock(&swap_lock);
        mutex_unlock(&swapon_mutex);
        vfree(p->swap_remap);
        vfree(swap_map);
        inode = mapping->host;
-@@ -1825,6 +1872,14 @@
+@@ -1825,6 +1872,14 @@ asmlinkage long sys_swapon(const char __
                goto bad_swap;
        }
  
        mutex_lock(&swapon_mutex);
        spin_lock(&swap_lock);
        if (swap_flags & SWAP_FLAG_PREFER)
---- kernel-power-2.6.28.orig/net/bluetooth/hci_conn.c
-+++ kernel-power-2.6.28/net/bluetooth/hci_conn.c
-@@ -375,6 +375,9 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/net/bluetooth/hci_conn.c kernel-2.6.28-20103103+0m5/net/bluetooth/hci_conn.c
+--- kernel-2.6.28-20101501+0m5/net/bluetooth/hci_conn.c        2012-12-16 13:29:04.852315222 +0100
++++ kernel-2.6.28-20103103+0m5/net/bluetooth/hci_conn.c        2012-12-16 13:35:56.036308854 +0100
+@@ -375,6 +375,9 @@ struct hci_conn *hci_connect(struct hci_
  
        if (acl->state == BT_CONNECTED &&
                        (sco->state == BT_OPEN || sco->state == BT_CLOSED)) {
                if (lmp_esco_capable(hdev))
                        hci_setup_sync(sco, acl->handle);
                else
---- kernel-power-2.6.28.orig/net/bluetooth/hci_event.c
-+++ kernel-power-2.6.28/net/bluetooth/hci_event.c
-@@ -1056,6 +1056,8 @@
+diff -Nurp kernel-2.6.28-20101501+0m5/net/bluetooth/hci_event.c kernel-2.6.28-20103103+0m5/net/bluetooth/hci_event.c
+--- kernel-2.6.28-20101501+0m5/net/bluetooth/hci_event.c       2012-12-16 13:28:34.852315687 +0100
++++ kernel-2.6.28-20103103+0m5/net/bluetooth/hci_event.c       2012-12-16 13:35:56.036308854 +0100
+@@ -1056,6 +1056,8 @@ static inline void hci_auth_complete_evt
        if (conn) {
                if (!ev->status)
                        conn->link_mode |= HCI_LM_AUTH;
  
                clear_bit(HCI_CONN_AUTH_PEND, &conn->pend);
  
-@@ -1709,6 +1711,7 @@
+@@ -1709,6 +1711,7 @@ static inline void hci_sync_conn_complet
                break;
  
        case 0x1c:      /* SCO interval rejected */
diff --git a/kernel-power-2.6.28/debian/patches/nokia-20103103+0m5_usb.diff b/kernel-power-2.6.28/debian/patches/nokia-20103103+0m5_usb.diff
deleted file mode 100644 (file)
index e1ad38f..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
---- kernel-power-2.6.28.orig/drivers/usb/musb/musb_core.c
-+++ kernel-power-2.6.28/drivers/usb/musb/musb_core.c
-@@ -297,28 +297,23 @@
-                       break;
-       }
--      if (vdat) {
--              /* REVISIT: This code works only with dedicated chargers!
--               * When support for HOST/HUB chargers is added, don't
--               * forget this.
--               */
-+      /* enable interrupts */
-+      musb_writeb(musb->mregs, MUSB_INTRUSBE, ctx.intrusbe);
-+
-+      /* Make sure the communication starts normally */
-+      r = musb_readb(musb->mregs, MUSB_POWER);
-+      musb_writeb(musb->mregs, MUSB_POWER,
-+                      r | MUSB_POWER_RESUME);
-+      msleep(10);
-+      musb_writeb(musb->mregs, MUSB_POWER,
-+                      r & ~MUSB_POWER_RESUME);
-+      if (vdat && musb->xceiv->state != OTG_STATE_B_IDLE) {
-               musb_stop(musb);
-               /* Regulators off */
-               otg_set_suspend(musb->xceiv, 1);
--              musb->is_charger = 1;
--      } else {
--              /* enable interrupts */
--              musb_writeb(musb->mregs, MUSB_INTRUSBE, ctx.intrusbe);
--
--              /* Make sure the communication starts normally */
--              r = musb_readb(musb->mregs, MUSB_POWER);
--              musb_writeb(musb->mregs, MUSB_POWER,
--                              r | MUSB_POWER_RESUME);
--              msleep(10);
--              musb_writeb(musb->mregs, MUSB_POWER,
--                              r & ~MUSB_POWER_RESUME);
-       }
-+      musb->is_charger = vdat;
-       check_charger = 0;
-       return vdat;
index c0ba1a8..e799f94 100644 (file)
@@ -7,7 +7,6 @@ nokia-20094803.3+0m5.diff
 nokia-20100903+0m5.diff
 nokia-20101501+0m5.diff
 nokia-20103103+0m5.diff
-#nokia-20103103+0m5_usb.diff
 2.6.28.10.diff
 rx51_defconfig.diff
 kstrtol.diff
@@ -36,6 +35,7 @@ wl12xx_rohar.diff
 #fmtx.unlock.diff
 radio-bcm2048.diff
 #i2c-battery.diff
+musb_core_revert_20103103+0m5.diff
 usbhostmode.diff
 musb_sysfs_notify.diff
 musb_sysfs_hostdevice.diff