* Re: [PATCH 3/2][NEWEMAC] Use status property for unused/unwired EMACs
From: Josh Boyer @ 2008-03-01 23:50 UTC (permalink / raw)
To: benh; +Cc: linuxppc-dev, paulus
In-Reply-To: <1204407195.15052.462.camel@pasglop>
On Sun, 02 Mar 2008 08:33:15 +1100
Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>
> On Sat, 2008-03-01 at 08:41 -0600, Josh Boyer wrote:
> > Convert ibm_newemac to use the of_device_is_available function when checking
> > for unused/unwired EMACs. We leave the current check for an "unused" property
> > to maintain backwards compatibility for older device trees. Newer device
> > trees should simply use the standard "status" property in the EMAC node.
> >
> > The taishan DTS file is updated to reflect this.
> >
> > Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
>
> I don't think any other DTS than Taishan uses "unused" so we may be able
> to get rid of that backward compat check. I think the Cell DT just
> ommits EMACs when they are unused.
I wasn't sure on that aspect and I can't check until next week. If you
can verify before I do, let me know. I'll remove the "unused" check
assuming the of_device_is_available patch goes in and the Axon DT
doesn't use it.
josh
^ permalink raw reply
* [RESEND] [PATCH 1/2 v2] [OF] Add of_device_is_available function
From: Josh Boyer @ 2008-03-01 23:48 UTC (permalink / raw)
To: paulus, sfr; +Cc: linuxppc-dev
In-Reply-To: <20080301081600.74598ce4@zod.rchland.ibm.com>
IEEE 1275 defined a standard "status" property to indicate the operational
status of a device. The property has four possible values: okay, disabled,
fail, fail-xxx. The absence of this property means the operational status
of the device is unknown or okay.
This adds a function called of_device_is_available that checks the state
of the status property of a device. If the property is absent or set to
either "okay" or "ok", it returns 1. Otherwise it returns 0.
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
---
drivers/of/base.c | 26 ++++++++++++++++++++++++++
include/linux/of.h | 1 +
2 files changed, 27 insertions(+)
--- linux-2.6.orig/drivers/of/base.c
+++ linux-2.6/drivers/of/base.c
@@ -117,6 +117,32 @@ int of_device_is_compatible(const struct
EXPORT_SYMBOL(of_device_is_compatible);
/**
+ * of_device_is_available - check if a device is available for use
+ *
+ * @device: Node to check for availability
+ *
+ * Returns 1 if the status property is absent or set to "okay" or "ok",
+ * 0 otherwise
+ */
+int of_device_is_available(const struct device_node *device)
+{
+ const char *status;
+ int statlen;
+
+ status = of_get_property(device, "status", &statlen);
+ if (status == NULL)
+ return 1;
+
+ if (statlen > 0) {
+ if (!strncmp(status, "okay", 4) || !strncmp(status, "ok", 2))
+ return 1;
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL(of_device_is_available);
+
+/**
* of_get_parent - Get a node's parent if any
* @node: Node to get parent
*
--- linux-2.6.orig/include/linux/of.h
+++ linux-2.6/include/linux/of.h
@@ -62,6 +62,7 @@ extern struct property *of_find_property
int *lenp);
extern int of_device_is_compatible(const struct device_node *device,
const char *);
+extern int of_device_is_available(const struct device_node *device);
extern const void *of_get_property(const struct device_node *node,
const char *name,
int *lenp);
^ permalink raw reply
* Re: [PATCH 1/3] firewire: fw-ohci: PPC PMac platform code
From: Benjamin Herrenschmidt @ 2008-03-01 23:48 UTC (permalink / raw)
To: Jarod Wilson; +Cc: linuxppc-dev, Stefan Richter, linux1394-devel, linux-kernel
In-Reply-To: <47C9B1D3.3020402@redhat.com>
On Sat, 2008-03-01 at 14:43 -0500, Jarod Wilson wrote:
> Stefan Richter wrote:
> > Copied from ohci1394.c. This code is necessary to prevent machine check
> > exceptions when reloading or resuming the driver.
> >
> > Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
>
> I was able to reproduce the system exception on resume with a 3rd-gen
> Titanium PowerBook G4 667, and this patch does let the system resume
> successfully now.
>
> Not quite clear if there was possibly an updated version coming using
> pci_enable_device() instead of the pair of pmac_call_feature() calls,
> but either way, this is a definite must-have, at least for older ppc
> macs -- my Aluminum PowerBook G4/1.67 suspends and resumes without this
> patch just fine.
Let's go with Stefan patch for now. I'll find out what's up with
pci_enable_device() later.
Ben.
^ permalink raw reply
* Re: [PATCH 1/2 v2] [OF] Add of_device_is_available function
From: Josh Boyer @ 2008-03-01 22:25 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: linuxppc-dev, paulus
In-Reply-To: <20080302090218.2c99976f.sfr@canb.auug.org.au>
On Sun, 2 Mar 2008 09:02:18 +1100
Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> Hi Josh,
>
> On Sat, 1 Mar 2008 08:16:00 -0600 Josh Boyer <jwboyer@linux.vnet.ibm.com> wrote:
> >
> > IEEE 1275 defined a standard "status" property to indicate the
> > operational status of a device. The property has four possible values:
> > okay, disabled, fail, fail-xxx. The absence of this property means the
> > operational status of the device is unknown or okay.
> >
> > This adds a function called of_device_is_available that checks the state
> > of the status property of a device. If the property is absent or set to
> > either "okay" or "ok", it returns 1. Otherwise it returns 0.
> >
> > Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
>
> Looks good to me - except the patch is word wrapped (which is weird for
> Claws) ...
That's weird indeed... I've never had that happen before. I'll resend.
josh
^ permalink raw reply
* Problems when accessing to registers in GPIO
From: A. Nolson @ 2008-03-01 22:10 UTC (permalink / raw)
To: linuxppc-embedded
Hi,
I am getting some problems when trying to access to the GPIO registers
from the userland of my secretlab's linux 2.6.24-rc3 ( Xilinx ML403 ). I
am using io_remap() functions ( from
http://www.denx.de/wiki/bin/view/PPCEmbedded/DeviceDrivers ) and I was
successfully able to test them with some own-made IP cores. However, I
am having problems when trying to do it in the same way with the GPIO IP
core from Xilinx ( the ones I am using to interface to the LEDs ,
buttons and LCD ).
If I try to access to the buttons in the board I don't really have any
problem since the tri-state control register is automatically set to
"all inputs" when the IP is turned on. But when I try to use the LEDs
and I need to configure the tris-state as outputs, they don't work . I
am doing the following:
//memory mapping
if( (led_base = (volatile int*) ioremap(BASE_GPIO,8)) == NULL ||
(but_base = (volatile int*) ioremap(BASE_GPIO_B, 8)) == NULL )
{
perror( "Cannot allocate memory for GPIO/n");
return 1;
}
led_tri = (char*)led_base + 0x4;
but_tri = (char*)but_base + 0x4;
//configure as inputs and outputs
printf("configuring IOs...");
*led_tri = 0x00;//configure them as outputs
*but_tri = 0xFF;//configure them as inputs
while(1)
{
data = *but_base;
// printf("data:%x\n",data);
*led_base = data;
usleep(50000);
}
If I try to allocate the tri-state registers as integer I get "Bus
Error" when accessing to them. I don't know really what is the problem.
If I try to the same without operating system, this is, directly using
XPS, I manage to make the buttons and leds work perfectly. Anybody can
help me with this?
/A
^ permalink raw reply
* Re: [PATCH 1/2 v2] [OF] Add of_device_is_available function
From: Stephen Rothwell @ 2008-03-01 22:02 UTC (permalink / raw)
To: Josh Boyer; +Cc: linuxppc-dev, paulus
In-Reply-To: <20080301081600.74598ce4@zod.rchland.ibm.com>
[-- Attachment #1: Type: text/plain, Size: 848 bytes --]
Hi Josh,
On Sat, 1 Mar 2008 08:16:00 -0600 Josh Boyer <jwboyer@linux.vnet.ibm.com> wrote:
>
> IEEE 1275 defined a standard "status" property to indicate the
> operational status of a device. The property has four possible values:
> okay, disabled, fail, fail-xxx. The absence of this property means the
> operational status of the device is unknown or okay.
>
> This adds a function called of_device_is_available that checks the state
> of the status property of a device. If the property is absent or set to
> either "okay" or "ok", it returns 1. Otherwise it returns 0.
>
> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Looks good to me - except the patch is word wrapped (which is weird for
Claws) ...
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply
* Re: [PATCH 3/2][NEWEMAC] Use status property for unused/unwired EMACs
From: Benjamin Herrenschmidt @ 2008-03-01 21:33 UTC (permalink / raw)
To: Josh Boyer; +Cc: linuxppc-dev, paulus
In-Reply-To: <20080301084140.7abc703e@zod.rchland.ibm.com>
On Sat, 2008-03-01 at 08:41 -0600, Josh Boyer wrote:
> Convert ibm_newemac to use the of_device_is_available function when checking
> for unused/unwired EMACs. We leave the current check for an "unused" property
> to maintain backwards compatibility for older device trees. Newer device
> trees should simply use the standard "status" property in the EMAC node.
>
> The taishan DTS file is updated to reflect this.
>
> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
I don't think any other DTS than Taishan uses "unused" so we may be able
to get rid of that backward compat check. I think the Cell DT just
ommits EMACs when they are unused.
Ben.
^ permalink raw reply
* Re: [PATCH 1/3] firewire: fw-ohci: PPC PMac platform code
From: Jarod Wilson @ 2008-03-01 19:43 UTC (permalink / raw)
To: Stefan Richter; +Cc: linuxppc-dev, linux1394-devel, linux-kernel
In-Reply-To: <tkrat.7e8e04e66a38dcd6@s5r6.in-berlin.de>
Stefan Richter wrote:
> Copied from ohci1394.c. This code is necessary to prevent machine check
> exceptions when reloading or resuming the driver.
>
> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
I was able to reproduce the system exception on resume with a 3rd-gen
Titanium PowerBook G4 667, and this patch does let the system resume
successfully now.
Not quite clear if there was possibly an updated version coming using
pci_enable_device() instead of the pair of pmac_call_feature() calls,
but either way, this is a definite must-have, at least for older ppc
macs -- my Aluminum PowerBook G4/1.67 suspends and resumes without this
patch just fine.
Signed-off-by: Jarod Wilson <jwilson@redhat.com>
--
Jarod Wilson
jwilson@redhat.com
^ permalink raw reply
* 'next' branch of powerpc4xx tree
From: Josh Boyer @ 2008-03-01 16:06 UTC (permalink / raw)
To: linuxppc-dev; +Cc: sfr
Since all the cool kids are doing it, I went and created a 'next' branch
in the powerpc4xx tree.
I'm basically using it as a place for me to queue things up as they are
submitted that look pretty good for going into the next release. While
I'll try hard not to rebase it, I can't guarantee that. Pull requests
to Paul will still come from a 'for-2.6.xx' branch when I think it's
time to send stuff upstream, so if you're looking for something stable
track that instead.
Stephen, if you'd like to add this to your -next tree feel free.
Hopefully it will usually be empty as I merge things into Paul's tree.
As of right now, I have the following patches in the 'next' branch:
David Gibson (1):
[POWERPC] Start removing linux,network-index in favour of aliases
Stefan Roese (5):
[POWERPC] 4xx: Add AMCC 460EX/460GT support to cputable.c & cpu_setup_44x.
[POWERPC] 4xx: Add AMCC Canyonlands 460EX eval board support to platforms/
[POWERPC] 4xx: Add Canyonlands DTS
[POWERPC] 4xx: Add 460EX PCIe support to 4xx pci driver
[POWERPC] 4xx: Add Canyonlands defconfig file
Soon to go in will be the Yosemite board port I did, and moving the
reset function to a common place for 4xx boards.
josh
^ permalink raw reply
* Re: Sequoia build with KDBG
From: Olof Johansson @ 2008-03-01 15:57 UTC (permalink / raw)
To: Josh Boyer; +Cc: Steve Heflin, linuxppc-embedded
In-Reply-To: <20080301071315.3c7c05dc@zod.rchland.ibm.com>
On Sat, Mar 01, 2008 at 07:13:15AM -0600, Josh Boyer wrote:
> On Fri, 29 Feb 2008 23:02:50 -0600
> Olof Johansson <olof@lixom.net> wrote:
>
> > On Fri, Feb 29, 2008 at 08:30:15PM -0600, Josh Boyer wrote:
> >
> > > > poor man's debugging works fine if a serial port is available, but my
> > > > Sequoia platform doesn't get that far! I use u-boot to download and
> > > > boot my image, and I don't get any serial output after the boot completes:
> > >
> > > By "poking characters out the serial port" I meant I literally coded up
> > > assembly functions to setup MMU translations and poke hex values at hard
> > > coded addresses. That's why it's "poor man's". If you had a working
> > > serial port out of the box, that would be a luxury ;).
> >
> > Does 4xx have support for udbg and xmon? That would be a good first step
> > in getting an in-kernel debugger facility going.
>
> Yes. Or at least it did as of a few kernel releases ago when I last
> tested it. It's helpful for a number of thing, but debugging extremely
> early stuff isn't possible with it.
Right, most in-kernel debuggers will be useless for that, so I doubt kgdb will
help in those cases either.
-Olof
^ permalink raw reply
* Re: [RFC 08/10] um: dyn/uml.lds.S cleanup - use PAGE_SIZE macro
From: Cyrill Gorcunov @ 2008-03-01 15:35 UTC (permalink / raw)
To: Jeff Dike
Cc: chris, linux-m68k, linux-m32r, takata, linux-kernel, linuxppc-dev,
paulus, geert, sam, rth
In-Reply-To: <20080229154303.GC5886@c2.user-mode-linux.org>
[Jeff Dike - Fri, Feb 29, 2008 at 10:43:03AM -0500]
| On Wed, Feb 27, 2008 at 11:58:39PM +0300, gorcunov@gmail.com wrote:
| > This patch includes page.h header into liker scripts that
| > allow us to use PAGE_SIZE macro instead of numeric constant.
| >
| > To be able to include page.h into linker scripts page.h is
| > needed for some modification - i.e. we need to use __ASSEMBLY__
| > and _AC macro
| >
| > Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
| Needed some fixing, but it's OK. I'll forward it on.
|
| Jeff
|
| --
| Work email - jdike at linux dot intel dot com
|
Thank you
- Cyrill -
^ permalink raw reply
* [PATCH 3/2][NEWEMAC] Use status property for unused/unwired EMACs
From: Josh Boyer @ 2008-03-01 14:41 UTC (permalink / raw)
To: paulus, benh; +Cc: linuxppc-dev
In-Reply-To: <20080301081600.74598ce4@zod.rchland.ibm.com>
Convert ibm_newemac to use the of_device_is_available function when checking
for unused/unwired EMACs. We leave the current check for an "unused" property
to maintain backwards compatibility for older device trees. Newer device
trees should simply use the standard "status" property in the EMAC node.
The taishan DTS file is updated to reflect this.
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
---
arch/powerpc/boot/dts/taishan.dts | 4 ++--
drivers/net/ibm_newemac/core.c | 7 +++++--
2 files changed, 7 insertions(+), 4 deletions(-)
--- linux-2.6.orig/arch/powerpc/boot/dts/taishan.dts
+++ linux-2.6/arch/powerpc/boot/dts/taishan.dts
@@ -234,7 +234,6 @@
EMAC0: ethernet@40000800 {
- unused = <1>;
linux,network-index = <2>;
device_type = "network";
compatible = "ibm,emac-440gx", "ibm,emac4";
@@ -253,9 +252,9 @@
phy-map = <00000001>;
zmii-device = <&ZMII0>;
zmii-channel = <0>;
+ status = "disabled";
};
EMAC1: ethernet@40000900 {
- unused = <1>;
linux,network-index = <3>;
device_type = "network";
compatible = "ibm,emac-440gx", "ibm,emac4";
@@ -274,6 +273,7 @@
phy-map = <00000001>;
zmii-device = <&ZMII0>;
zmii-channel = <1>;
+ status = "disabled";
};
EMAC2: ethernet@40000c00 {
--- linux-2.6.orig/drivers/net/ibm_newemac/core.c
+++ linux-2.6/drivers/net/ibm_newemac/core.c
@@ -2552,8 +2552,11 @@ static int __devinit emac_probe(struct o
struct device_node **blist = NULL;
int err, i;
- /* Skip unused/unwired EMACS */
- if (of_get_property(np, "unused", NULL))
+ /* Skip unused/unwired EMACS. We leave the check for an unused
+ * property here for now, but new flat device trees should set a
+ * status property to "disabled" instead.
+ */
+ if (of_get_property(np, "unused", NULL) || !of_device_is_available(np))
return -ENODEV;
/* Find ourselves in the bootlist if we are there */
^ permalink raw reply
* [PATCH 2/2 v2] [POWERPC] Ignore disabled serial ports
From: Josh Boyer @ 2008-03-01 14:17 UTC (permalink / raw)
To: paulus; +Cc: linuxppc-dev, arnd
In-Reply-To: <20080301081600.74598ce4@zod.rchland.ibm.com>
Some SoC chips have multiple serial ports on board. The usability of these
ports can rely on various factors, ranging from pin sharing to unpopulated
connectors. This checks for a status property in the serial node and ignores
the port if it is set to "disabled".
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
---
arch/powerpc/kernel/legacy_serial.c | 4 ++++
drivers/serial/of_serial.c | 5 +++++
2 files changed, 9 insertions(+)
--- linux-2.6.orig/drivers/serial/of_serial.c
+++ linux-2.6/drivers/serial/of_serial.c
@@ -72,6 +72,11 @@ static int __devinit of_platform_serial_
int port_type;
int ret;
+ if (!of_device_is_available(ofdev->node)) {
+ dev_info(&ofdev->dev, "Disabled serial port. Ignored\n");
+ return -ENODEV;
+ }
+
if (of_find_property(ofdev->node, "used-by-rtas", NULL))
return -EBUSY;
--- linux-2.6.orig/arch/powerpc/kernel/legacy_serial.c
+++ linux-2.6/arch/powerpc/kernel/legacy_serial.c
@@ -54,6 +54,10 @@ static int __init add_legacy_port(struct
u32 clock = BASE_BAUD * 16;
int index;
+ /* Check the status property if present. Ignore disabled devices */
+ if (!of_device_is_available(np))
+ return -1;
+
/* get clock freq. if present */
clk = of_get_property(np, "clock-frequency", NULL);
if (clk && *clk)
^ permalink raw reply
* [PATCH 1/2 v2] [OF] Add of_device_is_available function
From: Josh Boyer @ 2008-03-01 14:16 UTC (permalink / raw)
To: paulus, sfr; +Cc: linuxppc-dev
IEEE 1275 defined a standard "status" property to indicate the
operational status of a device. The property has four possible values:
okay, disabled, fail, fail-xxx. The absence of this property means the
operational status of the device is unknown or okay.
This adds a function called of_device_is_available that checks the state
of the status property of a device. If the property is absent or set to
either "okay" or "ok", it returns 1. Otherwise it returns 0.
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
---
drivers/of/base.c | 26 ++++++++++++++++++++++++++
include/linux/of.h | 1 +
2 files changed, 27 insertions(+)
--- linux-2.6.orig/drivers/of/base.c
+++ linux-2.6/drivers/of/base.c
@@ -117,6 +117,32 @@ int of_device_is_compatible(const struct
EXPORT_SYMBOL(of_device_is_compatible);
/**
+ * of_device_is_available - check if a device is available for use
+ *
+ * @device: Node to check for availability
+ *
+ * Returns 1 if the status property is absent or set to "okay" or
"ok",
+ * 0 otherwise
+ */
+int of_device_is_available(const struct device_node *device)
+{
+ const char *status;
+ int statlen;
+
+ status = of_get_property(device, "status", &statlen);
+ if (status == NULL)
+ return 1;
+
+ if (statlen > 0) {
+ if (!strncmp(status, "okay", 4) || !strncmp(status,
"ok", 2))
+ return 1;
+ }
+
+ return 0;
+}
+EXPORT_SYMBOL(of_device_is_available);
+
+/**
* of_get_parent - Get a node's parent if any
* @node: Node to get parent
*
--- linux-2.6.orig/include/linux/of.h
+++ linux-2.6/include/linux/of.h
@@ -62,6 +62,7 @@ extern struct property *of_find_property
int *lenp);
extern int of_device_is_compatible(const struct device_node *device,
const char *);
+extern int of_device_is_available(const struct device_node *device);
extern const void *of_get_property(const struct device_node *node,
const char *name,
int *lenp);
^ permalink raw reply
* Re: [PATCH] [POWERPC] 40X: Add Default Restart Machdep Method to 40X Platforms
From: Josh Boyer @ 2008-03-01 13:15 UTC (permalink / raw)
To: Stefan Roese; +Cc: linuxppc-dev, Grant Erickson
In-Reply-To: <200803011232.54392.sr@denx.de>
On Sat, 1 Mar 2008 12:32:54 +0100
Stefan Roese <sr@denx.de> wrote:
> On Saturday 23 February 2008, Grant Erickson wrote:
> > This patch restores the reset on restart functionality to 40x-based
> > platforms that was formerly provided--but not used in arch/powerpc--by
> > abort() in head_40x.S. This functionality is now provided by
> > ppc40x_reset_system(char *) in a fashion similar to that of the 44x-based
> > platforms.
> >
> > Compiled, linked and tested against the AMCC Haleakala board.
>
> Instead of duplicating this code in platform/40x/ which is already present in
> platforms/44x/misc_44x.S, why not move this misc_44x.S code into a common
> place for all 4xx (40x and 44x) PPC's? There seems to be nothing 44x
> specific.
>
> I suggest to introduce platforms/4xx/misc.S or sysdev/ppc4xx_misc.S with these
> functions and change the code referencing it accordingly.
>
> Comments/thoughts?
It's a good idea. I'd rather avoid platforms/4xx for now, but
sysdev/ppc4xx_misc.S seems reasonable.
I'll move it in my tree soon and do the necessary makefile fixups.
josh
^ permalink raw reply
* Re: Sequoia build with KDBG
From: Josh Boyer @ 2008-03-01 13:13 UTC (permalink / raw)
To: Olof Johansson; +Cc: Steve Heflin, linuxppc-embedded
In-Reply-To: <20080301050249.GA23099@lixom.net>
On Fri, 29 Feb 2008 23:02:50 -0600
Olof Johansson <olof@lixom.net> wrote:
> On Fri, Feb 29, 2008 at 08:30:15PM -0600, Josh Boyer wrote:
>
> > > poor man's debugging works fine if a serial port is available, but my
> > > Sequoia platform doesn't get that far! I use u-boot to download and
> > > boot my image, and I don't get any serial output after the boot completes:
> >
> > By "poking characters out the serial port" I meant I literally coded up
> > assembly functions to setup MMU translations and poke hex values at hard
> > coded addresses. That's why it's "poor man's". If you had a working
> > serial port out of the box, that would be a luxury ;).
>
> Does 4xx have support for udbg and xmon? That would be a good first step
> in getting an in-kernel debugger facility going.
Yes. Or at least it did as of a few kernel releases ago when I last
tested it. It's helpful for a number of thing, but debugging extremely
early stuff isn't possible with it.
josh
^ permalink raw reply
* Re: [PATCH 1/2] firewire: endianess fix
From: Stefan Richter @ 2008-03-01 12:36 UTC (permalink / raw)
To: linux1394-devel
Cc: Kristian Hoegsberg, linux-kernel, linuxppc-dev, sparclinux,
Jarod Wilson, Sam Ravnborg, Harvey Harrison
In-Reply-To: <47C00DB0.20605@s5r6.in-berlin.de>
On 23 Feb, I wrote:
>> This needs to be tested on different big endian PCs, if possible with
>> the Apple Uninorth FireWire controller and other types of controllers.
I tested it myself now with VT6306 on PPC32.
> it should be triggered by replacing
> &fw_high_memory_region
> by
> &fw_private_region
> in drivers/firewire/fw-sbp2.c and testing with any SBP-2 device
This indeed demonstrates the fix. Any IO to SBP-2 devices fails with
timeouts. Just removing the posted write enable bit in fw-ohci wasn't
sufficient to catch it though. Maybe the controller has write posting
enabled by default.
However, this endianess bug was low-profile because there are currently
no kernelspace or userspace drivers for the firewire stack which need to
respond in split transactions.
--
Stefan Richter
-=====-==--- --== ----=
http://arcgraph.de/sr/
^ permalink raw reply
* [PATCH 4/4] ieee1394: ohci1394: refactor probe, remove, suspend, resume
From: Stefan Richter @ 2008-03-01 11:36 UTC (permalink / raw)
To: linux1394-devel; +Cc: linuxppc-dev, linux-kernel
In-Reply-To: <tkrat.cc6eff0684655cd0@s5r6.in-berlin.de>
Clean up shared code and variable names.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
---
drivers/ieee1394/ohci1394.c | 113 +++++++++++++++++++-------------------------
1 file changed, 49 insertions(+), 64 deletions(-)
Index: linux/drivers/ieee1394/ohci1394.c
===================================================================
--- linux.orig/drivers/ieee1394/ohci1394.c
+++ linux/drivers/ieee1394/ohci1394.c
@@ -2993,15 +2993,9 @@ do { \
return err; \
} while (0)
-static int __devinit ohci1394_pci_probe(struct pci_dev *dev,
- const struct pci_device_id *ent)
-{
- struct hpsb_host *host;
- struct ti_ohci *ohci; /* shortcut to currently handled device */
- resource_size_t ohci_base;
-
#ifdef CONFIG_PPC_PMAC
- /* Necessary on some machines if ohci1394 was loaded/ unloaded before */
+static void ohci1394_pmac_on(struct pci_dev *dev)
+{
if (machine_is(powermac)) {
struct device_node *ofn = pci_device_to_OF_node(dev);
@@ -3010,8 +3004,32 @@ static int __devinit ohci1394_pci_probe(
pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 1);
}
}
+}
+
+static void ohci1394_pmac_off(struct pci_dev *dev)
+{
+ if (machine_is(powermac)) {
+ struct device_node *ofn = pci_device_to_OF_node(dev);
+
+ if (ofn) {
+ pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 0);
+ pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 0);
+ }
+ }
+}
+#else
+#define ohci1394_pmac_on(dev)
+#define ohci1394_pmac_off(dev)
#endif /* CONFIG_PPC_PMAC */
+static int __devinit ohci1394_pci_probe(struct pci_dev *dev,
+ const struct pci_device_id *ent)
+{
+ struct hpsb_host *host;
+ struct ti_ohci *ohci; /* shortcut to currently handled device */
+ resource_size_t ohci_base;
+
+ ohci1394_pmac_on(dev);
if (pci_enable_device(dev))
FAIL(-ENXIO, "Failed to enable OHCI hardware");
pci_set_master(dev);
@@ -3203,16 +3221,16 @@ static int __devinit ohci1394_pci_probe(
#undef FAIL
}
-static void ohci1394_pci_remove(struct pci_dev *pdev)
+static void ohci1394_pci_remove(struct pci_dev *dev)
{
struct ti_ohci *ohci;
- struct device *dev;
+ struct device *device;
- ohci = pci_get_drvdata(pdev);
+ ohci = pci_get_drvdata(dev);
if (!ohci)
return;
- dev = get_device(&ohci->host->device);
+ device = get_device(&ohci->host->device);
switch (ohci->init_state) {
case OHCI_INIT_DONE:
@@ -3246,7 +3264,7 @@ static void ohci1394_pci_remove(struct p
/* Soft reset before we start - this disables
* interrupts and clears linkEnable and LPS. */
ohci_soft_reset(ohci);
- free_irq(ohci->dev->irq, ohci);
+ free_irq(dev->irq, ohci);
case OHCI_INIT_HAVE_TXRX_BUFFERS__MAYBE:
/* The ohci_soft_reset() stops all DMA contexts, so we
@@ -3257,12 +3275,12 @@ static void ohci1394_pci_remove(struct p
free_dma_trm_ctx(&ohci->at_resp_context);
case OHCI_INIT_HAVE_SELFID_BUFFER:
- pci_free_consistent(ohci->dev, OHCI1394_SI_DMA_BUF_SIZE,
+ pci_free_consistent(dev, OHCI1394_SI_DMA_BUF_SIZE,
ohci->selfid_buf_cpu,
ohci->selfid_buf_bus);
case OHCI_INIT_HAVE_CONFIG_ROM_BUFFER:
- pci_free_consistent(ohci->dev, OHCI_CONFIG_ROM_LEN,
+ pci_free_consistent(dev, OHCI_CONFIG_ROM_LEN,
ohci->csr_config_rom_cpu,
ohci->csr_config_rom_bus);
@@ -3270,35 +3288,24 @@ static void ohci1394_pci_remove(struct p
iounmap(ohci->registers);
case OHCI_INIT_HAVE_MEM_REGION:
- release_mem_region(pci_resource_start(ohci->dev, 0),
+ release_mem_region(pci_resource_start(dev, 0),
OHCI1394_REGISTER_SIZE);
-#ifdef CONFIG_PPC_PMAC
- /* On UniNorth, power down the cable and turn off the chip clock
- * to save power on laptops */
- if (machine_is(powermac)) {
- struct device_node* ofn = pci_device_to_OF_node(ohci->dev);
-
- if (ofn) {
- pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 0);
- pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 0);
- }
- }
-#endif /* CONFIG_PPC_PMAC */
+ ohci1394_pmac_off(dev);
case OHCI_INIT_ALLOC_HOST:
- pci_set_drvdata(ohci->dev, NULL);
+ pci_set_drvdata(dev, NULL);
}
- if (dev)
- put_device(dev);
+ if (device)
+ put_device(device);
}
#ifdef CONFIG_PM
-static int ohci1394_pci_suspend(struct pci_dev *pdev, pm_message_t state)
+static int ohci1394_pci_suspend(struct pci_dev *dev, pm_message_t state)
{
int err;
- struct ti_ohci *ohci = pci_get_drvdata(pdev);
+ struct ti_ohci *ohci = pci_get_drvdata(dev);
if (!ohci) {
printk(KERN_ERR "%s: tried to suspend nonexisting host\n",
@@ -3326,34 +3333,23 @@ static int ohci1394_pci_suspend(struct p
ohci_devctl(ohci->host, RESET_BUS, LONG_RESET_NO_FORCE_ROOT);
ohci_soft_reset(ohci);
- err = pci_save_state(pdev);
+ err = pci_save_state(dev);
if (err) {
PRINT(KERN_ERR, "pci_save_state failed with %d", err);
return err;
}
- err = pci_set_power_state(pdev, pci_choose_state(pdev, state));
+ err = pci_set_power_state(dev, pci_choose_state(dev, state));
if (err)
DBGMSG("pci_set_power_state failed with %d", err);
-
-/* PowerMac suspend code comes last */
-#ifdef CONFIG_PPC_PMAC
- if (machine_is(powermac)) {
- struct device_node *ofn = pci_device_to_OF_node(pdev);
-
- if (ofn) {
- pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 0);
- pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 0);
- }
- }
-#endif /* CONFIG_PPC_PMAC */
+ ohci1394_pmac_off(dev);
return 0;
}
-static int ohci1394_pci_resume(struct pci_dev *pdev)
+static int ohci1394_pci_resume(struct pci_dev *dev)
{
int err;
- struct ti_ohci *ohci = pci_get_drvdata(pdev);
+ struct ti_ohci *ohci = pci_get_drvdata(dev);
if (!ohci) {
printk(KERN_ERR "%s: tried to resume nonexisting host\n",
@@ -3362,21 +3358,10 @@ static int ohci1394_pci_resume(struct pc
}
DBGMSG("resume called");
-/* PowerMac resume code comes first */
-#ifdef CONFIG_PPC_PMAC
- if (machine_is(powermac)) {
- struct device_node *ofn = pci_device_to_OF_node(pdev);
-
- if (ofn) {
- pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 1);
- pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 1);
- }
- }
-#endif /* CONFIG_PPC_PMAC */
-
- pci_set_power_state(pdev, PCI_D0);
- pci_restore_state(pdev);
- err = pci_enable_device(pdev);
+ ohci1394_pmac_on(dev);
+ pci_set_power_state(dev, PCI_D0);
+ pci_restore_state(dev);
+ err = pci_enable_device(dev);
if (err) {
PRINT(KERN_ERR, "pci_enable_device failed with %d", err);
return err;
--
Stefan Richter
-=====-==--- --== ----=
http://arcgraph.de/sr/
^ permalink raw reply
* [PATCH 3/4] ieee1394: ohci1394: switch on bus power after resume on PPC PMac
From: Stefan Richter @ 2008-03-01 11:36 UTC (permalink / raw)
To: linux1394-devel; +Cc: linuxppc-dev, linux-kernel
In-Reply-To: <tkrat.ff90a1c61d90de61@s5r6.in-berlin.de>
The platform feature calls in the suspend method switched off cable
power, but the calls in the resume method did not switch it back on.
Add the necessary feature call to .resume. Also add the corresponding
call to .suspend to make .suspend's behavior explicitly the same on all
PMacs.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
---
drivers/ieee1394/ohci1394.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
Index: linux/drivers/ieee1394/ohci1394.c
===================================================================
--- linux.orig/drivers/ieee1394/ohci1394.c
+++ linux/drivers/ieee1394/ohci1394.c
@@ -3340,8 +3340,10 @@ static int ohci1394_pci_suspend(struct p
if (machine_is(powermac)) {
struct device_node *ofn = pci_device_to_OF_node(pdev);
- if (ofn)
+ if (ofn) {
pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 0);
+ pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 0);
+ }
}
#endif /* CONFIG_PPC_PMAC */
@@ -3365,8 +3367,10 @@ static int ohci1394_pci_resume(struct pc
if (machine_is(powermac)) {
struct device_node *ofn = pci_device_to_OF_node(pdev);
- if (ofn)
+ if (ofn) {
+ pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 1);
pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 1);
+ }
}
#endif /* CONFIG_PPC_PMAC */
--
Stefan Richter
-=====-==--- --== ----=
http://arcgraph.de/sr/
^ permalink raw reply
* [PATCH 1/4] firewire: fw-ohci: switch on bus power after resume on PPC PMac
From: Stefan Richter @ 2008-03-01 11:34 UTC (permalink / raw)
To: linux1394-devel; +Cc: linuxppc-dev, linux-kernel
In-Reply-To: <tkrat.bc4ca3408428a60b@s5r6.in-berlin.de>
The platform feature calls in the suspend method switched off cable
power, but the calls in the resume method did not switch it back on.
Add the necessary feature call to .resume. Also add the corresponding
call to .suspend to make .suspend's behavior explicitly the same on all
PMacs.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
---
drivers/firewire/fw-ohci.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
Index: linux/drivers/firewire/fw-ohci.c
===================================================================
--- linux.orig/drivers/firewire/fw-ohci.c
+++ linux/drivers/firewire/fw-ohci.c
@@ -2259,8 +2259,10 @@ static int pci_suspend(struct pci_dev *p
if (machine_is(powermac)) {
struct device_node *ofn = pci_device_to_OF_node(pdev);
- if (ofn)
+ if (ofn) {
pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 0);
+ pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 0);
+ }
}
#endif /* CONFIG_PPC_PMAC */
@@ -2277,8 +2279,10 @@ static int pci_resume(struct pci_dev *pd
if (machine_is(powermac)) {
struct device_node *ofn = pci_device_to_OF_node(pdev);
- if (ofn)
+ if (ofn) {
+ pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 1);
pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 1);
+ }
}
#endif /* CONFIG_PPC_PMAC */
--
Stefan Richter
-=====-==--- --== ----=
http://arcgraph.de/sr/
^ permalink raw reply
* [PATCH 2/4] firewire: fw-ohci: refactor probe, remove, suspend, resume
From: Stefan Richter @ 2008-03-01 11:35 UTC (permalink / raw)
To: linux1394-devel; +Cc: linuxppc-dev, linux-kernel
In-Reply-To: <tkrat.ffa17a046c55daa9@s5r6.in-berlin.de>
Clean up shared code and variable names.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
---
drivers/firewire/fw-ohci.c | 100 ++++++++++++++++++---------------------------
1 file changed, 42 insertions(+), 58 deletions(-)
Index: linux/drivers/firewire/fw-ohci.c
===================================================================
--- linux.orig/drivers/firewire/fw-ohci.c
+++ linux/drivers/firewire/fw-ohci.c
@@ -2061,17 +2061,9 @@ static const struct fw_card_driver ohci_
.stop_iso = ohci_stop_iso,
};
-static int __devinit
-pci_probe(struct pci_dev *dev, const struct pci_device_id *ent)
-{
- struct fw_ohci *ohci;
- u32 bus_options, max_receive, link_speed;
- u64 guid;
- int err;
- size_t size;
-
#ifdef CONFIG_PPC_PMAC
- /* Necessary on some machines if fw-ohci was loaded/ unloaded before */
+static void ohci_pmac_on(struct pci_dev *dev)
+{
if (machine_is(powermac)) {
struct device_node *ofn = pci_device_to_OF_node(dev);
@@ -2080,8 +2072,35 @@ pci_probe(struct pci_dev *dev, const str
pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 1);
}
}
+}
+
+static void ohci_pmac_off(struct pci_dev *dev)
+{
+ if (machine_is(powermac)) {
+ struct device_node *ofn = pci_device_to_OF_node(dev);
+
+ if (ofn) {
+ pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 0);
+ pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 0);
+ }
+ }
+}
+#else
+#define ohci_pmac_on(dev)
+#define ohci_pmac_off(dev)
#endif /* CONFIG_PPC_PMAC */
+static int __devinit
+pci_probe(struct pci_dev *dev, const struct pci_device_id *ent)
+{
+ struct fw_ohci *ohci;
+ u32 bus_options, max_receive, link_speed;
+ u64 guid;
+ int err;
+ size_t size;
+
+ ohci_pmac_on(dev);
+
ohci = kzalloc(sizeof(*ohci), GFP_KERNEL);
if (ohci == NULL) {
fw_error("Could not malloc fw_ohci data.\n");
@@ -2218,77 +2237,42 @@ static void pci_remove(struct pci_dev *d
pci_iounmap(dev, ohci->registers);
pci_release_region(dev, 0);
pci_disable_device(dev);
-
-#ifdef CONFIG_PPC_PMAC
- /* On UniNorth, power down the cable and turn off the chip clock
- * to save power on laptops */
- if (machine_is(powermac)) {
- struct device_node *ofn = pci_device_to_OF_node(dev);
-
- if (ofn) {
- pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 0);
- pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 0);
- }
- }
-#endif /* CONFIG_PPC_PMAC */
-
+ ohci_pmac_off(dev);
kfree(&ohci->card);
fw_notify("Removed fw-ohci device.\n");
}
#ifdef CONFIG_PM
-static int pci_suspend(struct pci_dev *pdev, pm_message_t state)
+static int pci_suspend(struct pci_dev *dev, pm_message_t state)
{
- struct fw_ohci *ohci = pci_get_drvdata(pdev);
+ struct fw_ohci *ohci = pci_get_drvdata(dev);
int err;
software_reset(ohci);
- free_irq(pdev->irq, ohci);
- err = pci_save_state(pdev);
+ free_irq(dev->irq, ohci);
+ err = pci_save_state(dev);
if (err) {
fw_error("pci_save_state failed\n");
return err;
}
- err = pci_set_power_state(pdev, pci_choose_state(pdev, state));
+ err = pci_set_power_state(dev, pci_choose_state(dev, state));
if (err)
fw_error("pci_set_power_state failed with %d\n", err);
-
-/* PowerMac suspend code comes last */
-#ifdef CONFIG_PPC_PMAC
- if (machine_is(powermac)) {
- struct device_node *ofn = pci_device_to_OF_node(pdev);
-
- if (ofn) {
- pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 0);
- pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 0);
- }
- }
-#endif /* CONFIG_PPC_PMAC */
+ ohci_pmac_off(dev);
return 0;
}
-static int pci_resume(struct pci_dev *pdev)
+static int pci_resume(struct pci_dev *dev)
{
- struct fw_ohci *ohci = pci_get_drvdata(pdev);
+ struct fw_ohci *ohci = pci_get_drvdata(dev);
int err;
-/* PowerMac resume code comes first */
-#ifdef CONFIG_PPC_PMAC
- if (machine_is(powermac)) {
- struct device_node *ofn = pci_device_to_OF_node(pdev);
-
- if (ofn) {
- pmac_call_feature(PMAC_FTR_1394_CABLE_POWER, ofn, 0, 1);
- pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 1);
- }
- }
-#endif /* CONFIG_PPC_PMAC */
-
- pci_set_power_state(pdev, PCI_D0);
- pci_restore_state(pdev);
- err = pci_enable_device(pdev);
+ ohci_pmac_on(dev);
+ pci_set_power_state(dev, PCI_D0);
+ pci_restore_state(dev);
+ err = pci_enable_device(dev);
if (err) {
fw_error("pci_enable_device failed\n");
return err;
--
Stefan Richter
-=====-==--- --== ----=
http://arcgraph.de/sr/
^ permalink raw reply
* [PATCH 0/4] firewire, ieee1394: bus power lost after resume (PPC PMac)
From: Stefan Richter @ 2008-03-01 11:33 UTC (permalink / raw)
To: benh; +Cc: linuxppc-dev, linux1394-devel, linux-kernel
In-Reply-To: <47C90E81.7050603@s5r6.in-berlin.de>
I wrote:
> Benjamin Herrenschmidt wrote:
> [...]
>>> @@ -2211,6 +2241,16 @@ static int pci_suspend(struct pci_dev *p
>>> if (err)
>>> fw_error("pci_set_power_state failed with %d\n", err);
>>>
>>> +/* PowerMac suspend code comes last */
>>> +#ifdef CONFIG_PPC_PMAC
>>> + if (machine_is(powermac)) {
>>> + struct device_node *ofn = pci_device_to_OF_node(pdev);
>>> +
>>> + if (ofn)
>>> + pmac_call_feature(PMAC_FTR_1394_ENABLE, ofn, 0, 0);
>>> + }
>>> +#endif /* CONFIG_PPC_PMAC */
>>
>> I wonder why we don't do the cable power thingy here...
>
> I don't know.
>
> I tested with a bus powered device now. Actually, suspend to RAM
> switches off cable power nevertheless, but resume does not switch it on
> anymore...
>
> Of course the same is true with ohci1394. Why did nobody ever complain?
> I suppose the last two users of FireWire + Linux + UniNorth rev01 don't
> use cable power or don't suspend and resume.
At least this is what the 1st generation PowerBook G4 does. I don't
know if other PPC_PMAC are affected.
I suggest we explicitly switch cable power on in .resume() but also
explicitly switch cable power off in .suspend(), so that we don't get
any surprises. (Hardware bugs related to these platform features
excepted.) Patches follow:
1/4 firewire: fw-ohci: switch on bus power after resume on PPC PMac
2/4 firewire: fw-ohci: refactor probe, remove, suspend, resume
3/4 ieee1394: ohci1394: switch on bus power after resume on PPC PMac
4/4 ieee1394: ohci1394: refactor probe, remove, suspend, resume
drivers/firewire/fw-ohci.c | 96 +++++++++++++------------------
drivers/ieee1394/ohci1394.c | 109 ++++++++++++++++--------------------
2 files changed, 91 insertions(+), 114 deletions(-)
--
Stefan Richter
-=====-==--- --== ----=
http://arcgraph.de/sr/
^ permalink raw reply
* Re: [PATCH] [POWERPC] 40X: Add Default Restart Machdep Method to 40X Platforms
From: Stefan Roese @ 2008-03-01 11:32 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Grant Erickson
In-Reply-To: <C3E49AAC.D8E4%erick205@umn.edu>
On Saturday 23 February 2008, Grant Erickson wrote:
> This patch restores the reset on restart functionality to 40x-based
> platforms that was formerly provided--but not used in arch/powerpc--by
> abort() in head_40x.S. This functionality is now provided by
> ppc40x_reset_system(char *) in a fashion similar to that of the 44x-based
> platforms.
>
> Compiled, linked and tested against the AMCC Haleakala board.
Instead of duplicating this code in platform/40x/ which is already present in
platforms/44x/misc_44x.S, why not move this misc_44x.S code into a common
place for all 4xx (40x and 44x) PPC's? There seems to be nothing 44x
specific.
I suggest to introduce platforms/4xx/misc.S or sysdev/ppc4xx_misc.S with these
functions and change the code referencing it accordingly.
Comments/thoughts?
Best regards,
Stefan
^ permalink raw reply
* [PATCH 3/3 update] firewire: fw-ohci: shut up false compiler warning on PPC32
From: Stefan Richter @ 2008-03-01 11:21 UTC (permalink / raw)
To: linux1394-devel; +Cc: linuxppc-dev, linux-kernel, Stephen Rothwell
In-Reply-To: <47C90F83.3030700@s5r6.in-berlin.de>
Shut up two "may be used uninitialised in this function" warnings due to
PPC32's implementation of dma_alloc_coherent().
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
---
drivers/firewire/fw-ohci.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-2.6.25-rc3/drivers/firewire/fw-ohci.c
===================================================================
--- linux-2.6.25-rc3.orig/drivers/firewire/fw-ohci.c
+++ linux-2.6.25-rc3/drivers/firewire/fw-ohci.c
@@ -544,7 +544,7 @@ static int
context_add_buffer(struct context *ctx)
{
struct descriptor_buffer *desc;
- dma_addr_t bus_addr;
+ dma_addr_t uninitialized_var(bus_addr);
int offset;
/*
@@ -1334,7 +1334,7 @@ ohci_set_config_rom(struct fw_card *card
unsigned long flags;
int retval = -EBUSY;
__be32 *next_config_rom;
- dma_addr_t next_config_rom_bus;
+ dma_addr_t uninitialized_var(next_config_rom_bus);
ohci = fw_ohci(card);
--
Stefan Richter
-=====-==--- --== ----=
http://arcgraph.de/sr/
^ permalink raw reply
* Re: [dtc] breaking out libfdt from dtc so other progs can use it
From: Fathi Boudra @ 2008-03-01 9:12 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Geert Uytterhoeven, David Gibson
In-Reply-To: <Pine.LNX.4.64.0802290930020.25557@vixen.sonytel.be>
> I think people are confusing source and binary packages.
>
> E.g. on Debian, the openssl source package is used to build 3 binary
> packages: openssl, libssl0.9.8, and libssl-dev. Hence to install
> applications that use libssl, you don't have to install all 3, just
> libssl0.9.8.
That make sense.
Just ask downstream (distros) to ship libfdt binaries packages.
cheers,
Fathi
^ permalink raw reply
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