summaryrefslogtreecommitdiffstats
path: root/drivers/video/fsl-diu-fb.c
Commit message (Collapse)AuthorAgeFilesLines
* drivers/video: fsl-diu-fb: merge diu_pool into fsl_diu_dataTimur Tabi2011-10-051-37/+35Star
| | | | | | | | | | | The diu_pool structure contains diu_addr objects for various objects allocated in DMA space that are used by the DIU, but the only instance of this structure is a global variable, 'pool'. Eliminate 'pool' by merging its fields into the fsl_diu_data structure, which is instantiated on the heap for each DIU controller found. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: merge diu_hw into fsl_diu_dataTimur Tabi2011-10-051-38/+31Star
| | | | | | | | | | The diu_hw structure contains two fields used to access the DIU registers, but the only instance of this structure is a global variable, 'dr'. Eliminate 'dr' by merging its fields into the fsl_diu_data structure, which is instantiated on the heap for each DIU controller found. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: only DIU modes 0 and 1 are supportedTimur Tabi2011-10-051-8/+3Star
| | | | | | | | | | | The Freescale DIU video controller supports five video "modes", but only the first two are used by the driver. The other three are special modes that don't make sense for a framebuffer driver. Therefore, there's no point in keeping a global variable that indicates which mode we're supposed to use. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: remove unused panel operating mode supportTimur Tabi2011-10-051-71/+46Star
| | | | | | | | | | The MFB_TYPE_xxx macros indicate different "operating modes" of each AOI, but this feature is not actually used in the driver. The mfb_index.type field is always set to MFB_TYPE_OUTPUT, so just delete it and any code that references it. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: use an enum for the AOI indexTimur Tabi2011-10-051-48/+46Star
| | | | | | | | | | | | | | Each of the five AOIs created by the DIU driver has a special purpose, and they're not treated equally. It makes sense to identify them with an enum instead of a hard-coded number. Since the 'index' is now an enum, it can only contain allowed values, so there's no need to check for an invalid value. This simplifies some other code, such as fsl_diu_disable_panel(), which no longer needs to return an error code. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: add several new video modesTimur Tabi2011-10-051-33/+167
| | | | | | | | | | | | | | | | | | | | | | | | | Add the following new video modes to the Freescale DIU framebuffer driver: 640x480x60 640x480x72 640x480x75 640x480x90 640x480x100 800x480x60 800x600x60 854x480x60 1280x480x60 1280x720x60 1920x1080x60 Also add margin data to the 320x240 video mode. This mode was originally intended only for the AOIs (overlays) used on planes two and three, but with real margin data, it can now be used as an actual video mode. Video mode data is from earlier work done by Jerry Huang <Chang-Ming.Huang@freescale.com>. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: remove broken screen blanking supportTimur Tabi2011-10-051-38/+0Star
| | | | | | | | | | | | | | | | | The function which is supposed to provide screen blanking support doesn't actually do anything, so the framebuffer layer thinks the screen has been blanked when it really isn't. Remove the code completely for now. A side-effect of this change is that the framebuffer console blanking now works correctly. Presumably this is because the console now receives -EINVAL instead of '0' when it asks the driver to blank the screen, so the console does it manually now. A signficant refactoring of the driver is planned, and proper hardware blanking support will added afterwards. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: move some definitions out of the header fileTimur Tabi2011-10-051-0/+39
| | | | | | | | | | | | | Move several macros and structures from the Freescale DIU driver's header file into the source file, because they're only used by that file. Also delete a few unused macros. The diu and diu_ad structures cannot be moved because they're being used by the MPC5121 platform file. A future patch eliminate the need for the platform file to access these structs, so they'll be moved also. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: fix some ioctlsTimur Tabi2011-10-051-8/+8
| | | | | | | | | | | | | | | | Use the _IOx macros to define the ioctl commands, instead of hard-coded numbers. Unfortunately, the original definitions of MFB_SET_PIXFMT and MFB_GET_PIXFMT used the wrong value for the size, so these macros have new values now. To avoid breaking binary compatibility with older applications, we retain support for the original values, but the driver displays a warning message if they're used. Also remove the FBIOGET_GWINFO and FBIOPUT_GWINFO ioctls. FBIOPUT_GWINFO was never implemented, and FBIOGET_GWINFO was never used by any application. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: use a normal for-loop to uninstall framebuffersTimur Tabi2011-09-181-5/+5
| | | | | | | | Uninstalling the framebuffers in reverse order is unnecessary and makes the for-loop awkward. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: fix memory leak on errorTimur Tabi2011-09-181-0/+1
| | | | | | | We were forgetting to unmap the video memory if fsl_diu_check_var() fails. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: fix potential memcpy buffer overflow bugTimur Tabi2011-09-181-1/+1
| | | | | | | | It makes no sense to limit the size of a strncpy() to the length of the source string. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: set the driver name to "fsl-diu-fb"Timur Tabi2011-09-181-2/+2
| | | | | | | | Use the name "fsl-diu-fb" in the Freescale DIU framebuffer driver during registrations. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: improve local variable usage in some functionsTimur Tabi2011-09-181-13/+10Star
| | | | | | | | Clean up the local variable usage in request_irq_local() and allocate_buf(). This streamlines the code without affecting functionality. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: remove redundant default video modeTimur Tabi2011-09-181-25/+7Star
| | | | | | | | | The framebuffer layer already uses the first video mode defined in the fb_videomode array as a default, so there's no need to duplicate the first entry into a stand-alone structure. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: improve device tree usageTimur Tabi2011-09-181-41/+24Star
| | | | | | | | | | | | | | | | | Implement various improvements to the way the Freescale DIU framebuffer driver access the device tree. 1) Use of_iomap() instead of of_address_to_resource() and ioremap() 2) Use be32_to_cpup() instead of directly dereferencing the device_node pointer. 3) Rename variable 'ofdev' to 'pdev' to avoid any confusion that it's a platform_device pointer, not an of_device pointer (of_device no longer exists). Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: fix compilation warningTimur Tabi2011-09-181-1/+1
| | | | | | | | | Fix this compilation warning in the Freescale DIU framebuffer driver: warning: 'dummy_ad_addr' may be used uninitialized in this function Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: remove unused ioctlsTimur Tabi2011-09-181-12/+0Star
| | | | | | | | | | | | Remove some unused ioctl commands, and treat those commands as unsupported instead of ignored. Also remove struct mfb_alpha, which isn't used by any ioctl. It may have been once intended for MFB_SET_ALPHA, but that ioctl uses a different data structure. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: clean up printk usageTimur Tabi2011-09-181-88/+17Star
| | | | | | | | | Remove debug printk messages (they don't help in debugging), replace printk(KERN_xxx with its pr_xxx or dev_xxx equivalent, and add a couple missing error messages. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: fsl-diu-fb: clean up whitespace and formattingTimur Tabi2011-09-181-49/+55
| | | | | | | | Fix various indentation and line length problems in the Freescale DIU framebuffer driver. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* drivers/video: use strings to specify the Freescale DIU monitor portTimur Tabi2011-07-131-19/+55
| | | | | | | | | | | | | | Instead of using ill-defined numbers (0, 1, and 2) for the monitor port, allow the user to specify the port by name ("dvi", "lvds", or "dlvds"). This works on the kernel command line, the module command-line, and the sysfs "monitor" device. Note that changing the monitor port does not currently work on the P1022DS, because the code that talks to the PIXIS FPGA is broken. Signed-off-by: Timur Tabi <timur@freescale.com> Acked-by: Anatolij Gustschin <agust@denx.de> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* fsl-diu-fb: remove check for pixel clock rangesTimur Tabi2011-06-241-16/+0Star
| | | | | | | | | | | | | | | | | The Freescale DIU framebuffer driver defines two constants, MIN_PIX_CLK and MAX_PIX_CLK, that are supposed to represent the lower and upper limits of the pixel clock. These values, however, are true only for one platform clock rate (533MHz) and only for the MPC8610. So the actual range for the pixel clock is chip-specific, which means the current values are almost always wrong. The chance of an out-of-range pixel clock being used are also remote. Rather than try to detect an out-of-range clock in the DIU driver, we depend on the board-specific pixel clock function (e.g. p1022ds_set_pixel_clock) to clamp the pixel clock to a supported value. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* Fix common misspellingsLucas De Marchi2011-03-311-1/+1
| | | | | | Fixes generated by 'codespell' and manually reviewed. Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
* dt/video: Eliminate users of of_platform_{,un}register_driverGrant Likely2011-02-281-5/+4Star
| | | | | | | | Get rid of users of of_platform_driver in drivers/video. The of_platform_{,un}register_driver functions are going away, so the users need to be converted to using the platform_bus_type directly. Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* of/device: Replace struct of_device with struct platform_deviceGrant Likely2010-08-061-4/+4
| | | | | | | | | | | | | | | | of_device is just an alias for platform_device, so remove it entirely. Also replace to_of_device() with to_platform_device() and update comment blocks. This patch was initially generated from the following semantic patch, and then edited by hand to pick up the bits that coccinelle didn't catch. @@ @@ -struct of_device +struct platform_device Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Reviewed-by: David S. Miller <davem@davemloft.net>
* powerpc/fsl-diu-fb: Support setting display mode using EDIDAnatolij Gustschin2010-08-021-6/+74
| | | | | | | | | | | | | | | | | Adds support for encoding display mode information in the device tree using verbatim EDID block. If the EDID entry in the DIU node is present, the driver will build mode database using EDID data and allow setting the display modes from this database. Otherwise display mode will be set using mode entries from driver's internal database as usual. This patch also updates device tree bindings. Signed-off-by: Anatolij Gustschin <agust@denx.de> Acked-by: Timur Tabi <timur@freescale.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* powerpc/5121: shared DIU framebuffer supportAnatolij Gustschin2010-08-021-2/+15
| | | | | | | | | | | | | | | | | | | MPC5121 DIU configuration/setup as initialized by the boot loader currently will get lost while booting Linux. As a result displaying the boot splash is not possible through the boot process. To prevent this we reserve configured DIU frame buffer address range while booting and preserve AOI descriptor and gamma table so that DIU continues displaying through the whole boot process. On first open from user space DIU frame buffer driver releases the reserved frame buffer area and continues to operate as usual. Signed-off-by: John Rigby <jcrigby@gmail.com> Signed-off-by: Anatolij Gustschin <agust@denx.de> Acked-by: Timur Tabi <timur@freescale.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* powerpc/5121: move fsl-diu-fb.h to include/linuxAnatolij Gustschin2010-08-021-1/+1
| | | | | | | | | | Some DIU structures will be used in platform code in subsequent MPC5121 DIU patch, so we move this header to be able to include it elsewhere. Signed-off-by: Anatolij Gustschin <agust@denx.de> Acked-by: Timur Tabi <timur@freescale.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* powerpc/5121: fsl-diu-fb: fix issue with re-enabling DIU area descriptorAnatolij Gustschin2010-08-021-15/+23
| | | | | | | | | | | | | | On MPC5121e Rev 2.0 re-configuring the DIU area descriptor by writing new descriptor address doesn't always work. As a result, DIU continues to display using old area descriptor even if the new one has been written to the descriptor register of the plane. Add the code from Freescale MPC5121EADS BSP for writing descriptor addresses properly. This fixes the problem for Rev 2.0 silicon. Signed-off-by: Anatolij Gustschin <agust@denx.de> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* of: Remove duplicate fields from of_platform_driverGrant Likely2010-05-221-3/+5
| | | | | | | | | | | | | | | | .name, .match_table and .owner are duplicated in both of_platform_driver and device_driver. This patch is a removes the extra copies from struct of_platform_driver and converts all users to the device_driver members. This patch is a pretty mechanical change. The usage model doesn't change and if any drivers have been missed, or if anything has been fixed up incorrectly, then it will fail with a compile time error, and the fixup will be trivial. This patch looks big and scary because it touches so many files, but it should be pretty safe. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Sean MacLennan <smaclennan@pikatech.com>
* of: Always use 'struct device.of_node' to get device node pointer.Grant Likely2010-05-191-1/+1
| | | | | | | | | | | | The following structure elements duplicate the information in 'struct device.of_node' and so are being eliminated. This patch makes all readers of these elements use device.of_node instead. (struct of_device *)->node (struct dev_archdata *)->prom_node (sparc) (struct dev_archdata *)->of_node (powerpc & microblaze) Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* device_attributes: add sysfs_attr_init() for dynamic attributesWolfram Sang2010-04-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Made necessary by 6992f5334995af474c2b58d010d08bc597f0f2fe ("sysfs: Use one lockdep class per sysfs attribute"). Prevents further "key xxx not in .data" bug-reports. Although some attributes could probably be converted to static ones, this is left for people having hardware to test. Found by this semantic patch: @ init @ type T; identifier A; @@ T { ... struct device_attribute A; ... }; @ main extends init @ expression E; statement S; identifier err; T *name; @@ ... when != sysfs_attr_init(&name->A.attr); ( + sysfs_attr_init(&name->A.attr); if (device_create_file(E, &name->A)) S | + sysfs_attr_init(&name->A.attr); err = device_create_file(E, &name->A); ) While reviewing, I put the initialization to apropriate places. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Cc: Eric W. Biederman <ebiederm@xmission.com> Cc: Greg KH <gregkh@suse.de> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Grant Likely <grant.likely@secretlab.ca> Cc: Mike Isely <isely@pobox.com> Cc: Mauro Carvalho Chehab <mchehab@infradead.org> Cc: Sujith Thomas <sujith.thomas@intel.com> Cc: Matthew Garrett <mjg@redhat.com> Cc: Len Brown <len.brown@intel.com> Cc: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* powerpc/mpc5121: correct DIU compatible propertyAnatolij Gustschin2010-02-171-0/+5
| | | | | | | | | The DIU driver should bind against "fsl,mpc5121-diu" directly. Add this compatible property to the match table and fix DTS and platform code accordingly. Signed-off-by: Anatolij Gustschin <agust@denx.de> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* fsl-diu-fb: fix regression with uninitalized fb_info->mm_lock mutexKrzysztof Helt2009-07-081-6/+0Star
| | | | | | | | | | | | Remove call to the fsl_diu_set_par before the register_framebuffer(). This fixes a problem with uninitialized the fb_info->mm_lock mutex introduced by the commit 537a1bf059f " fbdev: add mutex for fb_mmap locking" Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Tested-by: "Kai Jiang" <b18973@freescale.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* fbdev: add mutex for fb_mmap lockingKrzysztof Helt2009-07-011-5/+9
| | | | | | | | | | | | | | | | | | | | | Add a mutex to avoid a circular locking problem between the mm layer semaphore and fbdev ioctl mutex through the fb_mmap() call. Also, add mutex to all places where smem_start and smem_len fields change so the mutex inside the fb_mmap() is actually used. Changing of these fields before calling the framebuffer_register() are not mutexed. This is 2.6.31 material. It removes one lockdep (fb_mmap() and register_framebuffer()) but there is still another one (fb_release() and register_framebuffer()). It also cleans up handling of the smem_start and smem_len fields used by mutexed section of the fb_mmap(). Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* fsl-diu-fb: Pass the proper device for dma mapping routinesAnton Vorontsov2009-04-061-13/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The driver should pass a device that specifies internal DMA ops, but currently NULL pointers are passed, and thus following bug pops up: Freescale DIU driver ------------[ cut here ]------------ kernel BUG at arch/powerpc/include/asm/dma-mapping.h:237! Oops: Exception in kernel mode, sig: 5 [#1] ... NIP [c01658b4] allocate_buf+0x0/0x8 LR [c0306554] fsl_diu_probe+0x2b4/0x518 Call Trace: [df02be10] [c030638c] fsl_diu_probe+0xec/0x518 (unreliable) [df02be60] [c020cdec] of_platform_device_probe+0x5c/0x84 [df02be80] [c018f5d0] really_probe+0x78/0x1a0 [df02bea0] [c018f7c0] __driver_attach+0xa4/0xa8 [df02bec0] [c018ea00] bus_for_each_dev+0x60/0x9c [df02bef0] [c018f414] driver_attach+0x24/0x34 [df02bf00] [c018f168] bus_add_driver+0x12c/0x1cc [df02bf20] [c018fbdc] driver_register+0x6c/0x110 [df02bf30] [c020ccb4] of_register_driver+0x54/0x70 [df02bf40] [c03d0a50] fsl_diu_init+0x70/0xa4 ... This patch fixes the issue. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* freescale DIU: bug fix: add sanity check for AOI positionYork Sun2008-08-151-0/+4
| | | | | | | | | | | AOI position cannot be negative. Signed-off-by: York Sun <yorksun@freescale.com> Cc: Kumar Gala <galak@gate.crashing.org> Cc: "Antonino A. Daplas" <adaplas@pol.net> 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>
* freescale DIU: add virtual resolution and panning supportYork Sun2008-08-151-5/+23
| | | | | | | | | | | | Application can now have the virtual resoltuion and use FBIOPAN_DISPLAY ioctl to pan. Signed-off-by: York Sun <yorksun@freescale.com> Cc: Kumar Gala <galak@gate.crashing.org> Cc: "Antonino A. Daplas" <adaplas@pol.net> 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>
* drivers/video/fsl-diu-fb.c: add missing of_node_putJulia Lawall2008-08-051-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of_node_put is needed before discarding a value received from of_find_node_by_type, eg in error handling code. The semantic patch that makes the change is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @@ struct device_node *n; struct device_node *n1; struct device_node *n2; statement S; identifier f1,f2; expression E1,E2; constant C; @@ n = of_find_node_by_type(...) ... if (!n) S ... when != of_node_put(n) when != n1 = f1(n,...) when != E1 = n when any when strict ( + of_node_put(n); return -C; | of_node_put(n); | n2 = f2(n,...) | E2 = n | return ...; ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Acked-by: Krzysztof Helt <krzysztof.h1@wp.pl> Cc: Timur Tabi <timur@freescale.com> Cc: York Sun <yorksun@freescale.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* fsl-diu-fb: update Freescale DIU driver to use page_alloc_exact()Timur Tabi2008-07-241-38/+22Star
| | | | | | | | | | | | Update the Freescale DIU driver to use page_alloc_exact() to allocate a DMA buffer. This also eliminates the rheap-based memory allocator. We can do this now because commit 6ccf61f9 allows us to allocate 8MB physically- contiguous memory blocks. [akpm@linux-foundation.org: fix printk warnings] Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Fix broken fix for fsl-diu-dbTakashi Iwai2008-07-081-2/+2
| | | | | | | | | | | | | On 2.6.26-rc9, the commit 05946bce839b4fed5442dbfab77060fb75e051f3 ("fsl_diu_fb: fix build with CONFIG_PM=y, plus fix some warnings") breaks its previous fix f969c5672b16b857e5231ad3c78f08d8ef3305aa ("fsl-diu-db: compile fix") This patch reverts the broken part. Signed-off-by: Takashi Iwai <tiwai@suse.de> Acked-by: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* fsl_diu_fb: fix build with CONFIG_PM=y, plus fix some warningsAnton Vorontsov2008-07-041-14/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes following build error when CONFIG_PM is set. CC drivers/video/fsl-diu-fb.o drivers/video/fsl-diu-fb.c: In function 'fsl_diu_suspend': drivers/video/fsl-diu-fb.c:1327: error: 'ofdev' undeclared (first use in this function) drivers/video/fsl-diu-fb.c:1327: error: (Each undeclared identifier is reported only once drivers/video/fsl-diu-fb.c:1327: error: for each function it appears in.) drivers/video/fsl-diu-fb.c: In function 'fsl_diu_resume': drivers/video/fsl-diu-fb.c:1337: error: 'ofdev' undeclared (first use in this function) While I'm at it, also fix this warning: drivers/video/fsl-diu-fb.c: In function 'fsl_diu_alloc': drivers/video/fsl-diu-fb.c:314: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'phys_addr_t' And these section mismatches: ..from the function fsl_diu_remove() to the function .exit.text:uninstall_fb() ..from the function fsl_diu_remove() to the function .exit.text:uninstall_fb() ..from the function install_fb() to the variable .devinit.data:fsl_diu_mode_db ..from the function install_fb() to the variable .devinit.data:fsl_diu_mode_db ..from the function fsl_diu_probe() to the function .exit.text:uninstall_fb() ..from the function fsl_diu_probe() to the function .exit.text:uninstall_fb() Also, some sparse fixes: make two functions static, and use NULL where appropriate. There are still a lot of sparse warnings, mainly wrt absence of __iomem annotations, but some will require ugly __force stuff. I'll leave them for now, since proper fix would be not that trivial as few one-liners below. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Cc: Timur Tabi <timur@freescale.com> Cc: Antonino Daplas <adaplas@gmail.com> Cc: York Sun <yorksun@freescale.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>
* fsl-diu-db: compile fixJeff Mahoney2008-06-121-2/+2
| | | | | | | | | This patch fixes a compile failure in 2.6.26-rc5-git5. The variable is expected to be called ofdev. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* fbdev: powerpc: driver for Freescale 8610 and 5121 DIUYork Sun2008-04-281-0/+1721
The following features are supported: plane 0 works as a regular frame buffer, can be accessed by /dev/fb0 plane 1 has two AOIs (area of interest), can be accessed by /dev/fb1 and /dev/fb2 plane 2 has two AOIs, can be accessed by /dev/fb3 and /dev/fb4 Special ioctls support AOIs All /dev/fb* can be used as regular frame buffer devices, except hardware change can only be made through /dev/fb0. Changing pixel clock has no effect on other fbs. Limitation of usage of AOIs: AOIs on the same plane can not be horizonally overlapped AOIs have horizonal order, i.e. AOI0 should be always on top of AOI1 AOIs can not beyond phisical display area. Application should check AOI geometry before changing physical resolution on /dev/fb0 required command line parameters to preallocate memory for frame buffer diufb. optional command line parameters to set modes and monitor video=fslfb:[resolution][,bpp][,monitor] Syntax: Resolution xres x yres-bpp@refresh_rate, the -bpp and @refresh_rate are optional eg, 1024x768, 1280x1024, 1280x1024-32, 1280x1024@60, 1280x1024-32@60, 1280x480-32@60 Bpp bpp=32, bpp=24, or bpp=16 Monitor monitor=0, monitor=1, monitor=2 0 is DVI 1 is Single link LVDS 2 is Double link LVDS Note: switching monitor is a board feather, not DIU feather. MPC8610HPCD has three monitor ports to swtich to. MPC5121ADS doesn't have additional monitor port. So switching monirot port for MPC5121ADS has no effect. If compiled as a module, it takes pamameters mode, bpp, monitor with the same syntax above. Signed-off-by: York Sun <yorksun@freescale.com> Signed-off-by: Timur Tabi <timur@freescale.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> 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>