* phys addresses are passed in do_smc).
*/
dev->req_param_buf = NULL;
- use_reqbuf = !send_smc(TE_SMC_REGISTER_REQ_BUF, 0, 0);
+
+ if (of_machine_is_compatible("nvidia,foster-e"))
+ use_reqbuf = !send_smc(TE_SMC_REGISTER_REQ_BUF_LEGACY, 0, 0);
+ else
+ use_reqbuf = !send_smc(TE_SMC_REGISTER_REQ_BUF, 0, 0);
if (use_reqbuf) {
dev->req_param_buf = kmalloc((2 * PAGE_SIZE), GFP_KERNEL);
dev->param_addr = (struct te_oper_param *)
(dev->req_param_buf + PAGE_SIZE);
+ if (of_machine_is_compatible("nvidia,foster-e"))
+ send_smc(TE_SMC_REGISTER_REQ_BUF_LEGACY,
+ (uintptr_t)dev->req_addr, (2 * PAGE_SIZE));
+ else
send_smc(TE_SMC_REGISTER_REQ_BUF,
(uintptr_t)dev->req_addr, (2 * PAGE_SIZE));
} else {