summaryrefslogtreecommitdiffstats
path: root/sys/dev/firewire
Commit message (Collapse)AuthorAgeFilesLines
* Prepare for future integration between CAM and newbus. xpt_bus_registerscottl2007-06-172-2/+2
| | | | | | | now takes a device_t to be the parent of the bus that is being created. Most SIMs have been updated with a reasonable argument, but a few exceptions just pass NULL for now. This argument isn't used yet and the newbus integration likely won't be ready until after 7.0-RELEASE.
* - Lock sbp_write_cmd() and ORB_POINTER_ACTIVE flag.simokawa2007-06-161-11/+41
| | | | | | | - Remove unnecessary timestamps. - Return CAM_RESRC_UNAVAIL for ORB shortage. - Fix a lock problem when doorbell is used. - Fix a potential bug for unordered execution.
* - Suppress compiler optimization so that orb[1] must be written first.simokawa2007-06-141-2/+7
| | | | | | We may need an explicit memory barrier for other architectures other than i386/amd64. MFC after: 3 days
* Timestamp after sent.simokawa2007-06-082-4/+4
|
* Fix a race after a bus reset.simokawa2007-06-082-14/+16
| | | | | - We are in FWBUSINIT state just after SID interrupt. - Do not pass normal xfers before bus probe is done.
* Include now unused var within #if 0 where it come back if the othermjacob2007-06-081-0/+2
| | | | #if 0 code comes back- quiets gcc 4.2
* Add a tunable hw.firewire.phydma_enable.simokawa2007-06-073-6/+19
| | | | | | | | This is enabled by default. It should be disabled for those who are uneasy with peeking/poking from FireWire. Please note sbp(4) and dcons(4) over FireWire need this feature.
* Fix a typo to make this file compilegallatin2007-06-061-1/+1
|
* MFp4: MPSAFE firewire stack.simokawa2007-06-0614-497/+849
| | | | | | | | | | | | | - lock its own locks and drop Giant. - create its own taskqueue thread. - split interrupt routine - use interrupt filter as a fast interrupt. - run watchdog timer in taskqueue so that it should be serialized with the bottom half. - add extra sanity check for transaction labels. disable ad-hoc workaround for unknown tlabels. - add sleep/wakeup synchronization primitives - don't reset OHCI in fwohci_stop()
* Make sure fwsid is not NULL.simokawa2007-05-211-1/+3
| | | | MFC after: 3 days
* MFp4: Simplify the bus probe routin using a kthread.simokawa2007-05-212-349/+237
| | | | MFC after: 1 week
* - Initialize login->id and fix problem for non-zero login id.simokawa2007-05-111-1/+2
| | | | | | - Increase maxopenings for multiple lun/initiators. MFC after: 3 days
* MFp4: Improve asynchronous packet receive process.simokawa2007-04-302-32/+73
| | | | | | | | - Wake up DMA engine after adding a new receive buffer. - Skip buffers which have unknown state after error. - More rigid error detection. MFC after: 1 week
* MFp4:simokawa2007-04-301-9/+11
| | | | | | | - Update state in fw_xferq_dorain() after removed from the send queue. - Remove unnecessary 'goto err;". MFC after: 1 week
* MFp4: Fix broken userland API for async packets.simokawa2007-04-306-197/+247
| | | | | | | | - Introduce fw_xferlist_add/remove(). - Introduce fw_read/write_async(). - Remove unused FWACT_CH. MFC after: 1 week
* MFp4: Fix typo in recv spd.simokawa2007-04-301-1/+1
| | | | MFC after: 1 week
* MFp4: Add a sysctl knob to disable cycle master mode and add some comments.simokawa2007-04-301-1/+9
| | | | MFC after: 1 week
* MFp4: remove unused fw_asybusy().simokawa2007-04-302-15/+0
| | | | MFC after: 1 week
* MFp4: Simplify tlabel handlingsimokawa2007-04-302-40/+30
| | | | | | | | - Remove struct tl_label and runtime malloc() for it. - Include tl_lable list in struct fw_xfer. - Don't free unallocated tlabel. MFC after: 1 week
* Initialize configuration ROM before a bus reset.simokawa2007-04-303-4/+5
| | | | MFC: after 3 days
* Configuration ROM length should be unsigned.simokawa2007-04-242-2/+2
| | | | MFC: 1 week
* s/destory/destroy/ (except for the code in contrib/).pjd2007-04-161-1/+1
|
* Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM willscottl2007-04-152-1/+2
| | | | | | | | | | | use to synchornize and protect all data objects that are used for that SIM. Drivers that are not yet MPSAFE register Giant and operate as usual. RIght now, no drivers are MPSAFE, though a few will be changed in the coming week as this work settles down. The driver API has changed, so all CAM drivers will need to be recompiled. The userland API has not changed, so tools like camcontrol do not need to be recompiled.
* Teardown interrupt only when sc->ih is not NULL.simokawa2007-03-301-11/+10
| | | | MFC after: 3 days
* Free tlabel in fw_xfer_done().simokawa2007-03-301-2/+1
|
* - Don't call fw_busreset() in firewire_attach().simokawa2007-03-301-1/+0
| | | | | | | This should fix the problem that the first bus reset is sometimes ignored because of FWBUSRESET status. MFC after: 3 days
* Poll only while interrupt is disabled.simokawa2007-03-191-4/+6
| | | | MFC: 3 days after
* Wait SCLK to be stable after LPS enabled.simokawa2007-03-191-0/+2
| | | | | | | This should fix NMI problem in fwphy_rddata(). PR: kern/94146 kern/100356 MFC: after 3 days
* Replace xfer->act.hand with xfer->hand.simokawa2007-03-168-36/+34
|
* Remove retry_count.simokawa2007-03-162-3/+0
|
* * Remove xfer->retry_req.simokawa2007-03-168-45/+4
| | | | | It is unnecessary because retry is done by OHCI. Further retry should be done by applications.
* Less verbose debug messages.simokawa2007-03-161-3/+3
|
* Detect cycle lost.simokawa2007-03-162-0/+19
|
* Print warning for large DFLTPHYS.simokawa2007-03-161-0/+5
|
* Support MAXPHYS up to 512KBsimokawa2007-03-161-2/+3
| | | | | | | | | - We need at least two OCBs with indirect pointers allocated in a 4KB page. - SBP_MAXPHYS can increase to 1MB once we separate management OCB/ORB which usually does not need indirect pointers. - We have to increase SBP_DMA_SIZE for MAXPHYS larger than 1MB. MFC after: 3 days
* Don't mess with PCIM_CMD_SERRESPEN and PCIM_CMD_PERRESPEN.simokawa2007-03-151-3/+1
| | | | | | | This will fix 'NMI RAM parity error' while booting on some machines. PR: kern/95077 MFC after: 3 days
* Use pause() rather than tsleep() on stack variables and function pointers.jhb2007-02-272-5/+3
|
* o break newbus api: add a new argument of type driver_filter_t topiso2007-02-231-1/+1
| | | | | | | | | | | | | bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
* Change the remainder of the drivers for DMA'ing devices enabled in themarius2007-01-211-1/+7
| | | | | | | | sparc64 GENERIC and the sound device drivers known working on sparc64 to use bus_get_dma_tag() to obtain the parent DMA tag so we can get rid of the sparc64_root_dma_tag kludge eventually. Except for ath(4), sk(4), stge(4) and ti(4) these changes are runtime tested (unless I booted up the wrong kernels again...).
* Various bpf(4) related fixes to catch places up to the new bpf(4)jhb2006-12-291-2/+2
| | | | | | | | | | | | | semantics. - Stop testing bpf pointers for NULL. In some cases use bpf_peers_present() and then call the function directly inside the conditional block instead of the macro. - For places where the entire conditional block is the macro, remove the test and make the macro unconditional. - Use BPF_MTAP() in if_pfsync on FreeBSD instead of an expanded version of the old semantics. Reviewed by: csjp (older version)
* Correct a signedness bug which allowed members of the operatorcperciva2006-12-061-1/+1
| | | | | | group to read kernel memory. Security: FreeBSD-SA-06:25.kmem
* 2nd and final commit that moves us to CAM_NEW_TRAN_CODEmjacob2006-11-021-8/+0
| | | | | | as the default. Reviewed by multitudes.
* The first of 3 major steps to move the CAM layer forward to usingmjacob2006-10-311-4/+25
| | | | | | | | | | | | | | | | | | | | | the CAM_NEW_TRAN_CODE that has been in the tree for some years now. This first step consists solely of adding to or correcting CAM_NEW_TRAN_CODE pieces in the kernel source tree such that a both a GENERIC (at least on i386) and a LINT build with CAM_NEW_TRAN_CODE as an option will compile correctly and run (at least with some the h/w I have). After a short settle time, the other pieces (making CAM_NEW_TRAN_CODE the default and updating libcam and camcontrol) will be brought in. This will be an incompatible change in that the size of structures related to XPT_PATH_INQ and XPT_{GET,SET}_TRAN_SETTINGS change in both size and content. However, basic system operation and basic system utilities work well enough with this change. Reviewed by: freebsd-scsi and specific stakeholders
* Better printfimp2006-06-121-1/+1
|
* Don't type pun accidentally. Instead, be explicit that we're typeimp2006-02-041-6/+8
| | | | punning with an union so that the compiler knows.
* Make tv_sec a time_t on all platforms but alpha. Brings us more in line withtrhodes2005-12-241-2/+2
| | | | | | | | | POSIX. This also makes the struct correct we ever implement an i386-time64 architecture. Not that we need too. Reviewed by: imp, brooks Approved by: njl (acpica), des (no objects, touches procfs) Tested with: make universe
* Fix panic when we cannot find self-id of probing nodes.simokawa2005-11-251-1/+3
| | | | | | | | | This shouldn't happen as far as the self-id buffer is vaild but some people have this problem. PR: kern/83999 Submitted by: Markus Wild <fbsd-lists@dudes.ch> MFC after: 3 days
* Fix typo.glebius2005-10-111-2/+1
| | | | | Submitted by: maxim MFC after: 3 days
* - Don't pollute opt_global.h with DEVICE_POLLING and introduceglebius2005-10-052-0/+6
| | | | | | | | | opt_device_polling.h - Include opt_device_polling.h into appropriate files. - Embrace with HAVE_KERNEL_OPTION_HEADERS the include in the files that can be compiled as loadable modules. Reviewed by: bde
* Big polling(4) cleanup.glebius2005-10-013-63/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o Axe poll in trap. o Axe IFF_POLLING flag from if_flags. o Rework revision 1.21 (Giant removal), in such a way that poll_mtx is not dropped during call to polling handler. This fixes problem with idle polling. o Make registration and deregistration from polling in a functional way, insted of next tick/interrupt. o Obsolete kern.polling.enable. Polling is turned on/off with ifconfig. Detailed kern_poll.c changes: - Remove polling handler flags, introduced in 1.21. The are not needed now. - Forget and do not check if_flags, if_capenable and if_drv_flags. - Call all registered polling handlers unconditionally. - Do not drop poll_mtx, when entering polling handlers. - In ether_poll() NET_LOCK_GIANT prior to locking poll_mtx. - In netisr_poll() axe the block, where polling code asks drivers to unregister. - In netisr_poll() and ether_poll() do polling always, if any handlers are present. - In ether_poll_[de]register() remove a lot of error hiding code. Assert that arguments are correct, instead. - In ether_poll_[de]register() use standard return values in case of error or success. - Introduce poll_switch() that is a sysctl handler for kern.polling.enable. poll_switch() goes through interface list and enabled/disables polling. A message that kern.polling.enable is deprecated is printed. Detailed driver changes: - On attach driver announces IFCAP_POLLING in if_capabilities, but not in if_capenable. - On detach driver calls ether_poll_deregister() if polling is enabled. - In polling handler driver obtains its lock and checks IFF_DRV_RUNNING flag. If there is no, then unlocks and returns. - In ioctl handler driver checks for IFCAP_POLLING flag requested to be set or cleared. Driver first calls ether_poll_[de]register(), then obtains driver lock and [dis/en]ables interrupts. - In interrupt handler driver checks IFCAP_POLLING flag in if_capenable. If present, then returns.This is important to protect from spurious interrupts. Reviewed by: ru, sam, jhb
OpenPOWER on IntegriCloud