dm: serial: Adjust serial_getinfo() to use proper API

All driver-model functions should have a device as the first parameter.
Update this function accordingly.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
This commit is contained in:
Simon Glass 2018-12-28 14:23:10 -07:00
parent 3de04e771c
commit a61cbad78e
4 changed files with 12 additions and 14 deletions

View File

@ -354,7 +354,10 @@ static void acpi_create_spcr(struct acpi_spcr *spcr)
header->length = sizeof(struct acpi_spcr); header->length = sizeof(struct acpi_spcr);
header->revision = 2; header->revision = 2;
ret = serial_getinfo(&serial_info); /* Read the device once, here. It is reused below */
ret = uclass_first_device_err(UCLASS_SERIAL, &dev);
if (!ret)
ret = serial_getinfo(dev, &serial_info);
if (ret) if (ret)
serial_info.type = SERIAL_CHIP_UNKNOWN; serial_info.type = SERIAL_CHIP_UNKNOWN;
@ -432,11 +435,9 @@ static void acpi_create_spcr(struct acpi_spcr *spcr)
break; break;
} }
ret = uclass_first_device_err(UCLASS_SERIAL, &dev); serial_config = SERIAL_DEFAULT_CONFIG;
if (!ret) if (dev)
ret = serial_getconfig(dev, &serial_config); ret = serial_getconfig(dev, &serial_config);
if (ret)
serial_config = SERIAL_DEFAULT_CONFIG;
spcr->parity = SERIAL_GET_PARITY(serial_config); spcr->parity = SERIAL_GET_PARITY(serial_config);
spcr->stop_bits = SERIAL_GET_STOP(serial_config); spcr->stop_bits = SERIAL_GET_STOP(serial_config);

View File

@ -316,21 +316,18 @@ int serial_setconfig(struct udevice *dev, uint config)
return 0; return 0;
} }
int serial_getinfo(struct serial_device_info *info) int serial_getinfo(struct udevice *dev, struct serial_device_info *info)
{ {
struct dm_serial_ops *ops; struct dm_serial_ops *ops;
if (!gd->cur_serial_dev)
return -ENODEV;
if (!info) if (!info)
return -EINVAL; return -EINVAL;
info->baudrate = gd->baudrate; info->baudrate = gd->baudrate;
ops = serial_get_ops(gd->cur_serial_dev); ops = serial_get_ops(dev);
if (ops->getinfo) if (ops->getinfo)
return ops->getinfo(gd->cur_serial_dev, info); return ops->getinfo(dev, info);
return -EINVAL; return -EINVAL;
} }

View File

@ -283,7 +283,7 @@ struct serial_dev_priv {
int serial_getconfig(struct udevice *dev, uint *config); int serial_getconfig(struct udevice *dev, uint *config);
int serial_setconfig(struct udevice *dev, uint config); int serial_setconfig(struct udevice *dev, uint config);
int serial_getinfo(struct serial_device_info *info); int serial_getinfo(struct udevice *dev, struct serial_device_info *info);
void atmel_serial_initialize(void); void atmel_serial_initialize(void);
void mcf_serial_initialize(void); void mcf_serial_initialize(void);

View File

@ -26,14 +26,14 @@ static int dm_test_serial(struct unit_test_state *uts)
ut_assertok(serial_setconfig(dev_serial, SERIAL_DEFAULT_CONFIG)); ut_assertok(serial_setconfig(dev_serial, SERIAL_DEFAULT_CONFIG));
ut_assertok(serial_getconfig(dev_serial, &value_serial)); ut_assertok(serial_getconfig(dev_serial, &value_serial));
ut_assert(value_serial == SERIAL_DEFAULT_CONFIG); ut_assert(value_serial == SERIAL_DEFAULT_CONFIG);
ut_assertok(serial_getinfo(&info_serial)); ut_assertok(serial_getinfo(dev_serial, &info_serial));
ut_assert(info_serial.type == SERIAL_CHIP_UNKNOWN); ut_assert(info_serial.type == SERIAL_CHIP_UNKNOWN);
ut_assert(info_serial.addr == SERIAL_DEFAULT_ADDRESS); ut_assert(info_serial.addr == SERIAL_DEFAULT_ADDRESS);
/* /*
* test with a parameter which is NULL pointer * test with a parameter which is NULL pointer
*/ */
ut_asserteq(-EINVAL, serial_getconfig(dev_serial, NULL)); ut_asserteq(-EINVAL, serial_getconfig(dev_serial, NULL));
ut_asserteq(-EINVAL, serial_getinfo(NULL)); ut_asserteq(-EINVAL, serial_getinfo(dev_serial, NULL));
/* /*
* test with a serial config which is not supported by * test with a serial config which is not supported by
* sandbox_serial driver: test with wrong parity * sandbox_serial driver: test with wrong parity