This updates the PowerMac-only platinumfb driver to use the new mac-io
device infrastructure. It also switch allocation to the new
framebuffer_alloc/release and fix a couple of bugs.
This adds a limit on how much of the framebuffer is ioremap'ed by
radeonfb, thus enabling it to work with 128Mb VRAM or more on an x86
with 900Mb of lowmem in the linear mapping.
It also adds a significant amount of debug messages and adds a CONFIG
option to enable the debugging output, that should help with diagnosing
new problems. Among others, it dumps the connector info as I understand
them (so far, they give "strange" informations on laptops, I need more
data on more various laptops to see if there's a pattern I can really use
to figure out on which connector the LVDS is)
Regarding the "lid closed at boot", ultimately, we may want to default
to the VGA output in those cases, though I'm not sure what logic to use
here. Maybe we could standardize some way for the platform to provide
this "environment" information to the driver, but i wouldn't rely on it.
More reliably, if we can find out that there is an LVDS output, and
LVDS is disabled, just ignore the flat panel...
We could assume any mobility chip has LVDS, which is true, but that would
still cause a problem for laptops with an additional DVI output (only
Macs so far afaik).
Fix proper detection of the "noaccel" command line argument for
new radeonfb so we can boot without acceleration. Useful when
diagnosing an accel-related problem.
Marcel Holtmann [Sun, 15 Feb 2004 17:47:56 +0000 (18:47 +0100)]
[Bluetooth] Revert reference counting fixes
The RFCOMM TTY code don't leak reference counting, because the TTY layer
will call the ->close() method even if open fails and the reference count
is decreased there.
This makes fbcon ask for notification of events from fbdev to deal with
suspend/resume (stop cursor on suspend, refresh screen on resume).
Could probably do more (like dealing better with the cursor timer), but
this simple implementation works fine enough for now.
This adds some "state" information for power management to fbdev's,
along with a notifier mecanism to inform clients of state changes. It
also "uses" this mecanism in the function fb_set_suspend() which was an
empty placeholder previously, and "shields" various places that access
the HW when state isn't running. (It's best to not call them in the
first place, but the current state of fbcon makes that _very_ difficult)
This updates the aty128fb driver. It adds more PCI IDs, uses the new
framebuffer alloc/release functions, make BIOS PLL data access more
reliable (using ROM whenever possible, with a fallback to RAM BIOS
image), cleanup the Power Management stuff (get rid of PowerMac specific
stuffs, use real PCI ones instead), along with some style cleanups
This removes the broken locking code in the pixmaps, and rewrite the
buffer access function to properly call fb_sync when needed. The old
broken loocking is useless as we are covered by the console semaphore in
all cases hopefully (except if I missed one :)
[PATCH] shield fbdev operations with console semaphore
This fixes the fbdev ioctl's and fbcon cursor management with the
console semaphore, which is the best we can do at this point in 2.6,
thus fixing a bunch of races where we could have, for example, tried to
blit while changing mode, etc..
Independently from the other fbdev updates I'm cooking (some of them
will be in your mailbox rsn), this fixes an error in parameter passing
to a function in rivafb (only used on ppc) that could cause an oops and
definitely causes a warning at compile time.
Roman Zippel [Sat, 14 Feb 2004 03:51:31 +0000 (19:51 -0800)]
[PATCH] fix FB_RADEON_I2C dependency
Thus fixes the weird kconfig message "optimize || ?", it's an old debug
check and is triggered by the unusual dependency. It's not incorrect,
but the solution below is better and it's the same FB_MATROX_I2C already
uses.
This backs out James' sysfs support for fbdev again. It introduces a
big, race for every driver not converted to framebuffer_{alloc,release}
(that is every driver but Ben's new radeonfb).
I've left in framebuffer_{alloc,release} as stubs so drivers can be
converted to it gradually and once all drivers are done it can be
enabled again.
Anton Blanchard [Fri, 13 Feb 2004 23:30:34 +0000 (15:30 -0800)]
[PATCH] cleanup debugger hooks
Theres still more to do here, but at least the ifdef mess is gone. No
more checking for NULL before calling functions, that was playing with
fire. Oh yeah and lots more deletions :)
Clean up the debugger hooks, it was way too easy to screw up.
And we did. And Linus hit it.
- create CONFIG_DEBUGGER so we can enable kernel debugging options but not
have any trace of debugger gunk.
- remove a bunch of xmon prototypes so no one gets the urge to call them
- Use die() instead of panic in a number of places, it gives us much better
debug information.
- Get rid of the ifdef madness
Anton Blanchard [Fri, 13 Feb 2004 23:30:14 +0000 (15:30 -0800)]
[PATCH] various xmon cleanups
Heres a patch I've had for a while, it removes a bunch of debugger code
which is good :) The next patch will sanitise it (and the rest of the
debugger hooks).
Various xmon cleanups
- recover from bad SPR read/write (we get a program check)
- remove some old code (bat and segment register stuff)
- update the help text to match reality
- add a "press ? for help" when xmon first appears to make rusty happy
- protect against flushing bad parts of memory from Milton
- dont print iseries specific stuff on pseries in SPR dump (S)
- add code to dump the segment table or SLB
- remove a number of functions that wouldnt work on LPAR
Anton Blanchard [Fri, 13 Feb 2004 23:29:59 +0000 (15:29 -0800)]
[PATCH] add thread_info to oops output
- Add thread_info to pointer, its a useful piece of information.
- Do the kallsyms lookup on the link register
- Remove extra newline on one call to die()
Anton Blanchard [Fri, 13 Feb 2004 23:29:48 +0000 (15:29 -0800)]
[PATCH] Fix ppc64 build problem
From: Paul Mackerras <paulus@samba.org>
Recent changes in include/linux/*.h meant that likely()
isn't defined here (since we don't set __KERNEL__), and thus
we don't get some prototypes and we can't use do_div. This
fixes the resulting compile errors and warnings.
Remove %L handling from sprintf - we don't need it, and it
meant we needed do_div from asm/div64.h, which gives problems
when __KERNEL__ isn't defined. Also add a prototype for
strlen to kill a warning.
Andrew Morton [Fri, 13 Feb 2004 07:48:11 +0000 (23:48 -0800)]
[PATCH] ppc32: IBM 40x and 4xx fixes
From: Tom Rini <trini@kernel.crashing.org>
On IBM 40x and IBM 4xx (or more specifically, all Book E processors), the
Save/Restor Registers 2 and 3 Critical Save and Restore Registers 0 and 1
are logically and functionally equivalent. And since the 40x is the early
variant on the Book E model, make generic 4xx/BookE code refer to
CSRR0/CSRR1, and map these to SRR2/SRR3 on 40x.
Andrew Morton [Fri, 13 Feb 2004 07:47:41 +0000 (23:47 -0800)]
[PATCH] ppc32: boot and platform fixes
From: Tom Rini <trini@kernel.crashing.org>
From: Randy Vinson <rvinson@mvista.com>
- Fixup IBM Spruce support (GEN550, general fixes and cleanups).
- Forward-port the INTERACTIVE_CONSOLE bits from 2.4.
- Forward-port the bootinfo code.
- Add a weak get_mem_size() function.
Andrew Morton [Fri, 13 Feb 2004 07:47:31 +0000 (23:47 -0800)]
[PATCH] Suppress reiserfs page allocation wanring
From: Nikita Danilov <Nikita@Namesys.COM>
Some stage in reiserfs balancing (fix_nodes() function) has to be performed
without ever scheduling. If it schedules, it has to be restarted. As we
don't want to restart often, we first try to do atomic allocation, and if
it fails, GFP_NOFS allocation is done, and fix_nodes() restarted.
Andrew Morton [Fri, 13 Feb 2004 07:47:12 +0000 (23:47 -0800)]
[PATCH] Make serial console work for any port
From: Bjorn Helgaas <bjorn.helgaas@hp.com>
The current serial console code only works for ports that are either
defined in SERIAL_PORT_DFNS (and set up by serial8250_isa_init_ports()) or
registered by early_serial_setup().
On ia64, SERIAL_PORT_DFNS is empty because we discover everything via ACPI
and PCI. And we only use early_serial_setup() for one port described by
the HCDP firmware table.
This patch against 2.6.3-rc2 makes it work for any valid port. If we don't
know about the port early, we just return -ENODEV from the setup()
function, which leaves the serial console disabled. After the driver has
found all the ports, we try to register the serial console again if it
hasn't been enabled already.
I think the "port->type == PORT_UNKNOWN" test is cleaner than the
"port->ops" test -- it more clearly gets to the point of "do we know about
this port".
Andrew Morton [Fri, 13 Feb 2004 07:46:43 +0000 (23:46 -0800)]
[PATCH] sh: pvr2fb updates
From: Paul Mundt <lethal@linux-sh.org>
Sanity fixes in pvr2fb_check_var() so we don't constantly report an invalid
pixclock.. also fixup FB_SYNC_BROADCAST setting so this doesn't get
improperly assigned in the VO_VGA case.
Andrew Morton [Fri, 13 Feb 2004 07:46:34 +0000 (23:46 -0800)]
[PATCH] sh: hitfb updates (and accel)
From: Paul Mundt <lethal@linux-sh.org>
This updates hitfb, and also adds basic accel support. Also as we don't need
the generic cfb_copyarea anymore, we no longer link cfbcopyarea.o in at build
time.
Andrew Morton [Fri, 13 Feb 2004 07:45:19 +0000 (23:45 -0800)]
[PATCH] sh: Wrap fb_read/writeX() to __raw_read/writeX()
From: Paul Mundt <lethal@linux-sh.org>
This adds sh to the list of platforms that wrap fb_readX/fb_writeX() to
__raw_readX/__raw_writeX(). This is needed so that the generic fb read/write
routines will wrap properly through the sh machvec and use the appropriate
board-specific I/O routines.
Andrew Morton [Fri, 13 Feb 2004 07:45:01 +0000 (23:45 -0800)]
[PATCH] selinux: Fix bugs in policy loading code
From: Stephen Smalley <sds@epoch.ncsc.mil>
This patch fixes a couple of bugs in the SELinux policy loading code. The
first bug was reported by Magosanyi Arpad; kernel panic upon feeding the
kernel a policy with an empty avtab due to cleanup code trying to free the
avtab twice. The other bugs were reported by Frank Mayer; failure to
properly validate certain values read from the policy.
Jeff Garzik [Fri, 13 Feb 2004 07:27:20 +0000 (02:27 -0500)]
[libata] catch, and ack, spurious DMA interrupts
Hardware issue on Intel ICH5 requires an additional ack sequence
over and above the normal IDE DMA interrupt ack requirements. Issue
described in post to freebsd list:
http://www.mail-archive.com/freebsd-stable@freebsd.org/msg58421.html
Since the bug workaround only requires a single additional PIO or
MMIO read in the interrupt handler, it is applied to all chipsets
using the standard libata interrupt handler.
Credit for research the issue, creating the patch, and testing the
patch all go to Jon Burgess.
This is needed to avoid kmalloc()'s 128K limit when an association is
initialized with a large no. of streams(more than 65000 inbound +
outbound streams).
salinfo automatically processes all record types on all cpus at boot
time, ia64_mca_check_errors is now redundant. This also removes the
need for a called_from_init flag on ia64_mca_log_sal_error_record.
Linus Torvalds [Thu, 12 Feb 2004 05:00:34 +0000 (21:00 -0800)]
Fix "bus_for_each_dev()" and "bus_for_each_drv()", which did not
correctly handle the "restart from this device/driver" case, and
caused oopses with ieee1394.
This just uses "list_for_each_entry_continue()" instead.
Add helper macro to make usage of "list_for_each_entry_continue()"
a bit more readable.
A poll on a non-blocking listen socket signals readable too early. The
first time the socket should be readable is if a child is in connected
state. And don't signal writeable if the socket is in config state.