1. 17 4月, 2008 1 次提交
  2. 07 2月, 2008 1 次提交
  3. 28 1月, 2008 1 次提交
  4. 24 1月, 2008 1 次提交
  5. 14 12月, 2007 1 次提交
  6. 05 10月, 2007 1 次提交
    • S
      [POWERPC] cpm: Describe multi-user ram in its own device node. · 15f8c604
      Scott Wood 提交于
      The way the current CPM binding describes available multi-user (a.k.a.
      dual-ported) RAM doesn't work well when there are multiple free regions,
      and it doesn't work at all if the region doesn't begin at the start of
      the muram area (as the hardware needs to be programmed with offsets into
      this area).  The latter situation can happen with SMC UARTs on CPM2, as its
      parameter RAM is relocatable, u-boot puts it at zero, and the kernel doesn't
      support moving it.
      
      It is now described with a muram node, similar to QE.  The current CPM
      binding is sufficiently recent (i.e. never appeared in an official release)
      that compatibility with existing device trees is not an issue.
      
      The code supporting the new binding is shared between cpm1 and cpm2, rather
      than remain separated.  QE should be able to use this code as well, once
      minor fixes are made to its device trees.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      15f8c604
  7. 04 10月, 2007 3 次提交
  8. 28 9月, 2007 1 次提交
  9. 26 9月, 2007 1 次提交
    • J
      [POWERPC] Fix cpm_uart driver · b15773a0
      Jochen Friedrich 提交于
      in cpm_uart_cpm1.h, DPRAM_BASE is assigned an address derived from cpmp.
      On ARC=ppc, this is a physical address with 1:1 DMA mapping which can't
      be used for arithmetric compare operations with virtual addresses
      returned by cpm_dpram_addr. This patch changes the assignment to use
      cpm_dpram_addr as well, like in cpm_uart_cpm2.h.
      Signed-off-by: NJochen Friedrich <jochen@scram.de>
      b15773a0
  10. 10 7月, 2007 1 次提交
  11. 10 5月, 2007 3 次提交
  12. 09 5月, 2007 1 次提交
  13. 16 2月, 2007 1 次提交
  14. 07 2月, 2007 2 次提交
    • V
      [POWERPC] Fix kernel build errors for mpc8272ads and mpc8560ads · 5427828e
      Vitaly Bordug 提交于
      Recent update of asm-powerpc/io.h caused cpm-related stuff to break in the
      current kernel. Current patch fixes it, as well as other inconsistencies
      expressed, that do not permit targets from working properly:
      
      - Updated dts with a chosen node with interrupt controller,
      - fixed messed device IDs among CPM2 SoC devices,
      - corrected odd header name and fixed type in defines,
      - Added 82xx subdir to the powerpc/platforms Makefile, missed during
        initial commit,
      - new solely-powerpc header file for 8260 family (was using one from
        arch/ppc, this one cleaned up from the extra stuff), in fact for now
        a placeholder to get the board-specific includes for stuff not yet
        capable to live with devicetree peeks only
      - Fixed couple of misprints in reference mpc8272 dts.
      Signed-off-by: NVitaly Bordug <vbordug@ru.mvista.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      5427828e
    • V
      [POWERPC] cpm_uart: OF-related fix for CPM1 · f25222b9
      Vitaly Bordug 提交于
      This makes cpm uart able to work using OF-passed parameters
      in case of CPM stuff (found on most mpc8xx reference and custom
      boards). The idea is to keep ppc stuff working yet making it able to be
      used for powerpc.
      Signed-off-by: NVitaly Bordug <vbordug@ru.mvista.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f25222b9
  15. 04 12月, 2006 1 次提交
  16. 10 11月, 2006 2 次提交
  17. 05 10月, 2006 1 次提交
    • D
      IRQ: Maintain regs pointer globally rather than passing to IRQ handlers · 7d12e780
      David Howells 提交于
      Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
      of passing regs around manually through all ~1800 interrupt handlers in the
      Linux kernel.
      
      The regs pointer is used in few places, but it potentially costs both stack
      space and code to pass it around.  On the FRV arch, removing the regs parameter
      from all the genirq function results in a 20% speed up of the IRQ exit path
      (ie: from leaving timer_interrupt() to leaving do_IRQ()).
      
      Where appropriate, an arch may override the generic storage facility and do
      something different with the variable.  On FRV, for instance, the address is
      maintained in GR28 at all times inside the kernel as part of general exception
      handling.
      
      Having looked over the code, it appears that the parameter may be handed down
      through up to twenty or so layers of functions.  Consider a USB character
      device attached to a USB hub, attached to a USB controller that posts its
      interrupts through a cascaded auxiliary interrupt controller.  A character
      device driver may want to pass regs to the sysrq handler through the input
      layer which adds another few layers of parameter passing.
      
      I've build this code with allyesconfig for x86_64 and i386.  I've runtested the
      main part of the code on FRV and i386, though I can't test most of the drivers.
      I've also done partial conversion for powerpc and MIPS - these at least compile
      with minimal configurations.
      
      This will affect all archs.  Mostly the changes should be relatively easy.
      Take do_IRQ(), store the regs pointer at the beginning, saving the old one:
      
      	struct pt_regs *old_regs = set_irq_regs(regs);
      
      And put the old one back at the end:
      
      	set_irq_regs(old_regs);
      
      Don't pass regs through to generic_handle_irq() or __do_IRQ().
      
      In timer_interrupt(), this sort of change will be necessary:
      
      	-	update_process_times(user_mode(regs));
      	-	profile_tick(CPU_PROFILING, regs);
      	+	update_process_times(user_mode(get_irq_regs()));
      	+	profile_tick(CPU_PROFILING);
      
      I'd like to move update_process_times()'s use of get_irq_regs() into itself,
      except that i386, alone of the archs, uses something other than user_mode().
      
      Some notes on the interrupt handling in the drivers:
      
       (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in
           the input_dev struct.
      
       (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does
           something different depending on whether it's been supplied with a regs
           pointer or not.
      
       (*) Various IRQ handler function pointers have been moved to type
           irq_handler_t.
      Signed-Off-By: NDavid Howells <dhowells@redhat.com>
      (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
      7d12e780
  18. 04 10月, 2006 2 次提交
  19. 22 9月, 2006 3 次提交
    • V
      POWERPC: Bring the fs_no calculation to the relevant SoC enumeration · 611a15af
      Vitaly Bordug 提交于
      The fs_no mean used to be fs_enet driver driven, hence it was an
      enumeration across all the possible fs_enet "users" in the SoC. Now, with
      QE on the pipeline, and to make DTS descriptions more clear, fs_no features
      relevant SoC part number, with additional field to describe the SoC type.
      
      Another reason for that is now not only fs_enet is going to utilize those
      stuff. There might be UART, HLDC, and even USB, so to prevent confusion and
      be ready for upcoming OF_device transfer, fs_enet and cpm_uart drivers were
      updated in that concern, as well as the relevant DTS.
      Signed-off-by: NVitaly Bordug <vbordug@ru.mvista.com>
      611a15af
    • V
      POWERPC: overhaul with cpm2_map mechanism · d3465c92
      Vitaly Bordug 提交于
      Incorporating the new way of cpm2 immr access, introduced in the previous
      patch, into CPM2 peripheral devices (fs_enet and cpm_uart). Both ppc and
      powerpc approved working( real actions taken in powerpc only, ppc just
      has a wrapper to keep init stuff consistent).
      Signed-off-by: NVitaly Bordug <vbordug@ru.mvista.com>
      d3465c92
    • V
      POWERPC: Get rid of remapping the whole immr · fc8e50e3
      Vitaly Bordug 提交于
      The stuff below cleans up the code attempting to remap the whole cpm2_immr
      early, as well as places happily assuming that fact. This is more like the 2.4
      legacy stuff, and is at least confusing and unclear now.
      
      To keep the world comfortable, a new mechanism is introduced: before accessing
      specific immr register/register set, one needs to map it, using cpm2_map(<reg>),
      for instance, access to CPM command register will look like
      	volatile cpm_cpm2_t *cp = cpm2_map(im_cpm);
      keeping the code clear, yet without "already defined somewhere" cpm2_immr.
      
      So far, unmapping code is not implemented, but it's not a big deal to add it,
      if the whole idea makes sense.
      Signed-off-by: NVitaly Bordug <vbordug@ru.mvista.com>
      fc8e50e3
  20. 21 9月, 2006 1 次提交
  21. 01 7月, 2006 1 次提交
  22. 26 5月, 2006 1 次提交
  23. 03 5月, 2006 2 次提交
  24. 28 4月, 2006 2 次提交
  25. 09 2月, 2006 1 次提交
  26. 05 2月, 2006 1 次提交
  27. 09 1月, 2006 1 次提交
    • A
      [PATCH] ppc32: cpm_uart: fix xchar sending · 03929c76
      Aristeu Sergio Rozanski Filho 提交于
      while using SCC as uart and as serial console at same time I got this:
      
      [  138.214258] Oops: kernel access of bad area, sig: 11 [#1]
      [  138.218832] PREEMPT
      [  138.221021] NIP: C0105C48 LR: C0105E60 SP: C03D5D10 REGS: c03d5c60 TRAP: 0300    Not tainted
      [  138.229280] MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
      [  138.234713] DAR: 00000000, DSISR: C0000000
      [  138.238745] TASK = c0349420[693] 'sh' THREAD: c03d4000
      [  138.243754] Last syscall: 6
      [  138.246402] GPR00: FEFFFFFF C03D5D10 C0349420 C01FB094 00000011 00000000 C1ECFBBC C01F24B0
      [  138.254602] GPR08: FF002820 00000000 FF0028C0 00000000 19133615 A0CBCD5E 02000300 00000000
      [  138.262804] GPR16: 00000000 01FF9E4C 00000000 7FA9A770 00000000 00000000 1003E2A8 00000000
      [  138.271003] GPR24: 100562F4 7F9B6EF4 C0210000 C02A5338 C01FB094 00000000 C01FB094 C1F14574
      [  138.279376] NIP [c0105c48] cpm_uart_tx_pump+0x4c/0x22c
      [  138.284419] LR [c0105e60] cpm_uart_start_tx+0x38/0xb0
      [  138.289361] Call trace:
      [  138.291762]  [c0105e60] cpm_uart_start_tx+0x38/0xb0
      [  138.296547]  [c010277c] uart_send_xchar+0x88/0x118
      [  138.301244]  [c01029a0] uart_unthrottle+0x6c/0x138
      [  138.305942]  [c00ece10] check_unthrottle+0x60/0x64
      [  138.310641]  [c00ecec4] reset_buffer_flags+0xb0/0x138
      [  138.315595]  [c00ecf64] n_tty_flush_buffer+0x18/0x78
      [  138.320465]  [c00e81b0] tty_ldisc_flush+0x64/0x7c
      [  138.325078]  [c010410c] uart_close+0xf0/0x2c8
      [  138.329348]  [c00e9c48] release_dev+0x724/0x8d4
      [  138.333790]  [c00e9e18] tty_release+0x20/0x3c
      [  138.338061]  [c006e544] __fput+0x178/0x1e0
      [  138.342076]  [c006c43c] filp_close+0x54/0xac
      [  138.346261]  [c0002d90] ret_from_syscall+0x0/0x44
      [  138.352386] note: sh[693] exited with preempt_count 2
      
      a easy way to reproduce it is log into the system using ssh and do:
      	cat >/dev/ttyCPM0
      then, switch to minicom and write some stuff on it back to ssh, a control C
      produce the oops
      
      this happens because uart_close calls uart_shutdown which frees xmit.buf,
      currently used by xchar sending in cpm_uart_tx_pump(), which seems wrong.
      
      the attached patch fixes the oops and also fixes xchar sending.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      03929c76
  28. 14 11月, 2005 1 次提交
  29. 05 9月, 2005 1 次提交