summaryrefslogtreecommitdiffstats
path: root/drivers
Commit message (Collapse)AuthorAgeFilesLines
* fbdev: sh_mobile_lcdc: Rename (lcd|num)_cfg (lcd|num)_modesLaurent Pinchart2012-03-122-29/+29
| | | | | | | | The struct sh_mobile_lcdc_chan_cfg platform data contains a list of video modes. Name the lcd_cfg and num_cfg fields to reflect that they describe video modes. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Store display mode in a struct fb_videomodeLaurent Pinchart2012-03-122-36/+44
| | | | | | | Embed struct fb_videomode instead of struct fb_var_screeninfo in struct sh_mobile_lcdc_chan to store the display mode. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_hdmi: Don't access LCDC fb_infoLaurent Pinchart2012-03-123-31/+28
| | | | | | | | | The LCDC fb_info structure is only used to retrieve the default video mode in case none of the modes advertised by EDID information is acceptable. Pass a pointer to the default mode through the sh_mobile_lcdc_entity structure instead. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_hdmi: Don't set sh_hdmi::mode in the display on handlerLaurent Pinchart2012-03-121-7/+1
| | | | | | | | The struct sh_hdmi mode field is only used after being assigned by the EDID read code. There is thus no need to initialize it from the LCDC display var in the display on handler. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Pass a video mode to the notify callbackLaurent Pinchart2012-03-123-50/+48
| | | | | | | Pass pointers to struct fb_videomode and struct fb_monspecs instead of struct fb_var_screeninfo to the notify callback. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* sh_mobile_hdmi: Use LCDC notification callbackLaurent Pinchart2012-03-121-77/+14
| | | | | | | | Instead of accessing the LCDC channel and fb_info structures directly, use the LCDC notification callback to inform the LCDC driver about display-related events. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* sh_mobile_lcdc: Add display notify callback to sh_mobile_lcdc_chanLaurent Pinchart2012-03-122-0/+94
| | | | | | | | | | | | | The callback implements 3 notification events: - SH_MOBILE_LCDC_EVENT_DISPLAY_CONNECT notifies the LCDC that the display has been connected - SH_MOBILE_LCDC_EVENT_DISPLAY_DISCONNECT notifies the LCDC that the display has been disconnected - SH_MOBILE_LCDC_EVENT_DISPLAY_MODE notifies that LCDC that a display mode has been detected Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Return display connection state in display_onLaurent Pinchart2012-03-124-6/+16
| | | | | | | | Return true if the display is connected and false otherwise. Set the fb info state to FBINFO_STATE_SUSPENDED in the sh_mobile_lcdc driver when the display is not connected. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Remove fb_info parameter to display_on operationLaurent Pinchart2012-03-124-13/+6
| | | | | | The parameter is unused, remove it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* sh_mobile_hdmi: Use sh_mobile_lcdc_entity::channel to access fb_infoLaurent Pinchart2012-03-121-68/+12
| | | | | | | The fb_info parameter passed to the display_on operation will be removed, don't use it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* sh_mobile_lcdc: Add an lcdc channel pointer to sh_mobile_lcdc_entityLaurent Pinchart2012-03-122-1/+6
| | | | | | | The field will be used by the transmitter drivers to access sh_mobile_lcdc_chan fields such as fb_info. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Merge board_cfg and lcd_size_cfg into panel_cfgLaurent Pinchart2012-03-121-18/+17
| | | | | | Update board code accordingly. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Move brightness ops to sh_mobile_lcdc_bl_infoLaurent Pinchart2012-03-121-4/+2
| | | | | | Update board code accordingly. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Remove board configuration board_data fieldLaurent Pinchart2012-03-121-9/+7
| | | | | | The field is unused, remove it. Update board code accordingly. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Remove board configuration owner fieldLaurent Pinchart2012-03-121-6/+2
| | | | | | The field is unused, remove it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_hdmi: Don't hook up into board_cfg display operationsLaurent Pinchart2012-03-121-31/+6
| | | | | | | The display_on/off operations are now accessed through the sh_mobile_lcdc_entity operations. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mipi_dsi: Don't hook up into board_cfg display operationsLaurent Pinchart2012-03-121-51/+5
| | | | | | | The display_on/off operations are now accessed through the sh_mobile_lcdc_entity operations. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Handle HDMI/MIPI transmitter device directlyLaurent Pinchart2012-03-122-5/+28
| | | | | | | | Pass a pointer to the transmitter device through platform data, retrieve the corresponding sh_mobile_lcdc_entity structure in the probe method and call the transmitter display_on/off methods directly. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mipi_dsi: Implement sh_mobile_lcdc_entity interfaceLaurent Pinchart2012-03-121-15/+51
| | | | Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_hdmi: Implement sh_mobile_lcdc_entity interfaceLaurent Pinchart2012-03-121-8/+31
| | | | Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Add sh_mobile_lcdc_entity definitionLaurent Pinchart2012-03-121-2/+16
| | | | | | | The sh_mobile_lcdc_entity structure will be used to abstract operations performed by transceivers (such as MIPI/DSI and HDMI). Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* sh_mobile_hdmi: Remove platform data lcd_dev fieldLaurent Pinchart2012-03-121-12/+5
| | | | | | The field is used to print debug messages only. Remove it. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_hdmi: Don't access LCDC channel in notifier callbackLaurent Pinchart2012-03-121-4/+4
| | | | | | | Instead of relying on info->par being a pointer to an LCDC channel, cast the notifier block pointer to an sh_hdmi pointer. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Create functions to turn the display on/offLaurent Pinchart2012-03-121-25/+28
| | | | Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Don't pass struct device aroundLaurent Pinchart2012-03-121-20/+21
| | | | | | | Pass a pointer to a struct sh_mobile_lcdc_priv instead, which stores a pointer to the device. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Move pm runtime enable to probe()Laurent Pinchart2012-03-121-18/+16
| | | | | | | | The pm_runtime_enable() and pm_runtime_resume() calls don't belong to sh_mobile_lcdc_setup_clocks(). Move them to the probe function. Remove the unneeded pm_runtime_resume() call. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Mark init-only symbols with __devinit(const)Laurent Pinchart2012-03-121-2/+2
| | | | | | | | default_720p and sh_mobile_lcdc_check_interface are used at device initialization time only. Mark them as __devinitconst and __devinit respectively. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* fbdev: sh_mobile_lcdc: Reorder code into sectionsLaurent Pinchart2012-03-121-190/+231
| | | | | | | | | Make the driver more readable by reordering code and splitting it into logical sections. Reorder the headers alphabetically. No modification to the code have been performed. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
* video:uvesafb: notice user when we failed to save hardware stateWang YanQing2012-03-081-3/+11
| | | | | | | | uvesafb_open may failed to save hardware state when kmalloc failed in uvesafb_vbe_state_save, we should check this and notice user. Signed-off-by: Wang YanQing <udknight@gmail.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* video:uvesafb: Fix oops that uvesafb try to execute NX-protected pageWang YanQing2012-03-081-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the oops below [ 81.560602] uvesafb: NVIDIA Corporation, GT216 Board - 0696a290, Chip Rev , OEM: NVIDIA, VBE v3.0 [ 81.609384] uvesafb: protected mode interface info at c000:d350 [ 81.609388] uvesafb: pmi: set display start = c00cd3b3, set palette = c00cd40e [ 81.609390] uvesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da [ 81.614558] uvesafb: VBIOS/hardware doesn't support DDC transfers [ 81.614562] uvesafb: no monitor limits have been set, default refresh rate will be used [ 81.614994] uvesafb: scrolling: ypan using protected mode interface, yres_virtual=4915 [ 81.744147] kernel tried to execute NX-protected page - exploit attempt? (uid: 0) [ 81.744153] BUG: unable to handle kernel paging request at c00cd3b3 [ 81.744159] IP: [<c00cd3b3>] 0xc00cd3b2 [ 81.744167] *pdpt = 00000000016d6001 *pde = 0000000001c7b067 *pte = 80000000000cd163 [ 81.744171] Oops: 0011 [#1] SMP [ 81.744174] Modules linked in: uvesafb(+) cfbcopyarea cfbimgblt cfbfillrect [ 81.744178] [ 81.744181] Pid: 3497, comm: modprobe Not tainted 3.3.0-rc4NX+ #71 Acer Aspire 4741 /Aspire 4741 [ 81.744185] EIP: 0060:[<c00cd3b3>] EFLAGS: 00010246 CPU: 0 [ 81.744187] EIP is at 0xc00cd3b3 [ 81.744189] EAX: 00004f07 EBX: 00000000 ECX: 00000000 EDX: 00000000 [ 81.744191] ESI: f763f000 EDI: f763f6e8 EBP: f57f3a0c ESP: f57f3a00 [ 81.744192] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 [ 81.744195] Process modprobe (pid: 3497, ti=f57f2000 task=f748c600 task.ti=f57f2000) [ 81.744196] Stack: [ 81.744197] f82512c5 f759341c 00000000 f57f3a30 c124a9bc 00000001 00000001 000001e0 [ 81.744202] f8251280 f763f000 f7593400 00000000 f57f3a40 c12598dd f5c0c000 00000000 [ 81.744206] f57f3b10 c1255efe c125a21a 00000006 f763f09c 00000000 c1c6cb60 f7593400 [ 81.744210] Call Trace: [ 81.744215] [<f82512c5>] ? uvesafb_pan_display+0x45/0x60 [uvesafb] [ 81.744222] [<c124a9bc>] fb_pan_display+0x10c/0x160 [ 81.744226] [<f8251280>] ? uvesafb_vbe_find_mode+0x180/0x180 [uvesafb] [ 81.744230] [<c12598dd>] bit_update_start+0x1d/0x50 [ 81.744232] [<c1255efe>] fbcon_switch+0x39e/0x550 [ 81.744235] [<c125a21a>] ? bit_cursor+0x4ea/0x560 [ 81.744240] [<c129b6cb>] redraw_screen+0x12b/0x220 [ 81.744245] [<c128843b>] ? tty_do_resize+0x3b/0xc0 [ 81.744247] [<c129ef42>] vc_do_resize+0x3d2/0x3e0 [ 81.744250] [<c129efb4>] vc_resize+0x14/0x20 [ 81.744253] [<c12586bd>] fbcon_init+0x29d/0x500 [ 81.744255] [<c12984c4>] ? set_inverse_trans_unicode+0xe4/0x110 [ 81.744258] [<c129b378>] visual_init+0xb8/0x150 [ 81.744261] [<c129c16c>] bind_con_driver+0x16c/0x360 [ 81.744264] [<c129b47e>] ? register_con_driver+0x6e/0x190 [ 81.744267] [<c129c3a1>] take_over_console+0x41/0x50 [ 81.744269] [<c1257b7a>] fbcon_takeover+0x6a/0xd0 [ 81.744272] [<c12594b8>] fbcon_event_notify+0x758/0x790 [ 81.744277] [<c10929e2>] notifier_call_chain+0x42/0xb0 [ 81.744280] [<c1092d30>] __blocking_notifier_call_chain+0x60/0x90 [ 81.744283] [<c1092d7a>] blocking_notifier_call_chain+0x1a/0x20 [ 81.744285] [<c124a5a1>] fb_notifier_call_chain+0x11/0x20 [ 81.744288] [<c124b759>] register_framebuffer+0x1d9/0x2b0 [ 81.744293] [<c1061c73>] ? ioremap_wc+0x33/0x40 [ 81.744298] [<f82537c6>] uvesafb_probe+0xaba/0xc40 [uvesafb] [ 81.744302] [<c12bb81f>] platform_drv_probe+0xf/0x20 [ 81.744306] [<c12ba558>] driver_probe_device+0x68/0x170 [ 81.744309] [<c12ba731>] __device_attach+0x41/0x50 [ 81.744313] [<c12b9088>] bus_for_each_drv+0x48/0x70 [ 81.744316] [<c12ba7f3>] device_attach+0x83/0xa0 [ 81.744319] [<c12ba6f0>] ? __driver_attach+0x90/0x90 [ 81.744321] [<c12b991f>] bus_probe_device+0x6f/0x90 [ 81.744324] [<c12b8a45>] device_add+0x5e5/0x680 [ 81.744329] [<c122a1a3>] ? kvasprintf+0x43/0x60 [ 81.744332] [<c121e6e4>] ? kobject_set_name_vargs+0x64/0x70 [ 81.744335] [<c121e6e4>] ? kobject_set_name_vargs+0x64/0x70 [ 81.744339] [<c12bbe9f>] platform_device_add+0xff/0x1b0 [ 81.744343] [<f8252906>] uvesafb_init+0x50/0x9b [uvesafb] [ 81.744346] [<c100111f>] do_one_initcall+0x2f/0x170 [ 81.744350] [<f82528b6>] ? uvesafb_is_valid_mode+0x66/0x66 [uvesafb] [ 81.744355] [<c10c6994>] sys_init_module+0xf4/0x1410 [ 81.744359] [<c1157fc0>] ? vfsmount_lock_local_unlock_cpu+0x30/0x30 [ 81.744363] [<c144cb10>] sysenter_do_call+0x12/0x36 [ 81.744365] Code: f5 00 00 00 32 f6 66 8b da 66 d1 e3 66 ba d4 03 8a e3 b0 1c 66 ef b0 1e 66 ef 8a e7 b0 1d 66 ef b0 1f 66 ef e8 fa 00 00 00 61 c3 <60> e8 c8 00 00 00 66 8b f3 66 8b da 66 ba d4 03 b0 0c 8a e5 66 [ 81.744388] EIP: [<c00cd3b3>] 0xc00cd3b3 SS:ESP 0068:f57f3a00 [ 81.744391] CR2: 00000000c00cd3b3 [ 81.744393] ---[ end trace 18b2c87c925b54d6 ]--- Signed-off-by: Wang YanQing <udknight@gmail.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: stable@vger.kernel.org
* udlfb: Fix invalid return codes in edid sysfs entry store functionOlivier Sobrie2012-03-081-8/+11
| | | | | | | | | | Return a negative errno instead of zero in the write function of the sysfs entry in case of error. Also add a check on the return value of dlfb_setup_modes(). Signed-off-by: Olivier Sobrie <olivier@sobrie.be> Acked-by: Bernie Thompson <bernie@plugable.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* video: s3c-fb: Add support EXYNOS5 FIMDJingoo Han2012-03-061-5/+47
| | | | | | | | | | | | | | | | This patch adds s3c_fb_driverdata s3c_fb_data_exynos5 for EXYNOS5 and adds extended timing control setting. EXYNOS5 FIMD needs extended setting for video timing control. Additional bits are added to VIDTCON2, VIDWxxADD2, VIDOSDxA and VIDOSDxB registers in order to set timing value for lager resolution. Also, address offset of VIDTCONx registers is changed from 0x0 to 0x20000, thus variable type should be changed to int type to handle the address offset of VIDTCONx registers for EXYNOS5 FIMD. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* pxafb: do console locking before calling fb_blank()Vasily Khoruzhick2012-03-061-1/+5
| | | | | | | Otherwise we hit WARN_CONSOLE_UNLOCKED in do_unblank_screen Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
* Merge commit 'v3.3-rc6' into fbdev-nextFlorian Tobias Schandinat2012-03-06126-727/+940
|\
| * Merge tag 'scsi-fixes' of ↵Linus Torvalds2012-03-031-2/+2
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 SCSI fixes from James Bottomley: "There's just a single fix in here: the osd max device number fix." * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: [SCSI] osd_uld: Bump MAX_OSD_DEVICES from 64 to 1,048,576
| | * [SCSI] osd_uld: Bump MAX_OSD_DEVICES from 64 to 1,048,576Boaz Harrosh2012-02-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It used to be that minors where 8 bit. But now they are actually 20 bit. So the fix is simplicity itself. I've tested with 300 devices and all user-mode utils work just fine. I have also mechanically added 10,000 to the ida (so devices are /dev/osd10000, /dev/osd10001 ...) and was able to mkfs an exofs filesystem and access osds from user-mode. All the open-osd user-mode code uses the same library to access devices through their symbolic names in /dev/osdX so I'd say it's pretty safe. (Well tested) This patch is very important because some of the systems that will be deploying the 3.2 pnfs-objects code are larger than 64 OSDs and will stop to work properly when reaching that number. CC: Stable <stable@vger.kernel.org> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
| * | Merge tag 'parisc-fixes' of ↵Linus Torvalds2012-03-031-0/+2
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6 PARISC fixes from James Bottomley: "This is a set of build fixes to get the cross compiled architecture testbeds building again" * tag 'parisc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6: [PARISC] don't unconditionally override CROSS_COMPILE for 64 bit. [PARISC] include <linux/prefetch.h> in drivers/parisc/iommu-helpers.h [PARISC] fix compile break caused by iomap: make IOPORT/PCI mapping functions conditional
| | * | [PARISC] include <linux/prefetch.h> in drivers/parisc/iommu-helpers.hCong Wang2012-02-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | drivers/parisc/iommu-helpers.h:62: error: implicit declaration of function 'prefetchw' make[3]: *** [drivers/parisc/sba_iommu.o] Error 1 drivers/parisc/iommu-helpers.h needs to #include <linux/prefetch.h> where prefetchw is declared. Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
| * | | Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6Linus Torvalds2012-03-031-0/+1
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull from Herbert Xu: "This push fixes a bug in mv_cesa that causes all hash operations that supply data on a final operation to fail." * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: mv_cesa - fix final callback not ignoring input data
| | * | | crypto: mv_cesa - fix final callback not ignoring input dataPhil Sutter2012-02-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Broken by commit 6ef84509f3d439ed2d43ea40080643efec37f54f for users passing a request with non-zero 'nbytes' field, like e.g. testmgr. Cc: <stable@kernel.org> # 3.0+ Signed-off-by: Phil Sutter <phil.sutter@viprinet.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
| * | | | Merge tag 'hwmon-for-linus' of ↵Linus Torvalds2012-03-021-14/+75
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging hhwmon fixes for 3.3-rc6 from Guenter Roeck: These patches are necessary for correct operation and management of F75387. * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (f75375s) Catch some attempts to write to r/o registers hwmon: (f75375s) Properly map the F75387 automatic modes to pwm_enable hwmon: (f75375s) Make pwm*_mode writable for the F75387 hwmon: (f75375s) Fix writes to the pwm* attribute for the F75387
| | * | | | hwmon: (f75375s) Catch some attempts to write to r/o registersNikolaus Schulz2012-03-021-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It makes no sense to attempt to manually configure the fan in auto mode, or set the duty cycle directly in closed loop mode. The corresponding registers are then read-only. If the user tries it nonetheless, error out with EINVAL instead of silently doing nothing. Signed-off-by: Nikolaus Schulz <mail@microschulz.de> [guenter.roeck@ericsson.com: Minor formatting cleanup] Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
| | * | | | hwmon: (f75375s) Properly map the F75387 automatic modes to pwm_enableNikolaus Schulz2012-03-021-8/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The F75387 supports automatic fan control using either PWM duty cycle or RPM speed values. Make the driver detect the latter mode, and expose the different modes in sysfs as per pwm_enable, so that the user can switch between them. The interpretation of the pwm_enable attribute for the F75387 is adjusted to be a superset of those values used for similar Fintek chips which do not support automatic duty mode, with 2 mapping to automatic speed mode, and moving automatic duty mode to the new value 4. Toggling the duty mode via pwm_enable is currently denied for the F75387, as the chip then simply reinterprets the fan configuration register values according to the new mode, switching between RPM and PWM units, which makes this a dangerous operation. This patch introduces a new pwm mode into the driver. This is necessary because the new mode (automatic pwm mode, 4) may already be enabled by the BIOS, and the driver should not break existing functionality. This was seen on at least one board. Signed-off-by: Nikolaus Schulz <mail@microschulz.de> Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
| | * | | | hwmon: (f75375s) Make pwm*_mode writable for the F75387Nikolaus Schulz2012-02-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Nikolaus Schulz <mail@microschulz.de> Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
| | * | | | hwmon: (f75375s) Fix writes to the pwm* attribute for the F75387Nikolaus Schulz2012-02-281-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the F75387, the register holding the current PWM duty cycle value is r/o; changing it requires writing to the fan expect register instead. Signed-off-by: Nikolaus Schulz <mail@microschulz.de> [guenter.roeck@ericsson.com: Simplified function parameters] Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
| * | | | | Merge tag 'fbdev-fixes-for-3.3-2' of git://github.com/schandinat/linux-2.6Linus Torvalds2012-03-025-10/+35
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fbdev fixes for 3.3 from Florian Tobias Schandinat It includes: - two fixes for OMAP HDMI - one fix to make new OMAP functions behave as they are supposed to - one Kconfig dependency fix - two fixes for viafb for modesetting on VX900 hardware * tag 'fbdev-fixes-for-3.3-2' of git://github.com/schandinat/linux-2.6: OMAPDSS: APPLY: make ovl_enable/disable synchronous OMAPDSS: panel-dvi: Add Kconfig dependency on I2C viafb: fix IGA1 modesetting on VX900 viafb: select HW scaling on VX900 for IGA2 OMAPDSS: HDMI: hot plug detect fix OMAPDSS: HACK: Ensure DSS clock domain gets out of idle when HDMI is enabled
| * \ \ \ \ \ Merge git://www.linux-watchdog.org/linux-watchdogLinus Torvalds2012-03-015-31/+41
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Watchdog updates from Wim Van Sebroeck: * git://www.linux-watchdog.org/linux-watchdog: watchdog: fix GETTIMEOUT ioctl in booke_wdt watchdog: update maintainers git entry watchdog: Fix typo in pnx4008_wdt.c watchdog: Fix typo in Kconfig watchdog: fix error in probe() of s3c2410_wdt (reset at booting) watchdog: hpwdt: clean up set_memory_x call for 32 bit
| | * | | | | | watchdog: fix GETTIMEOUT ioctl in booke_wdtDmitry Artamonow2012-02-291-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit dcfb748422 ([WATCHDOG] fix book E watchdog to take WDIOC_SETTIMEOUT arg in seconds) fixed SETTIMEOUT ioctl to use seconds as a parameter instead of some hardware-specific "period", but missed to apply similar changes to GETTIMEOUT, so it still returns "period" value. Let's fix it! Also, while at it, make SETTIMEOUT ioctl return real timeout value as it should do according to the documentation. Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| | * | | | | | watchdog: Fix typo in pnx4008_wdt.cMasanari Iida2012-02-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Correct spelling "resouce" to "resource" in drivers/watchdog/pnx4008_wdt.c Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| | * | | | | | watchdog: Fix typo in KconfigMasanari Iida2012-02-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Correct spelling "overidden" to "overridden" in drivers/watchdog/Kconfig Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>