1
0
mirror of https://github.com/DigitalDevices/dddvb.git synced 2023-10-10 13:37:43 +02:00

add templX for sensors on GT link cards

This commit is contained in:
Ralph Metzler 2018-05-25 23:05:26 +02:00
parent 9c1fc648dc
commit 1e15f5474d

View File

@ -3578,11 +3578,16 @@ static ssize_t temp_show(struct device *device,
struct device_attribute *attr, char *buf) struct device_attribute *attr, char *buf)
{ {
struct ddb *dev = dev_get_drvdata(device); struct ddb *dev = dev_get_drvdata(device);
struct ddb_link *link = &dev->link[0]; struct ddb_link *link;
struct i2c_adapter *adap; struct i2c_adapter *adap;
s32 temp, temp2, temp3; s32 temp, temp2, temp3;
int i; int i;
u8 tmp[2]; u8 tmp[2];
int l = 0;
if (attr->attr.name[4] == 'l')
l = attr->attr.name[5] - 0x30;
link = &dev->link[l];
if (link->info->type == DDB_MOD ) { if (link->info->type == DDB_MOD ) {
if (link->info->version >= 2) { if (link->info->version >= 2) {
@ -3614,8 +3619,8 @@ static ssize_t temp_show(struct device *device,
} }
return sprintf(buf, "%d %d\n", temp, temp2); return sprintf(buf, "%d %d\n", temp, temp2);
} }
if (link->info->type == DDB_OCTOPUS_MCI ) { if (link->info->type == DDB_OCTOPUS_MCI) {
temp = 0xffff & ddbreadl(dev, TEMPMON_SENSOR0); temp = 0xffff & ddblreadl(link, TEMPMON_SENSOR0);
temp = (temp * 1000) >> 8; temp = (temp * 1000) >> 8;
return sprintf(buf, "%d\n", temp); return sprintf(buf, "%d\n", temp);
@ -4030,7 +4035,10 @@ static struct device_attribute ddb_attrs[] = {
}; };
static struct device_attribute ddb_attrs_temp[] = { static struct device_attribute ddb_attrs_temp[] = {
__ATTR_RO(temp), __ATTR_MRO(temp, temp_show),
__ATTR_MRO(templ1, temp_show),
__ATTR_MRO(templ2, temp_show),
__ATTR_MRO(templ3, temp_show),
}; };
static struct device_attribute ddb_attrs_mod[] = { static struct device_attribute ddb_attrs_mod[] = {
@ -4112,8 +4120,11 @@ static void ddb_device_attrs_del(struct ddb *dev)
dev->link[i].info->tempmon_irq) dev->link[i].info->tempmon_irq)
device_remove_file(dev->ddb_dev, device_remove_file(dev->ddb_dev,
&ddb_attrs_fanspeed[i]); &ddb_attrs_fanspeed[i]);
for (i = 0; i < 4; i++)
if (dev->link[i].info &&
dev->link[i].info->temp_num)
device_remove_file(dev->ddb_dev, &ddb_attrs_temp[i]);
for (i = 0; i < dev->link[0].info->temp_num; i++) for (i = 0; i < dev->link[0].info->temp_num; i++)
device_remove_file(dev->ddb_dev, &ddb_attrs_temp[i]);
for (i = 0; i < dev->link[0].info->port_num; i++) for (i = 0; i < dev->link[0].info->port_num; i++)
device_remove_file(dev->ddb_dev, &ddb_attrs_mod[i]); device_remove_file(dev->ddb_dev, &ddb_attrs_mod[i]);
for (i = 0; i < dev->link[0].info->fan_num; i++) for (i = 0; i < dev->link[0].info->fan_num; i++)
@ -4135,9 +4146,11 @@ static int ddb_device_attrs_add(struct ddb *dev)
for (i = 0; ddb_attrs[i].attr.name; i++) for (i = 0; ddb_attrs[i].attr.name; i++)
if (device_create_file(dev->ddb_dev, &ddb_attrs[i])) if (device_create_file(dev->ddb_dev, &ddb_attrs[i]))
goto fail; goto fail;
for (i = 0; i < dev->link[0].info->temp_num; i++) for (i = 0; i < 4; i++)
if (device_create_file(dev->ddb_dev, &ddb_attrs_temp[i])) if (dev->link[i].info &&
goto fail; dev->link[i].info->temp_num)
if (device_create_file(dev->ddb_dev, &ddb_attrs_temp[i]))
goto fail;
for (i = 0; (i < dev->link[0].info->port_num) && (i < 10); i++) for (i = 0; (i < dev->link[0].info->port_num) && (i < 10); i++)
if (device_create_file(dev->ddb_dev, &ddb_attrs_mod[i])) if (device_create_file(dev->ddb_dev, &ddb_attrs_mod[i]))
goto fail; goto fail;