Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 12096
b: refs/heads/master
c: 6ff8f59
h: refs/heads/master
v: v3
  • Loading branch information
Ben Dooks authored and Russell King committed Nov 1, 2005
1 parent 4d32673 commit 92af865
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e838ffc2e5c9afa81451cf21dcd3f3246e2adcd2
refs/heads/master: 6ff8f59f13974ab54086c5c86898647642bc77dd
41 changes: 40 additions & 1 deletion trunk/Documentation/arm/Samsung-S3C24XX/Overview.txt
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,8 @@ Adding New Machines

Any large scale modifications, or new drivers should be discussed
on the ARM kernel mailing list (linux-arm-kernel) before being
attempted.
attempted. See http://www.arm.linux.org.uk/mailinglists/ for the
mailing list information.


NAND
Expand Down Expand Up @@ -120,6 +121,43 @@ Clock Management
various clock units


Platform Data
-------------

Whenever a device has platform specific data that is specified
on a per-machine basis, care should be taken to ensure the
following:

1) that default data is not left in the device to confuse the
driver if a machine does not set it at startup

2) the data should (if possible) be marked as __initdata,
to ensure that the data is thrown away if the machine is
not the one currently in use.

The best way of doing this is to make a function that
kmalloc()s an area of memory, and copies the __initdata
and then sets the relevant device's platform data. Making
the function `__init` takes care of ensuring it is discarded
with the rest of the initialisation code

static __init void s3c24xx_xxx_set_platdata(struct xxx_data *pd)
{
struct s3c2410_xxx_mach_info *npd;

npd = kmalloc(sizeof(struct s3c2410_xxx_mach_info), GFP_KERNEL);
if (npd) {
memcpy(npd, pd, sizeof(struct s3c2410_xxx_mach_info));
s3c_device_xxx.dev.platform_data = npd;
} else {
printk(KERN_ERR "no memory for xxx platform data\n");
}
}

Note, since the code is marked as __init, it should not be
exported outside arch/arm/mach-s3c2410/, or exported to
modules via EXPORT_SYMBOL() and related functions.

Port Contributors
-----------------

Expand Down Expand Up @@ -149,6 +187,7 @@ Document Changes
06 Mar 2005 - BJD - Added Christer Weinigel
08 Mar 2005 - BJD - Added LCVR to list of people, updated introduction
08 Mar 2005 - BJD - Added section on adding machines
09 Sep 2005 - BJD - Added section on platform data

Document Author
---------------
Expand Down

0 comments on commit 92af865

Please sign in to comment.