Commit Graph

1470 Commits

Author SHA1 Message Date
Jérôme Duval
3fa33c82a4 * store vendor, revision, stepping, revision, minor, major in the codec struct
* check specific node ids for nodes declared as inputs which are really beepers
* when unmuting/setting amp on the input amplifier, iterate on each input instead of only the first one
* also unmute/set amp on the output and input amplifiers for the input and output paths, respectively


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-17 22:45:04 +00:00
Jérôme Duval
8c3da8dd2c added a mixer interface
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28677 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-16 23:41:14 +00:00
Ingo Weinhold
6730553ae0 * Already set tty::lock() in init_driver(). This makes it always safe to
be used.
* Added tty::ref_count. Each cookie keeps a reference. Only when a
  cookie is freed the reference is surrendered. A tty is considered used
  as long as it is still referenced. This allows to access a tty through
  the cookie, even if it already has been closed.
* Fixed tty_deselect(). It was keeping registered select events when
  called after the cookie has been closed. The referenced select_sync
  structure would become invalid and later attempts to send select
  notifications for the tty could crash. Fixes #3126.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-14 16:29:40 +00:00
Jérôme Duval
e35981a931 fix the build and added a dependency on brgphy
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-12 22:36:48 +00:00
Jérôme Duval
be1f32a73c * removed miidevs.h as it's now generated
* added brgphy.c it seems to be useful for bcm570x


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-12 22:21:13 +00:00
Jérôme Duval
d8d2506553 filled glue holes to have broadcom570x compiles, reusing part of patches posted on bug #1590. Obviously untested.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28604 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-11 13:31:28 +00:00
Jérôme Duval
11d2eeb7eb updated bge to current
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-11 12:20:21 +00:00
Jérôme Duval
08de01cdab Added Broadcom BCM440x from FreeBSD (bfe). Compiles and even works.
I just added a check in bmtphy_probe() as ENXIO is negative on Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28597 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-10 23:03:18 +00:00
Axel Dörfler
ca8c99dd8f * Renamed broadcom_bcm570x driver to broadcom570x.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28539 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-06 22:51:31 +00:00
Rudolf Cornelissen
2644e08b78 (re)enabled settings file just like it ac97, modified es1370_play_inth to be same as ac97 auich to remove stuttering sound.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28482 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-03 19:36:31 +00:00
Rudolf Cornelissen
9fb04b9066 added a few registerdefines for codec, added unmute mixer output. ES1370, SB PCI128 now produces sound on haiku over here.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28465 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-02 16:29:20 +00:00
Stephan Aßmus
a6b4486702 * Do not continue in the loop when encountering B_INTERRUPTED from
acquire_sem_etc(), but treat it as an error instead. This allows
  to kill device polling threads in the input_server and prevents
  a busy loop in the kernel then. Before the input_server was shutting
  down devices upon quit (happens only when restarting it), this
  busy loop could also be observed, since then polling threads would
  be quit on exit of the team.
* Supply B_INFINITE_TIMEOUT for the MouseDevice instead of 0. Does not
  change anything, but was probably not intended.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28407 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 17:31:21 +00:00
Stephan Aßmus
9d42ec70c9 Several problems prevented USB HIDs to be opened, closed and reopened:
* The first problem was introduced by myself, when I added deleting the
  transfer semaphore in HIDDevice::Close(). Obviously, I should (re)create it
  in Open() then, or it won't work another time. (Open() is now the only place
  where it's created.)
* The second problem was when transfers have already been scheduled the
  last time the device was open, but never triggered yet. We need to reset the
  fTransferUnprocessed flag, or we won't schedule another transfer but
  wait on the transfer semaphore anyways in Control(). I also added
  canceling the usb transfers with the stack in Close().
* The remaining problems were specific to the KeyboardDevice, the repeat
  key stuff needs to be reset in Open(). I also added unsetting the repeat
  key when the key release is detected, but this should have already worked,
  because the semaphore timeout was reset to B_INFINITE_TIMEOUT.

One can now "/system/servers/input_server -q" and everything will be back
in working order. There may be some remaining problems in the Wacom driver
which I have not yet looked at.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-29 21:23:19 +00:00
Rudolf Cornelissen
ddcb4e528c es1370 compiles on haiku now. no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-28 18:23:46 +00:00
Stephan Aßmus
dab68c33ed * When a device closes, delete the transfer semaphore, so that threads blocking
on it are unblocked and get an error.
* Make fOpen volatile to prevent unwanted caching effects when checking it from
  different threads. (?)
* Check IsOpen() in the KeyboardDevice class in more acquire_sem_etc() return
  cases, analogous to the MouseDevice class.

I am still getting a problem when relaunching input_server with the input_server
add-on thread that ioctl()s on a USB keyboard fd, which should have never fired
because it's a fake device from a KVM. After the first input_server instance is
gone, this thread keeps on busy looping in acquire_sem_etc()->switch_sem() from
within the ioctl() of the KeyboardDevice usb_hid driver. Still on it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28350 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-27 16:52:39 +00:00
Axel Dörfler
887be5801a * Don't try to update the DMAResource in case there is no medium (also saves
a panic when ejecting a disc, since updating DMAResource isn't implemented
  yet...).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28348 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-27 16:00:43 +00:00
Rene Gollent
1ad73b3187 Always call Radeon_InitCP ; it explicitly checks if acc_dma is set and skips
parts of the init sequence if that's not the case anyways. This correctly
initializes the engine lock and a few other things, fixing the deadlock in
ticket #2893. This also seems to result in somewhat improved graphics
performance, at least on my X800.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28295 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 13:59:05 +00:00
François Revol
5b89d754a5 shut up complaining for something not even Linux supports.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 19:01:44 +00:00
Ingo Weinhold
628808166c mmlr: On some keyboards another keycode maps to backslash.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-15 12:43:40 +00:00
Oliver Ruiz Dorantes
2c6619e446 Styling and define module path outside the driver
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-14 20:28:22 +00:00
Stefano Ceccherini
adc7239906 also rename the device from 're' to 'rtl81xx'
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-14 07:32:46 +00:00
Jérôme Duval
11f2701ecf we load settings on open(), changes are taken into account on media_server restarts
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-11 21:54:43 +00:00
Jérôme Duval
c019da3ccf moved the check for settings like sample rate, buffer count, buffer frames in open()
changes on auich.settings are now taken into account when restarting media_server


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-11 15:31:15 +00:00
François Revol
de398d21ff Remove that cirrus driver I never really started on. QEMU is getting vmware graphics support anyway now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27970 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-11 15:05:11 +00:00
Jérôme Duval
00acef29d6 take sample rate from settings into account
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27964 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-10 23:43:56 +00:00
Stefano Ceccherini
40bab56b8f renamed 're' driver to rtl81xx. I hope it's clear enough. If not, just shout. Also disabled the ids for cards already supported by the native rtl8169 driver
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-06 12:05:14 +00:00
Axel Dörfler
c1379d357b Update for the S3 driver by Gerald:
* The hardware cursor is now disabled at 640x480 with a Virge VX (before it
  was just invisible).
* EDID info can now be read for all S3 chips.
* For the Savage IX, Savage MX, and SuperSavage chips the display is no 
  longer expanded to fill a laptop LCD display when the mode resolution is 
  less than the size of LCD display.
* Savage IX, Savage MX, and SuperSavage chips will now display mode 
  1400x1050 on a 1400x1050 laptop LCD display.  Previously the display was 
  blank at that resolution. 
* Previously about half the Savage chips would not draw properly at 
  1400x1050.  That is, the image was badly skewed and unusable.  All of 
  them now draw properly at 1400x1050.
* Some code was reorganized to remove unnecessary and redundant code.  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-04 08:09:40 +00:00
Stefano Ceccherini
bf732017df if_re freebsd driver, adapted for the build by Francesco Piccinini. It
supports many Realtek based NIC which our own driver doesn't support 
(for example the RTL8101E). Thanks! Not added to the image yet, since it 
causes some problems on my laptop (but could well be caused by the 
freebsd compat layer, or by the scheduler)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-03 05:57:35 +00:00
Ingo Weinhold
bba1a2b132 * Check for 0 capacity in the read(), write(), and io() hooks. In this
case the cd_driver_info::io_scheduler field is not initialized and we
  shouldn't try to access it. No idea why, but this only crashed with
  the gcc4 build.
* Fixed warning with tracing enabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27762 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-27 21:22:22 +00:00
François Revol
717326c223 Add missing api_version.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-25 13:18:22 +00:00
Axel Dörfler
08facac73e * Fix for a "error values are positive" assumption in the RTL-8139 driver.
This should enable internal MII PHY detection again, thanks to Siarzhuk for
  finding this!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27702 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-23 08:49:16 +00:00
Jérôme Duval
07d143d4be <malloc.h> is no standard header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27589 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-16 21:28:32 +00:00
Michael Lotz
b57520d4a9 * Don't leak the decoded instructions in case the device object cannot be
allocated.
* Remove accidentally added debug device id.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27461 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 18:02:07 +00:00
Michael Lotz
0a28b4e324 CID 1261: The "previous" list entry wasn't maintained, causing lost list items
when removing a non-first element.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 17:17:29 +00:00
Michael Lotz
11b9aad7f7 * Use new(std::nothrow) everywhere (NULL checks were already there).
* Fix a warning if trace output is not enabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 17:00:28 +00:00
Ryan Leavengood
bf2c508181 Fixed CID 1289: if name cannot be strdup'ed, we should delete entry before
returning B_NO_MEMORY;


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27435 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 06:30:07 +00:00
Michael Lotz
89dda28052 * Extend the usb_raw interface by alternate interface aware getters for
interfaces, endpoints and generic descriptors.
* Add getter for active interface index and simplify the count operation as
  it isn't misused to also get interface descriptors anymore.
* Refactor out some common code into helper functions.
* Adapt the USBKit to the changed/new interface.
* Change how alternate interfaces are exposed by USBKit by providing normal
  BUSBInterface objects for alternate interfaces that can easily be examined
  and used.
* Make BUSBInterface class aware of its alternate index and use the alternate
  aware usb_raw functionallity to build the endpoint and descriptor lists.
* Add ActiveAlternateIndex() to find out what alternate is currently active.
* Style cleanup of the USBKit classes, use std::nothrow everywhere and check
  all allocations. Simplify some code by removing optimization where the benefit
  is questionable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27409 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-10 21:52:32 +00:00
Rene Gollent
ea0316d305 Updated RTL8139 driver to 7.0-RELEASE version.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-10 15:17:56 +00:00
Rene Gollent
204737b832 Patch by Dustin Howett: Add i945GME to the supported devices list (caveat: no overlay).
Thanks!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-08 02:45:14 +00:00
Jérôme Duval
f0a85f978d * I misunderstood what means 24 bits B_AUDIO_INT (more than 2 years ago!): as audio data is left justified in a 32 bits container, we don't care much and convert as usual
32 bits data
* Echo audio driver doesn't support 24 bits in a 32 bits container as proposed by the media kit. We just manage 24 bits as 32 bits samples.
* The main benefit of this change is that the hda driver is now working with 24 bits samples (and 192khz).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-07 16:36:10 +00:00
Jérôme Duval
c991159a1b added missing 20bit case
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-07 16:26:44 +00:00
Jérôme Duval
56ff2527e9 * on freeing, only remove the device when it is removed
* check if the device is still opened when waiting for data


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-03 19:18:42 +00:00
Ithamar R. Adema
ed64c85f06 Attansic L2 Fast Ethernet driver for Haiku. Port of FreeBSD driver from:
http://www.SpringDaemons.com/stas/if_ae-1214569185.tar.bz2
(This is the wired NIC on the Asus EEE PC!)
NOTE: It is not in the image because it currently still crashes, will look into that soon.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27290 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-02 22:19:45 +00:00
Ingo Weinhold
025f7c3289 A DMABuffer doesn't have a fixed bounce buffer assigned anymore. We do
dynamically assign one when needed. Under the assumption that in most
cases a bounce buffer isn't needed, we can thus prepare a lot more
operations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-24 16:57:31 +00:00
François Revol
3cdf783e2b Start of a PC-style serial port driver. For now it's mostly just copied parts of usb_serial, not yet usable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27111 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 15:03:14 +00:00
Axel Dörfler
8e390e5ea7 * Removed icon support from scsi_periph.
* Removed B_GET_ICON support from scsi_disk, and scsi_cd. This won't be
  necessary anymore soon.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27029 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 11:02:05 +00:00
Axel Dörfler
58f14b4cc7 * Changed scsi_disk/scsi_cd to return FreeDesktop.org compatible icon names,
see http://www.freedesktop.org/wiki/Specifications/icon-naming-spec for more
  info.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27008 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-17 17:17:36 +00:00
Axel Dörfler
06ba3f0acb * Added two new ways to retrieve an icon from a device:
- B_GET_ICON_NAME: returns the name of an icon. This will then be read from
    a predefined location on disk (not yet implemented). This would also allow
    to add specifiers like "-boot", or "-fat|bfs|ntfs|...", and have special
    icons for those.
  - B_GET_VECTOR_ICON: retrieves the vector icon of a device, if any.
* get_device_icon(BBitmap*, ...) now supports other color spaces than B_CMAP8.
* Added get_device_icon(), BPartition::GetIcon(), and BVolume::GetIcon()
  variants that can also retrieve the icon data directly (like
  BNodeInfo::GetIcon()).
* Reenabled the previous BPartition::GetIcon(), based on a patch by
  Justin O'Dell - this fixes #1391.
* Tracker's MountMenu class now uses B_RGBA32 icons, instead of B_CMAP8.
* Added vector icon to scsi_disk, and scsi_cd. The former doesn't have any
  special removable icon, though.
* Header cleanup, added/updated license, whitespace cleanup.
* Marked deprecated/obsolete driver ioctls in Drivers.h.
* Removed OpenBeOS namespace in the headers I touched that still had them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-17 11:27:07 +00:00
Axel Dörfler
70e2d4ac43 * Replaced the B_BLOCK_DEVICE_* defines with B_DMA_* defines that better match
our dma_restrictions structure (but we're using blocks instead of bytes,
  since unlike the block size, the restrictions attributes are constant).
* We might want to use blocks for the dma_restrictions structure as well in
  the future...
* Fixed another bug in the device_node variant of DMAResource::Init(): the max
  segment size was specified in blocks as well.
* Removed the "hardcode" block_io module and header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26973 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-14 15:08:16 +00:00
Axel Dörfler
61b1a536e8 * Fixed the mix of bufferCount vs. max_segment_count with regards to
B_BLOCK_DEVICE_MAX_SG_BLOCKS as pointed out by Ingo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-14 14:28:20 +00:00