mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-29 19:57:12 +08:00
hmc5883: fixed DEVIOCGDEVICEID ioctl
we need to pass the ioctl through to the bus interface thanks to Jon Challinger for noticing this bug
This commit is contained in:
@@ -66,6 +66,7 @@
|
|||||||
#include <drivers/drv_mag.h>
|
#include <drivers/drv_mag.h>
|
||||||
#include <drivers/drv_hrt.h>
|
#include <drivers/drv_hrt.h>
|
||||||
#include <drivers/device/ringbuffer.h>
|
#include <drivers/device/ringbuffer.h>
|
||||||
|
#include <drivers/drv_device.h>
|
||||||
|
|
||||||
#include <uORB/uORB.h>
|
#include <uORB/uORB.h>
|
||||||
#include <uORB/topics/subsystem_info.h>
|
#include <uORB/topics/subsystem_info.h>
|
||||||
@@ -725,6 +726,9 @@ HMC5883::ioctl(struct file *filp, int cmd, unsigned long arg)
|
|||||||
debug("MAGIOCGEXTERNAL in main driver");
|
debug("MAGIOCGEXTERNAL in main driver");
|
||||||
return _interface->ioctl(cmd, dummy);
|
return _interface->ioctl(cmd, dummy);
|
||||||
|
|
||||||
|
case DEVIOCGDEVICEID:
|
||||||
|
return _interface->ioctl(cmd, dummy);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/* give it to the superclass */
|
/* give it to the superclass */
|
||||||
return CDev::ioctl(filp, cmd, arg);
|
return CDev::ioctl(filp, cmd, arg);
|
||||||
|
|||||||
@@ -53,6 +53,7 @@
|
|||||||
|
|
||||||
#include <drivers/device/i2c.h>
|
#include <drivers/device/i2c.h>
|
||||||
#include <drivers/drv_mag.h>
|
#include <drivers/drv_mag.h>
|
||||||
|
#include <drivers/drv_device.h>
|
||||||
|
|
||||||
#include "hmc5883.h"
|
#include "hmc5883.h"
|
||||||
|
|
||||||
@@ -90,6 +91,7 @@ HMC5883_I2C_interface(int bus)
|
|||||||
HMC5883_I2C::HMC5883_I2C(int bus) :
|
HMC5883_I2C::HMC5883_I2C(int bus) :
|
||||||
I2C("HMC5883_I2C", nullptr, bus, HMC5883L_ADDRESS, 400000)
|
I2C("HMC5883_I2C", nullptr, bus, HMC5883L_ADDRESS, 400000)
|
||||||
{
|
{
|
||||||
|
_device_id.devid_s.devtype = DRV_MAG_DEVTYPE_HMC5883;
|
||||||
}
|
}
|
||||||
|
|
||||||
HMC5883_I2C::~HMC5883_I2C()
|
HMC5883_I2C::~HMC5883_I2C()
|
||||||
@@ -117,6 +119,9 @@ HMC5883_I2C::ioctl(unsigned operation, unsigned &arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case DEVIOCGDEVICEID:
|
||||||
|
return CDev::ioctl(nullptr, operation, arg);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,7 @@
|
|||||||
|
|
||||||
#include <drivers/device/spi.h>
|
#include <drivers/device/spi.h>
|
||||||
#include <drivers/drv_mag.h>
|
#include <drivers/drv_mag.h>
|
||||||
|
#include <drivers/drv_device.h>
|
||||||
|
|
||||||
#include "hmc5883.h"
|
#include "hmc5883.h"
|
||||||
#include <board_config.h>
|
#include <board_config.h>
|
||||||
@@ -92,6 +93,7 @@ HMC5883_SPI_interface(int bus)
|
|||||||
HMC5883_SPI::HMC5883_SPI(int bus, spi_dev_e device) :
|
HMC5883_SPI::HMC5883_SPI(int bus, spi_dev_e device) :
|
||||||
SPI("HMC5883_SPI", nullptr, bus, device, SPIDEV_MODE3, 11*1000*1000 /* will be rounded to 10.4 MHz */)
|
SPI("HMC5883_SPI", nullptr, bus, device, SPIDEV_MODE3, 11*1000*1000 /* will be rounded to 10.4 MHz */)
|
||||||
{
|
{
|
||||||
|
_device_id.devid_s.devtype = DRV_MAG_DEVTYPE_HMC5883;
|
||||||
}
|
}
|
||||||
|
|
||||||
HMC5883_SPI::~HMC5883_SPI()
|
HMC5883_SPI::~HMC5883_SPI()
|
||||||
@@ -146,6 +148,9 @@ HMC5883_SPI::ioctl(unsigned operation, unsigned &arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case DEVIOCGDEVICEID:
|
||||||
|
return CDev::ioctl(nullptr, operation, arg);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
|
|||||||
Reference in New Issue
Block a user