* [DNX#2006040142000928] [U-Boot-Users] [PATCH-2/8]Blackfin support - the m [...]
From: DENX Support System @ 2006-03-31 22:50 UTC (permalink / raw)
To: u-boot
Hello list,
inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006040142000928] was created:
<snip>
> The patch is based on following point in the current U-boot git
> repository.
> ============================================================
> commit 6624b687bc2b747233090e67628df37d1c84ed17
> Author: Wolfgang Denk <wd@pollux.(none)>
> Date: Wed Feb 22 10:25:39 2006 +0100
>
> Rename SMMACO4 board into smmaco4 for consistency with Linux.
> ============================================================
>
> Changelog entry:
> * Added support for Blackfin platform
> Patch by Aubrey.Li <aubreylee@gmail.com>
>
> Thanks,
> -Aubrey
</snip>
Your U-Boot support team
^ permalink raw reply
* [DNX#2006040142000919] [U-Boot-Users] Patch: Sandburst Karef Board Suppo [...]
From: DENX Support System @ 2006-03-31 22:50 UTC (permalink / raw)
To: u-boot
Hello list,
inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006040142000919] was created:
<snip>
> This patch brings the sandburst karef board support up to date due to
> fpga changes.
>
> CHANGELOG:
>
> * Update Sandburst Karef board support due to FPGA fixes.
> Initialize front end fpga ID and Version variables properly.
> Patch by Travis B. Sawyer, 16 Feb 2006
>
>
> Regards,
> Travis Sawyer
</snip>
Your U-Boot support team
^ permalink raw reply
* [DNX#2006040142000893] [U-Boot-Users] [PATCH] Support for new board, gth2 [...]
From: DENX Support System @ 2006-03-31 22:50 UTC (permalink / raw)
To: u-boot
Hello list,
inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006040142000893] was created:
<snip>
> * Patch by Thomas Lange Aug 11 2005
> - Add support for gth2 board
>
> Changes to common files:
> * common/cmd_ide.c
> Swap input data if GTH2 and Big endian
>
> * cpu/mips/au1x00_serial.c
> Call GTH2 log functions.
> Make sure watchdog is kicked
>
> * cpu/mips/cpu.c
> If gth2, hang during reset until hardware watchdog kicks in
>
> * include/asm-mips/au1x00.h
> Add GPIO definitions
>
> /Thomas
</snip>
Your U-Boot support team
^ permalink raw reply
* [DNX#2006040142000884] [U-Boot-Users] tsec generic PHY
From: DENX Support System @ 2006-03-31 22:50 UTC (permalink / raw)
To: u-boot
Hello list,
inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006040142000884] was created:
<snip>
> Hi.
>
> If the PHY on TSEC device is not one of the enumerated; it would be nice
>
> to fall back to a generic, wouldn't it?
>
> Unless there are moves a-foot to pull all the PHY stuff out to a generic
>
> layer somewhere else.
>
> -dbu.
</snip>
Your U-Boot support team
^ permalink raw reply
* [DNX#2006040142000901] [U-Boot-Users] [PATCH] I2C bus speed on the MPC85x [...]
From: DENX Support System @ 2006-03-31 22:50 UTC (permalink / raw)
To: u-boot
Hello list,
inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006040142000901] was created:
<snip>
> The attached patch will fix the settings of I2C clock on the MPC85xx
> CPUs according to the speed parameter in the i2c_init()
>
> --
> S p??telsk?m pozdravem / Best regards / Mit freundlichen Gr??en
>
> Ing. Pavel Bart??ek
> SYSGO s.r.o.
> H?bitovn? 359/10
> CZ-14800 Praha 4
> Phone/Fax: +420 244911174
> GSM: +420 777 760728
> pavel.bartusek at sysgo.com
>
> http://www.sysgo.com | http://www.elinos.com | http://www.pikeos.com
</snip>
Your U-Boot support team
^ permalink raw reply
* Re: [PATCH 2/2] Base pSeries PCIe support
From: Olof Johansson @ 2006-03-31 22:48 UTC (permalink / raw)
To: Jake Moilanen; +Cc: linuxppc-dev, paulus
In-Reply-To: <20060331161330.3c723103.moilanen@austin.ibm.com>
On Fri, Mar 31, 2006 at 04:13:30PM -0600, Jake Moilanen wrote:
> This patch hooks our current interrupt subsystem and sets up a single
> vector MSI as if it was a LSI. Multiple MSI vectors is coming in the
> future.
>
> The NR_IRQS got bumped up to 1024, as vectors can go much higher.
> Unfortunately, this number was arbitrarily picked as there is no claim
> at what the max number really is by either the firmware team, or the
> PAPR+.
What does this do to the kernel size?
> Signed-off-by: Jake Moilanen <moilanen@austin.ibm.com>
>
> ---
>
> Index: 2.6.16/arch/powerpc/kernel/prom.c
> ===================================================================
> --- 2.6.16.orig/arch/powerpc/kernel/prom.c 2006-03-31 15:11:20.000000000 -0600
> +++ 2.6.16/arch/powerpc/kernel/prom.c 2006-03-31 15:37:10.000000000 -0600
> @@ -88,6 +88,8 @@
> struct device_node *dflt_interrupt_controller;
> int num_interrupt_controllers;
>
> +void __init finish_msi_node(struct device_node *dn, unsigned long *mem_start, int measure_only);
The other one is called "finish_node_interrupts", "finish_node_msi"
would make sense here.
> +
> /*
> * Wrapper for allocating memory for various data that needs to be
> * attached to device nodes as they are processed at boot or when
> @@ -120,6 +122,22 @@
> return NULL;
> }
>
> +int
> +property_present(struct device_node *np, const char *name)
> +{
> + struct property *pp;
> +
> + read_lock(&devtree_lock);
> + for (pp = np->properties; pp != 0; pp = pp->next)
> + if (strcmp(pp->name, name) == 0) {
> + return 1;
> + }
> + read_unlock(&devtree_lock);
> +
> + return 0;
> +}
Please use of_find_property() instead of reimplementing it, i.e. do what
get_property() does now, just don't return the value.
I assume you can't use get_property() because the properties you look
for lack values, right?
> +
> /*
> * Find the interrupt parent of a node.
> */
> @@ -341,6 +359,14 @@
> return 0;
> }
>
> +#ifdef CONFIG_PPC_PSERIES
> + if(property_present(np, "ibm,req#msi")) {
> + printk(KERN_EMERG "Found MSI\n");
KERN_DEBUG, if anything, right?
Also, get rid of the ifdef.
> + finish_msi_node(np, mem_start, measure_only);
> + return 0;
> + }
> +#endif
> +
> ints = (unsigned int *) get_property(np, "interrupts", &intlen);
> TRACE("ints=%p, intlen=%d\n", ints, intlen);
> if (ints == NULL)
> @@ -503,6 +529,80 @@
> DBG(" <- finish_device_tree\n");
> }
>
> +void __init finish_msi_node(struct device_node *dn, unsigned long *mem_start, int measure_only)
I know you said no hotplug support yet, but in preparation, it might
make sense to mark it as __devinit instead.
> +{
> + static int seq_num = 1;
> + int i;
> + int rc;
> + int query_token = rtas_token("ibm,query-interrupt-source-number");
> + int devfn;
> + int busno;
> + u32 *reg;
> + int reglen;
> + int ret[3];
> + unsigned int virq;
> + unsigned int addr;
> + unsigned long buid = -1;
> + unsigned long wait_time;
> +
> + reg = (u32 *) get_property(dn, "reg", ®len);
> + if (reg == NULL || reglen < 20)
> + return;
> +
> + devfn = (reg[0] >> 8) & 0xff;
> + busno = (reg[0] >> 16) & 0xff;
> +
> + buid = get_phb_buid(dn->parent);
> + addr = (busno << 16) | (devfn << 8);
> +
> + while (1) {
> + rc = rtas_call(rtas_token("ibm,change-msi"), 6, 3, ret, addr,
> + buid >> 32, buid & 0xffffffff,
> + 1, 1, seq_num);
> +
> + if (!rc)
> + break;
> + else if (rc == RTAS_BUSY)
> + udelay(1);
> + else if (rtas_is_extended_busy(rc)) {
> + wait_time = rtas_extended_busy_delay_time(rc);
> + udelay(wait_time * 1000);
> + } else {
> + printk(KERN_WARNING "error[%d]: getting the number of"
> + "MSI interrupts for %s\n", rc, dn->name);
> + return;
> + }
This is reimplemented with a few variations in a few places now. They
should be consolidated into a single function that will handle the
delay itself.
> +
> + seq_num = ret[1];
> + }
> +
> + dn->n_intrs = ret[0];
> +
> + dn->intrs = prom_alloc(dn->n_intrs * sizeof(*(dn->intrs)), mem_start);
> + if (!dn->intrs) {
> + printk(KERN_EMERG "finish_msi_node: can't allocate space\n");
> + return;
> + }
> +
> + if (measure_only)
> + return;
You probably want to return from measure_only _before_ you allocate and
populate intrs...
> +
> + for (i = 0; i < dn->n_intrs; i++) {
> + rc = rtas_call(query_token, 4, 3, ret, addr, buid >> 32, buid & 0xffffffff, i);
> +
> + if (!rc) {
> + virq = virt_irq_create_mapping(ret[0]);
> +
> + dn->intrs[i].line = irq_offset_up(virq);
> + dn->intrs[i].sense = ret[1];
> + } else {
> + printk(KERN_WARNING "error[%d]: query-interrupt-source-number for %s\n",
> + rc, dn->name);
> + }
> + }
> +
> +}
> +
> static inline char *find_flat_dt_string(u32 offset)
> {
> return ((char *)initial_boot_params) +
> Index: 2.6.16/include/asm-powerpc/irq.h
> ===================================================================
> --- 2.6.16.orig/include/asm-powerpc/irq.h 2006-03-31 15:11:12.000000000 -0600
> +++ 2.6.16/include/asm-powerpc/irq.h 2006-03-31 15:15:46.000000000 -0600
> @@ -47,7 +47,7 @@
> /*
> * Maximum number of interrupt sources that we can handle.
> */
> -#define NR_IRQS 512
> +#define NR_IRQS 1024
>
> /* Interrupt numbers are virtual in case they are sparsely
> * distributed by the hardware.
> Index: 2.6.16/include/asm-powerpc/pci-bridge.h
> ===================================================================
> --- 2.6.16.orig/include/asm-powerpc/pci-bridge.h 2006-03-31 15:11:36.000000000 -0600
> +++ 2.6.16/include/asm-powerpc/pci-bridge.h 2006-03-31 15:34:50.000000000 -0600
> @@ -141,6 +141,7 @@
> void pcibios_fixup_new_pci_devices(struct pci_bus *bus, int fix_bus);
>
> extern int pcibios_remove_root_bus(struct pci_controller *phb);
> +extern unsigned long __devinit get_phb_buid (struct device_node *phb);
I think the get_phb_buid() call from prom.c might break 32-bit, since
rtas_pci.c isn't always built there. An empty declaration here for
#ifndef CONFIG_<x> would take care of it.
>
> static inline struct pci_controller *pci_bus_to_host(struct pci_bus *bus)
> {
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
^ permalink raw reply
* [DNX#2006040142000875] [U-Boot-Users] [PATCH] Two System ACE CF fixes
From: DENX Support System @ 2006-03-31 22:50 UTC (permalink / raw)
To: u-boot
Hello list,
inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006040142000875] was created:
<snip>
> Attached a patch that adds support for the 16-bit wide bus of System ACE
>
> CF besides the existing support for the 8-bit wide bus.
>
> The patch also sets the FORCECFGMODE bit in the control register when
> the System ACE CF configuration controller is reset before reading a
> sector. Without this bit set System ACE CF reconfigures an FPGA if the
> CFGMODE pin is active whenever a sector is read.
>
> The third hunk fixes a typo.
>
> - Peter
</snip>
Your U-Boot support team
^ permalink raw reply
* [DNX#2006040142000866] [U-Boot-Users] byteorder of image_header_t members [...]
From: DENX Support System @ 2006-03-31 22:50 UTC (permalink / raw)
To: u-boot
Hello list,
inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006040142000866] was created:
<snip>
> Hi,
>
> I wrote:
>
> > Maybe you want to consider the attached patch.
> >
> > * Patch by Steven Scholz, 10 Jun 2005:
> > Adding loads of ntohl() in image header handling (for the sake
> > of readability)
>
> Still in the patch queue? Or rejected/discarded?
>
> --
> Steven
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by the JBoss Inc. Get Certified Today
> Register for a JBoss Training Course. Free Certification Exam
> for All Training Attendees Through End of 2005. For more info visit:
> http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
</snip>
Your U-Boot support team
^ permalink raw reply
* [DNX#2006040142000857] [U-Boot-Users] test variable existence in hush
From: DENX Support System @ 2006-03-31 22:50 UTC (permalink / raw)
To: u-boot
Hello list,
inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006040142000857] was created:
<snip>
> On Mon, 22 Aug 2005 14:21:58 +0200 Wolfgang Denk wrote:
>
> >I cannot confirm this. The only part of hush which is involved here
> >is the && processing which works fine for me..
> >
> >"test" is NOT a hush builtin.
>
> I hit the send button too early...
>
> Yes, "test" is not a hush builtin, but it is only available if the hush
> parser is enabled.
>
> >Sure:
> >
> >TRAB # foo=
> >TRAB # test -n "$foo" && echo yes
> >TRAB # test -n "$foo" || echo no
> >no
> >TRAB # test "$foo" && echo yes
> >TRAB # test "$foo" || echo no
> >no
> >TRAB # foo=dummy
> >TRAB # test -n "$foo" && echo yes
> >yes
> >TRAB # test -n "$foo" || echo no
> >TRAB # test "$foo" && echo yes
> >TRAB # test "$foo" || echo no
> >no
> >
> >THe only problem I see is with "test -z":
> >
> > TRAB # foo=
> > TRAB # test -z "$foo" && echo yes
> > TRAB # test -z "$foo" || echo no
> > no
> >but
> > TRAB # test -z "" && echo yes
> > yes
> > TRAB # test -z "" || echo no
> > TRAB #
>
> No, I think this is misleading. A quick debugging session showed that
> the problem is not the "test" command itself. With 'test -z ""' and
> 'test -n ""', the command will correctly see three arguments. However,
> with 'test -n "$foo"' and 'test -z "$foo"' (and empty $foo), the command
> will only get two arguments which always results in a return value of 1.
> That's why 'test -n' seems to work.
>
> Regards,
> Andreas Engel
>
>
> -------------------------------------------------------
> SF.Net email is Sponsored by the Better Software Conference & EXPO
> September 19-22, 2005 * San Francisco, CA * Development Lifecycle
> Practices
> Agile & Plan-Driven Development * Managing Projects & Teams * Testing &
> QA
> Security * Process Improvement & Measurement *
> http://www.sqe.com/bsce5sf
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
</snip>
Your U-Boot support team
^ permalink raw reply
* [lm-sensors] [PATCH 2.6] scx200_acb - Fix for CS5535 eratta
From: Jordan Crouse @ 2006-03-31 22:49 UTC (permalink / raw)
To: linux-kernel; +Cc: lm-sensors, info-linux, BGardner
Hey all - This is a fix for the recently added CS5535/CS5536 support in
the scx200_acb driver. This works around an errata in the CS5535 that
sometimes results in NEGACK not being cleared. It would be great if we
could get this into 2.6.17 with the driver.
Regards,
Jordan
--
Jordan Crouse
Senior Linux Engineer
AMD - Personal Connectivity Solutions Group
<www.amd.com/embeddedprocessors>
-------------- next part --------------
[PATCH] scx200_acb: Fix for negack clear errata
From: Jordan Crouse <jordan.crouse at amd.com>
This patch is a fix for the CS5535 errata 111:
When the SMB controller tries to access a non-existing device, it sets
the NEGACK bit, SMB I/O Offset 01h[4], to 1 after it detects no
acknowledge at the ninth clock. The specification says there are only
two ways to clear this status bit: write 1 to this bit or disable the
SMB controller. Sometimes this bit is cleared by a read of this
register, but not always.
Signed-off-by: Jordan Crouse <jordan.crouse at amd.com>
---
drivers/i2c/busses/scx200_acb.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c
index 8bd305e..e7a2225 100644
--- a/drivers/i2c/busses/scx200_acb.c
+++ b/drivers/i2c/busses/scx200_acb.c
@@ -133,6 +133,9 @@ static void scx200_acb_machine(struct sc
outb(inb(ACBCTL1) | ACBCTL1_STOP, ACBCTL1);
outb(ACBST_STASTR | ACBST_NEGACK, ACBST);
+
+ /* Reset the status register */
+ outb(0, ACBST);
return;
}
@@ -228,6 +231,10 @@ static void scx200_acb_poll(struct scx20
timeout = jiffies + POLL_TIMEOUT;
while (time_before(jiffies, timeout)) {
status = inb(ACBST);
+
+ /* Reset the status register to avoid the hang */
+ outb(0, ACBST);
+
if ((status & (ACBST_SDAST|ACBST_BER|ACBST_NEGACK)) != 0) {
scx200_acb_machine(iface, status);
return;
^ permalink raw reply related
* Avoid excessive time spend on concurrent slab shrinking
From: Christoph Lameter @ 2006-03-31 22:44 UTC (permalink / raw)
To: akpm, nickpiggin; +Cc: linux-mm
We experienced that concurrent slab shrinking on 2.6.16 can slow down a
system excessively due to lock contention. Slab shrinking is a global
operation so it does not make sense for multiple slab shrink operations
to be ongoing at the same time. The single shrinking task can perform the
shrinking for all nodes and processors in the system. Introduce an atomic
counter that works in the same was as in shrink_zone to limit concurrent
shrinking.
Also calculate the time it took to do the shrinking and wait at least twice
that time before doing it again. If we are spending excessive time
on slab shrinking then we need to pause for some time to insure that the
system is capable of archiving other tasks.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Index: linux-2.6.16/mm/vmscan.c
===================================================================
--- linux-2.6.16.orig/mm/vmscan.c 2006-03-19 21:53:29.000000000 -0800
+++ linux-2.6.16/mm/vmscan.c 2006-03-31 14:38:18.000000000 -0800
@@ -130,6 +130,8 @@ static long total_memory;
static LIST_HEAD(shrinker_list);
static DECLARE_RWSEM(shrinker_rwsem);
+static atomic_t active_shrinkers;
+static unsigned long next_slab_shrink;
/*
* Add a shrinker callback to be called from the vm
@@ -187,12 +189,18 @@ int shrink_slab(unsigned long scanned, g
{
struct shrinker *shrinker;
int ret = 0;
+ unsigned long shrinkstart;
if (scanned == 0)
scanned = SWAP_CLUSTER_MAX;
- if (!down_read_trylock(&shrinker_rwsem))
- return 1; /* Assume we'll be able to shrink next time */
+ if (atomic_read(&active_shrinkers) ||
+ time_before(jiffies, next_slab_shrink) ||
+ !down_read_trylock(&shrinker_rwsem))
+ /* Assume we'll be able to shrink next time */
+ return 1;
+ atomic_inc(&active_shrinkers);
+ shrinkstart = jiffies;
list_for_each_entry(shrinker, &shrinker_list, list) {
unsigned long long delta;
@@ -239,6 +247,12 @@ int shrink_slab(unsigned long scanned, g
shrinker->nr += total_scan;
}
+ /*
+ * If slab shrinking took a long time then lets at least wait
+ * twice as long as it took before we do it again.
+ */
+ next_slab_shrink = jiffies + 2 * (jiffies - shrinkstart);
+ atomic_dec(&active_shrinkers);
up_read(&shrinker_rwsem);
return ret;
}
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply
* Re: [RFC][PATCH 0/2]Extend ext3 filesystem limit from 8TB to 16TB
From: Mingming Cao @ 2006-03-31 22:42 UTC (permalink / raw)
To: Andrew Morton
Cc: sho, Laurent.Vivier, linux-kernel, ext2-devel, linux-fsdevel
In-Reply-To: <20060329175446.67149f32.akpm@osdl.org>
On Wed, 2006-03-29 at 17:54 -0800, Andrew Morton wrote:
> Mingming Cao <cmm@us.ibm.com> wrote:
> >
> > The things need to be done to complete this work is the issue with
> > current percpu counter, which could not handle u32 type count well.
>
> I'm surprised there's much of a problem here. It is a 32-bit value, so it
> should mainly be a matter of treating the return value from
> percpu_counter_read() as unsigned long.
>
> However a stickier problem is when dealing with a filesystem which has,
> say, 0xffff_ff00 blocks. Because percpu counters are approximate, and a
> counter which really has a value of 0xffff_feee might return 0x00000123.
> What do we do then?
>
Hmm... I think we had this issue already even with today's 2**31 ext3.
Since ext2/3 always use percpu_counter_read_positive() to get the total
number of free blocks, so if the real free blocks is 0x0fff_feee, and
the approximate value from the percpu counter is 0xf000_0123, the
percpu_counter_read_positive() will return back 0x0000123.
> Of course the simple option is to nuke the percpu counters in ext3 and use
> atomic_long_t (which is signed, so appropriate treat-it-as-unsigned code
> would be needed). I doubt if the percpu counters in ext3 are gaining us
> much.
Sounds like the simple solution so far.
Mingming
^ permalink raw reply
* Re: [PATCH 0/2] Base pSeries PCIe support
From: Jake Moilanen @ 2006-03-31 22:35 UTC (permalink / raw)
To: Arnd Bergmann; +Cc: linuxppc-dev, paulus
In-Reply-To: <200604010028.43685.arnd@arndb.de>
On Sat, 1 Apr 2006 00:28:43 +0200
Arnd Bergmann <arnd@arndb.de> wrote:
> Am Saturday 01 April 2006 00:02 schrieb Jake Moilanen:
> > Here are the two base patches for PCIe on pSeries for 2.6.17.
> >
> > This is enough to probe, find, configure, and run basic I/O to PCIe
> > enabled devices.
>
> Does this use the draft PCIe bindings from Sun, or something else?
> Is it compatible with the way that Apple represents PCIe devices
> as plain PCI?
>
> I'm just curious.
You can find some info on it:
http://playground.sun.com/1275/bindings/pci/pci-express.txt
Jake
^ permalink raw reply
* Re: [PATCH 0/2] Base pSeries PCIe support
From: Doug Maxey @ 2006-03-31 22:39 UTC (permalink / raw)
To: Jake Moilanen; +Cc: linuxppc-dev, Paul Mackerras
In-Reply-To: <20060331160203.f2bf8b53.moilanen@austin.ibm.com>
On Fri, 31 Mar 2006 16:02:03 CST, Jake Moilanen wrote:
>Here are the two base patches for PCIe on pSeries for 2.6.17.
>
>This is enough to probe, find, configure, and run basic I/O to PCIe
>enabled devices.
>
Where are the bindings for pcie? In the papr?
Have you heard of any effort to publish?
++doug
^ permalink raw reply
* RE: acpi_os_wait_semaphore(): don't complain about timeout
From: Moore, Robert @ 2006-03-31 22:37 UTC (permalink / raw)
To: Bjorn Helgaas, Brown, Len; +Cc: linux-acpi, Andrew Morton, Thomas Renniger
This is correct.
Unfortunately, it is one of the problems with performing a global
replace of the ACPI_DEBUG_PRINT (WARNING/ERROR) with the non-debug
ACPI_ERROR and ACPI_WARNING, and it will take some time to shake out
these kinds of issues.
> -----Original Message-----
> From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> owner@vger.kernel.org] On Behalf Of Bjorn Helgaas
> Sent: Friday, March 31, 2006 2:33 PM
> To: Brown, Len
> Cc: linux-acpi@vger.kernel.org; Andrew Morton; Thomas Renniger
> Subject: [ACPI] acpi_os_wait_semaphore(): don't complain about timeout
>
> The ASL Acquire operator (17.5.1 in ACPI 3.0 spec) is allowed to
> time out and return True without acquiring the semaphore. There's
> no indication in the spec that this is an actual error, so this
> message should be debug-only, as the message for successful
acquisition
> is.
>
> This used to be an ACPI_DEBUG_PRINT, but it was mis-classified as
> ACPI_DB_ERROR rather than ACPI_DB_MUTEX, so it got swept up in
> Thomas' recent patch to enable ACPI error messages even without
> CONFIG_ACPI_DEBUG.
>
> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
>
> Index: work-mm5/drivers/acpi/osl.c
> ===================================================================
> --- work-mm5.orig/drivers/acpi/osl.c 2006-03-23 10:22:40.000000000 -
> 0700
> +++ work-mm5/drivers/acpi/osl.c 2006-03-31 14:40:44.000000000
-0700
> @@ -816,7 +816,7 @@
> }
>
> if (ACPI_FAILURE(status)) {
> - ACPI_EXCEPTION((AE_INFO, status,
> + ACPI_DEBUG_PRINT((ACPI_DB_MUTEX,
> "Failed to acquire
semaphore[%p|%d|%d], %s",
> handle, units, timeout,
> acpi_format_exception(status)));
> -
> To unsubscribe from this list: send the line "unsubscribe linux-acpi"
in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* [PATCH 2.6] scx200_acb: Use PCI I/O resource when appropriate
From: Jordan Crouse @ 2006-03-31 23:03 UTC (permalink / raw)
To: linux-kernel; +Cc: lm-sensors, info-linux, BGardner
[-- Attachment #1: Type: text/plain, Size: 397 bytes --]
The CS5535 and CS5536 both define the I/O base for the SMBUS device in a
PCI header. This patch uses that header for the I/O base rather then
using the MSR backdoor.
This patch isn't as urgent as the other one, so it can probably take the
usual trip up through Greg's tree.
--
Jordan Crouse
Senior Linux Engineer
AMD - Personal Connectivity Solutions Group
<www.amd.com/embeddedprocessors>
[-- Attachment #2: smb-pcifixup.patch --]
[-- Type: text/plain, Size: 5194 bytes --]
[PATCH] scx200_acb: Use PCI I/O resource when appropriate
From: Jordan Crouse <jordan.crouse@amd.com>
On the CS5535 and CS5536, the I/O resource is allocated through PCI,
so use that instead of using the MSR backdoor.
Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
---
drivers/i2c/busses/scx200_acb.c | 114 +++++++++++++++++++++++++++------------
1 files changed, 78 insertions(+), 36 deletions(-)
diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c
index e7a2225..454492f 100644
--- a/drivers/i2c/busses/scx200_acb.c
+++ b/drivers/i2c/busses/scx200_acb.c
@@ -33,7 +33,6 @@
#include <linux/delay.h>
#include <linux/mutex.h>
#include <asm/io.h>
-#include <asm/msr.h>
#include <linux/scx200.h>
@@ -85,6 +84,10 @@ struct scx200_acb_iface {
u8 *ptr;
char needs_reset;
unsigned len;
+
+ /* PCI device info */
+ struct pci_dev *pdev;
+ int bar;
};
/* Register Definitions */
@@ -417,7 +420,8 @@ static int scx200_acb_probe(struct scx20
return 0;
}
-static int __init scx200_acb_create(const char *text, int base, int index)
+static int __init scx200_acb_create(char *text, unsigned int base, int index,
+ struct pci_dev *pdev, int bar)
{
struct scx200_acb_iface *iface;
struct i2c_adapter *adapter;
@@ -444,13 +448,31 @@ static int __init scx200_acb_create(con
snprintf(description, sizeof(description), "%s ACCESS.bus [%s]",
text, adapter->name);
- if (request_region(base, 8, description) == 0) {
- printk(KERN_ERR NAME ": can't allocate io 0x%x-0x%x\n",
- base, base + 8-1);
- rc = -EBUSY;
- goto errout_free;
+ if (pdev != NULL) {
+
+ iface->pdev = pdev;
+ iface->bar = bar;
+
+ pci_enable_device_bars(iface->pdev, 1 << iface->bar);
+
+ if (pci_request_region(iface->pdev, iface->bar, description)) {
+ printk(KERN_ERR NAME ": can't allocate PCI region %d\n",
+ iface->bar);
+ rc = -EBUSY;
+ goto errout_free;
+ }
+
+ iface->base = pci_resource_start(iface->pdev, iface->bar);
+ } else {
+ if (request_region(base, 8, description) == 0) {
+ printk(KERN_ERR NAME ": can't allocate io 0x%x-0x%x\n",
+ base, base + 8 - 1);
+ rc = -EBUSY;
+ goto errout_free;
+ }
+
+ iface->base = base;
}
- iface->base = base;
rc = scx200_acb_probe(iface);
if (rc) {
@@ -474,7 +496,11 @@ static int __init scx200_acb_create(con
return 0;
errout_release:
- release_region(iface->base, 8);
+ if (iface->pdev != NULL)
+ pci_release_region(iface->pdev, iface->bar);
+ else
+ release_region(iface->base, 8);
+
errout_free:
kfree(iface);
errout:
@@ -487,49 +513,60 @@ static struct pci_device_id scx200[] = {
{ },
};
-static struct pci_device_id divil_pci[] = {
- { PCI_DEVICE(PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_CS5535_ISA) },
- { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_ISA) },
- { } /* NULL entry */
+/* On the CS5535 and CS5536, the SMBUS I/0 base is a PCI resource, so
+ we should allocate that resource through the PCI
+ subsystem. rather then going through the MSR back door.
+*/
+
+static struct {
+ unsigned int vendor;
+ unsigned int device;
+ char *name;
+ int bar;
+} divil_pci[] = {
+ {
+ PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_CS5535_ISA, "CS5535", 0}, {
+ PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_ISA, "CS5536", 0}
};
-#define MSR_LBAR_SMB 0x5140000B
+#define DIVIL_LENGTH (sizeof(divil_pci) / sizeof(divil_pci[0]))
static int scx200_add_cs553x(void)
{
- u32 low, hi;
- u32 smb_base;
-
- /* Grab & reserve the SMB I/O range */
- rdmsr(MSR_LBAR_SMB, low, hi);
+ int dev;
+ struct pci_dev *pdev;
- /* Check the IO mask and whether SMB is enabled */
- if (hi != 0x0000F001) {
- printk(KERN_WARNING NAME ": SMBus not enabled\n");
- return -ENODEV;
+ for (dev = 0; dev < DIVIL_LENGTH; dev++) {
+ pdev =
+ pci_find_device(divil_pci[dev].vendor,
+ divil_pci[dev].device, NULL);
+ if (pdev != NULL)
+ break;
}
- /* SMBus IO size is 8 bytes */
- smb_base = low & 0x0000FFF8;
+ if (pdev == NULL)
+ return -ENODEV;
- return scx200_acb_create("CS5535", smb_base, 0);
+ return scx200_acb_create(divil_pci[dev].name, 0, 0, pdev,
+ divil_pci[dev].bar);
}
static int __init scx200_acb_init(void)
{
int i;
- int rc = -ENODEV;
+ int rc = -ENODEV;
pr_debug(NAME ": NatSemi SCx200 ACCESS.bus Driver\n");
- /* Verify that this really is a SCx200 processor */
- if (pci_dev_present(scx200)) {
- for (i = 0; i < MAX_DEVICES; ++i) {
- if (base[i] > 0)
- rc = scx200_acb_create("SCx200", base[i], i);
- }
- } else if (pci_dev_present(divil_pci))
- rc = scx200_add_cs553x();
+ /* If this is a CS5535 or CS5536, then probe the PCI header */
+
+ if (!pci_dev_present(scx200))
+ return scx200_add_cs553x();
+
+ for (i = 0; i < MAX_DEVICES; ++i) {
+ if (base[i] > 0)
+ rc = scx200_acb_create("SCx200", base[i], i, NULL, 0);
+ }
return rc;
}
@@ -544,7 +581,12 @@ static void __exit scx200_acb_cleanup(vo
up(&scx200_acb_list_mutex);
i2c_del_adapter(&iface->adapter);
- release_region(iface->base, 8);
+
+ if (iface->pdev != NULL)
+ pci_release_region(iface->pdev, iface->bar);
+ else
+ release_region(iface->base, 8);
+
kfree(iface);
down(&scx200_acb_list_mutex);
}
^ permalink raw reply related
* acpi_os_wait_semaphore(): don't complain about timeout
From: Bjorn Helgaas @ 2006-03-31 22:33 UTC (permalink / raw)
To: Len Brown; +Cc: linux-acpi, Andrew Morton, Thomas Renniger
The ASL Acquire operator (17.5.1 in ACPI 3.0 spec) is allowed to
time out and return True without acquiring the semaphore. There's
no indication in the spec that this is an actual error, so this
message should be debug-only, as the message for successful acquisition
is.
This used to be an ACPI_DEBUG_PRINT, but it was mis-classified as
ACPI_DB_ERROR rather than ACPI_DB_MUTEX, so it got swept up in
Thomas' recent patch to enable ACPI error messages even without
CONFIG_ACPI_DEBUG.
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Index: work-mm5/drivers/acpi/osl.c
===================================================================
--- work-mm5.orig/drivers/acpi/osl.c 2006-03-23 10:22:40.000000000 -0700
+++ work-mm5/drivers/acpi/osl.c 2006-03-31 14:40:44.000000000 -0700
@@ -816,7 +816,7 @@
}
if (ACPI_FAILURE(status)) {
- ACPI_EXCEPTION((AE_INFO, status,
+ ACPI_DEBUG_PRINT((ACPI_DB_MUTEX,
"Failed to acquire semaphore[%p|%d|%d], %s",
handle, units, timeout,
acpi_format_exception(status)));
^ permalink raw reply
* acpi_bus_unregister_driver(): make void
From: Bjorn Helgaas @ 2006-03-31 22:29 UTC (permalink / raw)
To: Len Brown; +Cc: linux-acpi, Andrew Morton, Francois Romieu
Nobody looks at the return value, and this brings it into line with
pci_unregister_driver(), etc. Also removed validation of the driver
pointer passed in to register and unregister. More consistent, and
we'll find bugs faster if we fault rather than returning an error
that's ignored.
Also makes internal functions acpi_device_unregister() and
acpi_driver_detach() void, since nobody uses their returns either.
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Index: work-mm5/drivers/acpi/scan.c
===================================================================
--- work-mm5.orig/drivers/acpi/scan.c 2006-03-23 10:22:40.000000000 -0700
+++ work-mm5/drivers/acpi/scan.c 2006-03-31 15:00:20.000000000 -0700
@@ -143,7 +143,7 @@
create_sysfs_device_files(device);
}
-static int acpi_device_unregister(struct acpi_device *device, int type)
+static void acpi_device_unregister(struct acpi_device *device, int type)
{
spin_lock(&acpi_device_lock);
if (device->parent) {
@@ -159,7 +159,6 @@
acpi_detach_data(device->handle, acpi_bus_data_handler);
remove_sysfs_device_files(device);
kobject_unregister(&device->kobj);
- return 0;
}
void acpi_bus_data_handler(acpi_handle handle, u32 function, void *context)
@@ -600,7 +599,7 @@
spin_unlock(&acpi_device_lock);
}
-static int acpi_driver_detach(struct acpi_driver *drv)
+static void acpi_driver_detach(struct acpi_driver *drv)
{
struct list_head *node, *next;
@@ -622,7 +621,6 @@
}
}
spin_unlock(&acpi_device_lock);
- return_VALUE(0);
}
/**
@@ -640,9 +638,6 @@
if (acpi_disabled)
return_VALUE(-ENODEV);
- if (!driver)
- return_VALUE(-EINVAL);
-
spin_lock(&acpi_device_lock);
list_add_tail(&driver->node, &acpi_bus_drivers);
spin_unlock(&acpi_device_lock);
@@ -660,13 +655,10 @@
* Unregisters a driver with the ACPI bus. Searches the namespace for all
* devices that match the driver's criteria and unbinds.
*/
-int acpi_bus_unregister_driver(struct acpi_driver *driver)
+void acpi_bus_unregister_driver(struct acpi_driver *driver)
{
ACPI_FUNCTION_TRACE("acpi_bus_unregister_driver");
- if (!driver)
- return_VALUE(-EINVAL);
-
acpi_driver_detach(driver);
if (!atomic_read(&driver->references)) {
@@ -674,7 +666,6 @@
list_del_init(&driver->node);
spin_unlock(&acpi_device_lock);
}
- return_VALUE(0);
}
EXPORT_SYMBOL(acpi_bus_unregister_driver);
Index: work-mm5/include/acpi/acpi_bus.h
===================================================================
--- work-mm5.orig/include/acpi/acpi_bus.h 2006-03-23 10:22:49.000000000 -0700
+++ work-mm5/include/acpi/acpi_bus.h 2006-03-31 15:04:45.000000000 -0700
@@ -327,7 +327,7 @@
int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data);
int acpi_bus_receive_event(struct acpi_bus_event *event);
int acpi_bus_register_driver(struct acpi_driver *driver);
-int acpi_bus_unregister_driver(struct acpi_driver *driver);
+void acpi_bus_unregister_driver(struct acpi_driver *driver);
int acpi_bus_add(struct acpi_device **child, struct acpi_device *parent,
acpi_handle handle, int type);
int acpi_bus_trim(struct acpi_device *start, int rmdevice);
^ permalink raw reply
* Re: [PATCH 0/2] Base pSeries PCIe support
From: Arnd Bergmann @ 2006-03-31 22:28 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Paul Mackerras
In-Reply-To: <20060331160203.f2bf8b53.moilanen@austin.ibm.com>
Am Saturday 01 April 2006 00:02 schrieb Jake Moilanen:
> Here are the two base patches for PCIe on pSeries for 2.6.17.
>
> This is enough to probe, find, configure, and run basic I/O to PCIe
> enabled devices.
Does this use the draft PCIe bindings from Sun, or something else?
Is it compatible with the way that Apple represents PCIe devices
as plain PCI?
I'm just curious.
Arnd <><
^ permalink raw reply
* [ALSA - driver 0001980]: No Sound with module snd-hda-intel and no error output
From: bugtrack @ 2006-03-31 22:28 UTC (permalink / raw)
To: alsa-devel
A NOTE has been added to this issue.
======================================================================
<https://bugtrack.alsa-project.org/alsa-bug/view.php?id=1980>
======================================================================
Reported By: zyfhie
Assigned To: tiwai
======================================================================
Project: ALSA - driver
Issue ID: 1980
Category: PCI - hda-intel
Reproducibility: always
Severity: major
Priority: normal
Status: assigned
Distribution: ubuntu
Kernel Version: 2.6.15-19-386
======================================================================
Date Submitted: 03-30-2006 14:43 CEST
Last Modified: 04-01-2006 00:28 CEST
======================================================================
Summary: No Sound with module snd-hda-intel and no error
output
Description:
I just have ubuntu installed in my laptop,and there is no sound at all.
In dmesg|grep hda-intel there is no message,but I could see
[4296289.511000] ACPI: PCI interrupt for device 0000:00:1b.0 disabled
[4296330.997000] ACPI: PCI Interrupt 0000:00:1b.0[A] -> GSI 16 (level,
low) -> IRQ 201
[4296330.997000] PCI: Setting latency timer of device 0000:00:1b.0 to 64
after rmmod snd-hda-intel &modprobe snd-hda-intel
I had tried many parm in my alsa-base such as model,position_fix.
Hope somebody could help!!!
======================================================================
----------------------------------------------------------------------
error10 - 04-01-06 00:28
----------------------------------------------------------------------
Looks just like bug 1843. Try the fix there and see what happens.
Issue History
Date Modified Username Field Change
======================================================================
03-30-06 14:43 zyfhie New Issue
03-30-06 14:43 zyfhie Distribution => ubuntu
03-30-06 14:43 zyfhie Kernel Version => 2.6.15-19-386
04-01-06 00:28 error10 Note Added: 0009051
======================================================================
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
^ permalink raw reply
* Re: [PATCH 1/2] Base pSeries PCIe support
From: Jake Moilanen @ 2006-03-31 22:18 UTC (permalink / raw)
To: Dave Hansen; +Cc: linuxppc-dev, paulus
In-Reply-To: <1143843311.9731.111.camel@localhost.localdomain>
On Fri, 31 Mar 2006 14:15:11 -0800
Dave Hansen <haveblue@us.ibm.com> wrote:
> On Fri, 2006-03-31 at 16:05 -0600, Jake Moilanen wrote:
> > --- 2.6.16.orig/arch/powerpc/kernel/rtas_pci.c 2006-03-31 15:11:20.000000000 -0600
> > +++ 2.6.16/arch/powerpc/kernel/rtas_pci.c 2006-03-31 15:15:35.000000000 -0600
> > @@ -315,7 +315,8 @@
> > for (node = of_get_next_child(root, NULL);
> > node != NULL;
> > node = of_get_next_child(root, node)) {
> > - if (node->type == NULL || strcmp(node->type, "pci") != 0)
> > +
> > + if (node->type == NULL || ((strcmp(node->type, "pci") != 0) && (strcmp(node->type, "pciex") != 0)))
> > continue;
>
> That one looks to have gone a wee bit over 80 columns.
I need to stop developing on my widescreen. :)
Signed-off-by: Jake Moilanen <moilanen@austin.ibm.com>
---
Index: 2.6.16/arch/powerpc/Kconfig
===================================================================
--- 2.6.16.orig/arch/powerpc/Kconfig 2006-03-31 16:13:26.000000000 -0600
+++ 2.6.16/arch/powerpc/Kconfig 2006-03-31 16:13:36.000000000 -0600
@@ -808,6 +808,8 @@
endchoice
+source "drivers/pci/pcie/Kconfig"
+
source "drivers/pci/Kconfig"
source "drivers/pcmcia/Kconfig"
Index: 2.6.16/arch/powerpc/kernel/pci_64.c
===================================================================
--- 2.6.16.orig/arch/powerpc/kernel/pci_64.c 2006-03-31 16:13:26.000000000 -0600
+++ 2.6.16/arch/powerpc/kernel/pci_64.c 2006-03-31 16:13:36.000000000 -0600
@@ -395,7 +395,7 @@
dev->current_state = 4; /* unknown power state */
- if (!strcmp(type, "pci")) {
+ if (!strcmp(type, "pci") || !strcmp(type, "pciex")) {
/* a PCI-PCI bridge */
dev->hdr_type = PCI_HEADER_TYPE_BRIDGE;
dev->rom_base_reg = PCI_ROM_ADDRESS1;
Index: 2.6.16/arch/powerpc/kernel/rtas_pci.c
===================================================================
--- 2.6.16.orig/arch/powerpc/kernel/rtas_pci.c 2006-03-31 16:13:26.000000000 -0600
+++ 2.6.16/arch/powerpc/kernel/rtas_pci.c 2006-03-31 16:14:10.000000000 -0600
@@ -315,7 +315,9 @@
for (node = of_get_next_child(root, NULL);
node != NULL;
node = of_get_next_child(root, node)) {
- if (node->type == NULL || strcmp(node->type, "pci") != 0)
+
+ if (node->type == NULL || ((strcmp(node->type, "pci") != 0) &&
+ (strcmp(node->type, "pciex") != 0)))
continue;
phb = pcibios_alloc_controller(node);
^ permalink raw reply
* Re: [PATCH 09/15] libata: implement ata_down_xfermask_limit()
From: Alan Cox @ 2006-03-31 22:31 UTC (permalink / raw)
To: Tejun Heo; +Cc: jgarzik, albertcc, linux-ide
In-Reply-To: <11438230983159-git-send-email-htejun@gmail.com>
On Sad, 2006-04-01 at 01:38 +0900, Tejun Heo wrote:
> Implement ata_down_xfermask_limit(). This function manipulates
> @dev->pio/mwdma/udma_mask such that the next lower transfer mode is
> selected. This will be used by ata_bus_probe() rewrite and later by
> EH speeding down.
This will need care. If it is called during a transfer mode change on
error we should document that this function will only be called after
the host_set has been quiesced, otherwise drivers that peek a lot at
their ap-> mode settings at runtime (eg on an IRQ occuring during a
speed change down) are going to burned badly.
It would be nice to see a description of the locking model for a
changedown at this point.
Alan
^ permalink raw reply
* [PATCH 2.6] scx200_acb - Fix for CS5535 eratta
From: Jordan Crouse @ 2006-03-31 22:49 UTC (permalink / raw)
To: linux-kernel; +Cc: lm-sensors, info-linux, BGardner
[-- Attachment #1: Type: text/plain, Size: 395 bytes --]
Hey all - This is a fix for the recently added CS5535/CS5536 support in
the scx200_acb driver. This works around an errata in the CS5535 that
sometimes results in NEGACK not being cleared. It would be great if we
could get this into 2.6.17 with the driver.
Regards,
Jordan
--
Jordan Crouse
Senior Linux Engineer
AMD - Personal Connectivity Solutions Group
<www.amd.com/embeddedprocessors>
[-- Attachment #2: smb-stsreset.patch --]
[-- Type: text/plain, Size: 1432 bytes --]
[PATCH] scx200_acb: Fix for negack clear errata
From: Jordan Crouse <jordan.crouse@amd.com>
This patch is a fix for the CS5535 errata 111:
When the SMB controller tries to access a non-existing device, it sets
the NEGACK bit, SMB I/O Offset 01h[4], to 1 after it detects no
acknowledge at the ninth clock. The specification says there are only
two ways to clear this status bit: write 1 to this bit or disable the
SMB controller. Sometimes this bit is cleared by a read of this
register, but not always.
Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
---
drivers/i2c/busses/scx200_acb.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c
index 8bd305e..e7a2225 100644
--- a/drivers/i2c/busses/scx200_acb.c
+++ b/drivers/i2c/busses/scx200_acb.c
@@ -133,6 +133,9 @@ static void scx200_acb_machine(struct sc
outb(inb(ACBCTL1) | ACBCTL1_STOP, ACBCTL1);
outb(ACBST_STASTR | ACBST_NEGACK, ACBST);
+
+ /* Reset the status register */
+ outb(0, ACBST);
return;
}
@@ -228,6 +231,10 @@ static void scx200_acb_poll(struct scx20
timeout = jiffies + POLL_TIMEOUT;
while (time_before(jiffies, timeout)) {
status = inb(ACBST);
+
+ /* Reset the status register to avoid the hang */
+ outb(0, ACBST);
+
if ((status & (ACBST_SDAST|ACBST_BER|ACBST_NEGACK)) != 0) {
scx200_acb_machine(iface, status);
return;
^ permalink raw reply related
* Re: Moving a file back to an earlier revision.
From: David Ho @ 2006-03-31 22:21 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
In-Reply-To: <7vacb6thc7.fsf@assigned-by-dhcp.cox.net>
> Remember, a branch in git is very cheap, and is a powerful way
> to keep track of things while you decide which alternate
> universe to take. And even after you decide, you could always
> look at and even build on the other universe.
I feel embarrassed to say this but in my branch there are commits to
the driver and other commits for the board so it looks more like
---0---D1---B1---B2---D2---B3---B4---
D* - driver changes
B* - board changes
So to go back to the 0 state I lose my board changes. But I hope what
I did (in my reply to Linus) is very close to your idea of having
separate branches.
David
^ permalink raw reply
* Re: [RESEND][2.6.15] New ATA error messages on upgrade to 2.6.15
From: Eric D. Mudama @ 2006-03-31 22:21 UTC (permalink / raw)
To: Kyle Moffett
Cc: LKML Kernel, Bartlomiej Zolnierkiewicz, Alan Cox, linux-ide,
Andrew Morton
In-Reply-To: <9BA602B9-F1DB-4374-A35F-F68F8CB50326@mac.com>
can you please post your dmesg?
On 3/31/06, Kyle Moffett <mrmacman_g4@mac.com> wrote:
> I haven't received any response to this email over the last several
> days, so I'm resending it in hopes that someone can help me track
> down the problem. Thanks!
>
> On Mar 28, 2006, at 12:57:29, Kyle Moffett wrote:
> > I'm getting the following errors in my syslog on a fairly regular
> > basis (1 or 2 per hour). They seem to have started when I upgraded
> > from Debian 2.6.12-1-powerpc (with internal IDE patch) to Debian
> > 2.6.15-1-powerpc. My best guess is for some reason the kernel
> > started issuing the command MULTWRITE_EXT that it didn't before,
> > and one of my drives doesn't like it. Two of the drives are
> > attached to a Promise PDC20268 (Rebranded a couple times by
> > different manufacturers and with mac-bootable firmware), the third
> > is attached to the internal ATA66 bus in the 400MHz powermac G4.
> > My apologies if this problem is known and fixed in 2.6.16; if
> > necessary I'll wait until Debian testing gets a 2.6.16 kernel and
> > test that too.
>
> A few extra notes: The system is a Samba fileserver for a collection
> of Windows XP clients, but the pattern of errors does not seem to be
> triggered by load, including the daily backups. The hourly smart
> checks also appear to have nothing to do with the error messages;
> sometimes I'll get 10 in the middle of the night, other times almost
> a full day of reasonable load will go by without a single message.
>
> > Thanks for the help!
> >
> > Cheers,
> > Kyle Moffett
> >
> > Begin forwarded message:
> >> Security Events
> >> =-=-=-=-=-=-=-=
> >> Mar 28 03:15:13 penelope kernel: ide: failed opcode was: unknown
> >> Mar 28 03:30:13 penelope kernel: ide: failed opcode was: unknown
> >>
> >> System Events
> >> =-=-=-=-=-=-=
> >> Mar 28 03:15:13 penelope kernel: hdi: status timeout: status=0xd0
> >> { Busy }
> >> Mar 28 03:15:13 penelope kernel: PDC202XX: Secondary channel reset.
> >> Mar 28 03:15:13 penelope kernel: hdi: no DRQ after issuing
> >> MULTWRITE_EXT
> >> Mar 28 03:15:13 penelope kernel: ide4: reset: success
> >> Mar 28 03:30:13 penelope kernel: hdi: status timeout: status=0xd0
> >> { Busy }
> >> Mar 28 03:30:13 penelope kernel: PDC202XX: Secondary channel reset.
> >> Mar 28 03:30:13 penelope kernel: hdi: no DRQ after issuing
> >> MULTWRITE_EXT
> >> Mar 28 03:30:13 penelope kernel: ide4: reset: success
> >
> > smartctl -a:
> >> smartctl version 5.34 [powerpc-unknown-linux-gnu] Copyright (C)
> >> 2002-5 Bruce Allen
> >> Home page is http://smartmontools.sourceforge.net/
> >>
> >> === START OF INFORMATION SECTION ===
> >> Device Model: SAMSUNG SP0822N
> >> Serial Number: S06QJ10Y946116
> >> Firmware Version: WA100-32
> >> User Capacity: 80,060,424,192 bytes
> >> Device is: In smartctl database [for details use: -P show]
> >> ATA Version is: 6
> >> ATA Standard is: ATA/ATAPI-6 T13 1410D revision 1
> >> Local Time is: Tue Mar 28 12:54:35 2006 EST
> >> SMART support is: Available - device has SMART capability.
> >> SMART support is: Enabled
> >>
> >> === START OF READ SMART DATA SECTION ===
> >> SMART overall-health self-assessment test result: PASSED
> >>
> >> General SMART Values:
> >> Offline data collection status: (0x84) Offline data collection
> >> activity
> >> was suspended by an
> >> interrupting command from host.
> >> Auto Offline Data
> >> Collection: Enabled.
> >> Self-test execution status: ( 0) The previous self-test
> >> routine completed
> >> without error or no self-
> >> test has ever
> >> been run.
> >> Total time to complete Offline
> >> data collection: (1980) seconds.
> >> Offline data collection
> >> capabilities: (0x5b) SMART execute Offline
> >> immediate.
> >> Auto Offline data
> >> collection on/off support.
> >> Suspend Offline collection
> >> upon new
> >> command.
> >> Offline surface scan
> >> supported.
> >> Self-test supported.
> >> No Conveyance Self-test
> >> supported.
> >> Selective Self-test
> >> supported.
> >> SMART capabilities: (0x0003) Saves SMART data before
> >> entering
> >> power-saving mode.
> >> Supports SMART auto save
> >> timer.
> >> Error logging capability: (0x01) Error logging supported.
> >> No General Purpose Logging
> >> support.
> >> Short self-test routine
> >> recommended polling time: ( 2) minutes.
> >> Extended self-test routine
> >> recommended polling time: ( 33) minutes.
> >>
> >> SMART Attributes Data Structure revision number: 17
> >> Vendor Specific SMART Attributes with Thresholds:
> >> ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE
> >> UPDATED WHEN_FAILED RAW_VALUE
> >> 1 Raw_Read_Error_Rate 0x000f 100 099 051 Pre-fail
> >> Always - 0
> >> 3 Spin_Up_Time 0x0007 252 252 011 Pre-fail
> >> Always - 0
> >> 4 Start_Stop_Count 0x0032 252 252 000 Old_age
> >> Always - 0
> >> 5 Reallocated_Sector_Ct 0x0033 252 252 011 Pre-fail
> >> Always - 0
> >> 7 Seek_Error_Rate 0x000f 252 252 051 Pre-fail
> >> Always - 0
> >> 8 Seek_Time_Performance 0x0025 092 092 015 Pre-fail
> >> Offline - 3665
> >> 9 Power_On_Half_Minutes 0x0032 099 099 000 Old_age
> >> Always - 32h+43m
> >> 10 Spin_Retry_Count 0x0033 252 252 051 Pre-fail
> >> Always - 0
> >> 11 Calibration_Retry_Count 0x0012 252 252 000 Old_age
> >> Always - 0
> >> 12 Power_Cycle_Count 0x0032 252 252 000 Old_age
> >> Always - 0
> >> 190 Unknown_Attribute 0x0022 154 133 000 Old_age
> >> Always - 33
> >> 194 Temperature_Celsius 0x0022 151 133 000 Old_age
> >> Always - 34
> >> 195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age
> >> Always - 0
> >> 196 Reallocated_Event_Count 0x0032 252 252 000 Old_age
> >> Always - 0
> >> 197 Current_Pending_Sector 0x0012 252 252 000 Old_age
> >> Always - 0
> >> 198 Offline_Uncorrectable 0x0030 252 252 000 Old_age
> >> Offline - 0
> >> 199 UDMA_CRC_Error_Count 0x003e 199 199 000 Old_age
> >> Always - 173
> >> 200 Multi_Zone_Error_Rate 0x000a 100 100 000 Old_age
> >> Always - 0
> >> 201 Soft_Read_Error_Rate 0x000a 100 100 000 Old_age
> >> Always - 0
> >>
> >> Warning! SMART ATA Error Log Structure error: invalid SMART checksum.
> >> SMART Error Log Version: 1
> >> No Errors Logged
> >>
> >> SMART Self-test log structure revision number 0
> >> Warning: ATA Specification requires self-test log structure
> >> revision number = 1
> >> Num Test_Description Status Remaining
> >> LifeTime(hours) LBA_of_first_error
> >> # 1 Short offline Completed without error 00%
> >> 3918 -
> >> # 2 Short offline Completed without error 00%
> >> 3894 -
> >> # 3 Extended offline Interrupted (host reset) 30%
> >> 3870 -
> >> # 4 Short offline Completed without error 00%
> >> 3846 -
> >> # 5 Short offline Completed without error 00%
> >> 3822 -
> >> # 6 Short offline Completed without error 00%
> >> 3798 -
> >> # 7 Short offline Completed without error 00%
> >> 3774 -
> >> # 8 Short offline Completed without error 00%
> >> 3750 -
> >> # 9 Short offline Completed without error 00%
> >> 3726 -
> >> #10 Extended offline Completed without error 00%
> >> 3703 -
> >> #11 Short offline Completed without error 00%
> >> 3678 -
> >> #12 Short offline Completed without error 00%
> >> 3654 -
> >> #13 Short offline Completed without error 00%
> >> 3630 -
> >> #14 Short offline Completed without error 00%
> >> 3606 -
> >> #15 Short offline Completed without error 00%
> >> 3582 -
> >> #16 Short offline Completed without error 00%
> >> 3558 -
> >> #17 Extended offline Completed without error 00%
> >> 3535 -
> >> #18 Short offline Completed without error 00%
> >> 3511 -
> >> #19 Short offline Completed without error 00%
> >> 3487 -
> >> #20 Short offline Completed without error 00%
> >> 3463 -
> >> #21 Short offline Completed without error 00%
> >> 3439 -
> >>
> >> SMART Selective Self-Test Log Data Structure Revision Number (0)
> >> should be 1
> >> SMART Selective self-test log data structure revision number 0
> >> Warning: ATA Specification requires selective self-test log data
> >> structure revision number = 1
> >> SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
> >> 1 0 0 Not_testing
> >> 2 0 0 Not_testing
> >> 3 281479271677952 0 Not_testing
> >> 4 0 281479271767952 Not_testing
> >> 5 604800 4 Not_testing
> >> Selective self-test flags (0x0):
> >> After scanning selected spans, do NOT read-scan remainder of disk.
> >> If Selective self-test is pending on power-up, resume after 0
> >> minute delay.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ide" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
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.