Hi - I've been looking at the i2c driver for MPC8260. It's the first linux driver I have studied. I have a couple of questions.
What experimental results or theory are behind the timeout values chosen when waiting for an interrupt from a write transaction?
Also: in the drivers/i2c/i2c-algo-cpm.c or i2c-algo-8xx.c file, I see the following a few times. What two chip errata are the comments referring to? A specific errata number would be enlightening.
---------snip
/* Chip errata, clear enable.
*/
i2c->i2c_i2mod = 0;
---------snip
/* Chip bug, set enable here */
save_flags(flags); cli();
i2c->i2c_i2cmr = 0x13; /* Enable some interupts */
i2c->i2c_i2cer = 0xff;
i2c->i2c_i2mod = 1; /* Enable */
i2c->i2c_i2com = 0x81; /* Start master */
----------snip
Thanks for your attention -
--
Michael D. Barker, Motorola SPS Canada
This email along with any attachments is classified as:
[x] General business information
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Also: in the drivers/i2c/i2c-algo-cpm.c or i2c-algo-8xx.c file, I see the following a few times. What two chip errata
are the comments referring to? A specific errata number would be enlightening.
I think these refer to older revision of mpc8xx CPU. In the mpc860 only the latest CPU rev(D4)
has all relevant I2C bugs fixed. The fix below does not work well in my MPC860(rev D4). I think
it's because I2C is disabled before it had a chence to generate a proper STOP condition
and that hangs my DS1337 RTC clock badly(need to reboot to fix it). The driver(i2c-algo-8xx.c) that
comes with the kernel has other severe bugs(memory corruption etc.) as well.
---------snip
/* Chip errata, clear enable.
*/
i2c->i2c_i2mod = 0;
---------snip
/* Chip bug, set enable here */
save_flags(flags); cli();
i2c->i2c_i2cmr = 0x13; /* Enable some interupts */
i2c->i2c_i2cer = 0xff;
i2c->i2c_i2mod = 1; /* Enable */
i2c->i2c_i2com = 0x81; /* Start master */
----------snip
Thanks for your attention -
From: Dan Malek <hidden> Date: 2002-10-10 16:18:32
Joakim Tjernlund wrote:
> .... The driver(i2c-algo-8xx.c) that
comes with the kernel has other severe bugs(memory corruption etc.) as well.
Just toggle the bits in software. I never saw an application where the I2C
controller provided a performance advantage. It's lots of software to execute,
along with all of the interrupt handling and stuff, so you just spend lots of
overhead not making any other progress.
Make sure you carefully analyze the entire system performance advantages.
Using the controller assitance just because it is there isn't always the
proper solution. Same is true for the SPI.
-- Dan
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
From: Dr. Craig Hollabaugh <hidden> Date: 2002-10-10 16:35:42
Joakim Tjernlund wrote:
> .... The driver(i2c-algo-8xx.c) that
quoted
comes with the kernel has other severe bugs(memory corruption etc.) as well.
Dan Wrote
Just toggle the bits in software. I never saw an application where the I2C
controller provided a performance advantage. It's lots of software to execute,
along with all of the interrupt handling and stuff, so you just spend lots of
overhead not making any other progress.
Make sure you carefully analyze the entire system performance advantages.
Using the controller assitance just because it is there isn't always the
proper solution. Same is true for the SPI.
Joakim Tjernlund wrote:
> .... The driver(i2c-algo-8xx.c) that
quoted
comes with the kernel has other severe bugs(memory corruption etc.) as well.
Just toggle the bits in software. I never saw an application where the I2C
controller provided a performance advantage. It's lots of software to execute,
along with all of the interrupt handling and stuff, so you just spend lots of
overhead not making any other progress.
I2C speed is not very important to me, but freeing up the CPU to do other things is. If
there are just a few bytes data to read/write it probably does not matter, but if you
read/write I2C memories(>128 bytes) it will matter and the I2C controller will make
a difference. One could also adjust the i2c-algo-8xx.c to busy wait for small reads/writes
instead of using interrupts if the interrupt handling overhead is significant.
Anyway I have fixed the bugs in i2c-algo-8xx.c driver and it's working great for me
so I think I will stick with it for the time being.
Thanks
Jocke
Make sure you carefully analyze the entire system performance advantages.
Using the controller assitance just because it is there isn't always the
proper solution. Same is true for the SPI.
Anyway I have fixed the bugs in i2c-algo-8xx.c driver and it's working great for me
so I think I will stick with it for the time being.
Could you please post the fixes on the list? I also might want to use them.
Thanks,
Bart
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
As far as I understand is the i2c not 'realy' a part of the Linux source (I think
on http://www2.lm-sensors.nu you find the I2C maintainers which results in all kind
off problems with the drivers :(
Cheers,
Bart
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
From: Stephan Linke <hidden> Date: 2002-10-11 12:02:00
Hi,
I had a look at you code. Some of the changes I already did in my code. :)
I couldn't find any thing that looks like it's fixing the memory problem
that you mentioned. I'm looking for a memory problem by my self and I wonder
what you might have figured out. Could you tell me more details?
Regards, Stephan
-----Original Message-----
From: owner-linuxppc-embedded@lists.linuxppc.org
[mailto:owner-linuxppc-embedded@lists.linuxppc.org]On Behalf Of Joakim
Tjernlund
Sent: Freitag, 11. Oktober 2002 11:12
To: bart@ardistech.com
Cc: linuxppc-embedded@lists.linuxppc.org
Subject: RE: 8xx i2c refers to unspecified chip errata
OK, here it is.
Perhaps someone can add it to the ppctree?
Jocke
quoted
Hi Joakim,
quoted
Anyway I have fixed the bugs in i2c-algo-8xx.c driver and
it's working great for me
quoted
quoted
so I think I will stick with it for the time being.
Could you please post the fixes on the list? I also might want
I had a look at you code. Some of the changes I already did in my code. :)
I couldn't find any thing that looks like it's fixing the memory problem
that you mentioned. I'm looking for a memory problem by my self and I wonder
what you might have figured out.
You're sure it not a cache invalidate problem you're looking at?
Cheers,
Bart
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
From: Stephan Linke <hidden> Date: 2002-10-11 12:31:37
Hi Bart and Joakim,
Well. No, I'm not shure. But I see what you mean Bart. :) I'll see what
happens now.
And I have a question to Joakim. In your code you wrote (cpm_iic_init):
i2c->i2c_i2mod = 0x80; /* Filter clock */
I think this is not what you intended. I didn't find that bit (bit 0) in my
862 manual. But there's the FLT flag (bit 4) that matches your comment. So I
think It should be:
i2c->i2c_i2mod = 0x08; /* Filter clock */
Thanks, Stephan
-----Original Message-----
From: bart [mailto:bart]On Behalf Of bart@ardistech.com
Sent: Freitag, 11. Oktober 2002 14:15
To: Stephan Linke
Cc: Linuxppc-Embedded
Subject: Re: 8xx i2c refers to unspecified chip errata
Hi Stephan,
quoted
I had a look at you code. Some of the changes I already did in
my code. :)
quoted
I couldn't find any thing that looks like it's fixing the memory problem
that you mentioned. I'm looking for a memory problem by my self
and I wonder
quoted
what you might have figured out.
You're sure it not a cache invalidate problem you're looking at?
Cheers,
Bart
Hi,
Look in cpm_iic_read() for:
/* flush will invalidate too. */
flush_dcache_range((unsigned long)buf, (unsigned long)(buf+count));
You can't just do invalidate_dcache_range() since it will invalidate more than your buffer
if it's not cache line aligned. Therefore you must flush to memory first and then invalidate.
But you don't need an explicit invalidate_dcache_range() since flush_dcache_range() will flush to
memory AND invalidate.
Jocke
Hi,
I had a look at you code. Some of the changes I already did in my code. :)
I couldn't find any thing that looks like it's fixing the memory problem
that you mentioned. I'm looking for a memory problem by my self and I wonder
what you might have figured out. Could you tell me more details?
Regards, Stephan
quoted
-----Original Message-----
From: owner-linuxppc-embedded@lists.linuxppc.org
[mailto:owner-linuxppc-embedded@lists.linuxppc.org]On Behalf Of Joakim
Tjernlund
Sent: Freitag, 11. Oktober 2002 11:12
To: bart@ardistech.com
Cc: linuxppc-embedded@lists.linuxppc.org
Subject: RE: 8xx i2c refers to unspecified chip errata
OK, here it is.
Perhaps someone can add it to the ppctree?
Jocke
quoted
Hi Joakim,
quoted
Anyway I have fixed the bugs in i2c-algo-8xx.c driver and
it's working great for me
quoted
quoted
so I think I will stick with it for the time being.
Could you please post the fixes on the list? I also might want
Hi Bart and Joakim,
Well. No, I'm not shure. But I see what you mean Bart. :) I'll see what
happens now.
And I have a question to Joakim. In your code you wrote (cpm_iic_init):
i2c->i2c_i2mod = 0x80; /* Filter clock */
I think this is not what you intended. I didn't find that bit (bit 0) in my
862 manual. But there's the FLT flag (bit 4) that matches your comment. So I
think It should be:
i2c->i2c_i2mod = 0x08; /* Filter clock */
Look in cpm_iic_read() for:
/* flush will invalidate too. */
flush_dcache_range((unsigned long)buf, (unsigned long)(buf+count));
You can't just do invalidate_dcache_range() since it will invalidate more than your buffer
In my case it did invalidate the stack :(
if it's not cache line aligned. Therefore you must flush to memory first and then invalidate.
But you don't need an explicit invalidate_dcache_range() since flush_dcache_range() will flush to
memory AND invalidate.
Better would be to have a special DMA region for this. Or as Dan suggest forget the
whole CPM IIC and do it by software.
Cheers,
Bart
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Look in cpm_iic_read() for:
/* flush will invalidate too. */
flush_dcache_range((unsigned long)buf, (unsigned long)(buf+count));
You can't just do invalidate_dcache_range() since it will invalidate more than your buffer
In my case it did invalidate the stack :(
Me too, it was a major PITA to hunt it down.
Jocke
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
On Fri, Oct 11, 2002 at 11:12:02AM +0200, Joakim Tjernlund wrote:
OK, here it is.
Perhaps someone can add it to the ppctree?
If you can submit this as a patch vs what's in the i2c CVS tree or the
ppctree, than yes, this can be committed there, and to the ppctrees.
--
Tom Rini (TR1265)
http://gate.crashing.org/~trini/
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
On Fri, Oct 11, 2002 at 11:12:02AM +0200, Joakim Tjernlund wrote:
quoted
OK, here it is.
Perhaps someone can add it to the ppctree?
If you can submit this as a patch vs what's in the i2c CVS tree or the
ppctree, than yes, this can be committed there, and to the ppctrees.
Here is a patch against the PPC 2.4 devel tree for the i2c-algo-8xx.c
Tom, do you look after 8xx_io/enet.c? I sent a patch to the emmbedded list
yesterday that does away with an expensive memcpy.
Jocke
@@ -190,7 +202,7 @@ volatile cpm8xx_t *cp = cpm->cp; volatile cbd_t *tbdf, *rbdf; u_char *tb;- unsigned long flags;+ unsigned long flags, tmo; if (count >= CPM_MAX_READ) return -EINVAL;
@@ -207,68 +219,104 @@ * All that is used is the first byte for address, the remainder * is just used for timing (and doesn't really have to exist). */- if (cpm->reloc) {- cpm_reset_iic_params(iip);- } tb = cpm->temp; tb = (u_char *)(((uint)tb + 15) & ~15); tb[0] = abyte; /* Device address byte w/rw flag */- flush_dcache_range(tb, tb+1);-+ flush_dcache_range((unsigned long)tb, (unsigned long)(tb+1)); if (cpm_debug) printk("cpm_iic_read(abyte=0x%x)\n", abyte); tbdf->cbd_bufaddr = __pa(tb); tbdf->cbd_datlen = count + 1; tbdf->cbd_sc =- BD_SC_READY | BD_SC_INTRPT | BD_SC_LAST |+ BD_SC_READY | BD_SC_LAST | BD_SC_WRAP | BD_IIC_START;+ iip->iic_mrblr = count +1; /* prevent excessive read, +1+ is needed otherwise will the+ RXB interrupt come too early */++ /* flush will invalidate too. */+ flush_dcache_range((unsigned long)buf, (unsigned long)(buf+count));+ rbdf->cbd_datlen = 0; rbdf->cbd_bufaddr = __pa(buf);- rbdf->cbd_sc = BD_SC_EMPTY | BD_SC_WRAP;-- /* Chip bug, set enable here */- save_flags(flags); cli();- i2c->i2c_i2cmr = 0x13; /* Enable some interupts */- i2c->i2c_i2cer = 0xff;- i2c->i2c_i2mod = 1; /* Enable */- i2c->i2c_i2com = 0x81; /* Start master */+ rbdf->cbd_sc = BD_SC_EMPTY | BD_SC_WRAP| BD_SC_INTRPT;+ if(count > 16){+ /* Chip bug, set enable here */+ local_irq_save(flags);+ i2c->i2c_i2cmr = 0x13; /* Enable some interupts */+ i2c->i2c_i2cer = 0xff;+ i2c->i2c_i2mod |= 1; /* Enable */+ i2c->i2c_i2com |= 0x80; /* Begin transmission */++ /* Wait for IIC transfer */+ tmo = interruptible_sleep_on_timeout(&iic_wait,1*HZ);+ local_irq_restore(flags);+ } else { /* busy wait for small transfers, its faster */+ i2c->i2c_i2cmr = 0x00; /* Disable I2C interupts */+ i2c->i2c_i2cer = 0xff;+ i2c->i2c_i2mod |= 1; /* Enable */+ i2c->i2c_i2com |= 0x80; /* Begin transmission */+ tmo = jiffies + 1*HZ;+ while(!(i2c->i2c_i2cer & 0x11 || time_after(jiffies, tmo))); /* Busy wait, with a timeout */+ }- /* Wait for IIC transfer */- interruptible_sleep_on(&iic_wait);- restore_flags(flags);- if (signal_pending(current))+ if (signal_pending(current) || !tmo){+ force_close(cpm);+ if(cpm_debug)+ printk("IIC read: timeout!\n"); return -EIO;-+ }+#ifdef I2C_CHIP_ERRATA+ /* Chip errata, clear enable. This is not needed on rev D4 CPUs.+ Disabling I2C too early may cause too short stop condition */+ udelay(4);+ i2c->i2c_i2mod &= ~1;+#endif if (cpm_debug) { printk("tx sc %04x, rx sc %04x\n", tbdf->cbd_sc, rbdf->cbd_sc); }+ if (tbdf->cbd_sc & BD_SC_READY) {+ printk("IIC read; complete but tbuf ready\n");+ force_close(cpm);+ printk("tx sc %04x, rx sc %04x\n",+ tbdf->cbd_sc, rbdf->cbd_sc);+ }+ if (tbdf->cbd_sc & BD_SC_NAK) {- printk("IIC read; no ack\n");- return 0;+ if (cpm_debug)+ printk("IIC read; no ack\n");+ return -EREMOTEIO; } if (rbdf->cbd_sc & BD_SC_EMPTY) {- printk("IIC read; complete but rbuf empty\n");- force_close(cpm);- printk("tx sc %04x, rx sc %04x\n",- tbdf->cbd_sc, rbdf->cbd_sc);+ /* force_close(cpm); */+ if (cpm_debug){+ printk("IIC read; complete but rbuf empty\n");+ printk("tx sc %04x, rx sc %04x\n",+ tbdf->cbd_sc, rbdf->cbd_sc);+ }+ return -EREMOTEIO;+ }++ if (rbdf->cbd_sc & BD_SC_OV) {+ if (cpm_debug)+ printk("IIC read; Overrun\n");+ return -EREMOTEIO;; } if (cpm_debug) printk("read %d bytes\n", rbdf->cbd_datlen); if (rbdf->cbd_datlen < count) {- printk("IIC read; short, wanted %d got %d\n",- count, rbdf->cbd_datlen);+ if (cpm_debug)+ printk("IIC read; short, wanted %d got %d\n",+ count, rbdf->cbd_datlen); return 0; }-- invalidate_dcache_range(buf, buf+count);- return count; }
@@ -283,7 +331,7 @@ volatile cpm8xx_t *cp = cpm->cp; volatile cbd_t *tbdf; u_char *tb;- unsigned long flags;+ unsigned long flags, tmo; /* check for and use a microcode relocation patch */ if (cpm->reloc) {
Here is a patch against the PPC 2.4 devel tree for the i2c-algo-8xx.c
Can you please split this into logical chunks, or give me a list of each
fix in here? Thanks.
ohh, kind of hard to remember all that went into that patch. The path
has evoled over many days, but I can try summarize. I have tested this code
pretty well it does not fail for me. Speed has been between 10-150KHz. The
old code fails as soon you start to stress it a little.
- replace invalidate_dcache_range with flush_dcache_range, since buffers are
NOT cache aligned. flush will write to memory AND invalidate the cache.
- move the chip errata stuff from irq routine into read/write routines. Made
it default off since it causes lock ups on my I2C device. I think it causes
a too short STOP condition. If enabled I2C will behave better than before, but
may still cause problems if the read/write is interrupted with a signal while
microcode is enabled.
- set default speed to 60 KHz instead.
- missing/faulty initialization of parameter ram when I2C micro patch is active.
- replaced assingments with mask operations with relevant bits. Example:
/* Shut down IIC. */
i2c->i2c_i2mod = 0;
i2c->i2c_i2mod &= ~1;
- When reading from I2C device, let the receive BD generate interrupt instead of
the dummy trasmit. This is important since the TX interrupt will be too early sometimes, before
the RX BD has closed. There is one case where the RX irq is before the TX irq, if iic_mrblr is set
to match the number of bytes to read. Therefore must the iic_mrblr be one byte larger than
the expected number of bytes.
- busy wait for small transfers since it's faster.
- save_flags(flags); cli(); cleanups
- interruptible_sleep_on_timeout() instead of interruptible_sleep_on() so it won't hang forever if an
irq is lost.
Jocke
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Hi Tom
Will you apply this patch? No problems reported so far.
Jocke
quoted
quoted
Here is a patch against the PPC 2.4 devel tree for the i2c-algo-8xx.c
Can you please split this into logical chunks, or give me a list of each
fix in here? Thanks.
ohh, kind of hard to remember all that went into that patch. The path
has evoled over many days, but I can try summarize. I have tested this code
pretty well it does not fail for me. Speed has been between 10-150KHz. The
old code fails as soon you start to stress it a little.
- replace invalidate_dcache_range with flush_dcache_range, since buffers are
NOT cache aligned. flush will write to memory AND invalidate the cache.
- move the chip errata stuff from irq routine into read/write routines. Made
it default off since it causes lock ups on my I2C device. I think it causes
a too short STOP condition. If enabled I2C will behave better than before, but
may still cause problems if the read/write is interrupted with a signal while
microcode is enabled.
- set default speed to 60 KHz instead.
- missing/faulty initialization of parameter ram when I2C micro patch is active.
- replaced assingments with mask operations with relevant bits. Example:
/* Shut down IIC. */
i2c->i2c_i2mod = 0;
i2c->i2c_i2mod &= ~1;
- When reading from I2C device, let the receive BD generate interrupt instead of
the dummy trasmit. This is important since the TX interrupt will be too early sometimes, before
the RX BD has closed. There is one case where the RX irq is before the TX irq, if iic_mrblr is set
to match the number of bytes to read. Therefore must the iic_mrblr be one byte larger than
the expected number of bytes.
- busy wait for small transfers since it's faster.
- save_flags(flags); cli(); cleanups
- interruptible_sleep_on_timeout() instead of interruptible_sleep_on() so it won't hang forever if an
irq is lost.
Jocke
From: Mark D. Studebaker <hidden> Date: 2002-11-17 20:51:23
Tom + Joakim,
we're doing a release soon over here at sensors/i2c,
do you want this checked in as-is, with mods, or not at all?
Joakim Tjernlund wrote:
quoted
quoted
Here is a patch against the PPC 2.4 devel tree for the i2c-algo-8xx.c
Can you please split this into logical chunks, or give me a list of each
fix in here? Thanks.
ohh, kind of hard to remember all that went into that patch. The path
has evoled over many days, but I can try summarize. I have tested this code
pretty well it does not fail for me. Speed has been between 10-150KHz. The
old code fails as soon you start to stress it a little.
- replace invalidate_dcache_range with flush_dcache_range, since buffers are
NOT cache aligned. flush will write to memory AND invalidate the cache.
- move the chip errata stuff from irq routine into read/write routines. Made
it default off since it causes lock ups on my I2C device. I think it causes
a too short STOP condition. If enabled I2C will behave better than before, but
may still cause problems if the read/write is interrupted with a signal while
microcode is enabled.
- set default speed to 60 KHz instead.
- missing/faulty initialization of parameter ram when I2C micro patch is active.
- replaced assingments with mask operations with relevant bits. Example:
/* Shut down IIC. */
i2c->i2c_i2mod = 0;
i2c->i2c_i2mod &= ~1;
- When reading from I2C device, let the receive BD generate interrupt instead of
the dummy trasmit. This is important since the TX interrupt will be too early sometimes, before
the RX BD has closed. There is one case where the RX irq is before the TX irq, if iic_mrblr is set
to match the number of bytes to read. Therefore must the iic_mrblr be one byte larger than
the expected number of bytes.
- busy wait for small transfers since it's faster.
- save_flags(flags); cli(); cleanups
- interruptible_sleep_on_timeout() instead of interruptible_sleep_on() so it won't hang forever if an
irq is lost.
Jocke
Tom + Joakim,
we're doing a release soon over here at sensors/i2c,
do you want this checked in as-is, with mods, or not at all?
Joakim Tjernlund wrote:
quoted
quoted
quoted
Here is a patch against the PPC 2.4 devel tree for the i2c-algo-8xx.c
Can you please split this into logical chunks, or give me a list of each
fix in here? Thanks.
ohh, kind of hard to remember all that went into that patch. The path
has evoled over many days, but I can try summarize. I have tested this code
pretty well it does not fail for me. Speed has been between 10-150KHz. The
old code fails as soon you start to stress it a little.
- replace invalidate_dcache_range with flush_dcache_range, since buffers are
NOT cache aligned. flush will write to memory AND invalidate the cache.
- move the chip errata stuff from irq routine into read/write routines. Made
it default off since it causes lock ups on my I2C device. I think it causes
a too short STOP condition. If enabled I2C will behave better than before, but
may still cause problems if the read/write is interrupted with a signal while
microcode is enabled.
- set default speed to 60 KHz instead.
- missing/faulty initialization of parameter ram when I2C micro patch is active.
- replaced assingments with mask operations with relevant bits. Example:
/* Shut down IIC. */
i2c->i2c_i2mod = 0;
i2c->i2c_i2mod &= ~1;
- When reading from I2C device, let the receive BD generate interrupt instead of
the dummy trasmit. This is important since the TX interrupt will be too early sometimes, before
the RX BD has closed. There is one case where the RX irq is before the TX irq, if iic_mrblr is set
to match the number of bytes to read. Therefore must the iic_mrblr be one byte larger than
the expected number of bytes.
- busy wait for small transfers since it's faster.
- save_flags(flags); cli(); cleanups
- interruptible_sleep_on_timeout() instead of interruptible_sleep_on() so it won't hang forever if an
irq is lost.
Jocke
From: Mark D. Studebaker <hidden> Date: 2002-11-18 19:04:21
whatever your patch was against didn't match our tree very well. would
you please
resolve the differences and generate a new patch against our tree?
thanks
mds
Tom Rini wrote:
On Sun, Nov 17, 2002 at 10:44:40PM +0100, Joakim Tjernlund wrote:
quoted
quoted
Tom + Joakim,
we're doing a release soon over here at sensors/i2c,
do you want this checked in as-is, with mods, or not at all?
whatever your patch was against didn't match our tree very well. would
you please
resolve the differences and generate a new patch against our tree?
thanks
mds
Patch was(and still is, I think) against linuxppc_2_4_devel. Don't know your tree, is
it not the same as linuxppc? Anyhow, too much time has passed for me
to remember all details and I don't have the time to go back and do it all over again.
I suggest you take the linuxppc version, patch it and adopt it to your tree.
Regards
Jocke
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
On Mon, Nov 18, 2002 at 08:24:32PM +0100, Joakim Tjernlund wrote:
quoted
whatever your patch was against didn't match our tree very well. would
you please
resolve the differences and generate a new patch against our tree?
thanks
mds
Patch was(and still is, I think) against linuxppc_2_4_devel. Don't know your tree, is
it not the same as linuxppc? Anyhow, too much time has passed for me
to remember all details and I don't have the time to go back and do it all over again.
I suggest you take the linuxppc version, patch it and adopt it to your tree.
From: Jean Delvare <hidden> Date: 2002-11-18 19:42:48
Patch was(and still is, I think) against linuxppc_2_4_devel. Don't
know your tree, is it not the same as linuxppc? Anyhow, too much time
has passed for me to remember all details and I don't have the time to
go back and do it all over again. I suggest you take the linuxppc
version, patch it and adopt it to your tree.
On Mon, Nov 18, 2002 at 08:42:48PM +0100, Jean Delvare wrote:
quoted
Patch was(and still is, I think) against linuxppc_2_4_devel. Don't
know your tree, is it not the same as linuxppc? Anyhow, too much time
has passed for me to remember all details and I don't have the time to
go back and do it all over again. I suggest you take the linuxppc
version, patch it and adopt it to your tree.
Why the hell are there two different trees? :'( Can't we work all
together for a better result?