* Make the pointer style consistent accross all components, which should make it
easier when working all over the place.
* 80 char limits.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42863 a95241bf-73f2-0310-859d-f6bbb57e9c96
Not completely tested : my device has no control lines wired. RX/TX seems to
work fine, at least.
Inspiration from the Linux driver since there isn't any documentation avilable:
http://lxr.free-electrons.com/source/drivers/usb/serial/cp210x.c
The switch/case for VID/PID identification is getting quite long. Isn't there a
better way to do it ?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42860 a95241bf-73f2-0310-859d-f6bbb57e9c96
register blocks and we encode their block into the register definition. On
register access these blocks are then translated into the final address.
* Set up the register blocks for (G)MCH and PCH variants.
* Remove most SandyBridge code that was actually PCH specific and is now taken
care of automatically.
* This will temporarily break SandyBridge support again until the right
transcoders are actually programmed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42857 a95241bf-73f2-0310-859d-f6bbb57e9c96
* rename *_* pll vars to match style guidelines
* refactor PLL calculation to be easier to read with
more central 10kHz unit conversions
* limited mode switching has been seen working including
a perfect 1280x1024@75
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42855 a95241bf-73f2-0310-859d-f6bbb57e9c96
AtomBIOS wants number of 10Khz Units
* better debugging after modeset on current
CRTC status
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42853 a95241bf-73f2-0310-859d-f6bbb57e9c96
we get valid EDID data for two physical connectors (one analog, one digital)
Check for load on the analog or assume digital and keep rolling as normal
* style fix, rename bios_*_scratch to biosScratch*
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42847 a95241bf-73f2-0310-859d-f6bbb57e9c96
values, as those might be slightly off (when coming from the GTF for example)
and cause needless display scaling.
* Tiny cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42844 a95241bf-73f2-0310-859d-f6bbb57e9c96
request sense. Otherwise we can easily run into an infinite recursion. Should
fix#8022.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42840 a95241bf-73f2-0310-859d-f6bbb57e9c96
(the one in my new ThinkPad X1). The PLL is still off a bit so it has a few
blurry stripes, but EDID and mode setting basically works.
* Starting with IronLake the north/south bridge or (G)MCH/ICH setup was moved
into a platform control hub (PCH) which means that many registers previously
located in the GMCH are now in the PCH and have a new address.
* I'm committing this mostly because this way the additions are more easy to
follow. It is a bit messy and I'll clean it up more and possibly make it a
bit more generic. Also most of these changes actually apply to IronLake and up
and aren't SandyBridge specific, so a few of those additions will still get a
broader scope and new chips will be added.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42839 a95241bf-73f2-0310-859d-f6bbb57e9c96
Seems to work correctly on real hardware, not on qemu where it
can only use the irq 2, and this causes wreakage (could be a programming error).
Changed from the kernel code:
- Adapted to use as a driver
- Configure for level interrupts instead of edge, which seems not to work correctly
- Add traceing dprintfs
- Various other changes
Does not use yet the new interrupt api introduced by Michael Lotz.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42837 a95241bf-73f2-0310-859d-f6bbb57e9c96
move quite a bit of code away from var_var format
* #if 0 some not-yet-ready r500 code
* no real functional change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42835 a95241bf-73f2-0310-859d-f6bbb57e9c96
ensure bitwise ands are compared to 0 or non 0 as per Axel
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42830 a95241bf-73f2-0310-859d-f6bbb57e9c96
we will need to query the card dpms state
for each monitor at a later date
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42829 a95241bf-73f2-0310-859d-f6bbb57e9c96
* add update of crtc encoder scratch registers
* rename id for more descriptive crtc_id
* encoder dpms, BL on/off on lcd
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42828 a95241bf-73f2-0310-859d-f6bbb57e9c96
to be available for using during build. It was requested by Frederik Modeen.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42822 a95241bf-73f2-0310-859d-f6bbb57e9c96
it in case it was set "on".
* Tracing added for the case of ignoring interrupt with not active OBF status bit.
Fixes#7973#6313
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42820 a95241bf-73f2-0310-859d-f6bbb57e9c96
* set encoder flags the same as connector flags
* add curly comments to make troubleshooting clearer
* program encoder dpms scratch registers
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42818 a95241bf-73f2-0310-859d-f6bbb57e9c96
* don't init asic unless needed
* do dpms by hand on mode set
* detect tv and skip during detection for now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42817 a95241bf-73f2-0310-859d-f6bbb57e9c96
* make encoder setup functions return status_t
* really need a struct to hold encoder info
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42814 a95241bf-73f2-0310-859d-f6bbb57e9c96
I try to keep UBSConfiguration binary compatibility, but proofreading is welcome.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42812 a95241bf-73f2-0310-859d-f6bbb57e9c96
* flip encoders on during modeset.
* crt0 status keeps getting higher and higher which is a good sign.
the more bits that are set, the closer to a successful lock.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42802 a95241bf-73f2-0310-859d-f6bbb57e9c96
* reorganize mode set code to match layout of linux DRM driver
* add initial DPMS code
* add lots of TODOs
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42801 a95241bf-73f2-0310-859d-f6bbb57e9c96
Remove old non-atombios code
* add encoder.c and encoder.h to handle
encoder management
* fix pll code to use encoder object id
vs crtcid
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42797 a95241bf-73f2-0310-859d-f6bbb57e9c96
* add function to set encoder to crtc
* clean up some comments
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42796 a95241bf-73f2-0310-859d-f6bbb57e9c96
don't set up a pointer and not malloc it.
* small cleanups to radeon_hd i2c bit-banging code
* i2c bit banging is now functioning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42793 a95241bf-73f2-0310-859d-f6bbb57e9c96
list of Radeon HD Cards
* break tradition of sorting by chipset id because they really
are not in any kind of order.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42792 a95241bf-73f2-0310-859d-f6bbb57e9c96
* add a few notes for future i2c bit-bangers
* cleanup of tracing
* no real functional change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42777 a95241bf-73f2-0310-859d-f6bbb57e9c96
a connector. (thus allowing for future non-ddc gpio devices like fan speed)
* map all i2c gpio pins on accelerant init
* use a smaller sub function to attach gpio info to connector i2c info
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42773 a95241bf-73f2-0310-859d-f6bbb57e9c96
* read gpio pins back after setting them to improve reliability
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42772 a95241bf-73f2-0310-859d-f6bbb57e9c96
dealing with i2c register addresses.
* cleanup i2c hacks
* now receive the following message in SimNow:
"No device present at I2C slave address 0x66"
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42769 a95241bf-73f2-0310-859d-f6bbb57e9c96
linux drm driver. Seems radeon_hd isn't limited to the
standard 0xa0 i2c slave address.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42762 a95241bf-73f2-0310-859d-f6bbb57e9c96
* clean up int types
* curly brace cleanup
* move vars away from top of functions
when possible
* split DDR timings to seperate header to
avoid warnings on unused items
* quite a few automated changes, please excuse
things within diff still not fixed / incorrect
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42761 a95241bf-73f2-0310-859d-f6bbb57e9c96
* while doing our last-resort fallback, skip
TV DAC encoders as it is likely that is not
what the user wants. This may need to change
as the driver matures. (ex: only a tv is
connected, no edid)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42760 a95241bf-73f2-0310-859d-f6bbb57e9c96
* add code to check if 0 valid displays were found
* if 0 edid's were found, we inject the first connector
as a last resort... SimNow seems to be ok with this and
I get a valid screen mode set :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42757 a95241bf-73f2-0310-859d-f6bbb57e9c96
it's needed using the gpio information
* rename gpio information struct to be cleaner and shorter
* add function to debug found connectors
* set gpio mask to 1 vs the defined mask... this seems to get us closer
to working ddc / edid per connector
* change gpio_info u16's to u32's to ensure we aren't overflowing anything
* fix bug always setting hw_capable true
* change TRACE to ERROR to always show debug data when called
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42751 a95241bf-73f2-0310-859d-f6bbb57e9c96
* This part is just fixes to let the driver work. I have decided
to separate this changes just for Adrien's information because
final version will be refactored significantly.
* The fixes:
- Endpoint 3 acknowledgements must be enabled in USB Control Register
to let async notifications work;
- Functions to handle MII registers and MII initialization routines
are implemented and used;
- Sending WRITE1_REGISTER request typo was fixed;
- Small typo in queueing RX iovec fixed: we are receiving 2 blocks not 1;
- one byte size padding is required in case TX packet length is multiple
of pipe max packet size;
- StopDevice procedure implemented;
- StartDevice procedure fixed;
* Code style fixes are coming soon. Please be patient.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42748 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Unfortunately I have to rollback r42712 completely because it was
"the attempt in the wrong direction" and the working version was already
implemented on top of previous revision. Just fixed version and code style
refactored one are coming soon. Please be patient.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42747 a95241bf-73f2-0310-859d-f6bbb57e9c96
locking and unlocked on every bit read sounds excessive
* set vdif and vdif size to NULL... they really aren't needed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42746 a95241bf-73f2-0310-859d-f6bbb57e9c96
* In intel_set_display_mode(), we now use the sanitize_display_mode() method
directly in order to see if the mode is valid (it's valid when it doesn't
need to be altered anymore).
* This should be the final nail on ticket #7419.
* Automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42742 a95241bf-73f2-0310-859d-f6bbb57e9c96
* add i2c locking code that represents common things we need to do before
and after access
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42740 a95241bf-73f2-0310-859d-f6bbb57e9c96
* changing to cpp uncovered a few bugs in ide_adaptor
* correct losing signed integer
* correct a variable name that conflicted with a type
* gcc2 build now fixed after r42724
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42725 a95241bf-73f2-0310-859d-f6bbb57e9c96
* verified nothing in the source tree references "IDE PCI"
* line length fixes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42724 a95241bf-73f2-0310-859d-f6bbb57e9c96
* add edid info storage to display
* pass i2c/ddc information to common i2c code
* add code to read/write i2c/ddc
* i2c/ddc read/write code works 'in theory', needs tested
* detect monitors based on presence of edid on connector
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42718 a95241bf-73f2-0310-859d-f6bbb57e9c96
* rename decode_* to get_*
* clean up get_* text when unknown connector/encoder
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42717 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Setup the interrupt endpoint on device setup, not start
* Fixup some flags I was setting wrong
* Add even more debug traces
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42712 a95241bf-73f2-0310-859d-f6bbb57e9c96
* few tab fixes
* add Axel as author as the base i2c stuff is from intel_extreme
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42709 a95241bf-73f2-0310-859d-f6bbb57e9c96
* given the rise of other 4G wwan technology such as lte, this
seems cleaner and better matches wlan directory for wifi.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42707 a95241bf-73f2-0310-859d-f6bbb57e9c96
* each active gDisplay references a gConnector index
* add atombios DAC sense.. this really won't be the main call used...
AtomBIOS expects you to attempt an EDID read to detect connected displays
* remove old manual DACSense
* next we attempt to add ddc / edid
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42705 a95241bf-73f2-0310-859d-f6bbb57e9c96
Generic UVC USB Webcam.
* Added my own Logitech HD Pro C910, which publish a compound device class, not an UVC class.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42693 a95241bf-73f2-0310-859d-f6bbb57e9c96
* need to break out connector and encoder addition into seperate functions as
the linux kernel did... that function is getting pretty large and deep.
* my card seems to map everything as TV DAC or TMDS... weird.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42684 a95241bf-73f2-0310-859d-f6bbb57e9c96
uint8 vs a void pointer.
* guys at AMD confirmed that the method looking directly at the object table
should be the only method used on modern cards (r600 or later)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42683 a95241bf-73f2-0310-859d-f6bbb57e9c96