summaryrefslogtreecommitdiffstats
path: root/drivers
Commit message (Collapse)AuthorAgeFilesLines
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuildLinus Torvalds2007-10-164-4/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: (40 commits) kbuild: introduce ccflags-y, asflags-y and ldflags-y kbuild: enable 'make CPPFLAGS=...' to add additional options to CPP kbuild: enable use of AFLAGS and CFLAGS on commandline kbuild: enable 'make AFLAGS=...' to add additional options to AS kbuild: fix AFLAGS use in h8300 and m68knommu kbuild: check for wrong use of CFLAGS kbuild: enable 'make CFLAGS=...' to add additional options to CC kbuild: fix up CFLAGS usage kbuild: make modpost detect unterminated device id lists kbuild: call export_report from the Makefile kbuild: move Kai Germaschewski to CREDITS kconfig/menuconfig: distinguish between selected-by-another options and comments kconfig: tristate choices with mixed tristate and boolean values include/linux/Kbuild: remove duplicate entries kbuild: kill backward compatibility checks kbuild: kill EXTRA_ARFLAGS kbuild: fix documentation in makefiles.txt kbuild: call make once for all targets when O=.. is used kbuild: pass -g to assembler under CONFIG_DEBUG_INFO kbuild: update _shipped files for kconfig syntax cleanup ... Fix up conflicts in arch/um/sys-{x86_64,i386}/Makefile manually.
| * kbuild: enable 'make CPPFLAGS=...' to add additional options to CPPSam Ravnborg2007-10-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The variable CPPFLAGS is a wellknown variable and the usage by kbuild may result in unexpected behaviour. This patch replace use of CPPFLAGS with KBUILD_CPPFLAGS all over the tree and enabling one to use: make CPPFLAGS=... to specify additional CPP commandline options. Patch was tested on following architectures: alpha, arm, i386, x86_64, mips, sparc, sparc64, ia64, m68k, s390 Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
| * kconfig: syntax cleanup - drop support for "depends/requires/def_boolean"Adrian Bunk2007-10-123-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the following redundant and never or rarely used kconfig syntax: - "def_boolean" (same as "def_bool") - "requires" (same as "depends on") - "depends" (same as "depends on") This patch contains the code changes and Kconfig updates. The shipped files are in next patch to let actual codechange stand out. Signed-off-by: Adrian Bunk <bunk@kernel.org> Cc: "Randy.Dunlap" <rdunlap@xenotime.net> Cc: Bryan Wu <bryan.wu@analog.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Dmitry Torokhov <dtor@mail.ru> Cc: "John W. Linville" <linville@tuxdriver.com> Cc: Roman Zippel <zippel@linux-m68k.org> Cc: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
* | Merge branch 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsaLinus Torvalds2007-10-167-9/+9
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa: (264 commits) [ALSA] version 1.0.15 [ALSA] Fix thinko in cs4231 mce down check [ALSA] sun-cs4231: improved waiting after MCE down [ALSA] sun-cs4231: use cs4231-regs.h [ALSA] This simplifies and fixes waiting loops of the mce_down() [ALSA] This patch adds support for a wavetable chip on [ALSA] This patch removes open_mutex from the ad1848-lib as [ALSA] fix bootup crash in snd_gus_interrupt() [ALSA] hda-codec - Fix SKU ID function for realtek codecs [ALSA] Support ASUS P701 eeepc [0x1043 0x82a1] support [ALSA] hda-codec - Add array terminator for dmic in STAC codec [ALSA] hdsp - Fix zero division [ALSA] usb-audio - Fix double comment [ALSA] hda-codec - Fix STAC922x volume knob control [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz [ALSA] hda-codec - Fix for Fujitsu Lifebook C1410 [ALSA] mpu-401: remove MPU401_INFO_UART_ONLY flag [ALSA] mpu-401: do not require an ACK byte for the ENTER_UART command [ALSA] via82xx - Add DXS quirk for Shuttle AK31v2 [ALSA] hda-codec - Fix input_mux numbers for vaio stac92xx ...
| * | [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.czJaroslav Kysela2007-10-167-9/+9
| | | | | | | | | | | | Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* | | Merge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-blockLinus Torvalds2007-10-1688-646/+522
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block: (63 commits) Fix memory leak in dm-crypt SPARC64: sg chaining support SPARC: sg chaining support PPC: sg chaining support PS3: sg chaining support IA64: sg chaining support x86-64: enable sg chaining x86-64: update pci-gart iommu to sg helpers x86-64: update nommu to sg helpers x86-64: update calgary iommu to sg helpers swiotlb: sg chaining support i386: enable sg chaining i386 dma_map_sg: convert to using sg helpers mmc: need to zero sglist on init Panic in blk_rq_map_sg() from CCISS driver remove sglist_len remove blk_queue_max_phys_segments in libata revert sg segment size ifdefs Fixup u14-34f ENABLE_SG_CHAINING qla1280: enable use_sg_chaining option ...
| * | | Fix memory leak in dm-cryptNeil Brown2007-10-161-26/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dm-crypt used the ->bi_size member in the bio endio handling to free the appropriate pages, but it frees all of it from both call paths. With the ->bi_end_io() changes, ->bi_size was always 0 since we don't do partial completes. This caused dm-crypt to leak memory. Fix this by removing the size argument from crypt_free_buffer_pages(). Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| * | | Merge branch 'sglist-arch' into for-linusJens Axboe2007-10-1671-276/+509
| |\ \ \
| | * | | mmc: need to zero sglist on initJens Axboe2007-10-161-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise we could have junk in the sg fields, fooling the sg chaining into thinking ->page is valid. Acked-by: Pierre Ossman <drzeus@drzeus.cx> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | Panic in blk_rq_map_sg() from CCISS driverLee Schermerhorn2007-10-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New scatter/gather list chaining [sg_next()] treats 'page' member of struct scatterlist with low bit set [0x01] as a chain pointer to another struct scatterlist [array]. The CCISS driver request function passes an uninitialized, temporary, on-stack scatterlist array to blk_rq_map_sq(). sg_next() interprets random data on the stack as a chain pointer and eventually tries to de-reference an invalid pointer, resulting in: [<ffffffff8031dd70>] blk_rq_map_sg+0x70/0x170 PGD 6090c3067 PUD 0 Oops: 0000 [1] SMP last sysfs file: /block/cciss!c0d0/cciss!c0d0p1/dev CPU 6 Modules linked in: ehci_hcd ohci_hcd uhci_hcd Pid: 1, comm: init Not tainted 2.6.23-rc6-mm1 #3 RIP: 0010:[<ffffffff8031dd70>] [<ffffffff8031dd70>] blk_rq_map_sg+0x70/0x170 RSP: 0018:ffff81060901f768 EFLAGS: 00010206 RAX: 000000040b161000 RBX: ffff81060901f7d8 RCX: 000000040b162c00 RDX: 0000000000000000 RSI: ffff81060b13a260 RDI: ffff81060b139600 RBP: 0000000000001400 R08: 00000000fffffffe R09: 0000000000000400 R10: 0000000000000000 R11: 000000040b163000 R12: ffff810102fe0000 R13: 0000000000000001 R14: 0000000000000001 R15: 00001e0000000000 FS: 00000000026108f0(0063) GS:ffff810409000b80(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 000000010000001e CR3: 00000006090c6000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process init (pid: 1, threadinfo ffff81060901e000, task ffff810409020800) last branch before last exception/interrupt from [<ffffffff8031de0a>] blk_rq_map_sg+0x10a/0x170 to [<ffffffff8031dd70>] blk_rq_map_sg+0x70/0x170 Stack: 000000018068ea00 ffff810102fe0000 0000000000000000 ffff810011400000 0000000000000002 0000000000000000 ffff81040b172000 ffffffff803acd3d 0000000000003ec1 ffff8106090d5000 ffff8106090d5000 ffff810102fe0000 Call Trace: [<ffffffff803acd3d>] do_cciss_request+0x15d/0x4c0 [<ffffffff80298968>] new_slab+0x1c8/0x270 [<ffffffff80298ffd>] __slab_alloc+0x22d/0x470 [<ffffffff8027327b>] mempool_alloc+0x4b/0x130 [<ffffffff8032b21e>] cfq_set_request+0xee/0x380 [<ffffffff8027327b>] mempool_alloc+0x4b/0x130 [<ffffffff8031ff98>] get_request+0x168/0x360 [<ffffffff80331b0d>] rb_insert_color+0x8d/0x110 [<ffffffff8031cfd8>] elv_rb_add+0x58/0x60 [<ffffffff8032a329>] cfq_add_rq_rb+0x69/0xa0 [<ffffffff8031c1ab>] elv_merged_request+0x5b/0x60 [<ffffffff803224fd>] __make_request+0x23d/0x650 [<ffffffff80298ffd>] __slab_alloc+0x22d/0x470 [<ffffffff80270000>] generic_write_checks+0x140/0x190 [<ffffffff8031f012>] generic_make_request+0x1c2/0x3a0 <etc> Kernel panic - not syncing: Attempted to kill init! This patch initializes the tmp_sg array to zeroes. Perhaps not the ultimate fix, but an effective work-around. I can now boot 23-rc6-mm1 on an HP Proliant x86_64 with CCISS boot disk. Signed-off-by: Lee Schermerhorn <lee.schermerhorn@hp.com> drivers/block/cciss.c | 1 + 1 file changed, 1 insertion(+) Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | remove sglist_lenFUJITA Tomonori2007-10-161-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | remove blk_queue_max_phys_segments in libataFUJITA Tomonori2007-10-161-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LIBATA_MAX_PRD is the maximum number of DMA scatter/gather elements permitted by the HBA's DMA engine. It's properly set to q->max_hw_segments via the sg_tablesize parameter. libata shouldn't call blk_queue_max_phys_segments. Now LIBATA_MAX_PRD is equal to SCSI_MAX_PHYS_SEGMENTS by default (both is 128), so everything is fine. But if they are changed, some code (like the scsi mid layer, sg chaining, etc) might not work properly. (Addition from Jens) The basic issue is that the physical segment setting is purely a driver issue. And since SCSI is managing the sglist, libata has no business changing the setting. All libata should care about is the hw segment setting. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | revert sg segment size ifdefsFUJITA Tomonori2007-10-161-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts sg segment size ifdefs that the current code has in order to provide a way to reduce sgpool memory consumption. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | Fixup u14-34f ENABLE_SG_CHAININGAndrew Morton2007-10-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | qla1280: enable use_sg_chaining optionFUJITA Tomonori2007-10-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | [SCSI] add use_sg_chaining option to scsi_host_templateFUJITA Tomonori2007-10-1637-3/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This option is true if a low-level driver can support sg chaining. This will be removed eventually when all the drivers are converted to support sg chaining. q->max_phys_segments is set to SCSI_MAX_SG_SEGMENTS if false. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | qla1280: sg chaining fixesFUJITA Tomonori2007-10-161-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | libata sg chaining support fixFUJITA Tomonori2007-10-161-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | zfcp: sg chaining supportFUJITA Tomonori2007-10-162-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | ips: sg chaining supportFUJITA Tomonori2007-10-161-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ips properly uses scsi_for_each_sg for the normal I/O path, however, the breakup path doesn't. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | IDE: sg chaining supportJens Axboe2007-10-168-11/+24
| | | | | | | | | | | | | | | | | | | | | | | | | Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | Fusion: sg chaining supportJens Axboe2007-10-161-3/+3
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | USB storage: sg chaining supportJens Axboe2007-10-168-45/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [PATCH] USB storage: sg chaining support Modify usb_stor_access_xfer_buf() to take a pointer to an sg entry pointer, so we can keep track of that instead of passing around an integer index (which we can't use when dealing with multiple scatterlist arrays). Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | infiniband: sg chaining supportJens Axboe2007-10-162-38/+47
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | aha1542: convert to use the data buffer accessorsJens Axboe2007-10-161-17/+15
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | ide-scsi: sg chaining supportJens Axboe2007-10-161-14/+18
| | | | | | | | | | | | | | | | | | | | | | | | | Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | qlogicpti: sg chaining supportJens Axboe2007-10-161-7/+8
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | aic94xx: sg chaining supportJens Axboe2007-10-161-3/+3
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | qla1280: sg chaining supportJens Axboe2007-10-161-29/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Interesting hardware setup... Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | scsi generic: sg chaining supportJens Axboe2007-10-161-8/+8
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | scsi_debug: support sg chainingJens Axboe2007-10-161-14/+16
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Douglas Gilbert <dougg@torque.net> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | libata: convert to using sg helpersJens Axboe2007-10-161-14/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This converts libata to using the sg helpers for looking up sg elements, instead of doing it manually. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | SCSI: support for allocating large scatterlistsJens Axboe2007-10-161-47/+162
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is what enables large commands. If we need to allocate an sgtable that doesn't fit in a single page, allocate several SCSI_MAX_SG_SEGMENTS sized tables and chain them together. SCSI defaults to large chained sg tables, if the arch supports it. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | scsi: simplify scsi_free_sgtable()Jens Axboe2007-10-162-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just pass in the command, no point in passing in the scatterlist and scatterlist pool index seperately. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | scsi: convert to using sg helpersJens Axboe2007-10-161-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This converts the SCSI mid layer to using the sg helpers for looking up sg elements, instead of doing it manually. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| * | | | Merge branch 'barrier' into for-linusJens Axboe2007-10-1616-341/+7
| |\| | |
| | * | | pktcdvd: don't rely on bio_init() preserving bio->bi_destructorLaurent Riffard2007-10-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Laurent Riffard <laurent.riffard@free.fr> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | pktcdvd: don't rely on bio_init() preserving bio->bi_io_vecJens Axboe2007-10-161-0/+5
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | remove ide_get_error_location()Adrian Bunk2007-10-161-35/+0
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| | * | | block: convert blkdev_issue_flush() to use empty barriersJens Axboe2007-10-1614-306/+0
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | Then we can get rid of ->issue_flush_fn() and all the driver private implementations of that. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| * / / drivers/block/cpqarray,cciss: kill unused varJeff Garzik2007-10-162-3/+1
| |/ / | | | | | | | | | | | | | | | | | | The recent bio work and subsequent fixups created unused variables. Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
* | | scsi_mac.h: Define AUTOSENSE before include of NCR5380.hBoaz Harrosh2007-10-161-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | - Previese patch to NCR5380 broke scsi_mac because AUTOSENSE was defined after the inclusion of NCR5380.h. Fix it Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | tgafb: remove a redundant non-mono test in mono imageblitMaciej W. Rozycki2007-10-161-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is a test in tgafb_mono_imageblit() for a colour image with a fall-back to cfb_imageblit(). The test is not necessary as the only caller, which is tgafb_imageblit(), checks it too and only invokes this function for monochrome images. It looks like a left-over from before some changes to tgafb_imageblit(). Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Antonino Daplas <adaplas@pol.net> Cc: Jay Estabrook <Jay.Estabrook@hp.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | tgafb: fix an out-of-range shift in mono imageblitMaciej W. Rozycki2007-10-161-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pixel mask calculation in tgafb_mono_imageblit() uses a variable left-shift on a 32-bit data type by up to 32. Shifting by the width of a data type or more produces an unpredictable result according to the C standard. Rather than widening the data type this fix makes sure the count is between 0 and 31. The reason is not to penalise 32-bit platforms with operation on a "long long" type for a marginal case that is meant not to happen (blitting an image of a zero width). The reason it has escaped for so long is the Alpha, being purely 64-bit, :-) does not mask the shift out to 32 bits. This is a valid implementation -- producing the correct result certainly falls within "unpredictable behaviour". It does trigger on MIPS though and it is the recent merge of the TC support which only enabled the driver for use on anything other than the Alpha. For MIPS when the width is 32 the mask ends up being 0 rather than 0xffffffff as it should be and the frame buffer is not updated. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: Antonino Daplas <adaplas@pol.net> Cc: Jay Estabrook <Jay.Estabrook@hp.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | fbcon: delay the start of the cursor timer until a con_switch()Antonino Daplas2007-10-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As reported in Bugzilla Bug 9093, upon switching to X, a small rectangular cursor can still be seen blinking in the upper left part of the screen. It is fbcon's text cursor. This is caused by a strange ioctl(..., KDSETMODE, KD_TEXT) call done by something in userspace, perhaps by X itself, while the tty is still in graphics mode. And when the tty is in KD_TEXT mode, the cursor timer is restarted. Although this is a userspace problem, we can work around it by delaying the restart of the cursor timer until an fbcon_switch() is called. In other words, the cursor timer will not be restarted even if a KD_TEXT mode switch is requested. Regression potential: Present but low Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | fbdev: copyarea function taught to fully support swapped pixel order in bytePavel Pisa2007-10-162-25/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This correct case, when source and destination X coordinates difference is n multiple of pixels in byte. This is probably rare case, but this case should supported for completeness. Reorganization of FB_READL and FB_WRITEL calls results in code size decrease for normal build without swapping support and size with support enabled is reasonable too. [adaplas] Add missing fb_rev_pixels_in_long() prototype. Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz> Signed-off-by: Antonino Daplas <adaplas@gmail.com> [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | s3fb: do not allow incorrect pixclock settingsKrzysztof Helt2007-10-161-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds check if selected pixclock is valid (is in the PLL range). Previously, if the pixclock could not be set, the new mode resolution was set but pixclock was not set which led to incorrect timings sent to monitor. [adaplas] Fixed a few misplaced curly braces. Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | svgalib: mode selection updatesOndrej Zajicek2007-10-162-18/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch changes mode selection matching algorithm. It allows to choose mode with matching depth even when requested color lengths are greater than color lengths of every mode with requested color depth. It also fixes bug in s3fb - wrong error value returned when format is not supported by chip. Signed-off-by: Ondrej Zajicek <santiago@crfreenet.org> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | ps3fb: default to 480p on DVI-D/HDMI if video=safeGeert Uytterhoeven2007-10-161-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Default to the 480p video mode on DVI-D and HDMI displays if `video=safe' is passed on the kernel command line. This is intended to be used by `kboot'-style boot loaders (i.e. first-stage kernels) for the PS3, to provide a failsafe video mode. Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | | fb: move and rename extern declaration for global_mode_optionGeert Uytterhoeven2007-10-162-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the extern declaration for global_mode_option to <linux/fb.h> and rename the variable to fb_mode_option. Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>