Age | Commit message (Collapse) | Author |
|
This is with respect to the change made at the deh layer.
In earlier implementation devh will always take the current pid
and use that to send the death notification.This was causing some
issue because some times the process which acquired the handle
may not the one releasing the handle,and in that case,will be
sending the wrong pid.In order to take care of this issue always
use the stored pid in driver's private data to send the notification.
Change-Id: I50efe3a135975d0d88634892c886a5c7f52ae4f6
Signed-off-by: Subin K G <subin.kg@ti.com>
Signed-off-by: Andy Gross <andy.gross@ti.com>
|
|
Implement tcm_clear and initialize TILER container to a blank
page. This eliminates problems from reading into an unmapped TILER
page that can happen with 3rd party applications.
Change-Id: I7ddc883a7b0cf1891e1ef4a2f6d3989d5e8924ed
Signed-off-by: Lajos Molnar <molnar@ti.com>
Signed-off-by: Andy Gross <andy.gross@ti.com>
|
|
This reverts commit 70c5e91a7e9ef22ab21afa068cf0b4479700af18.
Signed-off-by: Sebastien Jan <s-jan@ti.com>
|
|
Added kfree to match allocation done in fill_page_stack
Change-Id: I1d4ca837901c0941880a0dfc2402154b0243f99f
Signed-off-by: Andy Gross <andy.gross@ti.com>
|
|
get_user_pages is not effective for kernel allocated buffers. We fall back
to virt2phys() for those.
Change-Id: I262996e206a80f7d542deadeae5dd151596560bc
Signed-off-by: Lajos Molnar <molnar@ti.com>
Signed-off-by: Andy Gross <andy.gross@ti.com>
|
|
This will be used by map_block to be able to map kernel allocated
buffers.
Change-Id: Ic2169e005ad189cb5368fd189a3b30ed3d389594
Signed-off-by: Lajos Molnar <molnar@ti.com>
Signed-off-by: Andy Gross <andy.gross@ti.com>
|
|
get_user_pages sets page to NULL for kernel allocated buffers, which
we dereferenced. This patch fixes this.
Change-Id: Ic426912713423187b0d8c3402948db4f93220f69
Signed-off-by: Lajos Molnar <molnar@ti.com>
Signed-off-by: Andy Gross <andy.gross@ti.com>
|
|
Change-Id: I18c59a620f9e5aa2aede79605ad0f7c53a144f6c
|
|
Signed-off-by: Rob Clark <rob@ti.com>
Acked-by: Lajos Molnar <molnar@ti.com>
Acked-by: David Sin <davidsin@ti.com>
|
|
This enable custom flush operation for wrapped memory regions
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
Signed-off-by: Eric Luong <x0119002@ti.com>
Change-Id: Ibe89944e7d34123bc4263c49383af9b4ec195938
|
|
The set_multicast operation performs asynchronous writes to the
device, with some addresses pointing to the stack. Bad things may
happen, and this is trapped CONFIG_DMA_API_DEBUG:
[ 5.237762] WARNING: at /build/buildd/linux-linaro-omap-2.6.38/lib/dma-debug.c:867 check_for_stack+0xd4/0x100()
[ 5.237792] ehci-omap ehci-omap.0: DMA-API: device driver maps memory fromstack [addr=d9c77dec]
[ 5.237792] Modules linked in: smsc95xx(+) usbnet twl6030_usb twl4030_pwrbutton leds_gpio omap_wdt omap2_mcspi
[ 5.237854] [<c006d618>] (unwind_backtrace+0x0/0xf8) from [<c00a6a14>] (warn_slowpath_common+0x54/0x64)
[ 5.237884] [<c00a6a14>] (warn_slowpath_common+0x54/0x64) from [<c00a6ab8>] (warn_slowpath_fmt+0x30/0x40)
[ 5.237915] [<c00a6ab8>] (warn_slowpath_fmt+0x30/0x40) from [<c034e9d8>] (check_for_stack+0xd4/0x100)
[ 5.237915] [<c034e9d8>] (check_for_stack+0xd4/0x100) from [<c034fea8>] (debug_dma_map_page+0xb4/0xdc)
[ 5.237976] [<c034fea8>] (debug_dma_map_page+0xb4/0xdc) from [<c04242f0>] (map_urb_for_dma+0x26c/0x304)
[ 5.237976] [<c04242f0>] (map_urb_for_dma+0x26c/0x304) from [<c0424594>] (usb_hcd_submit_urb+0x78/0x19c)
[ 5.238037] [<c0424594>] (usb_hcd_submit_urb+0x78/0x19c) from [<bf049c5c>] (smsc95xx_write_reg_async+0xb4/0x130 [smsc95xx])
[ 5.238067] [<bf049c5c>] (smsc95xx_write_reg_async+0xb4/0x130 [smsc95xx]) from [<bf049dd4>] (smsc95xx_set_multicast+0xfc/0x148 [smsc95xx])
[ 5.238098] [<bf049dd4>] (smsc95xx_set_multicast+0xfc/0x148 [smsc95xx]) from [<bf04a118>] (smsc95xx_reset+0x2f8/0x68c [smsc95xx])
[ 5.238128] [<bf04a118>] (smsc95xx_reset+0x2f8/0x68c [smsc95xx]) from [<bf04a8cc>] (smsc95xx_bind+0xcc/0x188 [smsc95xx])
[ 5.238159] [<bf04a8cc>] (smsc95xx_bind+0xcc/0x188 [smsc95xx]) from [<bf03ef1c>] (usbnet_probe+0x204/0x4c4 [usbnet])
[ 5.238220] [<bf03ef1c>] (usbnet_probe+0x204/0x4c4 [usbnet]) from [<c0429078>] (usb_probe_interface+0xe4/0x1c4)
[ 5.238250] [<c0429078>] (usb_probe_interface+0xe4/0x1c4) from [<c03a8770>] (really_probe+0x64/0x160)
[ 5.238250] [<c03a8770>] (really_probe+0x64/0x160) from [<c03a8a30>] (driver_probe_device+0x48/0x60)
[ 5.238281] [<c03a8a30>] (driver_probe_device+0x48/0x60) from [<c03a8ad4>] (__driver_attach+0x8c/0x90)
[ 5.238311] [<c03a8ad4>] (__driver_attach+0x8c/0x90) from [<c03a7b24>] (bus_for_each_dev+0x50/0x7c)
[ 5.238311] [<c03a7b24>] (bus_for_each_dev+0x50/0x7c) from [<c03a82ec>] (bus_add_driver+0x190/0x250)
[ 5.238311] [<c03a82ec>] (bus_add_driver+0x190/0x250) from [<c03a8cf8>] (driver_register+0x78/0x13c)
[ 5.238433] [<c03a8cf8>] (driver_register+0x78/0x13c) from [<c0428040>] (usb_register_driver+0x78/0x13c)
[ 5.238464] [<c0428040>] (usb_register_driver+0x78/0x13c) from [<c005b680>] (do_one_initcall+0x34/0x188)
[ 5.238494] [<c005b680>] (do_one_initcall+0x34/0x188) from [<c00e11f0>] (sys_init_module+0xb0/0x1c0)
[ 5.238525] [<c00e11f0>] (sys_init_module+0xb0/0x1c0) from [<c0065c40>] (ret_fast_syscall+0x0/0x30)
Move the two offenders to the private structure which is kmalloc-ed,
and thus safe.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: Steve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 3c0f3c605b2572c740f66ea39fe2d125399b20aa)
|
|
The smsc95xx driver currently generates a new random MAC address
every time the interface is brought up. This makes it impossible to
override using the standard `ifconfig hw ether` approach.
Past patches tried to make the MAC address a module parameter or
base it off the die ID, but it seems to me much simpler (and
hopefully less controversial) to stick with the current random
generation scheme, but allow the user to change the address.
This patch does exactly that - it moves the random address
generation from smsc95xx_reset() into smsc95xx_bind(), so that it is
done once on module load, not on every ifup. The user can then
override this using the standard mechanisms.
Applies against 2.6.35 and linux-2.6 head.
Signed-off-by: Bernard Blackham <b-omap@largestprime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Define a new module parameter 'macaddr' to override the MAC address
fetched either from eeprom, or randomly generated.
The expected MAC address shall be in the 01:23:45:67:89:AB format.
Signed-off-by: Sebastien Jan <s-jan@ti.com>
|
|
This patch reduces PB heap size to allow more mapping space in General
Heap.
Change-Id: I80fe1f3bf014ffbc94a07fd97f9836e20fe80930
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
Changing device name to pvrsrvkm_pvr.
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
Signed-off-by: Sebastien Jan <s-jan@ti.com>
|
|
For the benefit of displays that do not have an EDID, add support to
get the dimensions from the connector.
Signed-off-by: Sebastien Jan <s-jan@ti.com>
|
|
Default value should be assigned to x_inc & y_inc
for bpp < 16, only when GFX plane is used.
Signed-off-by: Mayuresh Janorkar <mayur@ti.com>
|
|
Decimation constraints/formulas from architecture
Signed-off-by: Frederic Turgis <f-turgis@ti.com>
Signed-off-by: Xavier Boudet <x-boudet@ti.com>
Signed-off-by: Sebastien Jan <s-jan@ti.com>
|
|
Use deferred-io mechanism to flush changes from userspace to mmap'd
framebuffer to display. This will enable (without panning) support
for manual update displays for clients that are expecting writes to
mmap'd framebuffer to be reflected on the display.
|
|
|
|
Alpha blending is the default behavior with color formats that have
an alpha channel. But if the alphablender bits are enabled, that
puts DSS in a omap3 legacy mode which disabled z-order.
|
|
Android is still using the old pvrsrvkm driver name, and I'm not sure
how to rebuild userspace to fix this.. so for now a hack to use the
old name..
|
|
Associate a handle to display-class devices, so visibility can be restricted
to certain drm_device instances. So now, you can build kernel with two
drm_device instances, and two corresponding framebuffer instances. And when
userspace enumerates the DC devices it will see only the one corresponding
to the drm_device that it has opened.
So now you can either build the kernel with one drm_device, with the fb
possibly spanning multiple independent displays, but acting as a single
virtual display. Or with multiple drm_devices acting as multiple independent
displays. In either case, when userspace enumerates the display-class
devices, they see only a single device corresponding to the single fbdev
associated with that drm_device.
|
|
Includes a new ioctl cmd to re-sync state with display, to properly handle
resizing of frame-buffer.
Signed-off-by: Sebastien Jan <s-jan@ti.com>
|
|
A DSS based DRM display driver, which provides a plugin interface for
3d/2d accelerators to register. The core driver handles construction
of CRTC/encoder/connectors to represent the hardware, and support KMS.
This driver replaces omapfb.. omap_gpu drm driver allocates framebuffer
memory and implements (with the help of drm_fb_helper) the legacy fbdev
interface.
The driver maps CRTCs to overlays, encoders to overlay-managers, and
connectors to dssdev's.
To set vram on the command-line (bootargs):
omapgpu.vram=0:32M
(same syntax as omapfb but use omapgpu module name instead)
To set default resolution on command-line, use the normal video= line,
such as:
video=HDMI Type A-1:800x600@60
note: sometimes there is an issue with the hdmi driver overriding the
set resolution when it gets a hotplug event and reads the EDID. The
hdmi driver will need to be tamed so that it does not override the
currently set timings, at least not as long as they are still a valid
choice according to the EDID.
And of course, to enable debug:
drm.debug=7
The omap_gpu drm driver supports using platform_data to configure which
omap_gpu devices are assigned which overlays/managers/devices. If
multiple devices are registered, each one creates it's own framebuffer
and fbdev. This allows for multiple independent display contexts (like
with the old omapfb driver) in cases where you don't want to share one
virtual framebuffer across multiple displays.
|
|
|
|
If there is an alpha channel, need to mask in 1's in the alpha channel
to prevent the fb from being completely transparent.
Signed-off-by: Rob Clark <rob@ti.com>
|
|
Main change is to avoid automatically picking timings. Now the driver
defaults to a safe 640x480, and leaves it to the upper layer (drm driver)
to pick the desired resolution based on what the user selects and the
drm infrastucture's parsing of the EDID.
Note: some of this may need to be checked w/ S3D team, and other use cases
where android is using the HDMI display.. it is still the correct approach
for the HDMI driver to not automatically pick timings, but possibly there
needs to be something in userspace to do this if x11 is not running. See
the modetest test app coming from libdrm tree.. something like this could
be used to set the modeline from userspace.
|
|
The API should return whether the device is detected, and if applicable
whether the cable is plugged in. For non-hot-plug devices, it simply
means "is the display/panel present". For hot-plug devices it means "is
the cable plugged in".
|
|
|
|
|
|
The check_timings() method should check if the provided timings are
supported by the driver (because something outside of the hdmi driver
might be parsing the EDID and setting different resolution), and fix
issues with setting different timings.
|
|
|
|
Rename the existing misnamed get_edid() fxn ptr to dump_edid() to better
reflect what it does, and add new fxn ptr (implemented by hdmi driver)
to get the raw edid.
|
|
Due to the address remapping done for 2d buffers, when a 2d buffer is
allocated by userspace, it is possible that only partial pages map to
valid physical pages of memory. But the MMU can only protect accesses
to invalid addresses on the granualarity of full pages. Which results
in the inconvenient situation where access to a perfectly valid address
(from the point of view of a userspace process's memory map) can lock
up the processor.
To protect against this, a single dummy page is allocated at boot time
and mapped in to the entire DMM space. When actual buffers are alloc'd,
the mapping is replaced with the actual pages allocated for the buffer.
And when the actual TILER buffer is freed, the mappings are set back to
the dummy page.
As a result, there is no longer the need for a clear() function in DMM.
Instead the clear operation is simply remapping DMM entries back to the
dummy page.
As an added advantage, now pages are properly unmapped from DMM when
TILER buffers are freed, avoiding the potential to corrupt pages that
where previously allocated for TILER buffers.
|
|
Author: Rob Clark <rob@ti.com>
Date: Wed Mar 2 12:05:24 2011 -0600
drm platform multi-device support
Include the minor device id in the bus-id to give userspace a way
to open the correct "cardN" when there are multiple device instances.
Change-Id: Ibba237a39e77ceaeda2f954fc6adc47b346e47b7
Signed-off-by: Rob Clark <rob@ti.com>
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
This patch enables DRM support in SGX driver.
Change-Id: I346589d12ef685a4b33b56842d86fcf8c5fdc718
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
This patch adds DRM support to 3rd party display driver. As a
consequence, omaplfb sysfs entries do not work anymore and need
to be reworked.
Change-Id: I2af145d15138ee441c3708ec40fb8bea7a9a70bd
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
Currently, Android kernel uses pvrsrvkm device name.This was being
set to omap_gpu and hence DRM initialization fails. Setting
SYS_SGX_DEV_NAME correctly to pvrsrvkm. If changed in kernel, this
should be changed again.
Change-Id: I25ab8ce865ecc19df3398ad2dd05a58a063e0686
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
PVR_BUILD_DATE was not being assigned. This patch fixes it.
This is required for DRI/DRM based SGX driver.
Change-Id: I6df3b1237b223a392b5c91bfffa4897906b997e8
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
Signed-off-by: Sebastien Jan <s-jan@ti.com>
|
|
dev_warn was being called with struct device ** when
struct device * was expected. This was resulting in a
compiler warning and was potentially incorrect.
This patch fixes it.
Change-Id: I7302513ca193e5ee5d0ca186ec2f13d515969e32
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
Subject: [PATCH 5/6] drm: Call platform register/unregister for platform drivers.
Signed-off-by: Jeff McGee <j-mcgee@ti.com>
Call platform register/unregister for drm platform drivers.
Change-Id: I78c5ae456701d700d8794aed2d7fd3cd0ba55fef
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
From: Jordan Crouse <jcrouse@codeaurora.org>
Date: Wed, 4 Aug 2010 14:48:26 -0600
Subject: [PATCH 4/6] drm: Make sure the DRM offset matches the CPU
The pgoff option in mmap() is defined as an unsigned long
so the offset generated by DRM needs to fit into
BITS_PER_LONG for the CPU in question.
Change-Id: I2083125f4bc5b6400af4c702761a357cee9088e5
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Jeff McGee <j-mcgee@ti.com>
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
From: Jordan Crouse <jcrouse@codeaurora.org>
Date: Wed, 4 Aug 2010 14:48:25 -0600
Subject: [PATCH 3/6] drm: Add __arm defines to DRM
Add __arm defines to specify behavior specific for
an ARM processor.
Change-Id: I29c3ed4e5eb0e6b39c01f693c7d32a7cddaa5a85
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
[j-mcgee@ti.com: correct preprocessor statement exceeding 80 chars]
Signed-off-by: Jeff McGee <j-mcgee@ti.com>
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
From: Jordan Crouse <jcrouse@codeaurora.org>
Date: Wed, 4 Aug 2010 14:48:24 -0600
Subject: [PATCH 2/6] drm: Add support for platform devices to register as DRM devices
Allow platform devices without PCI resources to be DRM devices.
Change-Id: Iba9d5cc0dc3930e0f000f3c5614eb61d44425841
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
[j-mcgee@ti.com: correct assignment-in-if-condition style errors]
[j-mcgee@ti.com: fix minor->kdev.parent assignment in drm_sysfs_device_add]
Signed-off-by: Jeff McGee <j-mcgee@ti.com>
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
From: Jordan Crouse <jcrouse@codeaurora.org>
Date: Wed, 4 Aug 2010 14:48:23 -0600
Subject: [PATCH 1/6] drm: Remove drm_resource wrappers
Remove the drm_resource wrappers and directly use the
actual PCI and/or platform functions in their place.
Change-Id: Iad49bfd0c82d42d147140e45a82b5a9c54c9f055
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Jeff McGee <j-mcgee@ti.com>
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
These files are required for DRI/DRM based implementation of the SGX
driver.
Change-Id: I513e31ab8d4c6efdcfb56dde8a485f51576ebeca
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
|
|
Inspired by changes brought by commit:
commit 8096c18997a48b61f928bd95b07bfa1425ba0d7d
Author: Lajos Molnar <molnar@ti.com>
OMAP/DSS2/DSI/TAAL: Added performance optimization for manual update
Signed-off-by: Sebastien Jan <s-jan@ti.com>
|
|
This reverts commit 20867c201fc1ca9ced2630aeecdec77cc1f66577.
Conflicts:
drivers/video/omap2/displays/panel-taal.c
Signed-off-by: Sebastien Jan <s-jan@ti.com>
|