sb16: enable -Werror

Change-Id: I990362cd764e3a219e5022a62264b76be4cdf80c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7620
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Alexander von Gluck <[email protected]>
This commit is contained in:
PulkoMandy
2024-04-15 16:02:49 +00:00
committed by waddlesplash
parent 98afcfa72a
commit 99351a72d3
3 changed files with 45 additions and 15 deletions
+1 -1
View File
@@ -682,7 +682,7 @@ rule ArchitectureSetupWarnings architecture
EnableWerror src add-ons kernel drivers audio hda ; EnableWerror src add-ons kernel drivers audio hda ;
EnableWerror src add-ons kernel drivers audio ice1712 ; EnableWerror src add-ons kernel drivers audio ice1712 ;
EnableWerror src add-ons kernel drivers audio null ; EnableWerror src add-ons kernel drivers audio null ;
# EnableWerror src add-ons kernel drivers audio sb16 ; EnableWerror src add-ons kernel drivers audio sb16 ;
EnableWerror src add-ons kernel drivers audio usb ; EnableWerror src add-ons kernel drivers audio usb ;
EnableWerror src add-ons kernel drivers audio virtio ; EnableWerror src add-ons kernel drivers audio virtio ;
EnableWerror src add-ons kernel drivers bluetooth ; EnableWerror src add-ons kernel drivers bluetooth ;
@@ -13,8 +13,10 @@
#include <drivers/ISA.h> #include <drivers/ISA.h>
static isa_module_info* gISA; static isa_module_info* gISA;
static void static void
hw_codec_write_byte(sb16_dev_t* dev, uint8 value) hw_codec_write_byte(sb16_dev_t* dev, uint8 value)
{ {
@@ -30,6 +32,7 @@ hw_codec_write_byte(sb16_dev_t* dev, uint8 value)
gISA->write_io_8(dev->port + SB16_CODEC_WRITE_DATA, value); gISA->write_io_8(dev->port + SB16_CODEC_WRITE_DATA, value);
} }
static int static int
hw_codec_read_byte(sb16_dev_t* dev) hw_codec_read_byte(sb16_dev_t* dev)
{ {
@@ -44,6 +47,7 @@ hw_codec_read_byte(sb16_dev_t* dev)
return gISA->read_io_8(dev->port + SB16_CODEC_READ_DATA); return gISA->read_io_8(dev->port + SB16_CODEC_READ_DATA);
} }
static void static void
hw_codec_reg_write(sb16_dev_t* dev, uint8 index, uint8 value) hw_codec_reg_write(sb16_dev_t* dev, uint8 index, uint8 value)
{ {
@@ -52,6 +56,7 @@ hw_codec_reg_write(sb16_dev_t* dev, uint8 index, uint8 value)
gISA->write_io_8(dev->port + SB16_MIXER_DATA, value); gISA->write_io_8(dev->port + SB16_MIXER_DATA, value);
} }
static int static int
hw_codec_reg_read(sb16_dev_t* dev, uint8 index) hw_codec_reg_read(sb16_dev_t* dev, uint8 index)
{ {
@@ -76,6 +81,10 @@ hw_codec_read_version(sb16_dev_t* dev)
return (major << 8) + minor; return (major << 8) + minor;
} }
#if 0
// TODO for recording support
static void static void
hw_codec_read_irq_setup(sb16_dev_t* dev) hw_codec_read_irq_setup(sb16_dev_t* dev)
{ {
@@ -94,6 +103,7 @@ hw_codec_read_irq_setup(sb16_dev_t* dev)
dev->irq = 10; dev->irq = 10;
} }
static void static void
hw_codec_read_dma_setup(sb16_dev_t* dev) hw_codec_read_dma_setup(sb16_dev_t* dev)
{ {
@@ -116,11 +126,13 @@ hw_codec_read_dma_setup(sb16_dev_t* dev)
dev->dma16 = 6; dev->dma16 = 6;
if (mask & 0x80) if (mask & 0x80)
dev->dma16 = 7; dev->dma16 = 7;
} }
#endif
static void
static void
hw_codec_write_irq_setup(sb16_dev_t* dev) hw_codec_write_irq_setup(sb16_dev_t* dev)
{ {
/* change programmable IRQ line resource */ /* change programmable IRQ line resource */
int mask = 0x02; int mask = 0x02;
@@ -136,6 +148,7 @@ hw_codec_write_irq_setup(sb16_dev_t* dev)
hw_codec_reg_write(dev, SB16_IRQ_SETUP, mask); hw_codec_reg_write(dev, SB16_IRQ_SETUP, mask);
} }
static void static void
hw_codec_write_dma_setup(sb16_dev_t* dev) hw_codec_write_dma_setup(sb16_dev_t* dev)
{ {
@@ -143,6 +156,7 @@ hw_codec_write_dma_setup(sb16_dev_t* dev)
hw_codec_reg_write(dev, SB16_DMA_SETUP, (1 << dev->dma8) | (1 << dev->dma16)); hw_codec_reg_write(dev, SB16_DMA_SETUP, (1 << dev->dma8) | (1 << dev->dma16));
} }
static int32 static int32
hw_codec_inth(void* cookie) hw_codec_inth(void* cookie)
{ {
@@ -188,7 +202,6 @@ hw_codec_inth(void* cookie)
} }
static status_t static status_t
hw_codec_reset(sb16_dev_t* dev) hw_codec_reset(sb16_dev_t* dev)
{ {
@@ -210,6 +223,7 @@ hw_codec_reset(sb16_dev_t* dev)
return B_IO_ERROR; return B_IO_ERROR;
} }
static status_t static status_t
hw_codec_detect(sb16_dev_t* dev) hw_codec_detect(sb16_dev_t* dev)
{ {
@@ -228,33 +242,40 @@ hw_codec_detect(sb16_dev_t* dev)
return rc; return rc;
} }
//#pragma mark - //#pragma mark -
status_t status_t
sb16_stream_setup_buffers(sb16_dev_t* dev, sb16_stream_t* s, const char* desc) sb16_stream_setup_buffers(sb16_dev_t* dev, sb16_stream_t* s, const char* desc)
{ {
return B_OK; return B_OK;
} }
status_t status_t
sb16_stream_start(sb16_dev_t* dev, sb16_stream_t* s) sb16_stream_start(sb16_dev_t* dev, sb16_stream_t* s)
{ {
return B_OK; return B_OK;
} }
status_t status_t
sb16_stream_stop(sb16_dev_t* dev, sb16_stream_t* s) sb16_stream_stop(sb16_dev_t* dev, sb16_stream_t* s)
{ {
return B_OK; return B_OK;
} }
void void
sb16_stream_buffer_done(sb16_stream_t* stream) sb16_stream_buffer_done(sb16_stream_t* stream)
{ {
} }
//#pragma mark - //#pragma mark -
status_t status_t
sb16_hw_init(sb16_dev_t* dev) sb16_hw_init(sb16_dev_t* dev)
{ {
@@ -275,11 +296,13 @@ sb16_hw_init(sb16_dev_t* dev)
return rc; return rc;
} }
void void
sb16_hw_stop(sb16_dev_t* dev) sb16_hw_stop(sb16_dev_t* dev)
{ {
} }
void void
sb16_hw_uninit(sb16_dev_t* dev) sb16_hw_uninit(sb16_dev_t* dev)
{ {
@@ -148,13 +148,16 @@ get_buffers(sb16_dev_t* dev, multi_buffer_list* data)
{ {
uint32 playback_sample_size = dev->playback_stream.sample_size; uint32 playback_sample_size = dev->playback_stream.sample_size;
uint32 record_sample_size = dev->record_stream.sample_size; uint32 record_sample_size = dev->record_stream.sample_size;
uint32 cidx, bidx; int32 bidx;
int32 cidx;
status_t rc; status_t rc;
dprintf("%s: playback: %ld buffers, %ld channels, %ld samples\n", __func__, dprintf("%s: playback: %" B_PRId32 " buffers, %" B_PRIu32 " channels, %" B_PRIu32 " samples\n",
data->request_playback_buffers, data->request_playback_channels, data->request_playback_buffer_size); __func__, data->request_playback_buffers, data->request_playback_channels,
dprintf("%s: record: %ld buffers, %ld channels, %ld samples\n", __func__, data->request_playback_buffer_size);
data->request_record_buffers, data->request_record_channels, data->request_record_buffer_size); dprintf("%s: record: %" B_PRId32 " buffers, %" B_PRIu32 " channels, %" B_PRIu32 " samples\n",
__func__, data->request_record_buffers, data->request_record_channels,
data->request_record_buffer_size);
/* Workaround for Haiku multi_audio API, since it prefers to let the driver pick /* Workaround for Haiku multi_audio API, since it prefers to let the driver pick
values, while the BeOS multi_audio actually gives the user's defaults. */ values, while the BeOS multi_audio actually gives the user's defaults. */
@@ -202,8 +205,10 @@ get_buffers(sb16_dev_t* dev, multi_buffer_list* data)
for (bidx=0; bidx < data->return_playback_buffers; bidx++) { for (bidx=0; bidx < data->return_playback_buffers; bidx++) {
for (cidx=0; cidx < data->return_playback_channels; cidx++) { for (cidx=0; cidx < data->return_playback_channels; cidx++) {
data->playback_buffers[bidx][cidx].base = dev->playback_stream.buffers[bidx] + (playback_sample_size * cidx); data->playback_buffers[bidx][cidx].base
data->playback_buffers[bidx][cidx].stride = playback_sample_size * data->return_playback_channels; = (char*)dev->playback_stream.buffers[bidx] + (playback_sample_size * cidx);
data->playback_buffers[bidx][cidx].stride
= playback_sample_size * data->return_playback_channels;
} }
} }
@@ -213,8 +218,10 @@ get_buffers(sb16_dev_t* dev, multi_buffer_list* data)
for (bidx=0; bidx < data->return_record_buffers; bidx++) { for (bidx=0; bidx < data->return_record_buffers; bidx++) {
for (cidx=0; cidx < data->return_record_channels; cidx++) { for (cidx=0; cidx < data->return_record_channels; cidx++) {
data->record_buffers[bidx][cidx].base = dev->record_stream.buffers[bidx] + (record_sample_size * cidx); data->record_buffers[bidx][cidx].base
data->record_buffers[bidx][cidx].stride = record_sample_size * data->return_record_channels; = (char*)dev->record_stream.buffers[bidx] + (record_sample_size * cidx);
data->record_buffers[bidx][cidx].stride
= record_sample_size * data->return_record_channels;
} }
} }