From: Lionel Sambuc Date: Thu, 15 May 2014 14:39:51 +0000 (+0200) Subject: Message type for BUSC_I2C_EXEC X-Git-Tag: v3.3.0~243 X-Git-Url: http://zhaoyanbai.com/repos/named.html?a=commitdiff_plain;h=3a82a3f90a9f55c556f106b4b7eaddcf905ce36d;p=minix.git Message type for BUSC_I2C_EXEC Change-Id: I4b6e33df2dd70d40af4a2f2c899324a40107c56a --- diff --git a/drivers/i2c/i2c.c b/drivers/i2c/i2c.c index b53bcf684..be1888547 100644 --- a/drivers/i2c/i2c.c +++ b/drivers/i2c/i2c.c @@ -327,7 +327,7 @@ i2c_other(message * m, int ipc_status) break; case BUSC_I2C_EXEC: /* handle request from another driver */ - r = do_i2c_ioctl_exec(m->m_source, m->BUSC_I2C_GRANT); + r = do_i2c_ioctl_exec(m->m_source, m->m_li2cdriver_i2c_busc_i2c_exec.grant); break; default: log_warn(&log, "Invalid message type (0x%x)\n", m->m_type); diff --git a/include/minix/com.h b/include/minix/com.h index 748ccc3aa..bd26da18f 100644 --- a/include/minix/com.h +++ b/include/minix/com.h @@ -155,7 +155,6 @@ #define BUSC_I2C_RESERVE (BUSC_RQ_BASE + 64) /* reserve i2c device */ #define BUSC_I2C_EXEC (BUSC_RQ_BASE + 65) /* perform i2c action */ -#define BUSC_I2C_GRANT m2_i1 /* grant for request */ /*===========================================================================* * Messages for networking layer * diff --git a/include/minix/ipc.h b/include/minix/ipc.h index e65be8020..e0fbfa8f0 100644 --- a/include/minix/ipc.h +++ b/include/minix/ipc.h @@ -587,6 +587,18 @@ typedef struct { } mess_pm_lexec_exec_new; _ASSERT_MSG_SIZE(mess_pm_lexec_exec_new); +typedef struct { + cp_grant_id_t grant; + + uint8_t padding[52]; +} mess_li2cdriver_i2c_busc_i2c_exec; +_ASSERT_MSG_SIZE(mess_li2cdriver_i2c_busc_i2c_exec); + +typedef struct { + uint8_t padding[56]; +} mess_i2c_li2cdriver_busc_i2c_exec; +_ASSERT_MSG_SIZE(mess_i2c_li2cdriver_busc_i2c_exec); + typedef struct { uint16_t addr; /* FIXME: strictly speaking this is an i2c_addr_t, but to get it I would need to include @@ -1218,6 +1230,7 @@ typedef struct { mess_fs_vfs_readsuper m_fs_vfs_readsuper; mess_fs_vfs_readwrite m_fs_vfs_readwrite; + mess_i2c_li2cdriver_busc_i2c_exec m_i2c_li2cdriver_busc_i2c_exec; mess_i2c_li2cdriver_busc_i2c_reserve m_i2c_li2cdriver_busc_i2c_reserve; mess_lc_pm_exec m_lc_pm_exec; @@ -1264,6 +1277,7 @@ typedef struct { mess_lexec_pm_exec_new m_lexec_pm_exec_new; + mess_li2cdriver_i2c_busc_i2c_exec m_li2cdriver_i2c_busc_i2c_exec; mess_li2cdriver_i2c_busc_i2c_reserve m_li2cdriver_i2c_busc_i2c_reserve; mess_lsys_krn_schedctl m_lsys_krn_schedctl; diff --git a/lib/libi2cdriver/i2cdriver.c b/lib/libi2cdriver/i2cdriver.c index f4b6c3b58..3112ebd5f 100644 --- a/lib/libi2cdriver/i2cdriver.c +++ b/lib/libi2cdriver/i2cdriver.c @@ -182,7 +182,7 @@ i2cdriver_exec(endpoint_t bus_endpoint, minix_i2c_ioctl_exec_t * ioctl_exec) memset(&m, '\0', sizeof(message)); m.m_type = BUSC_I2C_EXEC; - m.BUSC_I2C_GRANT = grant_nr; + m.m_li2cdriver_i2c_busc_i2c_exec.grant = grant_nr; r = ipc_sendrec(bus_endpoint, &m); cpf_revoke(grant_nr);