aboutsummaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2008-12-29[ARM] pxafb: add palette format support for LCCR4_PAL_FOR_3Eric Miao
Add the palette format support for LCCR4_PAL_FOR_3, and fix the issue of LCCR4 being never assigned. Also remove the useless pxafb_set_truecolor(). Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Eric Miao <ycmiao@ycmiao-hp520.(none)>
2008-12-29[ARM] pxafb: add support for FBIOPAN_DISPLAY by dma brachingEric Miao
dma branching is enabled by extending the current setup_frame_dma() function to allow a 2nd set of frame/palette dma descriptors to be used. As a result, pxafb_dma_buff.dma_desc[], pxafb_dma_buff.pal_desc[] and pxafb_info.fdadr[] are doubled. This allows maximum re-use of the current dma setup code, although the pxafb_info.fdadr[xx] for FBRx register values looks a bit odd. Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Eric Miao <ycmiao@ycmiao-hp520.(none)>
2008-12-29[ARM] pxafb: allow pxafb_set_par() to start from arbitrary yoffsetEric Miao
Note the var->yres_virtual is only re-calculated from the fix.smem_len when text mode acceleration is enabled (which is default), this is due to the issue as Russell suggested below: Previous experience of doing this with the X server and acornfb is that it causes all sorts of problems - it seems to force the X server into assuming that the framebuffer should be panned no matter what settings you ask it for. The recommended workaround (implemented in acornfb) is to only do these kinds of adjustments if text mode acceleration is enabled. IIRC, the X server should be disabling text mode acceleration when it maps the framebuffer. I seem to remember that there are X servers which forget to do that though. Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Eric Miao <ycmiao@ycmiao-hp520.(none)>
2008-12-29[ARM] pxafb: allow video memory size to be configurableEric Miao
The amount of video memory size is decided according to the following order: 1. <xres> x <yres> x <bits_per_pixel> by default, which is the backward compatible way 2. size specified in platform data 3. size specified in module parameter 'options' string or specified in kernel boot command line (see updated Documentation/fb/pxafb.txt) And now since the memory is allocated from system memory, the pxafb_mmap can be removed and the default fb_mmap() should be working all right. Also, since we now have introduced the 'struct pxafb_dma_buff' for DMA descriptors and palettes, the allocation can be separated cleanly. NOTE: the LCD DMA actually supports chained transfer (i.e. page-based transfers), to simplify the logic and keep the performance (with less TLB misses when accessing from memory mapped user space), the memory is allocated by alloc_pages_*() to ensures it's physical contiguous. Signed-off-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Eric Miao <ycmiao@ycmiao-hp520.(none)>
2008-12-29[ARM] sa1100_wdt: don't assume CLOCK_TICK_RATE to be a constantEric Miao
See description of commit: [ARM] rtc-sa1100: don't assume CLOCK_TICK_RATE to be a constant for additional information. Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-29[ARM] rtc-sa1100: don't assume CLOCK_TICK_RATE to be a constantEric Miao
As Nicolas and Russell pointed out, CLOCK_TICK_RATE is no more a constant on PXA when multiple processors and platforms are selected, change TIMER_FREQ in rtc-sa1100.c into a variable. Since the code to decide the clock tick rate is re-used from timer.c, introduce a common get_clock_tick_rate() for this. Signed-off-by: Eric Miao <eric.miao@marvell.com> Acked-by: Nicolas Pitre <nico@marvell.com>
2008-12-17[ARM] pxafb: avoid the racing condition in pxafb_smart_threadEric Miao
fbi->state change shall really be protected by fbi->ctrlr_lock, where the change is sheltered. There is a possibility that pxafb_smart_thread will start update the LCD panel when fbi->state == C_ENABLE, while all other initialization isn't done. Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17[ARM] pxafb: allow insertion of delay to the smart panel command sequenceEric Miao
Some smart panel requires a delay between command sequences, while PXA LCD controller didn't provide such one, let's emulate this by software. A software delay marker can be inserted into the command sequence, once pxafb_smart_queue() detects this, it flushes the previous commands and delay for a specified number of milliseconds. Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17[ARM] pxafb: allow better platform configurable smart panel timingEric Miao
For smart panels (LCD panel with internal framebuffer), the following LCCR3 register bits have different meanings than the parallel one: LCCR3_PCP - controls the L_PCLK_WR polarity LCCR3_HSP - controls the L_LCLK_A0 polarity LCCR3_VSP - controls the L_FCLK_RD polarity To keep minimum change to the original parallel timing, the .lcd_conn flags and 'pxafb_mode_info.sync' are re-used to reflect this: LCD_PCLK_EDGE_{RISE,FALL} - configures LCCR3_PCP sync & FB_SYNC_{HOR,VERT}_HIGH_ACT - configures LCCR3_{HSP,VSP} Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17[ARM] pxafb: small cleanup of the smart panel codeEric Miao
Group smart panel related code in a more compact fasion, avoid abused usage of #ifdef .. #endif. Also fix the incorrect condition in pxafb_smart_init() to decide if it is a smart panel or not. (should be '&' instead of '|') Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-17[ARM] pxafb: remove now unused pxafb_setup_gpio() and related stuffsEric Miao
platform should now initialize the pin usage for the LCD controller to correctly work. Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-02[ARM] pxafb: make {backlight,lcd}_power() members of struct pxafb_infoEric Miao
instead of holding them as static pointers. Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-02[ARM] pxa: move AC97 register definitions into dedicated regs-ac97.hEric Miao
The optimal change would be to move the AC97 register definitions into the AC97 driver, unfortunately, the registers are shared between several files. Move them into a dedicated regs-ac97.h first. Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-02[ARM] pxa: move UART register definitions into dedicated regs-uart.hEric Miao
Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-02[ARM] pxa: move FICP register definitions into pxaficp_ir.cEric Miao
Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-12-02[ARM] pxa: move camera (QCI) registers definition out of pxa-regs.hEric Miao
Signed-off-by: Eric Miao <eric.miao@marvell.com> Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
2008-12-02[ARM] pxa: explicit #include <mach/dma.h> in various driversEric Miao
Where 'pxa_dma_desc' and 'pxa_{request,free}_dma' are referenced. Signed-off-by: Eric Miao <eric.miao@marvell.com>
2008-11-20Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 5330/1: mach-pxa: Fixup reset for systems using reboot=cold or other strings [ARM] pxa: fix incorrect PCMCIA PSKTSEL pin configuration for spitz [ARM] pxa: fix I2C controller device being registered twice on Akita pxafb: only initialize the smart panel thread when dealing with a smartpanel pxafb: introduce LCD_TYPE_MASK and use it.
2008-11-20Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: USB: ACE1001 patch for cp2101.c USB: usbmon: fix read(2) USB: gadget rndis: send notifications USB: gadget rndis: stop windows self-immolation USB: storage: update unusual_devs entries for Nokia 5300 and 5310 USB: storage: updates unusual_devs entry for the Nokia 6300 usb: musb: fix bug in musb_schedule USB: fix SB700 usb subsystem hang bug
2008-11-20Merge branch 'core-fixes-for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: intel-iommu: fix compile warnings
2008-11-20Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (23 commits) net: fix tiny output corruption of /proc/net/snmp6 atl2: don't request irq on resume if netif running ipv6: use seq_release_private for ip6mr.c /proc entries pkt_sched: fix missing check for packet overrun in qdisc_dump_stab() smc911x: Fix printf format typo in smc911x driver. asix: Fix asix-based cards connecting to 10/100Mbs LAN. mv643xx_eth: fix recycle check bound mv643xx_eth: fix the order of mdiobus_{unregister, free}() calls sh: sh_eth: Update to change of mii_bus TPROXY: supply a struct flowi->flags argument in inet_sk_rebuild_header() TPROXY: fill struct flowi->flags in udp_sendmsg() net: ipg.c fix bracing on endian swapping phylib: Fix auto-negotiation restart avoidance net: jme.c rxdesc.flags is __le16, other missing endian swaps phylib: fix phy name example in documentation net: Do not fire linkwatch events until the device is registered. phonet: fix compilation with gcc-3.4 ixgbe: fix compilation with gcc-3.4 pktgen: fix multiple queue warning net: fix ip_mr_init() error path ...
2008-11-20atl2: don't request irq on resume if netif runningAlan Jenkins
If the device is suspended with the cable disconnected, then resumed with the cable connected, dev->open is called before resume. During resume, we request an IRQ, but the IRQ was already assigned during dev->open, resulting in the warning shown below. Don't request an IRQ if the device is running. Call Trace: [<c011b89a>] warn_on_slowpath+0x40/0x59 [<c023df15>] raw_pci_read+0x4d/0x55 [<c023dff3>] pci_read+0x1c/0x21 [<c01bcd81>] __pci_find_next_cap_ttl+0x44/0x70 [<c01bce86>] __pci_find_next_cap+0x1a/0x1f [<c01bcef9>] pci_find_capability+0x28/0x2c [<c01c4144>] pci_msi_check_device+0x53/0x62 [<c01c49c2>] pci_enable_msi+0x3a/0x1cd [<e019f17b>] atl2_write_phy_reg+0x40/0x5f [atl2] [<c01061b1>] dma_generic_alloc_coherent+0x0/0xd7 [<e019f107>] atl2_request_irq+0x15/0x49 [atl2] [<e01a1481>] atl2_open+0x20b/0x297 [atl2] [<c024a35c>] dev_open+0x62/0x91 [<c0248b9a>] dev_change_flags+0x93/0x141 [<c024f308>] do_setlink+0x238/0x2d5 [<c02501b2>] rtnl_setlink+0xa9/0xbf [<c0297f0c>] mutex_lock+0xb/0x19 [<c024ffa7>] rtnl_dump_ifinfo+0x0/0x69 [<c0250109>] rtnl_setlink+0x0/0xbf [<c024fe42>] rtnetlink_rcv_msg+0x185/0x19f [<c0240fd1>] sock_rmalloc+0x23/0x57 [<c024fcbd>] rtnetlink_rcv_msg+0x0/0x19f [<c0259457>] netlink_rcv_skb+0x2d/0x71 [<c024fcb7>] rtnetlink_rcv+0x14/0x1a [<c025929e>] netlink_unicast+0x184/0x1e4 [<c025992a>] netlink_sendmsg+0x233/0x240 [<c023f405>] sock_sendmsg+0xb7/0xd0 [<c0129131>] autoremove_wake_function+0x0/0x2b [<c0129131>] autoremove_wake_function+0x0/0x2b [<c0147796>] mempool_alloc+0x2d/0x9e [<c020c923>] scsi_pool_alloc_command+0x35/0x4f [<c0297f0c>] mutex_lock+0xb/0x19 [<c028e867>] unix_stream_recvmsg+0x357/0x3e2 [<c01b81c9>] copy_from_user+0x23/0x4f [<c02452ea>] verify_iovec+0x3e/0x6c [<c023f5ab>] sys_sendmsg+0x18d/0x1f0 [<c023ffa8>] sys_recvmsg+0x146/0x1c8 [<c0240016>] sys_recvmsg+0x1b4/0x1c8 [<c0118f48>] __wake_up+0xf/0x15 [<c02586cd>] netlink_table_ungrab+0x17/0x19 [<c01b83ba>] copy_to_user+0x25/0x3b [<c023fe4a>] move_addr_to_user+0x50/0x68 [<c0240266>] sys_getsockname+0x6f/0x9a [<c0240280>] sys_getsockname+0x89/0x9a [<c015046a>] do_wp_page+0x3ae/0x41a [<c0151525>] handle_mm_fault+0x4c5/0x540 [<c02405d0>] sys_socketcall+0x176/0x1b0 [<c010376d>] sysenter_do_call+0x12/0x21 Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk> Signed-off-by: Jay Cliburn <jcliburn@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-11-20Merge branch 'master' of ↵David S. Miller
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
2008-11-20smc911x: Fix printf format typo in smc911x driver.Vernon Sauder
Signed-off-by: Vernon Sauder <VernonInHand@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-11-20asix: Fix asix-based cards connecting to 10/100Mbs LAN.Pantelis Koukousoulas
Add AX_MEDIUM_ENCK also when speed = 10/100Mbps. This allows my belkin f5d5055 to work with my 100Mbps switch and with an old 10Mbps ISA card. Without this patch, the card is recognized and the interface is brought up fine, but no packets actually flow through the interface. Signed-off-by: Pantelis Koukousoulas <pktoss@gmail.com> Acked-by: David Hollis <dhollis@davehollis.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-11-20mv643xx_eth: fix recycle check boundLennert Buytenhek
When mv643xx_eth allocates skbuffs, it adds 'dma_get_cache_alignment() - 1' to the length it needs, so that it can align the skb's ->data pointer to a cache boundary. When checking whether a transmitted skbuff can be reused as a receive buffer, these bytes needs to be included into the minimum bound for the recycle check. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-11-20mv643xx_eth: fix the order of mdiobus_{unregister, free}() callsLennert Buytenhek
Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-11-20sh: sh_eth: Update to change of mii_busNobuhiro Iwamatsu
Update to change of mii_bus interface and fix some warning. Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2008-11-19USB: ACE1001 patch for cp2101.cM Kondrin
The patch which adds IDs for AKTAKOM USB->RS232 cable (http://www.aktakom.ru/product/kio/ace-1001.htm) is attached. From: M Kondrin <mkondrin@hppi.troitsk.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-11-19USB: usbmon: fix read(2)Pete Zaitcev
There's a bug in the usbmon binary reader: When using read() to fetch the packets and a packet's data is partially read, the next read call will once again return up to len_cap bytes of data. The b_read counter is not regarded when determining the remaining chunk size. So, when dumping USB data with "cat /dev/usbmon0 > usbmon.trace" while reading from a USB storage device and analyzing the dump file afterwards it will get out of sync after a couple of packets. Signed-off-by: Ingo van Lil <inguin@gmx.de> Signed-off-by: Pete Zaitcev <zaitcev@redhat.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-11-19USB: gadget rndis: send notificationsRichard Röjfors
It turns out that atomic_inc_return() returns the *new* value not the original one, so the logic in rndis_response_available() kept the first RNDIS response notification from getting out. This prevented interoperation with MS-Windows (but not Linux). Fix this to make RNDIS behave again. Signed-off-by: Richard Röjfors <richard.rojfors@endian.se> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-11-19USB: gadget rndis: stop windows self-immolationDavid Brownell
Somewhere in the conversion of the RNDIS gadget code to the new framework, the descriptor of its data interface seems to have been copied from the CDC Ethernet driver. Unfortunately that means it got a nonzero altsetting ... which is incorrect. Issue uncovered by Richard Röjfors <richard.rojfors@endian.se>. This patch fixes that problem, and resolves at least some cases of Windows XP bluescreening itself. Tested-by: Richard Röjfors <richard.rojfors@endian.se>. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-11-19USB: storage: update unusual_devs entries for Nokia 5300 and 5310Alan Stern
This patch (as1168) updates the unusual_devs entry for the Nokia 5300. According to Jorge Lucangeli Obes <t4m5yn@gmail.com>, some existing models have a revision number lower than the lower limit of the current entry. The patch also moves the entry for the Nokia 5310 to its correct place in the file. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-11-19USB: storage: updates unusual_devs entry for the Nokia 6300Alan Stern
This patch (as1169) modifies the unusual_devs entry for the Nokia 6300. According to Maciej Gierok <mgierok@gmail.com> and David McBride <dwm@doc.ic.ac.uk>, the revision limits need to be wider. This fixes Bugzilla #11768. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-11-19usb: musb: fix bug in musb_scheduleFelipe Balbi
This bug was introduced recently. Fix it before bigger problems appear. Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-11-19USB: fix SB700 usb subsystem hang bugAndiry Xu
This patch is required for AMD SB700 south bridge revision A12 and A13 to avoid USB subsystem hang symptom. The USB subsystem hang symptom is observed when the system has multiple USB devices connected to it. In some cases a USB hub may be required to observe this symptom. This patch works around the problem by correcting the internal register setting that will help by changing the behavior of the internal logic to avoid the USB subsystem hang issue. The change in the behavior of the logic does not impact the normal operation of the USB subsystem. Reported-by: Volker Armin Hemmann <volker.armin.hemmann@tu-clausthal.de> Tested-by: Volker Armin Hemmann <volker.armin.hemmann@tu-clausthal.de> Signed-off-by: Andiry Xu <andiry.xu@amd.com> Signed-off-by: Libin Yang <libin.yang@amd.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-11-19Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: PCI: Fix disable IRQ 0 in pci_reset_function()
2008-11-19Merge branch 'x86-fixes-for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: more general identifier for Phoenix BIOS AMD IOMMU: check for next_bit also in unmapped area AMD IOMMU: fix fullflush comparison length AMD IOMMU: enable device isolation per default AMD IOMMU: add parameter to disable device isolation x86, PEBS/DS: fix code flow in ds_request() x86: add rdtsc barrier to TSC sync check xen: fix scrub_page() x86: fix es7000 compiling x86, bts: fix unlock problem in ds.c x86, voyager: fix smp generic helper voyager breakage x86: move iomap.h to the new include location
2008-11-19cciss: fix DEBUG printk formatsRandy Dunlap
Fix printk format warnings when CCISS_DEBUG is defined. drivers/block/cciss.c:2856: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int' drivers/block/cciss.c:3205: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'long unsigned int' drivers/block/cciss.c:3236: warning: format '%x' expects type 'unsigned int', but argument 2 has type '__u64' drivers/block/cciss.c:3246: warning: format '%x' expects type 'unsigned int', but argument 2 has type '__u64' Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Cc: Mike Miller <mike.miller@hp.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19W1 OMAP: Fix OMAP LDP boot crashStanley.Miao
OMAP LDP boot crash. This is because w1 subsystem changed the search interface, so update omap_hdq's search interface to follow the change. Signed-off-by: Stanley.Miao <stanley.miao@windriver.com> Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19drivers/video/backlight/da903x.c: introduce one more missing kfreeMike Rapoport
One more error handling code should have kfree as well Signed-off-by: Mike Rapoport <mike@compulab.co.il> Acked-by: Eric Miao <eric.miao@marvell.com> Cc: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19cirrusfb: remove unused variablesVlada Peric
After commit a1d35a7a (cirrusfb: use modedb and add mode_option parameter), these variables are no longer used, so remove them to fix compilation warning. Signed-off-by: Vlada Periæ <vlada.peric@gmail.com> Acked-by: Krzysztof Helt <krzysztof.h1@wp.pl> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19drivers/hwmon/applesmc.c: add generic MacPro supportHenrik Rydberg
In order to analyze the SMC of the newer MacPros, applesmc needs to recognize the machine. This patch adds the missing generic dmi_match entry for MacPro models. Signed-off-by: Henrik Rydberg <rydberg@euromail.se> Cc: Nicolas Boichat <nicolas@boichat.ch> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19drivers/video/backlight/da903x.c: introduce missing kfreeJulia Lawall
Error handling code following a kzalloc should free the allocated data. The semantic match that finds the problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @r exists@ local idexpression x; statement S; expression E; identifier f,l; position p1,p2; expression *ptr != NULL; @@ ( if ((x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...)) == NULL) S | x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...); ... if (x == NULL) S ) <... when != x when != if (...) { <+...x...+> } x->f = E ...> ( return \(0\|<+...x...+>\|ptr\); | return@p2 ...; ) @script:python@ p1 << r.p1; p2 << r.p2; @@ print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Cc: Mike Rapoport <mike@compulab.co.il> Cc: Richard Purdie <rpurdie@linux.intel.com> Cc: Eric Miao <eric.miao@marvell.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19spi_imx: full duplex dma corruption bugfixAndrea Paterniani
Fix unsafe order in dma mapping operation: always flush data from the cache *BEFORE* invalidating it, to allow full duplex transfers where the same buffer may be used for both writes and reads. Signed-off-by: Andrea Paterniani <a.paterniani@swapp-eng.it> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19lcd: fix oops if driver only interested in .set_powerBen Dooks
The LCD driver core calls LCD drivers when either the blanking state or the display mode has changed, but does not make any check to see if the called driver has a .set_mode method. This means if a driver only has a .set_power method then the system will OOPS on changing mode (and with the console semaphore held so you cannot easily see the problem). Fix the problem by ensuring that either callback is valid before use. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19viafb: fix releasing of /proc/viafb/ subtreeBruno Prémont
When unloading viafb module it does not remove it's /proc/viafb/ subtree which causes multiple viafb directories to appear below proc when mobprobing viafb and also lets kernel WARN() on duplicate proc entries: [ 145.458387] WARNING: at /usr/src/linux-2.6.28-rc3-git6/fs/proc/generic.c:551 proc_register+0xe6/0x160() [ 145.458945] proc_dir_entry '/proc/viafb' already registered [ 145.459278] Modules linked in: viafb(+) i2c_algo_bit cfbcopyarea cfbimgblt cfbfillrect snd_hda_intel snd_pcm snd_timer snd soundcore snd_page_alloc sg via_agp agpgart [last unloaded: drm] [ 145.460647] Pid: 1904, comm: modprobe Tainted: G W 2.6.28-rc3-git6 #4 [ 145.461064] Call Trace: [ 145.461248] [<c01066f1>] ? dump_stack+0x1/0x80 [ 145.461533] [<c01228a3>] warn_slowpath+0x63/0x80 [ 145.461851] [<c0253ec9>] ? idr_get_empty_slot+0xe9/0x250 [ 145.462186] [<c0254120>] ? ida_get_new_above+0xf0/0x150 [ 145.462528] [<c019fb86>] proc_register+0xe6/0x160 [ 145.462827] [<c019fdc6>] proc_mkdir_mode+0x36/0x50 [ 145.463135] [<c019fdef>] proc_mkdir+0xf/0x20 [ 145.463457] [<f807173c>] viafb_init+0x73c/0xc86 [viafb] [ 145.463823] [<f8071000>] ? viafb_init+0x0/0xc86 [viafb] [ 145.464147] [<c010111d>] do_one_initcall+0x2d/0x160 [ 145.464460] [<c01a6543>] ? sysfs_add_file+0x13/0x20 [ 145.464786] [<c015f031>] ? vfree+0x21/0x30 [ 145.465049] [<c01433b5>] ? load_module+0x1215/0x1500 [ 145.465381] [<c014e455>] ? __alloc_pages_internal+0x95/0x400 [ 145.465755] [<c0143723>] sys_init_module+0x83/0x1a0 [ 145.466065] [<c016ceed>] ? sys_read+0x3d/0x70 [ 145.466354] [<c0103bc1>] sysenter_do_call+0x12/0x25 [ 145.466653] ---[ end trace c84b37826e16748c ]--- Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> Cc: <JosephChan@via.com.tw> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19pxa2xx_spi: bugfix full duplex dma data corruptionNed Forrester
Fixes a data corruption bug in pxa2xx_spi.c when operating in full duplex mode with DMA and using buffers that overlap. SPI transmit and receive buffers are allowed to be the same or to overlap. However, this driver fails if such overlap is attempted in DMA mode because it maps the rx and tx buffers in the wrong order. By mapping DMA_FROM_DEVICE (read) before DMA_TO_DEVICE (write), it invalidates the cache before flushing it, thus discarding data which should have been transmitted. The patch corrects the order of mapping. This bug exists in all versions of pxa2xx_spi.c; similar bugs are in the drivers for two other SPI controllers (au1500, imx). A version of this patch has been tested on kernel 2.6.20 using verification of loopback data with: random transfer length, random bits-per-word, random positive offsets (both larger and smaller than transfer length) between the start of the rx and tx buffers, and varying clock rates. Signed-off-by: Ned Forrester <nforrester@whoi.edu> Cc: Vernon Sauder <vernoninhand@gmail.com> Cc: J. Scott Merritt <merrij3@rpi.edu> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: <stable@kernel.org> [2.6.27.x] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19tmiofb: fix compilation with ACCEL disabledDmitry Baryshkov
Restore support for compiling tmiofb with acceleration disabled. Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com> Cc: Krzysztof Helt <krzysztof.h1@poczta.fm> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-19GRU: fix for debug optionJack Steiner
Enable -D DEBUG in the GRU Makefile if CONFIG_SGI_GRU_DEBUG is selected. Signed-off-by: Jack Steiner <steiner@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>