* [PATCH] spi_mpc83xx.c, support QE enabled 83xx CPU's like mpc832x
@ 2007-06-30 14:22 Joakim Tjernlund
[not found] ` <1183213370.20673.100.camel-/EMGr9iCeazgSi9v3i4K4Pmbkio/vSLMs0AfqQuZ5sE@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Joakim Tjernlund @ 2007-06-30 14:22 UTC (permalink / raw)
To: 'David Brownell', Kumar Gala, spi-devel-general
Quicc Engine enabled mpc83xx CPU's has a somewhat different HW interface
to the SPI controller. This patch adds a qe_mode knob that sees to that
needed adaptions are performed.
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund-SNLAxHN9vbcOP4wsBPIw7w@public.gmane.org>
---
This is a resend of a patch Kumar and I tossed back and forth a few
times.
Jocke
diff --git a/drivers/spi/spi_mpc83xx.c b/drivers/spi/spi_mpc83xx.c
index e9798bf..c571f7c 100644
--- a/drivers/spi/spi_mpc83xx.c
+++ b/drivers/spi/spi_mpc83xx.c
@@ -47,6 +47,7 @@ struct mpc83xx_spi_reg {
#define SPMODE_ENABLE (1 << 24)
#define SPMODE_LEN(x) ((x) << 20)
#define SPMODE_PM(x) ((x) << 16)
+#define SPMODE_OP (1 << 14)
/*
* Default for SPI Mode:
@@ -85,6 +86,11 @@ struct mpc83xx_spi {
unsigned nsecs; /* (clock cycle time)/2 */
u32 sysclk;
+ u32 rx_shift; /* amount to adjust RX data regs if in qe mode */
+ u32 tx_shift; /* amount to adjust TX data regs if in qe mode */
+
+ bool qe_mode;
+
void (*activate_cs) (u8 cs, u8 polarity);
void (*deactivate_cs) (u8 cs, u8 polarity);
};
@@ -103,7 +109,7 @@ static inline u32 mpc83xx_spi_read_reg(__be32 __iomem * reg)
void mpc83xx_spi_rx_buf_##type(u32 data, struct mpc83xx_spi *mpc83xx_spi) \
{ \
type * rx = mpc83xx_spi->rx; \
- *rx++ = (type)data; \
+ *rx++ = (type)(data >> mpc83xx_spi->rx_shift); \
mpc83xx_spi->rx = rx; \
}
@@ -114,7 +120,7 @@ u32 mpc83xx_spi_tx_buf_##type(struct mpc83xx_spi *mpc83xx_spi) \
const type * tx = mpc83xx_spi->tx; \
if (!tx) \
return 0; \
- data = *tx++; \
+ data = *tx++ << mpc83xx_spi->tx_shift; \
mpc83xx_spi->tx = tx; \
return data; \
}
@@ -197,12 +203,22 @@ int mpc83xx_spi_setup_transfer(struct spi_device *spi, struct spi_transfer *t)
|| ((bits_per_word > 16) && (bits_per_word != 32)))
return -EINVAL;
+ mpc83xx_spi->rx_shift = 0;
+ mpc83xx_spi->tx_shift = 0;
if (bits_per_word <= 8) {
mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u8;
mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u8;
+ if (mpc83xx_spi->qe_mode) {
+ mpc83xx_spi->rx_shift = 16;
+ mpc83xx_spi->tx_shift = 24;
+ }
} else if (bits_per_word <= 16) {
mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u16;
mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u16;
+ if (mpc83xx_spi->qe_mode) {
+ mpc83xx_spi->rx_shift = 16;
+ mpc83xx_spi->tx_shift = 16;
+ }
} else if (bits_per_word <= 32) {
mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u32;
mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u32;
@@ -371,7 +387,6 @@ static int __init mpc83xx_spi_probe(struct platform_device *dev)
ret = -ENODEV;
goto free_master;
}
-
mpc83xx_spi = spi_master_get_devdata(master);
mpc83xx_spi->bitbang.master = spi_master_get(master);
mpc83xx_spi->bitbang.chipselect = mpc83xx_spi_chipselect;
@@ -380,9 +395,17 @@ static int __init mpc83xx_spi_probe(struct platform_device *dev)
mpc83xx_spi->sysclk = pdata->sysclk;
mpc83xx_spi->activate_cs = pdata->activate_cs;
mpc83xx_spi->deactivate_cs = pdata->deactivate_cs;
+ mpc83xx_spi->qe_mode = pdata->qe_mode;
mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u8;
mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u8;
+ mpc83xx_spi->rx_shift = 0;
+ mpc83xx_spi->tx_shift = 0;
+ if (mpc83xx_spi->qe_mode) {
+ mpc83xx_spi->rx_shift = 16;
+ mpc83xx_spi->tx_shift = 24;
+ }
+
mpc83xx_spi->bitbang.master->setup = mpc83xx_spi_setup;
init_completion(&mpc83xx_spi->done);
@@ -417,6 +440,9 @@ static int __init mpc83xx_spi_probe(struct platform_device *dev)
/* Enable SPI interface */
regval = pdata->initial_spmode | SPMODE_INIT_VAL | SPMODE_ENABLE;
+ if (pdata->qe_mode)
+ regval |= SPMODE_OP;
+
mpc83xx_spi_write_reg(&mpc83xx_spi->base->mode, regval);
ret = spi_bitbang_start(&mpc83xx_spi->bitbang);
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] spi_mpc83xx.c, support QE enabled 83xx CPU's like mpc832x
[not found] ` <1183213370.20673.100.camel-/EMGr9iCeazgSi9v3i4K4Pmbkio/vSLMs0AfqQuZ5sE@public.gmane.org>
@ 2007-06-30 14:55 ` Joakim Tjernlund
[not found] ` <1183215355.20673.106.camel-/EMGr9iCeazgSi9v3i4K4Pmbkio/vSLMs0AfqQuZ5sE@public.gmane.org>
2007-06-30 15:02 ` David Brownell
1 sibling, 1 reply; 5+ messages in thread
From: Joakim Tjernlund @ 2007-06-30 14:55 UTC (permalink / raw)
To: 'David Brownell'; +Cc: spi-devel-general
> This is a resend of a patch Kumar and I tossed back and forth a few
> times.
>
> Jocke
Quicc Engine enabled mpc83xx CPU's has a somewhat different HW interface
to the SPI controller. This patch adds a qe_mode knob that sees to that
needed adaptions are performed.
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund-SNLAxHN9vbcOP4wsBPIw7w@public.gmane.org>
---
OOPS, forgot to add a small part, resending
diff --git a/drivers/spi/spi_mpc83xx.c b/drivers/spi/spi_mpc83xx.c
index e9798bf..c571f7c 100644
--- a/drivers/spi/spi_mpc83xx.c
+++ b/drivers/spi/spi_mpc83xx.c
@@ -47,6 +47,7 @@ struct mpc83xx_spi_reg {
#define SPMODE_ENABLE (1 << 24)
#define SPMODE_LEN(x) ((x) << 20)
#define SPMODE_PM(x) ((x) << 16)
+#define SPMODE_OP (1 << 14)
/*
* Default for SPI Mode:
@@ -85,6 +86,11 @@ struct mpc83xx_spi {
unsigned nsecs; /* (clock cycle time)/2 */
u32 sysclk;
+ u32 rx_shift; /* amount to adjust RX data regs if in qe mode */
+ u32 tx_shift; /* amount to adjust TX data regs if in qe mode */
+
+ bool qe_mode;
+
void (*activate_cs) (u8 cs, u8 polarity);
void (*deactivate_cs) (u8 cs, u8 polarity);
};
@@ -103,7 +109,7 @@ static inline u32 mpc83xx_spi_read_reg(__be32 __iomem * reg)
void mpc83xx_spi_rx_buf_##type(u32 data, struct mpc83xx_spi *mpc83xx_spi) \
{ \
type * rx = mpc83xx_spi->rx; \
- *rx++ = (type)data; \
+ *rx++ = (type)(data >> mpc83xx_spi->rx_shift); \
mpc83xx_spi->rx = rx; \
}
@@ -114,7 +120,7 @@ u32 mpc83xx_spi_tx_buf_##type(struct mpc83xx_spi *mpc83xx_spi) \
const type * tx = mpc83xx_spi->tx; \
if (!tx) \
return 0; \
- data = *tx++; \
+ data = *tx++ << mpc83xx_spi->tx_shift; \
mpc83xx_spi->tx = tx; \
return data; \
}
@@ -197,12 +203,22 @@ int mpc83xx_spi_setup_transfer(struct spi_device *spi, struct spi_transfer *t)
|| ((bits_per_word > 16) && (bits_per_word != 32)))
return -EINVAL;
+ mpc83xx_spi->rx_shift = 0;
+ mpc83xx_spi->tx_shift = 0;
if (bits_per_word <= 8) {
mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u8;
mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u8;
+ if (mpc83xx_spi->qe_mode) {
+ mpc83xx_spi->rx_shift = 16;
+ mpc83xx_spi->tx_shift = 24;
+ }
} else if (bits_per_word <= 16) {
mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u16;
mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u16;
+ if (mpc83xx_spi->qe_mode) {
+ mpc83xx_spi->rx_shift = 16;
+ mpc83xx_spi->tx_shift = 16;
+ }
} else if (bits_per_word <= 32) {
mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u32;
mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u32;
@@ -371,7 +387,6 @@ static int __init mpc83xx_spi_probe(struct platform_device *dev)
ret = -ENODEV;
goto free_master;
}
-
mpc83xx_spi = spi_master_get_devdata(master);
mpc83xx_spi->bitbang.master = spi_master_get(master);
mpc83xx_spi->bitbang.chipselect = mpc83xx_spi_chipselect;
@@ -380,9 +395,17 @@ static int __init mpc83xx_spi_probe(struct platform_device *dev)
mpc83xx_spi->sysclk = pdata->sysclk;
mpc83xx_spi->activate_cs = pdata->activate_cs;
mpc83xx_spi->deactivate_cs = pdata->deactivate_cs;
+ mpc83xx_spi->qe_mode = pdata->qe_mode;
mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u8;
mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u8;
+ mpc83xx_spi->rx_shift = 0;
+ mpc83xx_spi->tx_shift = 0;
+ if (mpc83xx_spi->qe_mode) {
+ mpc83xx_spi->rx_shift = 16;
+ mpc83xx_spi->tx_shift = 24;
+ }
+
mpc83xx_spi->bitbang.master->setup = mpc83xx_spi_setup;
init_completion(&mpc83xx_spi->done);
@@ -417,6 +440,9 @@ static int __init mpc83xx_spi_probe(struct platform_device *dev)
/* Enable SPI interface */
regval = pdata->initial_spmode | SPMODE_INIT_VAL | SPMODE_ENABLE;
+ if (pdata->qe_mode)
+ regval |= SPMODE_OP;
+
mpc83xx_spi_write_reg(&mpc83xx_spi->base->mode, regval);
ret = spi_bitbang_start(&mpc83xx_spi->bitbang);
diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h
index 73710d6..2f69a56 100644
--- a/include/linux/fsl_devices.h
+++ b/include/linux/fsl_devices.h
@@ -112,7 +112,7 @@ struct fsl_usb2_platform_data {
struct fsl_spi_platform_data {
u32 initial_spmode; /* initial SPMODE value */
u16 bus_num;
-
+ bool qe_mode;
/* board specific information */
u16 max_chipselect;
void (*activate_cs)(u8 cs, u8 polarity);
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] spi_mpc83xx.c, support QE enabled 83xx CPU's like mpc832x
[not found] ` <1183213370.20673.100.camel-/EMGr9iCeazgSi9v3i4K4Pmbkio/vSLMs0AfqQuZ5sE@public.gmane.org>
2007-06-30 14:55 ` Joakim Tjernlund
@ 2007-06-30 15:02 ` David Brownell
1 sibling, 0 replies; 5+ messages in thread
From: David Brownell @ 2007-06-30 15:02 UTC (permalink / raw)
To: joakim.tjernlund-SNLAxHN9vbcOP4wsBPIw7w; +Cc: spi-devel-general
On Saturday 30 June 2007, Joakim Tjernlund wrote:
> Quicc Engine enabled mpc83xx CPU's has a somewhat different HW interface
> to the SPI controller. This patch adds a qe_mode knob that sees to that
> needed adaptions are performed.
But nothing seems to add it to <linux/fsl_devices.h> ...
so this won't build. Right?
> Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund-SNLAxHN9vbcOP4wsBPIw7w@public.gmane.org>
> ---
>
> This is a resend of a patch Kumar and I tossed back and forth a few
> times.
>
> Jocke
>
> diff --git a/drivers/spi/spi_mpc83xx.c b/drivers/spi/spi_mpc83xx.c
> index e9798bf..c571f7c 100644
> --- a/drivers/spi/spi_mpc83xx.c
> +++ b/drivers/spi/spi_mpc83xx.c
> @@ -47,6 +47,7 @@ struct mpc83xx_spi_reg {
> #define SPMODE_ENABLE (1 << 24)
> #define SPMODE_LEN(x) ((x) << 20)
> #define SPMODE_PM(x) ((x) << 16)
> +#define SPMODE_OP (1 << 14)
>
> /*
> * Default for SPI Mode:
> @@ -85,6 +86,11 @@ struct mpc83xx_spi {
> unsigned nsecs; /* (clock cycle time)/2 */
>
> u32 sysclk;
> + u32 rx_shift; /* amount to adjust RX data regs if in qe mode */
> + u32 tx_shift; /* amount to adjust TX data regs if in qe mode */
> +
> + bool qe_mode;
> +
> void (*activate_cs) (u8 cs, u8 polarity);
> void (*deactivate_cs) (u8 cs, u8 polarity);
> };
> @@ -103,7 +109,7 @@ static inline u32 mpc83xx_spi_read_reg(__be32 __iomem * reg)
> void mpc83xx_spi_rx_buf_##type(u32 data, struct mpc83xx_spi *mpc83xx_spi) \
> { \
> type * rx = mpc83xx_spi->rx; \
> - *rx++ = (type)data; \
> + *rx++ = (type)(data >> mpc83xx_spi->rx_shift); \
> mpc83xx_spi->rx = rx; \
> }
>
> @@ -114,7 +120,7 @@ u32 mpc83xx_spi_tx_buf_##type(struct mpc83xx_spi *mpc83xx_spi) \
> const type * tx = mpc83xx_spi->tx; \
> if (!tx) \
> return 0; \
> - data = *tx++; \
> + data = *tx++ << mpc83xx_spi->tx_shift; \
> mpc83xx_spi->tx = tx; \
> return data; \
> }
> @@ -197,12 +203,22 @@ int mpc83xx_spi_setup_transfer(struct spi_device *spi, struct spi_transfer *t)
> || ((bits_per_word > 16) && (bits_per_word != 32)))
> return -EINVAL;
>
> + mpc83xx_spi->rx_shift = 0;
> + mpc83xx_spi->tx_shift = 0;
> if (bits_per_word <= 8) {
> mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u8;
> mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u8;
> + if (mpc83xx_spi->qe_mode) {
> + mpc83xx_spi->rx_shift = 16;
> + mpc83xx_spi->tx_shift = 24;
> + }
> } else if (bits_per_word <= 16) {
> mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u16;
> mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u16;
> + if (mpc83xx_spi->qe_mode) {
> + mpc83xx_spi->rx_shift = 16;
> + mpc83xx_spi->tx_shift = 16;
> + }
> } else if (bits_per_word <= 32) {
> mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u32;
> mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u32;
> @@ -371,7 +387,6 @@ static int __init mpc83xx_spi_probe(struct platform_device *dev)
> ret = -ENODEV;
> goto free_master;
> }
> -
> mpc83xx_spi = spi_master_get_devdata(master);
> mpc83xx_spi->bitbang.master = spi_master_get(master);
> mpc83xx_spi->bitbang.chipselect = mpc83xx_spi_chipselect;
> @@ -380,9 +395,17 @@ static int __init mpc83xx_spi_probe(struct platform_device *dev)
> mpc83xx_spi->sysclk = pdata->sysclk;
> mpc83xx_spi->activate_cs = pdata->activate_cs;
> mpc83xx_spi->deactivate_cs = pdata->deactivate_cs;
> + mpc83xx_spi->qe_mode = pdata->qe_mode;
> mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u8;
> mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u8;
>
> + mpc83xx_spi->rx_shift = 0;
> + mpc83xx_spi->tx_shift = 0;
> + if (mpc83xx_spi->qe_mode) {
> + mpc83xx_spi->rx_shift = 16;
> + mpc83xx_spi->tx_shift = 24;
> + }
> +
> mpc83xx_spi->bitbang.master->setup = mpc83xx_spi_setup;
> init_completion(&mpc83xx_spi->done);
>
> @@ -417,6 +440,9 @@ static int __init mpc83xx_spi_probe(struct platform_device *dev)
>
> /* Enable SPI interface */
> regval = pdata->initial_spmode | SPMODE_INIT_VAL | SPMODE_ENABLE;
> + if (pdata->qe_mode)
> + regval |= SPMODE_OP;
> +
> mpc83xx_spi_write_reg(&mpc83xx_spi->base->mode, regval);
>
> ret = spi_bitbang_start(&mpc83xx_spi->bitbang);
>
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] spi_mpc83xx.c, support QE enabled 83xx CPU's like mpc832x
[not found] ` <1183215355.20673.106.camel-/EMGr9iCeazgSi9v3i4K4Pmbkio/vSLMs0AfqQuZ5sE@public.gmane.org>
@ 2007-06-30 15:11 ` David Brownell
[not found] ` <200706300811.56870.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: David Brownell @ 2007-06-30 15:11 UTC (permalink / raw)
To: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
joakim.tjernlund-SNLAxHN9vbcOP4wsBPIw7w
On Saturday 30 June 2007, Joakim Tjernlund wrote:
> @@ -197,12 +203,22 @@ int mpc83xx_spi_setup_transfer(struct spi_device *spi, struct spi_transfer *t)
> || ((bits_per_word > 16) && (bits_per_word != 32)))
> return -EINVAL;
>
> + mpc83xx_spi->rx_shift = 0;
> + mpc83xx_spi->tx_shift = 0;
> if (bits_per_word <= 8) {
> mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u8;
> mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u8;
> + if (mpc83xx_spi->qe_mode) {
> + mpc83xx_spi->rx_shift = 16;
This shouldn't be "8" or "24"?
> + mpc83xx_spi->tx_shift = 24;
> + }
... I got the update with the missing header file.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] spi_mpc83xx.c, support QE enabled 83xx CPU's like mpc832x
[not found] ` <200706300811.56870.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
@ 2007-06-30 15:17 ` Joakim Tjernlund
0 siblings, 0 replies; 5+ messages in thread
From: Joakim Tjernlund @ 2007-06-30 15:17 UTC (permalink / raw)
To: 'David Brownell',
spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
> -----Original Message-----
> From: David Brownell [mailto:david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org]
> Sent: den 30 juni 2007 17:12
> To: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org;
> joakim.tjernlund-SNLAxHN9vbcOP4wsBPIw7w@public.gmane.org
> Subject: Re: [spi-devel-general] [PATCH] spi_mpc83xx.c,
> support QE enabled 83xx CPU's like mpc832x
>
> On Saturday 30 June 2007, Joakim Tjernlund wrote:
>
> > @@ -197,12 +203,22 @@ int mpc83xx_spi_setup_transfer(struct
> spi_device *spi, struct spi_transfer *t)
> > || ((bits_per_word > 16) && (bits_per_word != 32)))
> > return -EINVAL;
> >
> > + mpc83xx_spi->rx_shift = 0;
> > + mpc83xx_spi->tx_shift = 0;
> > if (bits_per_word <= 8) {
> > mpc83xx_spi->get_rx = mpc83xx_spi_rx_buf_u8;
> > mpc83xx_spi->get_tx = mpc83xx_spi_tx_buf_u8;
> > + if (mpc83xx_spi->qe_mode) {
> > + mpc83xx_spi->rx_shift = 16;
>
> This shouldn't be "8" or "24"?
No :)
This SPI HW looks more and more like a design mistake. :(
>
> > + mpc83xx_spi->tx_shift = 24;
> > + }
>
> ... I got the update with the missing header file.
Good
Jocke
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-06-30 15:17 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-30 14:22 [PATCH] spi_mpc83xx.c, support QE enabled 83xx CPU's like mpc832x Joakim Tjernlund
[not found] ` <1183213370.20673.100.camel-/EMGr9iCeazgSi9v3i4K4Pmbkio/vSLMs0AfqQuZ5sE@public.gmane.org>
2007-06-30 14:55 ` Joakim Tjernlund
[not found] ` <1183215355.20673.106.camel-/EMGr9iCeazgSi9v3i4K4Pmbkio/vSLMs0AfqQuZ5sE@public.gmane.org>
2007-06-30 15:11 ` David Brownell
[not found] ` <200706300811.56870.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2007-06-30 15:17 ` Joakim Tjernlund
2007-06-30 15:02 ` David Brownell
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.