[cc'd linux-kernel, linux-ide and Jeff Garzik]
Hi Roman.
you should use ./scripts/get_maintainer.pl to make sure you're cc'ing
the right people when posting patches. You should repost so that Jeff
has a copy of the patch to pick up (and add my acked-by when you do).
On Wed, Dec 16, 2009 at 6:29 AM, Roman Fietze
roman.fie...@telemotive.de wrote:
Hello Everybody,
A totally simple patch that reduces the text size as of the
ppc_6xx-size command of pata_mpc52xx by more than 10%, by reducing the
rodata size from 0x4a4 to 0x17e bytes. This is simply done by changing
the data types of the ATA timing constants.
Acked-by: Grant Likely grant.lik...@secretlab
If you are interested at all, and it's worth the trouble, here the
details:
ppc_6xx-size:
text data bss dec hex filename
old: 6532 1068 0 7600 1db0 pata_mpc52xx.o
new: 5718 1068 0 6786 1a82 pata_mpc52xx.o
The (assembler) code itself doesn't really change very much. I double
checked the final results inside mpc52xx_ata_apply_timings() and they
match.
BTW: Should I break lines at col 72 or 80?
From: Roman Fietze roman.fie...@telemotive.de
Date: Wed, 16 Dec 2009 13:10:31 +0100
Subject: [PATCH] pata_mpc52xx: reduce code size by simple change of constant
data types
Signed-off-by: Roman Fietze roman.fie...@telemotive.de
---
drivers/ata/pata_mpc52xx.c | 78
++--
1 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/drivers/ata/pata_mpc52xx.c b/drivers/ata/pata_mpc52xx.c
index 2bc2dbe..e4e5e82 100644
--- a/drivers/ata/pata_mpc52xx.c
+++ b/drivers/ata/pata_mpc52xx.c
@@ -64,13 +64,13 @@ struct mpc52xx_ata_priv {
/* ATAPI-4 PIO specs (in ns) */
-static const int ataspec_t0[5] = {600, 383, 240, 180, 120};
-static const int ataspec_t1[5] = { 70, 50, 30, 30, 25};
-static const int ataspec_t2_8[5] = {290, 290, 290, 80, 70};
-static const int ataspec_t2_16[5] = {165, 125, 100, 80, 70};
-static const int ataspec_t2i[5] = { 0, 0, 0, 70, 25};
-static const int ataspec_t4[5] = { 30, 20, 15, 10, 10};
-static const int ataspec_ta[5] = { 35, 35, 35, 35, 35};
+static const u16 ataspec_t0[5] = {600, 383, 240, 180, 120};
+static const u16 ataspec_t1[5] = { 70, 50, 30, 30, 25};
+static const u16 ataspec_t2_8[5] = {290, 290, 290, 80, 70};
+static const u16 ataspec_t2_16[5] = {165, 125, 100, 80, 70};
+static const u16 ataspec_t2i[5] = { 0, 0, 0, 70, 25};
+static const u16 ataspec_t4[5] = { 30, 20, 15, 10, 10};
+static const u16 ataspec_ta[5] = { 35, 35, 35, 35, 35};
#define CALC_CLKCYC(c,v) v)+(c)-1)/(c)))
@@ -78,13 +78,13 @@ static const int ataspec_ta[5] = { 35, 35, 35, 35,
35};
/* ATAPI-4 MDMA specs (in clocks) */
struct mdmaspec {
- u32 t0M;
- u32 td;
- u32 th;
- u32 tj;
- u32 tkw;
- u32 tm;
- u32 tn;
+ u8 t0M;
+ u8 td;
+ u8 th;
+ u8 tj;
+ u8 tkw;
+ u8 tm;
+ u8 tn;
};
static const struct mdmaspec mdmaspec66[3] = {
@@ -101,23 +101,23 @@ static const struct mdmaspec mdmaspec132[3] = {
/* ATAPI-4 UDMA specs (in clocks) */
struct udmaspec {
- u32 tcyc;
- u32 t2cyc;
- u32 tds;
- u32 tdh;
- u32 tdvs;
- u32 tdvh;
- u32 tfs;
- u32 tli;
- u32 tmli;
- u32 taz;
- u32 tzah;
- u32 tenv;
- u32 tsr;
- u32 trfs;
- u32 trp;
- u32 tack;
- u32 tss;
+ u8 tcyc;
+ u8 t2cyc;
+ u8 tds;
+ u8 tdh;
+ u8 tdvs;
+ u8 tdvh;
+ u8 tfs;
+ u8 tli;
+ u8 tmli;
+ u8 taz;
+ u8 tzah;
+ u8 tenv;
+ u8 tsr;
+ u8 trfs;
+ u8 trp;
+ u8 tack;
+ u8 tss;
};
static const struct udmaspec udmaspec66[6] = {
@@ -270,7 +270,7 @@ mpc52xx_ata_compute_pio_timings(struct mpc52xx_ata_priv
*priv, int dev, int pio)
{
struct mpc52xx_ata_timings *timing = priv-timings[dev];
unsigned int ipb_period = priv-ipb_period;
- unsigned int t0, t1, t2_8, t2_16, t2i, t4, ta;
+ u32 t0, t1, t2_8, t2_16, t2i, t4, ta;
if ((pio 0) || (pio 4))
return -EINVAL;
@@ -299,8 +299,8 @@ mpc52xx_ata_compute_mdma_timings(struct mpc52xx_ata_priv
*priv, int dev,
if (speed 0 || speed 2)
return -EINVAL;
- t-mdma1 = (s-t0M 24) | (s-td 16) | (s-tkw 8) | (s-tm);
- t-mdma2 = (s-th 24) | (s-tj 16) | (s-tn 8);
+ t-mdma1 = ((u32)s-t0M 24) | ((u32)s-td 16) | ((u32)s-tkw
8) | s-tm;
+ t-mdma2 = ((u32)s-th 24) | ((u32)s-tj 16) | ((u32)s-tn
8);
t-using_udma = 0;
return 0;
@@ -316,11 +316,11 @@ mpc52xx_ata_compute_udma_timings(struct
mpc52xx_ata_priv *priv, int dev,
if (speed 0 || speed 2)
return -EINVAL;