159829 Commits

Author SHA1 Message Date
Matt Sealey
0522664753 pmic,mmc: make VGEN2 and VSD regulators always pump 3.15V (3.3V is not possible apparently). VSD doesn't seem to be connected to anything on any EfikaMX board so it is debatable whether it needs to be turned on at all.. 2011-11-03 12:50:45 -05:00
Matt Sealey
8681692d25 siihdmi: reduce resolution stabilize time to minimum of 50ms
Since there isn't a noticable effect on display compatibility in higher values, we may as well not waste time idling for something that already has taken effect.
Net benefit of this is that DVI monitors, due to not requiring an InfoFrame drain time, now change resolution much, much faster than HDMI monitors (which may now take about 50ms longer, but this isn't noticable in benchmarks)
2011-10-26 13:49:16 -05:00
Matt Sealey
0aa62f7f4d siihdmi: improvements targeted at greater display compatibility
* siihdmi.dvi=1 switch for kernel command line (and sysfs) which will force an HDMI display into DVI sink mode (will disable audio!)
* EDID handling reworked to better match the operational mode described in the manual, and to streamline the DDC bus locking (it will now lock the bus once instead of twice, and get all EDID data while the lock is held instead of trying twice once it realises there is an extension
* more consistently set the DVI/HDMI operational mode every type the System Control register is touched
* set Power Control to "D0" after setting the DVI/HDMI operational mode as a 0x00 write here seems to help latch the previous register set
* misc: renumber "steps" to enable display to match the manual
* only delay for InfoFrame drain time if it's an HDMI sink (DVI sinks do not get sent InfoFrames so there is nothing to drain)
* add a "resolution stabilization" delay (currently 255ms, manual states 50-500ms) in case the IPU is not sending data yet (will be ratcheted down later to make resolution changing faster)

HDMI compatibility has improved somewhat (no more pink lines) and as far as tested with all the test monitors, no breakages have occurred.
Monitor resolution change time has increased due to the stabilization delay, which may not actually be necessary as by the time we have gotten to this point to change resolution it could be assumed the notification through the Linux framebuffer subsystem is more than long enough. Your mileage may vary.
2011-10-26 07:46:46 -05:00
Matt Sealey
b763d6b7a3 pmic,mmc: sacrifice a little battery life for improved SD card compatibility
* bump regulator to 3.3V
* this is safe for all SD cards up to standard
* unfortunately letting it drop to 1.8V is not a workable solution on systems with multiple SD card slots unless they all agree on a low voltage (and currently there is no way for them to communicate this requirement)
2011-10-25 13:51:39 -05:00
Matt Sealey
b6277489e0 siihdmi: add CEC register set for later development 2011-10-24 11:50:10 -05:00
Matt Sealey
f750dd8890 siihdmi: don't wait for receiver sense to setup display
* do not power down the chip just because the monitor is still in standby and waking up
* EDID will be requested but if the monitor has not properly powered yet then it will give a default mode
* also fix the symlink error (try remove device vs. make new phys-link, both are phys-link now, so it will remove the phys-link attribute before recreating it)
2011-10-24 11:48:10 -05:00
Matt Sealey
d2849443a0 usb: restrict mass storage ATA passthrough for several disk chassis/controllers (Launchpad #431963 etc.) 2011-10-24 09:42:54 -05:00
Matt Sealey
84401a30c1 pmic,mmc: bump regulator voltage to 3.3V for quirky SD cards
3.0V may let most work but in using two cards together it seems that's not enough voltage for
some. Since the regulator can be dropped to 1.8V this won't bode well for two cards with
different capabilities but the regulator probably won't be changed by the current driver in
use. All SD cards regardless of type absolutely must be able to run at 3.3V so this is not a
dangerous change and can only improve the situation, although mileage as always can vary..
2011-10-24 09:30:23 -05:00
Matt Sealey
115caa61fa bump to .27 for development. Planned fixes;
* siihdmi power off on missed receiversense
 * usb storage oddness with JMicron/LaCie
 * possible SD card refinement (3.3V regulator issue)
2011-10-24 09:21:13 -05:00
Matt Sealey
5f793fd361 bump for release (.26) 2011-09-21 13:09:50 -05:00
Sammy He
df8868e307 ENGR00151762 vpu: Fix system hang due to long time video playback on mx51
Fix system hang due to long time video playback. This issue is only
on i.MX51 platfrom due to changing vpu clock parent in vpu_enable/
disable. Set vpu clock parent to axi_a forever to fix it.

Signed-off-by: Sammy He <r62914@freescale.com>
2011-09-21 10:38:44 -05:00
Matt Sealey
680b24818e siihdmi: make 1080p and 720p autodetection a little more panel-friendly
Essentially where before we simply picked a 1080p or 720p mode and then fall back to
EDID preferred mode, now we basically do

if (teneighty)
	if (native is 1680x1050, 1440x900) return native
	if (1080p) return 1080p

if (seventwenty)
	if (native is 1366x768, 1360x768, 1280x768, 1280x800, 1024x768) return native
	if (720p) return 720p

fallback: use preferred mode

This means far more "close to 720p" modes for plasmas are used instead of 720p with
a scaler, and for monitors that SAY they can do 1080p (but it's actually scaled down
or overscanned because native res is smaller) then use panel native instead for a
much better experience.

Tested on every monitor we have available and matches native res on most, and the
best mode fallback is used as per previous mode selection on the few fringe cases
left. Experience is crisper displays.

Note that if teneighty is selected, the modes returned absolutely will suck at video
playback performance - mfw_v4lsink will fail to fullscreen at anything above 1366x768
due to lack of bandwidth. 1440x900 may work if you're lucky. mfw_xvimagesink simply
cannot convert YV12 to YUY2 fast enough to work (and double buffering seems broken).
It is therefore still disabled by default.

Also: add a siihdmi.vic= option, so you can give it any CEA VIC from the CEA spec
(look for an entry in drivers/video/cea861_modes.c and use that number) if it's
still in the modelist.

Requesting specific video modes requires some duplication of option parsing and I
feel that's really not going to give people a reasonable experience, so it's not
being done right now. Investigation into exactly what the mitigating factor for
a lower_margin < 2 actually working is underway so we can cull less modes and give
people much better monitor experience once we get XRandR working.
2011-09-16 21:38:49 -05:00
Matt Sealey
632be9672e Add use counter to the overlay (inspired by a BoundaryDevices patch) 2011-09-16 21:25:40 -05:00
Matt Sealey
3635f6cf83 vpu: bump driver as close to 11.08 as possible without breaking anything 2011-09-15 23:39:51 -05:00
Matt Sealey
ddad8c0105 siihdmi: remove broken _remove_mode function in favor of the original, working open-coded solution 2011-09-15 23:14:27 -05:00
Matt Sealey
7d1449b512 Use IT modes over CEA modes by default 2011-09-14 12:25:27 -05:00
Troy Kisky
6a1c89a3c6 SPI fixes from BoundaryDevices. Re-enable MTD! 2011-09-12 11:26:33 -05:00
Troy Kisky
8b89e62c2a Several SGTL5000 fixes from BoundaryDevices 2011-09-12 10:20:19 -05:00
Matt Sealey
4259e4284d BFS 376 2011-09-12 09:59:12 -05:00
Matt Sealey
469d88e87d BFS scheduler v376 - does a great deal for audio stuttering 2011-09-12 09:31:15 -05:00
Matt Sealey
f7218b7896 Disable preemption and CPU frequency governors other than performance, solves some stability problems probably down to staging and GPU driver. Update HZ value to be closer to the minimum i.MX timer tick for a little better responsiveness. 2011-09-12 08:57:48 -05:00
Matt Sealey
c84310addb cpufreq: allow building without cpu frequency drivers 2011-09-09 16:49:21 -05:00
Matt Sealey
e5fe366470 gpu: maximum apertures = 2 now. clarify flags debug (multiple ways -> %x) 2011-09-05 12:11:03 -05:00
Matt Sealey
ef06068ea1 gpu: correct varargs debug (memdesc is a pointer NOT static!) to fix ridiculous sizes reported for sizebytes/offsetbytes in read/write operations.
Also add scatterlist and gsl_property_t debugging so the thing is more readable as a whole..
2011-09-04 15:02:04 -05:00
Matt Sealey
2c2be6f567 gpu: move files out of common/ since there's no need for a seperate directory. This also means we can make drivers/mxc/amd-gpu/gsl_*.i to see preprocessed output and get hints as to what is being compiled in and what the final code is like
additional minor changes:
 * rename PAGE_SIZE register MH_PAGE_SIZE in yamato/22/yamato_genreg.h (although this is an unused debug file so far)
 * remove references to stdio files in gsl_debug_pm4.c (will come in handy later)
2011-08-31 11:22:26 -05:00
Matt Sealey
13678b44c9 gpu: disabling the clip mask should improve performance but it actually causes the depth buffer to act weird because I don't think our userspace/kernel combination handles it properly.. 2011-08-30 15:27:37 -05:00
Matt Sealey
bc30f49241 gpu: don't clear the Z160 global on context destroy, do it on device close instead (this is part of a Freescale patch ENGR00142363 for WindowsCE but makes a hell of a lot o srense for Linux too) 2011-08-30 13:33:11 -05:00
Matt Sealey
c9f5504a1a gpu: enable HAL debug
gpu: pull in some command stream differences from Qualcomm's MSM kernel (might fix some intermittent GPU hangs)
display: enable quick testing of non-mmu operation (hangs X right now)
2011-08-30 12:38:48 -05:00
Matt Sealey
cdd8d1a03b gpu: move hal abstraction to the same place as the other files 2011-08-30 08:15:24 -05:00
Matt Sealey
aac2fc75d3 gpu driver: remove most of the remaining "abstraction" for OS mutex and so on
* mutex, events, sleeps, process id unabstracted
 * defines for function types (inline, extern) unabstracted
 * defines for debug assert change name (KOS_ASSERT -> DEBUG_ASSERT) and left disabled
 * driver now warns, if logging is enabled, that interruptible mutex locks are interrupted (which never happens in reality but it fixes a warning)
 * remove fine grained locking "feature" since it's not enabled (and Qualcomm's public driver does not even implement it)
 * refine mutex initialization where it's still present - don't try and allocate mutex structures where they're always used, just make them parts of the structure (struct mutex * -> struct mutex)
 * whitespace police
2011-08-29 14:55:29 -05:00
Matt Sealey
63da19a022 gpu os abstraction: more unused functions for memory leak checking now gone 2011-08-26 13:02:03 -05:00
Matt Sealey
9d43088ce9 gpu os abstraction: kos_malloc/kos_free -> kmalloc/kfree. Remove SYMBIAN and WIN32 code 2011-08-26 12:58:10 -05:00
Matt Sealey
f1a9436eac gpu os abstraction: remove _LINUX switches and all other OS code 2011-08-26 12:02:51 -05:00
Matt Sealey
8aff22cac1 gpu os abstraction: remove some wince/symbian/brew stuff and atoi/strtoul abstractions (unused) 2011-08-26 11:16:25 -05:00
Matt Sealey
64b3530cc9 gpu os abstraction: kos_thread_create/destroy was only used for !LINUX, so just get rid of it 2011-08-26 11:08:56 -05:00
Matt Sealey
a0adc5279b __int64 custom typedef --> standard __s64 linux/type.h 2011-08-26 11:01:22 -05:00
Matt Sealey
b45c20854c gpu os abstraction: remove stats api (unused) 2011-08-26 10:52:21 -05:00
Matt Sealey
72edabd161 gpu os abstraction: strcpy, strncpy, strcat, strcmp, strncmp, strlen all using Linux ones now 2011-08-26 10:40:35 -05:00
Matt Sealey
b564e29f61 gpu os abstraction: remove physical memory API (unused) 2011-08-26 10:37:02 -05:00
Matt Sealey
90a20cdd1e gpu os abstraction: missed an include for msleep 2011-08-26 10:34:01 -05:00
Matt Sealey
f2b2a01e64 gpu os abstraction: remove redundant cross-process memory allocators (makes no sense in a kernel and not used anyway) 2011-08-26 10:32:41 -05:00
Matt Sealey
92212608f6 gpu os abstraction: kos_sleep -> msleep 2011-08-26 10:29:29 -05:00
Matt Sealey
55395acb61 gpu os abstraction: remove unused functions for system information 2011-08-26 10:27:46 -05:00
Matt Sealey
263baa8817 gpu os abstraction: start with memset, memcmp, memcpy as low hanging fruit 2011-08-26 10:23:31 -05:00
Matt Sealey
b9cf657c71 gpu: logging abstraction cleanups. don't re-use PAGE_SIZE in mmu block definition (rename to MH_PAGE_SIZE) 2011-08-25 13:09:21 -05:00
Matt Sealey
0ce707fff2 gpu logging: fix more unsigned int -> uint (and %d -> %u), fix a few value debug mishaps (0x08x -> 0x%08x) 2011-08-25 12:46:25 -05:00
Matt Sealey
863664804f gsl memory manager: whitespace policing mostly, break pooled functions out for better readability (not compiled yet). Some other stuff that isn't important right now. 2011-08-25 11:06:24 -05:00
Matt Sealey
9876e46062 fb: scale triple buffers down to double buffers to reduce likelihood of extra memory allocations 2011-08-25 10:49:22 -05:00
Matt Sealey
d82a8f4074 bump reserved memory for all platforms to 16MB - reduction of 16MB from 'top, increase of 8MB from 'book. 16MB is enough to hold a double buffered 1080p
screen at 32bit. We will simply drop from 3*yres to 2*yres if we're pushing the limit in the framebuffer driver.
2011-08-25 10:37:01 -05:00
Matt Sealey
76589e9bac GPU debug: pid=%d -> pid=0x%08x, device_id=%d -> %D, for coherent debug. Also shortened some "unsigned int" markings to "uint" to be more concise. 2011-08-25 09:42:46 -05:00