* Applied patch by Donn Cave: channel_set() was missing, causing bug #2284.

Thanks!
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26163 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2008-06-29 10:24:40 +00:00
parent 931a9e2b88
commit ccdad945c6
@@ -56,9 +56,10 @@ static const char * const kChannelNames[] = {
"Tertiary Channel", "Quaternary Channel"
};
static ide_for_controller_interface* ide;
static ide_adapter_interface* ide_adapter;
static device_manager_info* dm;
static ide_for_controller_interface* ide;
static ide_adapter_interface* ide_adapter;
static device_manager_info* dm;
static float
controller_supports(device_node *parent)
@@ -224,7 +225,6 @@ err:
}
static status_t
controller_init(device_node *node, void **controller_cookie)
{
@@ -240,6 +240,7 @@ controller_uninit(void *controller_cookie)
ide_adapter->uninit_controller(controller_cookie);
}
static void
controller_removed(void *controller_cookie)
{
@@ -251,8 +252,7 @@ controller_removed(void *controller_cookie)
static status_t
channel_init(device_node *node, void **channel_cookie)
{
return ide_adapter->init_channel(
node,
return ide_adapter->init_channel(node,
(ide_adapter_channel_info**)channel_cookie,
sizeof(ide_adapter_channel_info),
ide_adapter->inthand);
@@ -273,6 +273,13 @@ channel_removed(void *channel_cookie)
}
static void
channel_set(void *cookie, ide_channel channel)
{
ide_adapter->set_channel((ide_adapter_channel_info *)cookie, channel);
}
static status_t
task_file_write(void *channel_cookie, ide_task_file *tf, ide_reg_mask mask)
{
@@ -337,9 +344,9 @@ dma_finish(void *channel_cookie)
module_dependency module_dependencies[] = {
{ IDE_FOR_CONTROLLER_MODULE_NAME, (module_info **)&ide },
{ B_DEVICE_MANAGER_MODULE_NAME, (module_info **)&dm },
{ IDE_ADAPTER_MODULE_NAME, (module_info **)&ide_adapter },
{ IDE_FOR_CONTROLLER_MODULE_NAME, (module_info **)&ide },
{ B_DEVICE_MANAGER_MODULE_NAME, (module_info **)&dm },
{ IDE_ADAPTER_MODULE_NAME, (module_info **)&ide_adapter },
{}
};
@@ -351,24 +358,30 @@ static ide_controller_interface sChannelInterface = {
NULL
},
.supports_device = NULL,
.register_device = NULL,
.init_driver = channel_init,
.uninit_driver = channel_uninit,
.device_removed = channel_removed,
NULL,
NULL,
channel_init,
channel_uninit,
NULL,
NULL,
channel_removed,
},
.write_command_block_regs = task_file_write,
.read_command_block_regs = task_file_read,
.get_altstatus = altstatus_read,
.write_device_control = device_control_write,
.write_pio = pio_write,
.read_pio = pio_read,
.prepare_dma = dma_prepare,
.start_dma = dma_start,
.finish_dma = dma_finish,
};
channel_set,
task_file_write,
task_file_read,
altstatus_read,
device_control_write,
pio_write,
pio_read,
dma_prepare,
dma_start,
dma_finish,
};
static driver_module_info sControllerInterface = {
{