Thread (1 message) 1 message, 1 author, 2005-06-03

Re: [PATCH][1/5] RapidIO support: core

From: Matt Porter <mporter@kernel.crashing.org>
Date: 2005-06-03 21:24:54
Also in: lkml

On Fri, Jun 03, 2005 at 12:11:33AM -0700, Greg KH wrote:
On Thu, Jun 02, 2005 at 02:03:59PM -0700, Matt Porter wrote:
quoted
+RIO_LOP_READ(8, u8, 1)
+    RIO_LOP_READ(16, u16, 2)
+    RIO_LOP_READ(32, u32, 4)
+    RIO_LOP_WRITE(8, u8, 1)
+    RIO_LOP_WRITE(16, u16, 2)
+    RIO_LOP_WRITE(32, u32, 4)
+
+    EXPORT_SYMBOL(__rio_local_read_config_8);
+EXPORT_SYMBOL(__rio_local_read_config_16);
+EXPORT_SYMBOL(__rio_local_read_config_32);
+EXPORT_SYMBOL(__rio_local_write_config_8);
+EXPORT_SYMBOL(__rio_local_write_config_16);
+EXPORT_SYMBOL(__rio_local_write_config_32);
Odd indenting here.
Lindent got me here. I didn't doublecheck its munging on this file.
Updated that.
And why the __rio* stuff for public functions?  You should drop the "__"
part.
This may seem silly but I was trying to have the automagic DocBook
stuff pick up the complete set of kernel interfaces without have
to duplicate anything in the DocBook template.  Since these functions
are macro-generated I could have a comment block for each one that
the docs stuff would pick up.  So, I put rio_local_*() up in
include/linux/rio_drv.h as inline wrappers around these implementations.

Too ugly to live? Maybe there's a better way to make this work, it
would nice to have it autogenerate the docs.

<snip>
quoted
+EXPORT_SYMBOL(rio_mport_send_doorbell);
Just a question, should these be EXPORT_SYMBOL_GPL() as this is GPL
code?  Just to be explicit that is.
Good point. I'm going to go through and make all RIO interfaces
EXPORT_SYMBOL_GPL(). Embedded folks need the extra encouragement
to do the right thing when writing drivers.
quoted
+static ssize_t
+rio_read_config(struct kobject *kobj, char *buf, loff_t off, size_t count)
<snip>

You might want to compare this to the recent changes in the 2.6.12-rc
kernels in the pci sysfs config code.  There were some 64 and endian
issues fixed up there that you might want to make sure are also done
properly here.
I see that in the current git tree.  I think some of it applies (note
that RIO is a big-endian system, not surprising since it originates
from Motorola/Fscale), I'll look more closely and add the appropriate
fixes into the next patch.  Since Andrew took these into -mm I will
just post patches against -mm.
quoted
+static struct bin_attribute rio_config_attr = {
+	.attr = {
+		 .name = "config",
+		 .mode = S_IRUGO | S_IWUSR,
+		 .owner = THIS_MODULE,
+		 },
+	.size = 0x200000,
+	.read = rio_read_config,
+	.write = rio_write_config,
+};
Wow, that's a huge config space (just a comment, not an issue...)
Heh, yes.  The "maintenance packets" that are used to access config
space on RIO devices have a 21-bit offset field.  I guess the
spec guys didn't want to run out of config space too quickly. :)

-Matt
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help