On Fri, Jun 18, 2010 at 1:57 AM, Andrew Morton
<[email protected]> wrote:
> On Thu, 17 Jun 2010 20:57:19 +0530 (IST)
> "kishore kadiyala" <[email protected]> wrote:
>
>> Adding card detect callback function which gives the status of
>> the card .For MMC1 Controller, Card detect interrupt source is
>> twl6030 and card present/absent status is provided by MMCCTRL
>> register of twl6030.
>>
>>
>> ...
>>
>>
>> + int ret = -ENOSYS;
>> + int ret = -ENOSYS;
>
> ENOSYS seems an inappropriate errno to use in a driver.
>
> "ENOSYS -- The system doesn't support that function. For example, if
> you call setpgid() on a system without job control, you'll get an
> ENOSYS error."
>
> I think it means "you the programmer tried to do something in a syscall
> which didn't make sense in this context".
>
> I'm not sure what _is_ appropraite here. There's always EIO I guess.
> ENODEV?
Agree, I will make changes with "EIO" .
>
> This happens a lot. The userspace errnos just don't map well onto
> kernel-internal operations. it was a mistake - we should have defined a
> kernel-internal namespace and perhaps type for such things. Oh well.
>
>> +/* Configuring Card Detect for MMC1 */
>> +static inline int omap4_hsmmc1_card_detect_config(void)
>> +{
>> + int res = -1;
>> + u8 reg_val = 0;
>> +
>> + /* Unmasking the Card detect Interrupt line for MMC1 from Phoenix */
>> + if (twl_class_is_6030()) {
>> + twl6030_interrupt_unmask(TWL6030_MMCDETECT_INT_MASK,
>> + REG_INT_MSK_LINE_B);
>> + twl6030_interrupt_unmask(TWL6030_MMCDETECT_INT_MASK,
>> + REG_INT_MSK_STS_B);
>> + }
>> +
>> +
>> + /*
>> + * Intially Configuring MMC_CTRL for receving interrupts &
>> + * Card status on TWL6030 for MMC1
>> + */
>> + res = twl_i2c_read_u8(TWL6030_MODULE_ID0, ®_val, TWL6030_MMCCTRL);
>> + if (res < 0)
>> + return res;
>> + reg_val &= ~VMMC_AUTO_OFF;
>> + reg_val |= SW_FC;
>> + twl_i2c_write_u8(TWL6030_MODULE_ID0, reg_val, TWL6030_MMCCTRL);
>> +
>> + /* Configuring CFG_INPUT_PUPD3 */
>> + res = twl_i2c_read_u8(TWL6030_MODULE_ID0, ®_val,
>> + TWL6030_CFG_INPUT_PUPD3);
>> + if (res < 0)
>> + return res;
>> + reg_val &= ~(MMC_PU | MMC_PD);
>> + twl_i2c_write_u8(TWL6030_MODULE_ID0, reg_val, TWL6030_CFG_INPUT_PUPD3);
>> + return res;
>> +}
>
> This is waaaaay to large to be inlined. Why not put it in a .c file?
ok, I will repost with the inlined moved as a function in .c file .
Regards,
Kishore
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html