Michael Ellerman | 1 Jun 2009 02:47
Picon
Gravatar

Re: MPC8343 - serial8250: too much work

On Fri, 2009-05-29 at 17:07 -0300, Alemao wrote:
> Im facing some problems with serial, linux-2.6.23, getting flooded
> with this message in logs:
> 
> ---
> serial8250: too much work for irq16
> ---
> 
> Something I notice, in my .dts I have the following lines:
> 
> serial0: serial <at> 4500,  interrupts   =  <9  0x8>
> serial1: serial <at> 4600,  interrupts   =  <10 0x8>
> spi:       spi <at> 7000,     interrupts   =  <16 0x8>
> 
> 
> But when kernel starts:
> 
> ---
> Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
> serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 16) is a 16550A
> ---
> 
> Why IRQ 16? Shouldn't it be IRQ 9?

No. Interrupt numbers are remapped on powerpc. If you were running a
mainline kernel you'd see a message something like:

irq: irq 9 on host ?? mapped to virtual irq 16

cheers
(Continue reading)

Joakim Tjernlund | 1 Jun 2009 08:14
Picon

Re: [PATCH] powerpc: tiny memcpy_(to|from)io optimisation

>
> Hi Jocke:
>
> Am 29.05.09 08:31 schrieb(en) Joakim Tjernlund:
> > > No (and I wasn't aware of the PPC pre-inc vs. post-inc stuff) - I
> > just
> >
> > I think this is true for most RISC based CPU's. It is a pity as
> > post ops are a lot more common. The do {} while(--chunks) is also
> > better. Basically the "while(--chunks)" is free(but only if you don't
> > use
> > chunks inside the loop).
>
> Just a side note:  I looked at the assembly output of gcc 4.3.3 coming
> with Ubuntu Jaunty/PowerPC for
>
> <snip case="1">
>    n >>= 2;
>    do {
>      *++dst = *++src;
>    } while (--n);
> <snip>
>
> and
>
> <snip case="2">
>    n >>= 2;
>    while (n--)
>      *dst++ = *src++;
> </snip>
(Continue reading)

Giuseppe Coviello | 1 Jun 2009 09:32

Re: [Linux-fbdev-devel] [PATCH] GXT400P and GXT6500P support

Il giorno sab, 30/05/2009 alle 13.42 +0200, Krzysztof Helt ha scritto:
> On Wed, 27 May 2009 20:57:55 +0200
> Giuseppe Coviello <cjg <at> cruxppc.org> wrote:
> 
> > This patch adds support for GXT4000P and GXT6500P cards found on some
> > IBM pSeries machines.
> > GXT4000P/6000P and GXT4500P/6500P  couples are  identical from
> > software's point of view and are based on the same  Raster Engine
> > (RC1000), except for a different reference clock for the PLL.
> > GXT6x00P models are equipped with an additional Geometry Engine
> > (GT1000) but this driver doesn't use it.
> > 
> > Regards, Giuseppe
> > 
> > 
> 
> Please also change name of the option to reflect the fact it supports
> more than just the GXT4500P, e.g.
> 
> "Framebuffer support for IBM GXT4000P/4500P/6000P/6500P adaptors"
> 
> Please cc the updated patch to the linuxppc-dev <at> ozlabs.org.
> 
> Regards,
> Krzysztof

I've made the changes that you have suggested.

Regards, Giuseppe

(Continue reading)

David Miller | 1 Jun 2009 11:51
Favicon

Re: [PATCH 1/4] net/phy/marvell: update m88e1111 support for SGMII mode


Patch 3 of this series doesn't apply cleanly to net-next-2.6
so I'm dropping the entire patch set.

Also, in patch 3 you put your signoff in the Subject line.

Please fix all of this up and resubmit your patch series.

Thank you.
Ian Campbell | 1 Jun 2009 17:32

[PATCH 00/11] swiotlb: Introduce architecture-specific APIs to replace __weak functions (v2)

This series:
* removes the swiotlb_(arch_)_phys_to_bus and bus_to_phys __weak
  hooks, replacing them with an architecture-specific phys_to_dma and
  dma_to_phys interface. These are used by both PowerPC and Xen to
  provide the correct mapping from physical to DMA addresses.
* removes the swiotlb_address_needs_mapping and
  swiotlb_range_needs_mapping __weak functions as well as
  is_buffer_dma_capable (which should never have been a generic
  function). All three are replaced by a single architecture-specific
  interface which meets the needs of both PowerPC and Xen.
* removes the swiotlb_virt_to_bus __weak function and replaces it with
  a CONFIG_HIGHMEM compatible version when high memory is in use. This
  is needed for 32 bit PowerPC swiotlb support.
* removes the swiotlb_alloc* __weak functions and replaces them with
  swiotlb_init_with_buffer which allows the use of a caller allocated
  buffer (and emergency pool).

I think these new interfaces are cleaner than the existing __weak
functions and isolate the swiotlb code from architecture internals.

This series does not contain any Xen or PowerPC specific changes, those
will follow in separate postings. The complete patchset has been boot
tested under Xen and native-x86 and compiled for IA64 and PowerPC

Changes since v1: 
- Fixed compile error in swiotlb_dma_to_virt highmem version. Moved
  #ifdef into function to avoid prototype drift.
- checkpatch fixes.
- missed a swiotlb_arch_range_needs_mapping in swiotlb.h and x86
  pci-swiotlb.c and swiotlb_bus_to_phys/phys_to_bus implementations in
(Continue reading)

Ian Campbell | 1 Jun 2009 17:32

[PATCH 06/11] swiotlb: use dma_to_phys and phys_to_dma

These new architecture-specific interfaces subsume the existing __weak
function hooks.

Signed-off-by: Ian Campbell <ian.campbell <at> citrix.com>
Cc: FUJITA Tomonori <fujita.tomonori <at> lab.ntt.co.jp>
Cc: Jeremy Fitzhardinge <jeremy <at> goop.org>
Cc: Olaf Kirch <okir <at> suse.de>
Cc: Greg KH <gregkh <at> suse.de>
Cc: Tony Luck <tony.luck <at> intel.com>
Cc: Becky Bruce <beckyb <at> kernel.crashing.org>
Cc: Benjamin Herrenschmidt <benh <at> kernel.crashing.org>
Cc: Kumar Gala <galak <at> kernel.crashing.org>
Cc: Jeremy Fitzhardinge <jeremy <at> goop.org>
Cc: x86 <at> kernel.org
Cc: linux-ia64 <at> vger.kernel.org
Cc: linuxppc-dev <at> ozlabs.org
---
 arch/x86/kernel/pci-swiotlb.c |   10 ----------
 include/linux/swiotlb.h       |    5 -----
 lib/swiotlb.c                 |   18 ++++--------------
 3 files changed, 4 insertions(+), 29 deletions(-)

diff --git a/arch/x86/kernel/pci-swiotlb.c b/arch/x86/kernel/pci-swiotlb.c
index a1712f2..e89cf99 100644
--- a/arch/x86/kernel/pci-swiotlb.c
+++ b/arch/x86/kernel/pci-swiotlb.c
 <at>  <at>  -23,16 +23,6  <at>  <at>  void *swiotlb_alloc(unsigned order, unsigned long nslabs)
 	return (void *)__get_free_pages(GFP_DMA | __GFP_NOWARN, order);
 }

(Continue reading)

Ian Campbell | 1 Jun 2009 17:32

[PATCH 07/11] swiotlb: use dma_map_range

This replaces usages of address_needs_mapping, range_needs_mapping and
is_buffer_dma_capable and the __weak architecture hooks to those
functions with a more flexible single function.

Signed-off-by: Ian Campbell <ian.campbell <at> citrix.com>
Cc: FUJITA Tomonori <fujita.tomonori <at> lab.ntt.co.jp>
Cc: Jeremy Fitzhardinge <jeremy <at> goop.org>
Cc: Olaf Kirch <okir <at> suse.de>
Cc: Greg KH <gregkh <at> suse.de>
Cc: Tony Luck <tony.luck <at> intel.com>
Cc: Becky Bruce <beckyb <at> kernel.crashing.org>
Cc: Benjamin Herrenschmidt <benh <at> kernel.crashing.org>
Cc: Kumar Gala <galak <at> kernel.crashing.org>
Cc: Jeremy Fitzhardinge <jeremy <at> goop.org>
Cc: x86 <at> kernel.org
Cc: linux-ia64 <at> vger.kernel.org
Cc: linuxppc-dev <at> ozlabs.org
---
 arch/x86/kernel/pci-swiotlb.c |    5 ---
 include/linux/dma-mapping.h   |    5 ---
 include/linux/swiotlb.h       |    2 -
 lib/swiotlb.c                 |   59 +++++++++++++---------------------------
 4 files changed, 19 insertions(+), 52 deletions(-)

diff --git a/arch/x86/kernel/pci-swiotlb.c b/arch/x86/kernel/pci-swiotlb.c
index e89cf99..fdcc0e2 100644
--- a/arch/x86/kernel/pci-swiotlb.c
+++ b/arch/x86/kernel/pci-swiotlb.c
 <at>  <at>  -23,11 +23,6  <at>  <at>  void *swiotlb_alloc(unsigned order, unsigned long nslabs)
 	return (void *)__get_free_pages(GFP_DMA | __GFP_NOWARN, order);
(Continue reading)

Ian Campbell | 1 Jun 2009 17:33

[PATCH 08/11] swiotlb: support HIGHMEM in swiotlb_bus_to_virt

Rather than supplying a __weak hook which architectures which support
highmem can overide simply provide a version of swiotlb_bus_to_virt
which works with high memory. Make it conditional since it is a more
expensive variant than the non-highmem version.

Acutal function contents taken from the PowerPC swiotlb patchset by
Becky Bruce.

Signed-off-by: Ian Campbell <ian.campbell <at> citrix.com>
Cc: Becky Bruce <beckyb <at> kernel.crashing.org>
Cc: Benjamin Herrenschmidt <benh <at> kernel.crashing.org>
Cc: Kumar Gala <galak <at> kernel.crashing.org>
Cc: FUJITA Tomonori <fujita.tomonori <at> lab.ntt.co.jp>
Cc: Ingo Molnar <mingo <at> elte.hu>
Cc: Jeremy Fitzhardinge <jeremy <at> goop.org>
Cc: linuxppc-dev <at> ozlabs.org
---
 lib/swiotlb.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/lib/swiotlb.c b/lib/swiotlb.c
index d37499b..d2b296a 100644
--- a/lib/swiotlb.c
+++ b/lib/swiotlb.c
 <at>  <at>  -130,9 +130,18  <at>  <at>  static dma_addr_t swiotlb_virt_to_bus(struct device *hwdev,
 	return phys_to_dma(hwdev, virt_to_phys(address));
 }

-void * __weak swiotlb_bus_to_virt(struct device *hwdev, dma_addr_t address)
+static void *swiotlb_bus_to_virt(struct device *hwdev, dma_addr_t address)
(Continue reading)

Benjamin Herrenschmidt | 2 Jun 2009 02:42

Re: [Linux-fbdev-devel] [PATCH] GXT400P and GXT6500P support

On Mon, 2009-06-01 at 09:32 +0200, Giuseppe Coviello wrote:

> 
> Signed-off-by: Nico Macrionitis <acrux <at> cruxppc.org>
> Signed-off-by: Giuseppe Coviello <cjg <at> cruxppc.org>

As long as you guys have verified that it actually works, I have
no objection.

Ack.

Cheers,
Ben.

> diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> index 0048f11..7ee1e65 100644
> --- a/drivers/video/Kconfig
> +++ b/drivers/video/Kconfig
>  <at>  <at>  -1964,14 +1964,16  <at>  <at>  config FB_PNX4008_DUM_RGB
>  	  Say Y here to enable support for PNX4008 RGB Framebuffer
>  
>  config FB_IBM_GXT4500
> -	tristate "Framebuffer support for IBM GXT4500P adaptor"
> +	tristate "Framebuffer support for IBM GXT4000P/4500P/6000P/6500P adaptors"
>  	depends on FB && PPC
>  	select FB_CFB_FILLRECT
>  	select FB_CFB_COPYAREA
>  	select FB_CFB_IMAGEBLIT
>  	---help---
> -	  Say Y here to enable support for the IBM GXT4500P display
(Continue reading)

Benjamin Herrenschmidt | 2 Jun 2009 02:46

Re: MPC8272- Porting HDLC driver from 2.6.14 to 2.6.27- "no_irq_chip" error


> 
> #define PIT_IRQ 65

In addition, the interrupt should be provided by the device-tree of
course, in which case a single function will look it up for you -and-
do the appropriate mapping.

Cheers,
Ben.

>      virq = irq_create_mapping(NULL, PIT_IRQ);
>      set_irq_type(virq, IRQ_TYPE_LEVEL_LOW);
> 
>      if(request_irq(virq, (irq_handler_t)timerEvent, 0, "timer2", (void *)0)) {
>          printk(KERN_ERR "request_irq() returned error for irq=%d virq=%d\n", PIT_IRQ, virq);
>      }
> 
> All the above info comes from this mailing (and the linuxppc-embedd list) though.
> If you search these lists you'll find plenty of answers to similar questions.
> 
> ---
> N. van Bolhuis
> AimValley
> 
> 
> 
> 
> Daniel Ng wrote:
> > Hi,
(Continue reading)


Gmane