lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <566207A1.4020409@yahoo.pl>
Date:	Fri, 4 Dec 2015 22:37:37 +0100
From:	Piotr Madalinski <piotr.madalinski@...oo.pl>
To:	linux-kernel@...r.kernel.org
Subject: [serial] Calling platform specific code on driver bind/unbind

Hi,
I'm hacking my openwrt router and look for a proper way to make a serial 
driver call a platform-specific function such as this:

static void ath79_enable_uart(void) {
     if (soc_is_ar933x())
         ath79_gpio_function_enable(AR933X_GPIO_FUNC_UART_EN);
}

and

static void ath79_disable_uart(void) {
     if (soc_is_ar933x())
         ath79_gpio_function_disable(AR933X_GPIO_FUNC_UART_EN);
}

on driver bind/unbind instead of in platform initialization code, in 
order to be able to
reuse the pins as gpio, without disabling uart entirely.

My current solution uses platform_data to pass function pointers,
and invokes them in driver's request_port and release_port functions 
respectively.

And, oddly enough, the one in release_port gets invoked on unbind but 
the other one
isn't called on bind (I had to add a call to it in probe to get it working).

So I wonder, if the request/release functions are a proper place for 
such a callback,
or is there some better, more 'canonical' solution.

Also, I could attach my patches but it is my first post here, and they 
are a bit openwrt specific,
and I don't want to be yelled upon ;-).

Regards,
Piotr Madalinski
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ