platform_drv: use shared irq path for ps/2

Issue #1740
This commit is contained in:
Alexander Boettcher 2015-10-06 16:45:35 +02:00 committed by Christian Helmuth
parent 8701b7d517
commit 04cca1edb1
2 changed files with 16 additions and 6 deletions

View File

@ -10,8 +10,8 @@
* under the terms of the GNU General Public License version 2. * under the terms of the GNU General Public License version 2.
*/ */
#include <irq_session/connection.h>
#include "pci_session_component.h" #include "pci_session_component.h"
#include "irq.h"
namespace Nonpci { class Ps2; } namespace Nonpci { class Ps2; }
@ -29,18 +29,24 @@ class Nonpci::Ps2 : public Platform::Device_component
REG_STATUS = 0x64, REG_STATUS = 0x64,
}; };
Genode::Irq_connection _irq_mouse; Platform::Irq_session_component _irq_mouse;
Genode::Io_port_connection _data; Genode::Io_port_connection _data;
Genode::Io_port_connection _status; Genode::Io_port_connection _status;
public: public:
Ps2(Genode::Rpc_entrypoint * ep, Platform::Session_component * session) Ps2(Genode::Rpc_entrypoint * ep, Platform::Session_component * session)
: :
Platform::Device_component(ep, session, IRQ_KEYBOARD), Platform::Device_component(ep, session, IRQ_KEYBOARD),
_irq_mouse(IRQ_MOUSE), _irq_mouse(IRQ_MOUSE, ~0UL),
_data(REG_DATA, ACCESS_WIDTH), _status(REG_STATUS, ACCESS_WIDTH) _data(REG_DATA, ACCESS_WIDTH), _status(REG_STATUS, ACCESS_WIDTH)
{ } {
ep->manage(&_irq_mouse);
}
~Ps2() {
ep()->dissolve(&_irq_mouse);
}
Genode::Irq_session_capability irq(Genode::uint8_t virt_irq) override Genode::Irq_session_capability irq(Genode::uint8_t virt_irq) override
{ {

View File

@ -180,6 +180,10 @@ class Platform::Device_component : public Genode::Rpc_object<Platform::Device>,
} }
protected:
Genode::Rpc_entrypoint * ep() { return _ep; }
public: public:
/** /**