* Re: Direct MII connection between MPC8313 and VIRTEX FPGA
From: Grant Likely @ 2009-06-29 15:40 UTC (permalink / raw)
To: Frank Prepelica; +Cc: linuxppc-dev
In-Reply-To: <29DC34A6B43468409F5A371CFE34E849D7EE1A@ex01.ads.ubidyne.de>
On Mon, Jun 29, 2009 at 2:23 AM, Frank
Prepelica<Frank.Prepelica@ubidyne.com> wrote:
> Hi Grant
>
> Thanks for your response!
>
> I have searched for "current-speed" in drivers/net/fec_mpc52xx.c but I cannot find anything. However we are using the gianfar.c Ethernet driver.
> Do you know whether this driver supports fixed MII links without PHY?
What kernel version are you using?
> I've got another question regarding MII connection between and MPC and a Virtex FPGA. Whats about the PHY address which has to be set in the DTB file? Do I have to modify the DTB at all?
Yes, you need to modify the DTB. You have a back to back MII
connection, not a phy, so you do *not* want to have a PHY node in the
device tree.
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
^ permalink raw reply
* Re: How to implement kexec on e500 ?
From: wilbur.chan @ 2009-06-29 15:36 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <BD32B91E-83B3-4ED5-A5C1-60B8B6EF9B3C@kernel.crashing.org>
Excuse me ,
btw,how to search these patches on this maillist?
through Linuxppc-dev Archives one by one?
Cheers,
wilbur
2009/6/29, Kumar Gala <galak@kernel.crashing.org>:
>
> On Jun 29, 2009, at 8:47 AM, wilbur.chan wrote:
>
>> kernel 2.6.21.7
>>
>> As we know , kexec stores data for new kernel image , in the form
>> of a page list.
>>
>> And kexec uses the physical address of the another page for a
>> "next-page" pointer.
>>
>> However, PowerPC e500 does not allow users to turn off the MMU, so we
>> can not used physical address directly in our code.
>>
>>
>> Someone suggested that changing relocate_kernel.S to add a TLB 1-to-1
>> mapping of DRAM .
>>
>> What does "mapping" mean ?
>>
>> Any suggestion to implement kexec on e500 ?
>
> Wilbur, kexec has been implemented on e500. There are some patches on
> the list for this and they just need to be respun and reviewed again.
>
> - k
>
^ permalink raw reply
* Device tree for c67x00
From: Jorge Sánchez de Nova @ 2009-06-29 15:25 UTC (permalink / raw)
To: Linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 1936 bytes --]
Hi,
I am trying to load the c67x00 driver in my Xilinx ML403 (PowerPC) based
platform. I am running a merged tree between DENX+Adeos/Xenomai and Xilinx
(2.6.29.4). I have the XPS_EPC core interfaced to the Cypress CY7C67300.
Before, in PPC I used to have something like this in my virtex_devices.c
/*
* Cypress USB C67x00 shortcut macro for single instance
*/
#define XPAR_C67x00_USB(num) { \
.name = "c67x00", \
.id = num, \
.num_resources = 2, \
.resource = (struct resource[]) { \
{ \
.start = XPAR_C67X00_USB_PRH##num##_BASEADDR, \
.end = XPAR_C67X00_USB_PRH##num##_BASEADDR + 0xf, \
.flags = IORESOURCE_MEM, \
}, \
{ \
.start = XPAR_OPB_INTC_0_SYSTEM_USB_HPI_INT_PIN_INTR, \
.end = XPAR_OPB_INTC_0_SYSTEM_USB_HPI_INT_PIN_INTR, \
.flags = IORESOURCE_IRQ, \
}, \
}, \
.dev.platform_data = &(struct c67x00_platform_data) { \
.sie_config = C67X00_SIE1_HOST | C67X00_SIE2_PERIPHERAL_A, \
.hpi_regstep = 0x02, /* A0 not connected on 16bit bus */ \
}, \
}
Together with the xparameters.h #defines. And even if I never managed to get
it working, the kernel was loading it. Now I am trying to have the
equivalent information in the device-tree .dts with no luck. Something like
this:
xps_epc_0: usb@80800000 {
compatible = "cy,c67300 cy,c67x00";
interrupt-parent = <&xps_intc_0>;
interrupts = < 0 2 >;
reg = < 0x80800000 0x10000 >;
xlnx,family = "virtex4";
} ;
(inspired by another mail in this list).
It doesn't work at all since it doesn't load anything. I have looked at the
driver and there is apparently no openfirmware support for it, so maybe the
dts info won't work without it. Am I wrong? Does this means that the c67x00
needs OF support to work in this configuration? How can I make it otherwise?
Thanks,
Jorge
[-- Attachment #2: Type: text/html, Size: 2160 bytes --]
^ permalink raw reply
* [PATCH][v2] sata_fsl: Add asynchronous notification support
From: ashish kalra @ 2009-06-29 15:16 UTC (permalink / raw)
To: linux-ide; +Cc: linuxppc-dev
Enable device hot-plug support on Port multiplier fan-out ports
Signed-off-by: Ashish Kalra <Ashish.Kalra@freescale.com>
---
drivers/ata/sata_fsl.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index 94eaa43..5751145 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -34,7 +34,7 @@ enum {
SATA_FSL_HOST_FLAGS = (ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
- ATA_FLAG_PMP | ATA_FLAG_NCQ),
+ ATA_FLAG_PMP | ATA_FLAG_NCQ | ATA_FLAG_AN),
SATA_FSL_MAX_CMDS = SATA_FSL_QUEUE_DEPTH,
SATA_FSL_CMD_HDR_SIZE = 16, /* 4 DWORDS */
@@ -132,7 +132,7 @@ enum {
INT_ON_SINGL_DEVICE_ERR = (1 << 1),
INT_ON_CMD_COMPLETE = 1,
- INT_ON_ERROR = INT_ON_FATAL_ERR |
+ INT_ON_ERROR = INT_ON_FATAL_ERR | INT_ON_SNOTIFY_UPDATE |
INT_ON_PHYRDY_CHG | INT_ON_SINGL_DEVICE_ERR,
/*
@@ -154,6 +154,7 @@ enum {
DEFAULT_PORT_IRQ_ENABLE_MASK = IE_ON_FATAL_ERR | IE_ON_PHYRDY_CHG |
IE_ON_SIGNATURE_UPDATE |
+ IE_ON_SNOTIFY_UPDATE |
IE_ON_SINGL_DEVICE_ERR | IE_ON_CMD_COMPLETE,
EXT_INDIRECT_SEG_PRD_FLAG = (1 << 31),
@@ -1003,6 +1004,11 @@ static void sata_fsl_error_intr(struct ata_port *ap)
freeze = 1;
}
+ /* Handle SDB FIS receive & notify update */
+ if (hstatus & INT_ON_SNOTIFY_UPDATE) {
+ sata_async_notification(ap);
+ }
+
/* Handle PHYRDY change notification */
if (hstatus & INT_ON_PHYRDY_CHG) {
DPRINTK("SATA FSL: PHYRDY change indication\n");
--
1.6.0
^ permalink raw reply related
* (no subject)
From: ashish kalra @ 2009-06-29 15:11 UTC (permalink / raw)
To: linux-ide; +Cc: linuxppc-dev
From: Ashish Kalra <Ashish.Kalra@freescale.com>
Date: Fri, 26 Jun 2009 15:46:02 +0530
Subject: [PATCH][v2] sata_fsl: Add asynchronous notification support
Enable device hot-plug support on Port multiplier fan-out ports
Signed-off-by: Ashish Kalra <Ashish.Kalra@freescale.com>
---
drivers/ata/sata_fsl.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index 94eaa43..5751145 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -34,7 +34,7 @@ enum {
SATA_FSL_HOST_FLAGS = (ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
- ATA_FLAG_PMP | ATA_FLAG_NCQ),
+ ATA_FLAG_PMP | ATA_FLAG_NCQ | ATA_FLAG_AN),
SATA_FSL_MAX_CMDS = SATA_FSL_QUEUE_DEPTH,
SATA_FSL_CMD_HDR_SIZE = 16, /* 4 DWORDS */
@@ -132,7 +132,7 @@ enum {
INT_ON_SINGL_DEVICE_ERR = (1 << 1),
INT_ON_CMD_COMPLETE = 1,
- INT_ON_ERROR = INT_ON_FATAL_ERR |
+ INT_ON_ERROR = INT_ON_FATAL_ERR | INT_ON_SNOTIFY_UPDATE |
INT_ON_PHYRDY_CHG | INT_ON_SINGL_DEVICE_ERR,
/*
@@ -154,6 +154,7 @@ enum {
DEFAULT_PORT_IRQ_ENABLE_MASK = IE_ON_FATAL_ERR | IE_ON_PHYRDY_CHG |
IE_ON_SIGNATURE_UPDATE |
+ IE_ON_SNOTIFY_UPDATE |
IE_ON_SINGL_DEVICE_ERR | IE_ON_CMD_COMPLETE,
EXT_INDIRECT_SEG_PRD_FLAG = (1 << 31),
@@ -1003,6 +1004,11 @@ static void sata_fsl_error_intr(struct ata_port *ap)
freeze = 1;
}
+ /* Handle SDB FIS receive & notify update */
+ if (hstatus & INT_ON_SNOTIFY_UPDATE) {
+ sata_async_notification(ap);
+ }
+
/* Handle PHYRDY change notification */
if (hstatus & INT_ON_PHYRDY_CHG) {
DPRINTK("SATA FSL: PHYRDY change indication\n");
--
1.6.0
^ permalink raw reply related
* Re: RapidIO - general questions
From: Jan Neskudla @ 2009-06-29 14:19 UTC (permalink / raw)
To: ext Li Yang; +Cc: linuxppc-dev, linux-kernel, IDT - Kim, Chul
In-Reply-To: <1242802800.9160.143.camel@demuxf9c>
Hi as I already informed you,
we'd like to contribute to the Linux RapidIO subsystem, with several
features, Here are few general information about the design of
implementation of such features.
naming:
domain - a several boards connected together via rio, with only one host
host - a MCU with host bit set, only one per domain
domain master - a host which have also domain_master_bit set ( boot
param), only one in overall system.
* Domains configuration - traverse the whole rio network by domain
master to find all the hosts, providing a domain IDs to them and finally
programing domain routing tables to the switches. Since we are
cooperating with a IDT as a switch supplier, the IDT will public their
private API for setting such a domain routing tables under GPL.
- there is an issue how to proceed with a locking of the switches,
during enumeration of domains and later on during enumeration of
endpoint by hosts. All the time, of running system, there will be two
MCUs trying to configure the same switch in certain situation,
especially during hot-plug of domain. So this is not clear yet.
* Static ID configuration based on port numbers
tree sysfs files for providing necessary info :
host_id - this is the same like riohdid boot parameter now
switch_ids - this file is for providing source ids for switches to
be able to report problems via port-write packets
endpoint_ids - to provide list of all endpoint in one domain.
I read somewhere that passing of structures via sysFS is not
acceptable, but how to pass some more information to the kernel.
I expect to pass those structures via bin sysFS files, analyze the input
not only cast it, and than use it. Is it this OK ?
* User triggered enumeration/discovery
This is necessary because of the static IDs. They have to be know before
enumeration can start, and this is most general way of doing this.
So once the static Ids are provided over sysFS files, then via another
sysFS file a enumeration is triggered. I am talking about enumeration
only because the endpoints that wait for the enumeration are going to
preform discovery as usual, after enumeration.
This needs some changes. Whole enumeration process have to be put into
the kthread and discovery as well. Then kernel can boots up to user
space and enumeration can be triggered.
Is there any standard way in the kernel how to postpone and than trigger
a configuration of a bus from the user space ?
* User space library for configuring switches
IDT is going to provide user space GPL library that will covers an rio
switch configuration based on rio spec 2.0.
* Error handling (port-write packets - configuration, handling of them)
This should be as general as possible, and IDT is designing this part.
So a port-write packet (have to be written) driver will receive a
packet, analyze this and perform an action: - two scenarios can happen.
1. The port-write info is part of the rio spec 2.0 and the packet is
processed by kernel directly
2. The port-write info is vendor specific and it is passed to the user
space, where is processed and proper action is than taken via current
sysFS config files.
* Hot-plug (hot-insert/hot-remove) of devices
This is case of error handling.
In case of any error covered by rio spec 2.0 (bad CRC, bad
character, .. ) the ports of the switch that generates this port-write
info are scanned for PORT_OK status or PORT_UNINITIALIZED so we are able
to catch the hot-plug/hot-extract of any device.
Hotplug should be functional in the time of enumeration, because
enumeration process traverse the system port by port, and if some
endpoint is powered on after enumeration process testes its port but
before the end of the standard enumeration process, this device can be
missed.
* Aux driver - basic driver, for sending messages over different
mboxes,
right now we implemented this as a character device. If any one is
interested let me know, I will send this to you.
On the end we'd like to support already existing scenario of dynamic
assignment of the devID as well as static ID and user space triggered
enumeration.
The question is if there is a static table of IDs, do we still needs an
discovery process on every endpoint ? Propagating any hot-plug/hot-
extract event to every endpoint to reflect this in local sysfs structure
would be quite hard.
Any comment to this topics is highly appreciated, as well as forwarding
this to anyone who can be interested.
Jan
On Wed, 2009-05-20 at 09:00 +0200, ext Jan Neskudla wrote:
> n Fri, 2009-05-15 at 15:56 +0800, ext Li Yang wrote:
> > On Fri, May 15, 2009 at 3:33 PM, Jan Neskudla
> <jan.neskudla.ext@nsn.com> wrote:
> > > On Wed, 2009-05-13 at 18:57 +0800, ext Li Yang wrote:
> > >> cc'ed LKML
> > >>
> > >> On Tue, May 12, 2009 at 5:17 PM, Jan Neskudla
> <jan.neskudla.ext@nsn.com> wrote:
> > >> > Hallo
> > >> >
> > >> > we'd likes to use a RapidIO as a general communication bus on
> our new
> > >> > product, and so I have some questions about general design of
> Linux RIO
> > >> > subsystem. I did not find any better mailing list for RapidIO
> > >> > discussion.
> > >> >
> > >> > [1] - we'd like to implement following features
> > >> > * Hot-plug (hot-insert/hot-remove) of devices
> > >> > * Error handling (port-write packets - configuration,
> handling of
> > >> > them)
> > >> > * Static ID configuration based on port numbers
> > >> > * Aux driver - basic driver, for sending messages over
> different
> > >> > mboxes, handling ranges of doorbells
> > >> >
> > >> > Is it here anyone who is working on any improvement, or
> anyone who
> > >> > knows the development plans for RapidIO subsystem?
> > >> >
> > >>
> > >> AFAIK, there is no one currently working on these features for
> Linux.
> > >> It will be good if you can add these useful features.
> > > Yes it looks like that, currently we are analyzing current rapidIO
> > > system, and how we can add these features.
> > >
> > >>
> > >> > [2] - I have a following problem with a current implementation
> of
> > >> > loading drivers. The driver probe-function call is based on
> comparison
> > >> > of VendorID (VID) and DeviceID (DID) only. Thus if I have 3
> devices with
> > >> > same DID and VID connected to the same network (bus), the
> driver is
> > >> > loaded 3times, instead only once for the actual device Master
> port.
> > >>
> > >> This should be the correct way as you actually have 3 instances
> of the device.
> > >>
> > >> >
> > >> > Rionet driver solved this by enabling to call initialization
> function
> > >> > just once, and it expect that this is the Master port.
> > >>
> > >> Rionet is kind of special. It's not working like a simple device
> > >> driver, but more like a customized protocol stack to support
> multiple
> > >> ethernet over rio links.
> > >>
> > >> >
> > >> > Is it this correct behavior ? It looks to me that RapidIO is
> handled
> > >> > like a local bus (like PCI)
> > >>
> > >> This is correct behavior. All of them are using Linux
> device/driver
> > >> infrastructure, but rionet is a special device.
> > >
> > > But I do not have a 3 devices on one silicon. I am talking about 3
> > > devices (3 x EP8548 boards + IDT switch) connected over rapidIO
> through
> > > the switch. And in this case I'd like to have only one driver
> siting on
> > > the top of Linux RapidIO subsystem. I don't see the advantage of
> loading
> >
> > You are having one driver, but it probes 3 times for each device
> using
> > the driver.
> >
> > > a driver locally for remote device. Am I missing something ?
> >
> > If you want to interact with the remote device, you need the driver
> to
> > do the work locally.
>
> We are going to use a RapidIO as a bigger network of active devices,
> and
> each will have each own driver (sitting on its own), and all the
> settings will be done over maintenance packets.
>
> May be it will be solved by the fact, that we are going to use a
> staticIDs, so there will be no discovery as it is now. And thus there
> will be only one device visible in the internal structures of the
> subsystem, and thus only one drive will be loaded.
>
> >
> > >
> > > And one more think, I am getting so much Bus errors OOPSes.
> Whenever
> > > there is a problem with a comunication over Rio I get such a
> kernel OPS.
> > > I had to add some delays into some function to be able to finish
> the
> > > enum+discovery process. Did you have some experience with some
> bigger
> > > rio network running under linux ?
> >
> > It looks like an known issue for switched rio network, but I don't
> > have the correct equipment to reproduce the problem here. Could you
> > do some basic debugging and share your findings? Thanks.
>
> I tried to acquired some info about the problem, I found that the OOPS
> always occur when there is no respond from the device or the respond
> is
> too slow. I always got that error during function call
> rio_get_host_deviceid_lock when it tries to access a remote device or
> switch. This function is the first call of the
> rio_mport_read_config_32
> so is also first try of remote access to any device.
>
> It is a timing issue, and after placing a printk into the
> rio_get_host_deviceid_lock the OOPSing almost disappeared.
>
> Jan
>
> >
> > - Leo
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
>
>
^ permalink raw reply
* Re: [PATCH] sata_fsl: Add asynchronous notification support
From: Kumar Gala @ 2009-06-29 14:52 UTC (permalink / raw)
To: ashish kalra; +Cc: linux-ide, linuxppc-dev
In-Reply-To: <Pine.WNT.4.64.0906291846100.2640@B00888-02.fsl.freescale.net>
On Jun 29, 2009, at 8:22 AM, ashish kalra wrote:
> Signed-off-by: Ashish Kalra <Ashish.Kalra@freescale.com>
> ---
> drivers/ata/sata_fsl.c | 10 ++++++++--
> 1 files changed, 8 insertions(+), 2 deletions(-)
Can you provide more detail in the commit message about why this patch
is needed or what 'asynchronous notification' gets us.
- k
>
>
> diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
> index 94eaa43..5751145 100644
> --- a/drivers/ata/sata_fsl.c
> +++ b/drivers/ata/sata_fsl.c
> @@ -34,7 +34,7 @@ enum {
>
> SATA_FSL_HOST_FLAGS = (ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
> ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
> - ATA_FLAG_PMP | ATA_FLAG_NCQ),
> + ATA_FLAG_PMP | ATA_FLAG_NCQ | ATA_FLAG_AN),
>
> SATA_FSL_MAX_CMDS = SATA_FSL_QUEUE_DEPTH,
> SATA_FSL_CMD_HDR_SIZE = 16, /* 4 DWORDS */
> @@ -132,7 +132,7 @@ enum {
> INT_ON_SINGL_DEVICE_ERR = (1 << 1),
> INT_ON_CMD_COMPLETE = 1,
>
> - INT_ON_ERROR = INT_ON_FATAL_ERR |
> + INT_ON_ERROR = INT_ON_FATAL_ERR | INT_ON_SNOTIFY_UPDATE |
> INT_ON_PHYRDY_CHG | INT_ON_SINGL_DEVICE_ERR,
>
> /*
> @@ -154,6 +154,7 @@ enum {
>
> DEFAULT_PORT_IRQ_ENABLE_MASK = IE_ON_FATAL_ERR | IE_ON_PHYRDY_CHG |
> IE_ON_SIGNATURE_UPDATE |
> + IE_ON_SNOTIFY_UPDATE |
> IE_ON_SINGL_DEVICE_ERR | IE_ON_CMD_COMPLETE,
>
> EXT_INDIRECT_SEG_PRD_FLAG = (1 << 31),
> @@ -1003,6 +1004,11 @@ static void sata_fsl_error_intr(struct
> ata_port *ap)
> freeze = 1;
> }
>
> + /* Handle SDB FIS receive & notify update */
> + if (hstatus & INT_ON_SNOTIFY_UPDATE) {
> + sata_async_notification(ap);
> + }
> +
> /* Handle PHYRDY change notification */
> if (hstatus & INT_ON_PHYRDY_CHG) {
> DPRINTK("SATA FSL: PHYRDY change indication\n");
> --
> 1.6.0
>
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
^ permalink raw reply
* Re: [PATCH] powerpc/mpic: fix WARN_ON from alloc_bootmem
From: Kumar Gala @ 2009-06-29 14:51 UTC (permalink / raw)
To: Jeremy Kerr; +Cc: linuxppc-dev, cbe-oss-dev
In-Reply-To: <1246257419.938592.49700983608.1.gpush@pingu>
On Jun 29, 2009, at 1:36 AM, Jeremy Kerr wrote:
> Current powerpc/merge on a QS21 reports an oops on boot:
>
> ------------[ cut here ]------------
> Badness at mm/bootmem.c:535
> [snip]
> Call Trace:
> [c000000000763a80] [c0000000005dd068] .alloc_arch_preferred_bootmem
> +0x28/0x9c (unreliable)
> [c000000000763b10] [c0000000005ddaac] .___alloc_bootmem_nopanic+0x5c/
> 0x130
> [c000000000763bc0] [c0000000005ddbd8] .___alloc_bootmem+0x28/0x68
> [c000000000763c50] [c0000000005dddf0] .__alloc_bootmem+0x1c/0x30
> [c000000000763cd0] [c0000000005d1080] .mpic_alloc+0x20c/0x9f8
> [c000000000763dc0] [c0000000005d3348] .cell_init_irq+0x70/0x114
> [c000000000763e60] [c0000000005c41f8] .init_IRQ+0x44/0x64
> [c000000000763ee0] [c0000000005c0914] .start_kernel+0x238/0x440
> [c000000000763f90] [c000000000007368] .start_here_common+0x1c/0x34
>
> Looks like we're using alloc_bootmem after the slab is up and running,
> in mpic_init.
>
> This change uses a kzalloc instead - in fact, we've already done a
> kzalloc() earlier in this function.
>
> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
>
> ---
> arch/powerpc/sysdev/mpic.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
> index d46de1f..a5980e6 100644
> --- a/arch/powerpc/sysdev/mpic.c
> +++ b/arch/powerpc/sysdev/mpic.c
> @@ -1109,9 +1109,8 @@ struct mpic * __init mpic_alloc(struct
> device_node *node,
> psize /= 4;
> bits = intvec_top + 1;
> mapsize = BITS_TO_LONGS(bits) * sizeof(unsigned long);
> - mpic->protected = alloc_bootmem(mapsize);
> + mpic->protected = kzalloc(mapsize, GFP_KERNEL);
> BUG_ON(mpic->protected == NULL);
> - memset(mpic->protected, 0, mapsize);
> for (i = 0; i < psize; i++) {
> if (psrc[i] > intvec_top)
> continue;
I posted a similar patch that is in linus's tree:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=85355bb272db31a3f2dd99d547eef794805e1319
- k
^ permalink raw reply
* Re: How to implement kexec on e500 ?
From: Kumar Gala @ 2009-06-29 14:50 UTC (permalink / raw)
To: wilbur.chan; +Cc: linuxppc-dev
In-Reply-To: <e997b7420906290647g7717e55bp210f0f57d8c531c0@mail.gmail.com>
On Jun 29, 2009, at 8:47 AM, wilbur.chan wrote:
> kernel 2.6.21.7
>
> As we know , kexec stores data for new kernel image , in the form
> of a page list.
>
> And kexec uses the physical address of the another page for a
> "next-page" pointer.
>
> However, PowerPC e500 does not allow users to turn off the MMU, so we
> can not used physical address directly in our code.
>
>
> Someone suggested that changing relocate_kernel.S to add a TLB 1-to-1
> mapping of DRAM .
>
> What does "mapping" mean ?
>
> Any suggestion to implement kexec on e500 ?
Wilbur, kexec has been implemented on e500. There are some patches on
the list for this and they just need to be respun and reviewed again.
- k
^ permalink raw reply
* How to implement kexec on e500 ?
From: wilbur.chan @ 2009-06-29 13:47 UTC (permalink / raw)
To: linuxppc-dev
kernel 2.6.21.7
As we know , kexec stores data for new kernel image , in the form
of a page list.
And kexec uses the physical address of the another page for a
"next-page" pointer.
However, PowerPC e500 does not allow users to turn off the MMU, so we
can not used physical address directly in our code.
Someone suggested that changing relocate_kernel.S to add a TLB 1-to-1
mapping of DRAM .
What does "mapping" mean ?
Any suggestion to implement kexec on e500 ?
Cheers,
wilbur
^ permalink raw reply
* [RESEND][PATCH] sata_fsl: hard and soft reset split
From: ashish kalra @ 2009-06-29 13:26 UTC (permalink / raw)
To: linux-ide; +Cc: linuxppc-dev
Split sata_fsl_softreset() into hard and soft resets to make
error-handling more efficient & device and PMP detection more reliable.
Also includes fix for PMP support, driver tested with Sil3726, Sil4726 &
Exar PMP controllers.
Signed-off-by: Ashish Kalra <Ashish.Kalra@freescale.com>
---
drivers/ata/sata_fsl.c | 85 +++++++++++++++++++++++++-----------------------
1 files changed, 44 insertions(+), 41 deletions(-)
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index 5751145..c8e2fad 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -708,34 +708,17 @@ static unsigned int sata_fsl_dev_classify(struct ata_port *ap)
return ata_dev_classify(&tf);
}
-static int sata_fsl_prereset(struct ata_link *link, unsigned long deadline)
-{
- /* FIXME: Never skip softreset, sata_fsl_softreset() is
- * combination of soft and hard resets. sata_fsl_softreset()
- * needs to be splitted into soft and hard resets.
- */
- return 0;
-}
-
-static int sata_fsl_softreset(struct ata_link *link, unsigned int *class,
+static int sata_fsl_hardreset(struct ata_link *link, unsigned int *class,
unsigned long deadline)
{
struct ata_port *ap = link->ap;
- struct sata_fsl_port_priv *pp = ap->private_data;
struct sata_fsl_host_priv *host_priv = ap->host->private_data;
void __iomem *hcr_base = host_priv->hcr_base;
- int pmp = sata_srst_pmp(link);
u32 temp;
- struct ata_taskfile tf;
- u8 *cfis;
- u32 Serror;
int i = 0;
unsigned long start_jiffies;
- DPRINTK("in xx_softreset\n");
-
- if (pmp != SATA_PMP_CTRL_PORT)
- goto issue_srst;
+ DPRINTK("in xx_hardreset\n");
try_offline_again:
/*
@@ -750,7 +733,7 @@ try_offline_again:
if (temp & ONLINE) {
ata_port_printk(ap, KERN_ERR,
- "Softreset failed, not off-lined %d\n", i);
+ "Hardreset failed, not off-lined %d\n", i);
/*
* Try to offline controller atleast twice
@@ -762,7 +745,7 @@ try_offline_again:
goto try_offline_again;
}
- DPRINTK("softreset, controller off-lined\n");
+ DPRINTK("hardreset, controller off-lined\n");
VPRINTK("HStatus = 0x%x\n", ioread32(hcr_base + HSTATUS));
VPRINTK("HControl = 0x%x\n", ioread32(hcr_base + HCONTROL));
@@ -787,11 +770,11 @@ try_offline_again:
if (!(temp & ONLINE)) {
ata_port_printk(ap, KERN_ERR,
- "Softreset failed, not on-lined\n");
+ "Hardreset failed, not on-lined\n");
goto err;
}
- DPRINTK("softreset, controller off-lined & on-lined\n");
+ DPRINTK("hardreset, controller off-lined & on-lined\n");
VPRINTK("HStatus = 0x%x\n", ioread32(hcr_base + HSTATUS));
VPRINTK("HControl = 0x%x\n", ioread32(hcr_base + HCONTROL));
@@ -807,7 +790,7 @@ try_offline_again:
"No Device OR PHYRDY change,Hstatus = 0x%x\n",
ioread32(hcr_base + HSTATUS));
*class = ATA_DEV_NONE;
- goto out;
+ return 0;
}
/*
@@ -820,11 +803,44 @@ try_offline_again:
if ((temp & 0xFF) != 0x18) {
ata_port_printk(ap, KERN_WARNING, "No Signature Update\n");
*class = ATA_DEV_NONE;
- goto out;
+ goto do_followup_srst;
} else {
ata_port_printk(ap, KERN_INFO,
"Signature Update detected @ %d msecs\n",
jiffies_to_msecs(jiffies - start_jiffies));
+ *class = sata_fsl_dev_classify(ap);
+ return 0;
+ }
+
+do_followup_srst:
+ /*
+ * request libATA to perform follow-up softreset
+ */
+ return -EAGAIN;
+
+err:
+ return -EIO;
+}
+
+static int sata_fsl_softreset(struct ata_link *link, unsigned int *class,
+ unsigned long deadline)
+{
+ struct ata_port *ap = link->ap;
+ struct sata_fsl_port_priv *pp = ap->private_data;
+ struct sata_fsl_host_priv *host_priv = ap->host->private_data;
+ void __iomem *hcr_base = host_priv->hcr_base;
+ int pmp = sata_srst_pmp(link);
+ u32 temp;
+ struct ata_taskfile tf;
+ u8 *cfis;
+ u32 Serror;
+
+ DPRINTK("in xx_softreset\n");
+
+ if (ata_link_offline(link)) {
+ DPRINTK("PHY reports no device\n");
+ *class = ATA_DEV_NONE;
+ return 0;
}
/*
@@ -835,7 +851,6 @@ try_offline_again:
* reached here, we can send a command to the target device
*/
-issue_srst:
DPRINTK("Sending SRST/device reset\n");
ata_tf_init(link->device, &tf);
@@ -861,6 +876,8 @@ issue_srst:
ioread32(CA + hcr_base), ioread32(CC + hcr_base));
iowrite32(0xFFFF, CC + hcr_base);
+ if (pmp != SATA_PMP_CTRL_PORT)
+ iowrite32(pmp, CQPMP + hcr_base);
iowrite32(1, CQ + hcr_base);
temp = ata_wait_register(CQ + hcr_base, 0x1, 0x1, 1, 5000);
@@ -927,7 +944,6 @@ issue_srst:
VPRINTK("cereg = 0x%x\n", ioread32(hcr_base + CE));
}
-out:
return 0;
err:
@@ -988,19 +1004,6 @@ static void sata_fsl_error_intr(struct ata_port *ap)
if (hstatus & FATAL_ERROR_DECODE) {
ehi->err_mask |= AC_ERR_ATA_BUS;
ehi->action |= ATA_EH_SOFTRESET;
-
- /*
- * Ignore serror in case of fatal errors as we always want
- * to do a soft-reset of the FSL SATA controller. Analyzing
- * serror may cause libata to schedule a hard-reset action,
- * and hard-reset currently does not do controller
- * offline/online, causing command timeouts and leads to an
- * un-recoverable state, hence make libATA ignore
- * autopsy in case of fatal errors.
- */
-
- ehi->flags |= ATA_EHI_NO_AUTOPSY;
-
freeze = 1;
}
@@ -1272,8 +1275,8 @@ static struct ata_port_operations sata_fsl_ops = {
.freeze = sata_fsl_freeze,
.thaw = sata_fsl_thaw,
- .prereset = sata_fsl_prereset,
.softreset = sata_fsl_softreset,
+ .hardreset = sata_fsl_hardreset,
.pmp_softreset = sata_fsl_softreset,
.error_handler = sata_fsl_error_handler,
.post_internal_cmd = sata_fsl_post_internal_cmd,
--
1.6.0
^ permalink raw reply related
* [PATCH] sata_fsl: Add asynchronous notification support
From: ashish kalra @ 2009-06-29 13:22 UTC (permalink / raw)
To: linux-ide; +Cc: linuxppc-dev
Signed-off-by: Ashish Kalra <Ashish.Kalra@freescale.com>
---
drivers/ata/sata_fsl.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index 94eaa43..5751145 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -34,7 +34,7 @@ enum {
SATA_FSL_HOST_FLAGS = (ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA |
- ATA_FLAG_PMP | ATA_FLAG_NCQ),
+ ATA_FLAG_PMP | ATA_FLAG_NCQ | ATA_FLAG_AN),
SATA_FSL_MAX_CMDS = SATA_FSL_QUEUE_DEPTH,
SATA_FSL_CMD_HDR_SIZE = 16, /* 4 DWORDS */
@@ -132,7 +132,7 @@ enum {
INT_ON_SINGL_DEVICE_ERR = (1 << 1),
INT_ON_CMD_COMPLETE = 1,
- INT_ON_ERROR = INT_ON_FATAL_ERR |
+ INT_ON_ERROR = INT_ON_FATAL_ERR | INT_ON_SNOTIFY_UPDATE |
INT_ON_PHYRDY_CHG | INT_ON_SINGL_DEVICE_ERR,
/*
@@ -154,6 +154,7 @@ enum {
DEFAULT_PORT_IRQ_ENABLE_MASK = IE_ON_FATAL_ERR | IE_ON_PHYRDY_CHG |
IE_ON_SIGNATURE_UPDATE |
+ IE_ON_SNOTIFY_UPDATE |
IE_ON_SINGL_DEVICE_ERR | IE_ON_CMD_COMPLETE,
EXT_INDIRECT_SEG_PRD_FLAG = (1 << 31),
@@ -1003,6 +1004,11 @@ static void sata_fsl_error_intr(struct ata_port *ap)
freeze = 1;
}
+ /* Handle SDB FIS receive & notify update */
+ if (hstatus & INT_ON_SNOTIFY_UPDATE) {
+ sata_async_notification(ap);
+ }
+
/* Handle PHYRDY change notification */
if (hstatus & INT_ON_PHYRDY_CHG) {
DPRINTK("SATA FSL: PHYRDY change indication\n");
--
1.6.0
^ permalink raw reply related
* [PATCH] sata_fsl: hard and soft reset split
From: Kalra Ashish-B00888 @ 2009-06-29 12:47 UTC (permalink / raw)
To: linux-ide; +Cc: linuxppc-dev
Split sata_fsl_softreset() into hard and soft resets to make
error-handling more efficient & device and PMP detection more reliable.
Also includes fix for PMP support, driver tested with Sil3726, Sil4726 &
Exar PMP controllers.
Signed-off-by: Ashish Kalra <Ashish.Kalra@freescale.com>
---
drivers/ata/sata_fsl.c | 85
+++++++++++++++++++++++++-----------------------
1 files changed, 44 insertions(+), 41 deletions(-)
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index 5751145..c8e2fad 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -708,34 +708,17 @@ static unsigned int sata_fsl_dev_classify(struct
ata_port *ap)
return ata_dev_classify(&tf);
}
=20
-static int sata_fsl_prereset(struct ata_link *link, unsigned long
deadline)
-{
- /* FIXME: Never skip softreset, sata_fsl_softreset() is
- * combination of soft and hard resets. sata_fsl_softreset()
- * needs to be splitted into soft and hard resets.
- */
- return 0;
-}
-
-static int sata_fsl_softreset(struct ata_link *link, unsigned int
*class,
+static int sata_fsl_hardreset(struct ata_link *link, unsigned int
*class,
unsigned long deadline)
{
struct ata_port *ap =3D link->ap;
- struct sata_fsl_port_priv *pp =3D ap->private_data;
struct sata_fsl_host_priv *host_priv =3D ap->host->private_data;
void __iomem *hcr_base =3D host_priv->hcr_base;
- int pmp =3D sata_srst_pmp(link);
u32 temp;
- struct ata_taskfile tf;
- u8 *cfis;
- u32 Serror;
int i =3D 0;
unsigned long start_jiffies;
=20
- DPRINTK("in xx_softreset\n");
-
- if (pmp !=3D SATA_PMP_CTRL_PORT)
- goto issue_srst;
+ DPRINTK("in xx_hardreset\n");
=20
try_offline_again:
/*
@@ -750,7 +733,7 @@ try_offline_again:
=20
if (temp & ONLINE) {
ata_port_printk(ap, KERN_ERR,
- "Softreset failed, not off-lined %d\n",
i);
+ "Hardreset failed, not off-lined %d\n",
i);
=20
/*
* Try to offline controller atleast twice
@@ -762,7 +745,7 @@ try_offline_again:
goto try_offline_again;
}
=20
- DPRINTK("softreset, controller off-lined\n");
+ DPRINTK("hardreset, controller off-lined\n");
VPRINTK("HStatus =3D 0x%x\n", ioread32(hcr_base + HSTATUS));
VPRINTK("HControl =3D 0x%x\n", ioread32(hcr_base + HCONTROL));
=20
@@ -787,11 +770,11 @@ try_offline_again:
=20
if (!(temp & ONLINE)) {
ata_port_printk(ap, KERN_ERR,
- "Softreset failed, not on-lined\n");
+ "Hardreset failed, not on-lined\n");
goto err;
}
=20
- DPRINTK("softreset, controller off-lined & on-lined\n");
+ DPRINTK("hardreset, controller off-lined & on-lined\n");
VPRINTK("HStatus =3D 0x%x\n", ioread32(hcr_base + HSTATUS));
VPRINTK("HControl =3D 0x%x\n", ioread32(hcr_base + HCONTROL));
=20
@@ -807,7 +790,7 @@ try_offline_again:
"No Device OR PHYRDY change,Hstatus =3D
0x%x\n",
ioread32(hcr_base + HSTATUS));
*class =3D ATA_DEV_NONE;
- goto out;
+ return 0;
}
=20
/*
@@ -820,11 +803,44 @@ try_offline_again:
if ((temp & 0xFF) !=3D 0x18) {
ata_port_printk(ap, KERN_WARNING, "No Signature
Update\n");
*class =3D ATA_DEV_NONE;
- goto out;
+ goto do_followup_srst;
} else {
ata_port_printk(ap, KERN_INFO,
"Signature Update detected @ %d
msecs\n",
jiffies_to_msecs(jiffies -
start_jiffies));
+ *class =3D sata_fsl_dev_classify(ap);
+ return 0;
+ }
+
+do_followup_srst:
+ /*
+ * request libATA to perform follow-up softreset
+ */
+ return -EAGAIN;
+
+err:
+ return -EIO;
+}
+
+static int sata_fsl_softreset(struct ata_link *link, unsigned int
*class,
+ unsigned long deadline)
+{
+ struct ata_port *ap =3D link->ap;
+ struct sata_fsl_port_priv *pp =3D ap->private_data;
+ struct sata_fsl_host_priv *host_priv =3D ap->host->private_data;
+ void __iomem *hcr_base =3D host_priv->hcr_base;
+ int pmp =3D sata_srst_pmp(link);
+ u32 temp;
+ struct ata_taskfile tf;
+ u8 *cfis;
+ u32 Serror;
+
+ DPRINTK("in xx_softreset\n");
+
+ if (ata_link_offline(link)) {
+ DPRINTK("PHY reports no device\n");
+ *class =3D ATA_DEV_NONE;
+ return 0;
}
=20
/*
@@ -835,7 +851,6 @@ try_offline_again:
* reached here, we can send a command to the target device
*/
=20
-issue_srst:
DPRINTK("Sending SRST/device reset\n");
=20
ata_tf_init(link->device, &tf);
@@ -861,6 +876,8 @@ issue_srst:
ioread32(CA + hcr_base), ioread32(CC + hcr_base));
=20
iowrite32(0xFFFF, CC + hcr_base);
+ if (pmp !=3D SATA_PMP_CTRL_PORT)
+ iowrite32(pmp, CQPMP + hcr_base);
iowrite32(1, CQ + hcr_base);
=20
temp =3D ata_wait_register(CQ + hcr_base, 0x1, 0x1, 1, 5000);
@@ -927,7 +944,6 @@ issue_srst:
VPRINTK("cereg =3D 0x%x\n", ioread32(hcr_base + CE));
}
=20
-out:
return 0;
=20
err:
@@ -988,19 +1004,6 @@ static void sata_fsl_error_intr(struct ata_port
*ap)
if (hstatus & FATAL_ERROR_DECODE) {
ehi->err_mask |=3D AC_ERR_ATA_BUS;
ehi->action |=3D ATA_EH_SOFTRESET;
-
- /*
- * Ignore serror in case of fatal errors as we always
want
- * to do a soft-reset of the FSL SATA controller.
Analyzing
- * serror may cause libata to schedule a hard-reset
action,
- * and hard-reset currently does not do controller
- * offline/online, causing command timeouts and leads to
an
- * un-recoverable state, hence make libATA ignore
- * autopsy in case of fatal errors.
- */
-
- ehi->flags |=3D ATA_EHI_NO_AUTOPSY;
-
freeze =3D 1;
}
=20
@@ -1272,8 +1275,8 @@ static struct ata_port_operations sata_fsl_ops =3D =
{
=20
.freeze =3D sata_fsl_freeze,
.thaw =3D sata_fsl_thaw,
- .prereset =3D sata_fsl_prereset,
.softreset =3D sata_fsl_softreset,
+ .hardreset =3D sata_fsl_hardreset,
.pmp_softreset =3D sata_fsl_softreset,
.error_handler =3D sata_fsl_error_handler,
.post_internal_cmd =3D sata_fsl_post_internal_cmd,
--=20
1.6.0
^ permalink raw reply related
* Re: [PATCH 1/2] alsa/soc: Fix typo in MPC5200 PSC AC97 driver Kconfig
From: Mark Brown @ 2009-06-29 9:35 UTC (permalink / raw)
To: Grant Likely; +Cc: linuxppc-dev, alsa-devel, timur
In-Reply-To: <20090628074109.26905.9927.stgit@localhost.localdomain>
On Sun, Jun 28, 2009 at 01:41:52AM -0600, Grant Likely wrote:
> From: Grant Likely <grant.likely@secretlab.ca>
>
> ALSA SoC drivers should be specify SND_SOC_AC97_BUS instead, not AC97_BUS.
Applied both.
^ permalink raw reply
* AW: Direct MII connection between MPC8313 and VIRTEX FPGA
From: Frank Prepelica @ 2009-06-29 8:23 UTC (permalink / raw)
To: Grant Likely; +Cc: linuxppc-dev
Hi Grant
Thanks for your response!
I have searched for "current-speed" in drivers/net/fec_mpc52xx.c but I =
cannot find anything. However we are using the gianfar.c Ethernet =
driver.
Do you know whether this driver supports fixed MII links without PHY?
I've got another question regarding MII connection between and MPC and a =
Virtex FPGA. Whats about the PHY address which has to be set in the DTB =
file? Do I have to modify the DTB at all?
Thank you!
Best regards
Frank
=20
=20
=20
=09
=20
=20
Frank Prepelica
Software Design Engineer
Ubidyne GmbH
Lise-Meitner-Str.-14
89081 Ulm - Germany
Phone: +49 731 88 00 71 58
Fax: +49 731 88 00 71 99
Email: frank.prepelica@ubidyne.com
Homepage: www.ubidyne.com
=20
Registered office: Ulm
District court of Ulm: HRB 5295
Managing Directors:
Dipl. Ing. Ken Hawk
Dipl. Ing. Beat M=FCller
Dipl. Ing. Mike Levis
> -----Urspr=FCngliche Nachricht-----
> Von: Grant Likely [mailto:grant.likely@secretlab.ca]
> Gesendet: Donnerstag, 25. Juni 2009 22:06
> An: Frank Prepelica
> Cc: linuxppc-dev@ozlabs.org
> Betreff: Re: Direct MII connection between MPC8313 and VIRTEX FPGA
>=20
> On Thu, Jun 25, 2009 at 9:11 AM, Frank
> Prepelica<Frank.Prepelica@ubidyne.com> wrote:
> > Hi all,
> >
> > we removed the ethernet PHYs (MARVELL) from our customized board =
(based
> on MPC8313ERDB) and
> > connected the CPU Ethernet lines directly to a FPGA which is now
> emulating the PHY. But the ifconfig
> > command cannot find that eth device anymore. Does the emulated PHY =
needs
> to provide MDIO
> > information that the ETH device can be found again?
>=20
> No, you just need to make sure that the Ethernet driver is able to
> support fixed speed MII links without a PHY. It's trivial to do, but
> not all drivers support it. Search for "current-speed" in
> drivers/net/fec_mpc52xx.c for an example.
>=20
> g.
>=20
> --
> Grant Likely, B.Sc., P.Eng.
> Secret Lab Technologies Ltd.
^ permalink raw reply
* Re: AW: PowerPC PCI DMA issues (prefetch/coherency?)
From: Chris Pringle @ 2009-06-29 8:11 UTC (permalink / raw)
To: Sergej.Stepanov; +Cc: scottwood, linuxppc-dev, linux-kernel
In-Reply-To: <4206182445660643B9AEB8D4E55BBD0A08533B67B5@HERMES2>
[-- Attachment #1: Type: text/plain, Size: 1463 bytes --]
Hi Sergej,
I've attached the patch used to fix this issue. Both the patch to
pgtable32.h and head_32.S are required in order to make it work. The
change to pgtable32.h ensures that all pages are marked cache coherent
(results in setting the M bit). The change to head_32.S ensures that the
M bit is not unconditionally masked out - it should only be masked out
if CPU_FTR_NEED_COHERENT is not set.
Hope this helps.
Cheers,
Chris
Sergej.Stepanov@ids.de wrote:
>> The other part of the fix is in asm-powerpc/pgtable32.h. _PAGE_BASE
>> needs _PAGE_COHERENT in order to work correctly, and in fact there is
>> now a comment in there to that affect in 2.6.29. Backporting that change
>> has made it work on 2.6.26. Both this patch, and the fix to head_32.S
>> are needed for it to work correctly on older kernels.
>>
>> Chris
>>
>
> Hello Chris,
>
> sorry for dummy, but if it possible, could you, please, send a corresponding summary patch of backporting you've done for older kernels?
> or just summary of that changes once again?
>
> Many thanks
>
> Sergej.
--
______________________________
Chris Pringle
Software Engineer
Miranda Technologies Ltd.
Hithercroft Road
Wallingford
Oxfordshire OX10 9DG
UK
Tel. +44 1491 820206
Fax. +44 1491 820001
www.miranda.com
____________________________
Miranda Technologies Limited
Registered in England and Wales CN 02017053
Registered Office: James House, Mere Park, Dedmere Road, Marlow, Bucks, SL7 1FJ
[-- Attachment #2: dma-cache-coherency-fix.patch --]
[-- Type: text/x-patch, Size: 2590 bytes --]
diff -r -U3 ./arch/powerpc/kernel/head_32.S ../../kernel.WORKS/linux-2.6.26/arch/powerpc/kernel/head_32.S
--- ./arch/powerpc/kernel/head_32.S 2008-07-13 22:51:29.000000000 +0100
+++ ../../kernel.WORKS/linux-2.6.26/arch/powerpc/kernel/head_32.S 2009-06-17 18:18:04.000000000 +0100
@@ -501,8 +501,11 @@
and r1,r1,r2 /* writable if _RW and _DIRTY */
rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */
rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */
- ori r1,r1,0xe14 /* clear out reserved bits and M */
+ ori r1,r1,0xe04 /* clear out reserved bits */
andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */
+BEGIN_FTR_SECTION
+ rlwinm r1,r1,0,~_PAGE_COHERENT /* clear M (coherence not required) */
+END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT)
mtspr SPRN_RPA,r1
mfspr r3,SPRN_IMISS
tlbli r3
@@ -575,8 +578,12 @@
and r1,r1,r2 /* writable if _RW and _DIRTY */
rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */
rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */
- ori r1,r1,0xe14 /* clear out reserved bits and M */
+ ori r1,r1,0xe04 /* clear out reserved bits */
andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */
+BEGIN_FTR_SECTION
+ rlwinm r1,r1,0,~_PAGE_COHERENT /* clear M (coherence not required) */
+END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT)
+ /*ori r1,r1,0x10*/
mtspr SPRN_RPA,r1
mfspr r3,SPRN_DMISS
tlbld r3
@@ -643,8 +650,12 @@
stw r3,0(r2) /* update PTE (accessed/dirty bits) */
/* Convert linux-style PTE to low word of PPC-style PTE */
rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */
- li r1,0xe15 /* clear out reserved bits and M */
+ li r1,0xe05 /* clear out reserved bits & PP lsb */
andc r1,r3,r1 /* PP = user? 2: 0 */
+BEGIN_FTR_SECTION
+ rlwinm r1,r1,0,~_PAGE_COHERENT /* clear M (coherence not required) */
+END_FTR_SECTION_IFCLR(CPU_FTR_NEED_COHERENT)
+ /*ori r1,r1,0x10*/
mtspr SPRN_RPA,r1
mfspr r3,SPRN_DMISS
tlbld r3
diff -r -U3 ./include/asm-powerpc/pgtable-ppc32.h ../../kernel.WORKS/linux-2.6.26/include/asm-powerpc/pgtable-ppc32.h
--- ./include/asm-powerpc/pgtable-ppc32.h 2008-07-13 22:51:29.000000000 +0100
+++ ../../kernel.WORKS/linux-2.6.26/include/asm-powerpc/pgtable-ppc32.h 2009-06-18 12:11:57.000000000 +0100
@@ -408,7 +408,7 @@
#ifdef CONFIG_44x
#define _PAGE_BASE (_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_GUARDED)
#else
-#define _PAGE_BASE (_PAGE_PRESENT | _PAGE_ACCESSED)
+#define _PAGE_BASE (_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_COHERENT)
#endif
#define _PAGE_WRENABLE (_PAGE_RW | _PAGE_DIRTY | _PAGE_HWWRITE)
#define _PAGE_KERNEL (_PAGE_BASE | _PAGE_SHARED | _PAGE_WRENABLE)
^ permalink raw reply
* [PATCH] powerpc/mpic: fix WARN_ON from alloc_bootmem
From: Jeremy Kerr @ 2009-06-29 6:36 UTC (permalink / raw)
To: linuxppc-dev; +Cc: cbe-oss-dev
Current powerpc/merge on a QS21 reports an oops on boot:
------------[ cut here ]------------
Badness at mm/bootmem.c:535
[snip]
Call Trace:
[c000000000763a80] [c0000000005dd068] .alloc_arch_preferred_bootmem+0x28/0x9c (unreliable)
[c000000000763b10] [c0000000005ddaac] .___alloc_bootmem_nopanic+0x5c/0x130
[c000000000763bc0] [c0000000005ddbd8] .___alloc_bootmem+0x28/0x68
[c000000000763c50] [c0000000005dddf0] .__alloc_bootmem+0x1c/0x30
[c000000000763cd0] [c0000000005d1080] .mpic_alloc+0x20c/0x9f8
[c000000000763dc0] [c0000000005d3348] .cell_init_irq+0x70/0x114
[c000000000763e60] [c0000000005c41f8] .init_IRQ+0x44/0x64
[c000000000763ee0] [c0000000005c0914] .start_kernel+0x238/0x440
[c000000000763f90] [c000000000007368] .start_here_common+0x1c/0x34
Looks like we're using alloc_bootmem after the slab is up and running,
in mpic_init.
This change uses a kzalloc instead - in fact, we've already done a
kzalloc() earlier in this function.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
---
arch/powerpc/sysdev/mpic.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index d46de1f..a5980e6 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1109,9 +1109,8 @@ struct mpic * __init mpic_alloc(struct device_node *node,
psize /= 4;
bits = intvec_top + 1;
mapsize = BITS_TO_LONGS(bits) * sizeof(unsigned long);
- mpic->protected = alloc_bootmem(mapsize);
+ mpic->protected = kzalloc(mapsize, GFP_KERNEL);
BUG_ON(mpic->protected == NULL);
- memset(mpic->protected, 0, mapsize);
for (i = 0; i < psize; i++) {
if (psrc[i] > intvec_top)
continue;
^ permalink raw reply related
* Re: [PATCH] powerpc: Have Warp take advantage of GPIO LEDs default-state = keep
From: Josh Boyer @ 2009-06-29 0:14 UTC (permalink / raw)
To: Sean MacLennan; +Cc: linuxppc-dev
In-Reply-To: <20090628172251.7bc0c8e0@lappy.seanm.ca>
On Sun, Jun 28, 2009 at 05:22:51PM -0400, Sean MacLennan wrote:
>Yes, it's me again. The GPIO LEDs default-state = keep patch was
>accepted into the kernel. This patch takes advantage of that patch.
I haven't forgotten about your patches. Will try and get them pulled together
and send them on to Ben tomorrow.
Thanks,
josh
^ permalink raw reply
* [PATCH] powerpc: Have Warp take advantage of GPIO LEDs default-state = keep
From: Sean MacLennan @ 2009-06-28 21:22 UTC (permalink / raw)
To: linuxppc-dev, Josh Boyer
Yes, it's me again. The GPIO LEDs default-state = keep patch was
accepted into the kernel. This patch takes advantage of that patch.
It would be nice if the patch made it into 2.6.31 since this was my last
outstanding patch. I really didn't think the "keep" patch would be
accepted in this release.
But at minimum, it would be nice if the DTS change went in. I actually
held back on a change to warp.c that made the LEDS work correctly if
AD7414 was not configured. The "keep" makes that change unnecessary...
but you need the dts fix.
The DTS fix is just two lines and is fully backwards compatible. The
warp.c patch just removes the hardcoding of the two LEDs.
Now I have to get used to the LED not glitching on startup ;)
Cheers,
Sean
The GPIO LEDS driver now has a default-state of keep. Since u-boot sets the initial
LED state on the Warp, take advantage of this new state.
Signed-off-by: Sean MacLennan <smaclennan@pikatech.com>
---
diff --git a/arch/powerpc/boot/dts/warp.dts b/arch/powerpc/boot/dts/warp.dts
index 01bfb56..31605ee 100644
--- a/arch/powerpc/boot/dts/warp.dts
+++ b/arch/powerpc/boot/dts/warp.dts
@@ -261,10 +261,11 @@
compatible = "gpio-leds";
green {
gpios = <&GPIO1 0 0>;
- default-state = "on";
+ default-state = "keep";
};
red {
gpios = <&GPIO1 1 0>;
+ default-state = "keep";
};
};
diff --git a/arch/powerpc/platforms/44x/warp.c b/arch/powerpc/platforms/44x/warp.c
index 0362c88..9916b39 100644
--- a/arch/powerpc/platforms/44x/warp.c
+++ b/arch/powerpc/platforms/44x/warp.c
@@ -64,8 +64,6 @@ define_machine(warp) {
};
-static u32 post_info;
-
static int __init warp_post_info(void)
{
struct device_node *np;
@@ -87,10 +85,9 @@ static int __init warp_post_info(void)
iounmap(fpga);
- if (post1 || post2) {
+ if (post1 || post2)
printk(KERN_INFO "Warp POST %08x %08x\n", post1, post2);
- post_info = 1;
- } else
+ else
printk(KERN_INFO "Warp POST OK\n");
return 0;
@@ -179,15 +176,10 @@ static int pika_setup_leds(void)
}
for_each_child_of_node(np, child)
- if (strcmp(child->name, "green") == 0) {
+ if (strcmp(child->name, "green") == 0)
green_led = of_get_gpio(child, 0);
- /* Turn back on the green LED */
- gpio_set_value(green_led, 1);
- } else if (strcmp(child->name, "red") == 0) {
+ else if (strcmp(child->name, "red") == 0)
red_led = of_get_gpio(child, 0);
- /* Set based on post */
- gpio_set_value(red_led, post_info);
- }
of_node_put(np);
^ permalink raw reply related
* Re: [PATCH 2/2] sound/soc: remove BROKEN from Efika and pcm030 fabric drivers
From: Jon Smirl @ 2009-06-28 18:06 UTC (permalink / raw)
To: Grant Likely; +Cc: linuxppc-dev, alsa-devel, broonie, timur
In-Reply-To: <20090628074158.26905.36950.stgit@localhost.localdomain>
On Sun, Jun 28, 2009 at 3:42 AM, Grant Likely<grant.likely@secretlab.ca> wr=
ote:
> From: Grant Likely <grant.likely@secretlab.ca>
>
> The needed spin_event_timeout() macro is now merged in from the
> powerpc tree, so these drivers are no longer broken. =A0This reverts
> commit 0c0e09e21a9e7bc6ca54e06ef3d497255ca26383 (ASoC: Mark MPC5200
> AC97 as BROKEN until PowerPC merge issues are resolved)
>
> Tested against 2.6.31-rc1.
>
> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Jon Smirl <jonsmirl@gmail.com>
> ---
>
> =A0sound/soc/fsl/Kconfig | =A0 =A04 ++--
> =A01 files changed, 2 insertions(+), 2 deletions(-)
>
>
> diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig
> index 5661876..8cb65cc 100644
> --- a/sound/soc/fsl/Kconfig
> +++ b/sound/soc/fsl/Kconfig
> @@ -41,7 +41,7 @@ config SND_SOC_MPC5200_AC97
>
> =A0config SND_MPC52xx_SOC_PCM030
> =A0 =A0 =A0 =A0tristate "SoC AC97 Audio support for Phytec pcm030 and WM9=
712"
> - =A0 =A0 =A0 depends on PPC_MPC5200_SIMPLE && BROKEN
> + =A0 =A0 =A0 depends on PPC_MPC5200_SIMPLE
> =A0 =A0 =A0 =A0select SND_SOC_MPC5200_AC97
> =A0 =A0 =A0 =A0select SND_SOC_WM9712
> =A0 =A0 =A0 =A0help
> @@ -50,7 +50,7 @@ config SND_MPC52xx_SOC_PCM030
>
> =A0config SND_MPC52xx_SOC_EFIKA
> =A0 =A0 =A0 =A0tristate "SoC AC97 Audio support for bbplan Efika and STAC=
9766"
> - =A0 =A0 =A0 depends on PPC_EFIKA && BROKEN
> + =A0 =A0 =A0 depends on PPC_EFIKA
> =A0 =A0 =A0 =A0select SND_SOC_MPC5200_AC97
> =A0 =A0 =A0 =A0select SND_SOC_STAC9766
> =A0 =A0 =A0 =A0help
>
>
--=20
Jon Smirl
jonsmirl@gmail.com
^ permalink raw reply
* Re: [PATCH 1/2] alsa/soc: Fix typo in MPC5200 PSC AC97 driver Kconfig
From: Jon Smirl @ 2009-06-28 18:06 UTC (permalink / raw)
To: Grant Likely; +Cc: linuxppc-dev, alsa-devel, broonie, timur
In-Reply-To: <20090628074109.26905.9927.stgit@localhost.localdomain>
On Sun, Jun 28, 2009 at 3:41 AM, Grant Likely<grant.likely@secretlab.ca> wr=
ote:
> From: Grant Likely <grant.likely@secretlab.ca>
>
> ALSA SoC drivers should be specify SND_SOC_AC97_BUS instead, not AC97_BUS=
.
> Without SND_SOC_AC97_BUS defined, an AC97 device will not get correctly
> registered on the AC97 bus, which prevents thinks like the WM9712
> touchscreen driver from getting probed.
>
> Tested against 2.6.31-rc1.
>
> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Jon Smirl <jonsmirl@gmail.com>
> ---
>
> =A0sound/soc/fsl/Kconfig | =A0 =A02 +-
> =A01 files changed, 1 insertions(+), 1 deletions(-)
>
>
> diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig
> index 5dbebf8..5661876 100644
> --- a/sound/soc/fsl/Kconfig
> +++ b/sound/soc/fsl/Kconfig
> @@ -33,7 +33,7 @@ config SND_SOC_MPC5200_I2S
> =A0config SND_SOC_MPC5200_AC97
> =A0 =A0 =A0 =A0tristate "Freescale MPC5200 PSC in AC97 mode driver"
> =A0 =A0 =A0 =A0depends on PPC_MPC52xx && PPC_BESTCOMM
> - =A0 =A0 =A0 select AC97_BUS
> + =A0 =A0 =A0 select SND_SOC_AC97_BUS
> =A0 =A0 =A0 =A0select SND_MPC52xx_DMA
> =A0 =A0 =A0 =A0select PPC_BESTCOMM_GEN_BD
> =A0 =A0 =A0 =A0help
>
>
--=20
Jon Smirl
jonsmirl@gmail.com
^ permalink raw reply
* [PATCH 05/62] arch/powerpc: Remove unnecessary semicolons
From: Joe Perches @ 2009-06-28 16:26 UTC (permalink / raw)
To: linux-kernel
Cc: trivial, Robert Richter, linuxppc-dev, oprofile-list,
Andrew Morton, cbe-oss-dev
In-Reply-To: <cover.1246173664.git.joe@perches.com>
Signed-off-by: Joe Perches <joe@perches.com>
---
arch/powerpc/mm/tlb_hash64.c | 2 +-
arch/powerpc/oprofile/cell/vma_map.c | 2 +-
arch/powerpc/platforms/powermac/cpufreq_64.c | 2 +-
arch/powerpc/platforms/powermac/pic.c | 2 +-
arch/powerpc/platforms/ps3/system-bus.c | 1 -
arch/powerpc/sysdev/fsl_rio.c | 2 +-
arch/powerpc/sysdev/ppc4xx_pci.c | 4 ++--
7 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/arch/powerpc/mm/tlb_hash64.c b/arch/powerpc/mm/tlb_hash64.c
index 1be1b5e..937eb90 100644
--- a/arch/powerpc/mm/tlb_hash64.c
+++ b/arch/powerpc/mm/tlb_hash64.c
@@ -72,7 +72,7 @@ void hpte_need_flush(struct mm_struct *mm, unsigned long addr,
*/
if (huge) {
#ifdef CONFIG_HUGETLB_PAGE
- psize = get_slice_psize(mm, addr);;
+ psize = get_slice_psize(mm, addr);
#else
BUG();
psize = pte_pagesize_index(mm, addr, pte); /* shutup gcc */
diff --git a/arch/powerpc/oprofile/cell/vma_map.c b/arch/powerpc/oprofile/cell/vma_map.c
index 258fa44..c591339 100644
--- a/arch/powerpc/oprofile/cell/vma_map.c
+++ b/arch/powerpc/oprofile/cell/vma_map.c
@@ -185,7 +185,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
goto fail;
if (shdr_str.sh_type != SHT_STRTAB)
- goto fail;;
+ goto fail;
for (j = 0; j < shdr.sh_size / sizeof (sym); j++) {
if (copy_from_user(&sym, spu_elf_start +
diff --git a/arch/powerpc/platforms/powermac/cpufreq_64.c b/arch/powerpc/platforms/powermac/cpufreq_64.c
index 22ecfbe..708c751 100644
--- a/arch/powerpc/platforms/powermac/cpufreq_64.c
+++ b/arch/powerpc/platforms/powermac/cpufreq_64.c
@@ -251,7 +251,7 @@ static void g5_pfunc_switch_volt(int speed_mode)
static struct pmf_function *pfunc_cpu_setfreq_high;
static struct pmf_function *pfunc_cpu_setfreq_low;
static struct pmf_function *pfunc_cpu_getfreq;
-static struct pmf_function *pfunc_slewing_done;;
+static struct pmf_function *pfunc_slewing_done;
static int g5_pfunc_switch_freq(int speed_mode)
{
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
index dce7363..d212006 100644
--- a/arch/powerpc/platforms/powermac/pic.c
+++ b/arch/powerpc/platforms/powermac/pic.c
@@ -609,7 +609,7 @@ static int pmacpic_find_viaint(void)
np = of_find_node_by_name(NULL, "via-pmu");
if (np == NULL)
goto not_found;
- viaint = irq_of_parse_and_map(np, 0);;
+ viaint = irq_of_parse_and_map(np, 0);
not_found:
#endif /* CONFIG_ADB_PMU */
diff --git a/arch/powerpc/platforms/ps3/system-bus.c b/arch/powerpc/platforms/ps3/system-bus.c
index 9fead0f..3f763c5 100644
--- a/arch/powerpc/platforms/ps3/system-bus.c
+++ b/arch/powerpc/platforms/ps3/system-bus.c
@@ -284,7 +284,6 @@ static int ps3_sb_free_mmio_region(struct ps3_mmio_region *r)
int result;
dump_mmio_region(r);
-;
result = lv1_unmap_device_mmio_region(r->dev->bus_id, r->dev->dev_id,
r->lpar_addr);
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c
index 39db9d1..cbb3bed 100644
--- a/arch/powerpc/sysdev/fsl_rio.c
+++ b/arch/powerpc/sysdev/fsl_rio.c
@@ -965,7 +965,7 @@ static inline void fsl_rio_info(struct device *dev, u32 ccsr)
break;
default:
str = "Unknown";
- break;;
+ break;
}
dev_info(dev, "Hardware port width: %s\n", str);
diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c
index daefc93..6ff9d71 100644
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
@@ -1531,7 +1531,7 @@ static void __init ppc4xx_configure_pciex_PIMs(struct ppc4xx_pciex_port *port,
*/
/* Calculate window size */
- sa = (0xffffffffffffffffull << ilog2(ep_size));;
+ sa = (0xffffffffffffffffull << ilog2(ep_size));
/* Setup BAR0 */
out_le32(mbase + PECFG_BAR0HMPA, RES_TO_U32_HIGH(sa));
@@ -1550,7 +1550,7 @@ static void __init ppc4xx_configure_pciex_PIMs(struct ppc4xx_pciex_port *port,
out_le32(mbase + PCI_BASE_ADDRESS_1, RES_TO_U32_HIGH(ep_addr));
} else {
/* Calculate window size */
- sa = (0xffffffffffffffffull << ilog2(size));;
+ sa = (0xffffffffffffffffull << ilog2(size));
if (res->flags & IORESOURCE_PREFETCH)
sa |= 0x8;
--
1.6.3.1.10.g659a0.dirty
^ permalink raw reply related
* [PATCH 15/62] drivers/dma/fsldma.c: Remove unnecessary semicolons
From: Joe Perches @ 2009-06-28 16:26 UTC (permalink / raw)
To: linux-kernel
Cc: trivial, linuxppc-dev, Maciej Sosnowski, Zhang Wei, Andrew Morton,
Li Yang, Dan Williams
In-Reply-To: <cover.1246173664.git.joe@perches.com>
Signed-off-by: Joe Perches <joe@perches.com>
---
drivers/dma/fsldma.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c
index f18d1bd..71ce8ed 100644
--- a/drivers/dma/fsldma.c
+++ b/drivers/dma/fsldma.c
@@ -136,7 +136,7 @@ static int dma_is_idle(struct fsl_dma_chan *fsl_chan)
static void dma_start(struct fsl_dma_chan *fsl_chan)
{
- u32 mr_set = 0;;
+ u32 mr_set = 0;
if (fsl_chan->feature & FSL_DMA_CHAN_PAUSE_EXT) {
DMA_OUT(fsl_chan, &fsl_chan->reg_base->bcr, 0, 32);
--
1.6.3.1.10.g659a0.dirty
^ permalink raw reply related
* [PATCH 2/2] sound/soc: remove BROKEN from Efika and pcm030 fabric drivers
From: Grant Likely @ 2009-06-28 7:42 UTC (permalink / raw)
To: jonsmirl, linuxppc-dev, alsa-devel, broonie, timur
In-Reply-To: <20090628074109.26905.9927.stgit@localhost.localdomain>
From: Grant Likely <grant.likely@secretlab.ca>
The needed spin_event_timeout() macro is now merged in from the
powerpc tree, so these drivers are no longer broken. This reverts
commit 0c0e09e21a9e7bc6ca54e06ef3d497255ca26383 (ASoC: Mark MPC5200
AC97 as BROKEN until PowerPC merge issues are resolved)
Tested against 2.6.31-rc1.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
---
sound/soc/fsl/Kconfig | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig
index 5661876..8cb65cc 100644
--- a/sound/soc/fsl/Kconfig
+++ b/sound/soc/fsl/Kconfig
@@ -41,7 +41,7 @@ config SND_SOC_MPC5200_AC97
config SND_MPC52xx_SOC_PCM030
tristate "SoC AC97 Audio support for Phytec pcm030 and WM9712"
- depends on PPC_MPC5200_SIMPLE && BROKEN
+ depends on PPC_MPC5200_SIMPLE
select SND_SOC_MPC5200_AC97
select SND_SOC_WM9712
help
@@ -50,7 +50,7 @@ config SND_MPC52xx_SOC_PCM030
config SND_MPC52xx_SOC_EFIKA
tristate "SoC AC97 Audio support for bbplan Efika and STAC9766"
- depends on PPC_EFIKA && BROKEN
+ depends on PPC_EFIKA
select SND_SOC_MPC5200_AC97
select SND_SOC_STAC9766
help
^ permalink raw reply related
* [PATCH 1/2] alsa/soc: Fix typo in MPC5200 PSC AC97 driver Kconfig
From: Grant Likely @ 2009-06-28 7:41 UTC (permalink / raw)
To: jonsmirl, linuxppc-dev, alsa-devel, broonie, timur
From: Grant Likely <grant.likely@secretlab.ca>
ALSA SoC drivers should be specify SND_SOC_AC97_BUS instead, not AC97_BUS.
Without SND_SOC_AC97_BUS defined, an AC97 device will not get correctly
registered on the AC97 bus, which prevents thinks like the WM9712
touchscreen driver from getting probed.
Tested against 2.6.31-rc1.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
---
sound/soc/fsl/Kconfig | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig
index 5dbebf8..5661876 100644
--- a/sound/soc/fsl/Kconfig
+++ b/sound/soc/fsl/Kconfig
@@ -33,7 +33,7 @@ config SND_SOC_MPC5200_I2S
config SND_SOC_MPC5200_AC97
tristate "Freescale MPC5200 PSC in AC97 mode driver"
depends on PPC_MPC52xx && PPC_BESTCOMM
- select AC97_BUS
+ select SND_SOC_AC97_BUS
select SND_MPC52xx_DMA
select PPC_BESTCOMM_GEN_BD
help
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox