In my mind a port is an "atomic routing unit", and a port that can be used for both input and output is not atomic (it defines two routes). An example of practical problems having two routes in one port: you can't set a property for output without setting it also for input. Tanu Kaskinen (5): card: Store a pa_card pointer in pa_card_profile. device-port: Initialize profiles in pa_device_port_new(). switch-on-port-available: Prepare for port->is_{out,in}put going away. alsa-mixer: Remove the name option in the General section from path configuration files. device-port: Make it impossible to have a dual-direction port. src/modules/alsa/alsa-mixer.c | 133 +++++++++----------- src/modules/alsa/mixer/paths/analog-input-aux.conf | 1 - .../alsa/mixer/paths/analog-input-dock-mic.conf | 1 - src/modules/alsa/mixer/paths/analog-input-fm.conf | 1 - .../alsa/mixer/paths/analog-input-front-mic.conf | 1 - .../mixer/paths/analog-input-internal-mic.conf | 1 - .../alsa/mixer/paths/analog-input-mic-line.conf | 1 - src/modules/alsa/mixer/paths/analog-input-mic.conf | 1 - .../alsa/mixer/paths/analog-input-rear-mic.conf | 1 - .../alsa/mixer/paths/analog-input-tvtuner.conf | 1 - .../mixer/paths/analog-output-desktop-speaker.conf | 1 - .../mixer/paths/analog-output-headphones-2.conf | 1 - .../alsa/mixer/paths/analog-output-headphones.conf | 1 - .../alsa/mixer/paths/analog-output-speaker.conf | 1 - src/modules/module-switch-on-port-available.c | 118 ++++++++++------- src/pulsecore/card.c | 22 ++-- src/pulsecore/card.h | 1 + src/pulsecore/device-port.c | 7 +- src/pulsecore/device-port.h | 7 +- src/pulsecore/protocol-native.c | 14 +-- 20 files changed, 158 insertions(+), 157 deletions(-) -- 1.7.10